1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án phân vùng ngữ nghĩa semantic segmentation

65 284 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 4,09 MB
File đính kèm Phân_vùng_ảnh_ Semantic_Segmentation.rar (4 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu các phương pháp cho bài toán phân vùng ngữ nghĩa trên ảnh (Semantic segmentation) và chương trình thử nghiệm giải pháp tiên tiến trên tập dữ liệu mẫu.Phân vùng ngữ nghĩa là miêu tả quá trình liên kết từng điểm ảnh với nhãnlớp hay là việc ta gán cho mỗi điểm ảnh của ảnh này một giá trị đặc trƣng cho nhãnlớp đối tƣợng mà điểm ở vị trí ấy thuộc về (ví dụ nhƣ mèo, bò, đƣờng, xe, cỏ,...)

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC

NGÀNH CÔNG NGHỆ THÔNG TIN

TÌM HIỂU VÀ THỬ NGHIỆM GIẢI PHÁP TIÊN TIẾN CHO BÀI TOÁN PHÂN VÙNG

Trang 2

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 1

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên

Họ và tên sinh viên: Nguyễn Thị Phương Hằng

Điện thoại liên lạc: 01667701418

Email: phuonghangnt1407@gmail.com

Lớp: CNTT 2.01-K58 – Viện CNTT & TT

Hệ đào tạo: Kỹ sư

Đồ án tốt nghiệp được thực hiện tại: Bộ môn Hệ thống thông tin, Viện Công nghệ thông tin

và truyền thông, Đại học Bách Khoa Hà Nội

2 Mục đích, nội dung và nhiệm vụ của ĐATN

- Tìm hiểu bài toán phân vùng ngữ nghĩa cho ảnh, ý nghĩa và ứng dụng của bài toán này và

áp dụng bài toán cho một số bộ ảnh

- Tìm hiểu, nghiên cứu mạng Neural Network và các kiến thức liên quan như mô hình đồ thị tính toán, hàm mất mát (loss function), hàm kích hoạt, Batch Normalization, quá trình lan truyền ngược

- Tìm hiểu, nghiên cứu mạng Convolutional Neural Network, các lớp convolution, lớp pooling, lớp fully connected, và một số kiến trúc mạng CNN phổ biến

- Tìm hiểu về một số phương pháp cho bài toán phân vùng ngữ nghĩa như FCN, Segnet, PSPnet, Deeplab (v1, v2, v3, v3 plus) và các kỹ thuật nền tảng phục hồi ảnh như giải thuật atrous, modun ASPP, fully connected CRFs,…

- Lựa chọn mô hình và tiến hành thử nghiệm, nhận xét và hướng mở rộng

3 Lời cam đoan của sinh viên:

Tôi - Nguyễn Thị Phương Hằng - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Nguyễn Thị Oanh

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ

biểu, - đều được ghi rõ ràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo

Trang 3

Hà nội ngày 28 tháng 5 năm 2018

Giảng viên hướng dẫn

TS Nguyễn Thị Oanh

Trang 4

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 3

LỜI CẢM ƠN

Đi qua những năm tháng Bách Khoa, tôi mới biết tuổi trẻ đáng trân trọng như thế nào Trân trọng, không hẳn là vì có những khó khăn, thách thức tưởng chừng như gục ngã, không hẳn là vì ta biết mình trưởng thành đến đâu mà đơn giản là vì ta đã làm tất cả điều đó cùng ai

Cảm ơn Bách Khoa! 5 năm, có lẽ so với cuộc đời thì là quãng thời gian không đáng

kể nhưng đó đã là một phần quan trọng trong tuổi thanh xuân của tôi Bản thân tôi cũng không muốn biết Bách Khoa cho mình bao nhiêu, và lấy đi những gì, chỉ biết rằng tuổi trẻ có Bách Khoa

Cảm ơn các bạn của tôi đã đồng hành cùng tôi trên suốt chặng đường 5 năm đại học, cho tôi niềm tin, giúp tôi vượt qua những khó khăn, cùng tôi chia sẻ buồn vui Cảm ơn bố mẹ đã vất vả kiếm từng đồng nuôi tôi ăn học, luôn động viên, dạy dỗ tôi trưởng thành, để tôi có cơ hội được viết ra những dòng này Và cảm ơn các thầy cô Bách Khoa thân thương, các thầy cô viện công nghệ thông tin và truyền thông, và

cô Nguyễn Thị Oanh, một người thầy tận tâm hướng dẫn, chỉ bảo, giảng dạy tôi hoàn thành đồ án tốt nghiệp của mình

Do kiến thức bản thân còn hạn chế, cùng với thời gian có hạn nên đồ án còn nhiều sai sót mong thầy cô thông cảm và góp ý!

Bách Khoa! Tháng 5 năm 2018

Xin chân thành cảm ơn!

Trang 5

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 4

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Mục đích của đề tài là giúp hiểu sâu và áp dụng hiệu quả các kỹ thuật học máy nói chung và các kỹ thuật của thị giác máy, các kỹ thuật xử lý bài toán phân vùng ngữ nghĩa giúp ta giải bài toán phân vùng ảnh một cách hiệu quả và chính xác

Với mục đích nói trên, tôi xin trình bày bài toán của tôi với những nội dung sau:

- Chương 1: Giới thiệu về bài toán phân vùng ngữ nghĩa, các ứng dụng của bài toán trong các lĩnh vực đời sống

- Chương 2: Trình bày lý thuyết về mạng noron bao gồm cơ sở sinh học, mô hình toán học, kiến trúc của mạng noron, và lý thuyết mạng noron tích chập và tìm hiểu một số mạng phổ biến gồm VGG net, Google net, Resnet, Xcepion và một số kiến trúc mạng noron hiện nay như các loại hàm kích hoạt, hàm mất mát, Batch Normalization, quá trình huấn luyện,…

- Chương 3: Một số mô hình sử dụng cho bài toán phân vùng ngữ nghĩa như FCN, PSP net, deeplab (v1, v2, v3, v3 plus) và các kỹ thuật phục hồi ảnh như giải thuật atrous, mô dun ASPP, Fully-connected CRFs, nội suy song tuyến tính,

- Chương 4: Tiến hành thực nghiệm trên một số tập dữ liệu như Pascal voc 2012, ADE20K Challenge 2016, kết quả đạt được và đánh giá

- Chương 5: Kết luận và hướng phát triển

Trang 6

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 5

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1

LỜI CẢM ƠN……… 3

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4

DANH MỤC TỪ VIẾT TẮT 7

DANH MỤC THUẬT NGỮ 8

DANH MỤC HÌNH ẢNH 9

DANH MỤC BẢNG BIỂU 12

GIỚI THIỆU BÀI TOÁN 13

CHƯƠNG 1: GIỚI THIỆU VỀ BÀI TOÁN PHÂN VÙNG NGỮ NGHĨA 13

1.1 MỘT SỐ ỨNG DỤNG CỦA BÀI TOÁN PHÂN VÙNG NGỮ NGHĨA 15

1.2 MẠNG NORON VÀ MẠNG NORON TÍCH CHẬP 16

CHƯƠNG 2: MẠNG NORON 16

2.1 Cơ sở mạng noron 16

2.1.1 Kiến trúc mạng noron 17

2.1.2 Một số kiến thức cơ sở 18

2.1.3. MẠNG NORON TÍCH CHẬP 24

2.2 Kiến trúc mạng CNN 25

2.2.1 Một số mạng CNNs phổ biến 27

2.2.2. GIẢI PHÁP PHÂN VÙNG NGỮ NGHĨA DỰA TRÊN MẠNG NEURON34 CHƯƠNG 3: MỘT SỐ KỸ THUẬT NỀN TẢNG PHỤC HỒI ẢNH 34

3.1 Các kỹ thuật upsampling 34

3.1.1 Giải thuật hole (atrous) 36

3.1.2 Atrous Spatial Pyramid Pooling (ASPP) 37

3.1.3 Nội suy song tuyến tính (Bilinear Interpolation) 38

3.1.4 Fully-connected CRFs 39

3.1.5. MỘT SỐ MÔ HÌNH MẠNG NORON CHO BÀI TOÁN PHÂN VÙNG NGỮ NGHĨA 40

3.2 FCN (Fully convolutional Network) 40

3.2.1 Segnet 41

3.2.2 PSPnet 41

3.2.3 Deeplab 42

3.2.4 Nhận xét 48

3.2.5. CÀI ĐẶT THỬ NGHIỆM 49

CHƯƠNG 4: MÔ HÌNH THỬ NGHIỆM 49

4.1 TẬP DỮ LIỆU THỬ NGHIỆM 51

4.2 CÀI ĐẶT 54

4.3 Môi trường thực nghiệm 54

4.3.1 Quá trình huấn luyện 55

4.3.2 Kết quả thử nghiệm 57

4.3.3. NHẬN XÉT 59

4.4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61 CHƯƠNG 5:

Trang 7

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 6

KẾT LUẬN 61 5.1

HƯỚNG PHÁT TRIỂN 61 5.2

TÀI LIỆU THAM KHẢO 62

Trang 8

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 7

DANH MỤC TỪ VIẾT TẮT

1 Artificial neural network ANN

2 Convolutional Neural Network CNN

6 Deep Convolutional Neural Network DCNN

8 Atrous Spatial Pyramid Pooling ASPP

10 Conditional Random Fields CRF

13 Fully convolutional Network FCN

Trang 9

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 8

DANH MỤC THUẬT NGỮ

1 Semantic Segmentation Phân vùng ngữ nghĩa

4 Convolutional Neural Network Mạng noron tích chập

5 Convolution layer Tầng tích chập

7 Fully-Connected Layer Tầng kết nối hoàn toàn

9 Kernel, sliding window, filter Cửa sổ trượt, bộ lọc

10 Receptive field Trường tiếp nhận

11 Learning rate Tham số kiểm soát tốc độ học

12 Ground truth Ảnh đã được phân vùng chuẩn

13 Encoder-Decoder Mã hóa - Giải mã

Trang 10

Mô hình toán học của một noron [15] 17Hình 2.2:

Kiến trúc mạng noron Bên phải là mạng 3 tầng ẩn, bên trái là mạng 2 Hình 2.3:

tầng ẩn [15]…… 17

Một số hàm kích hoạt phổ biến[30] 18Hình 2.4:

Minh họa hàm cross entropy [19] 19Hình 2.5:

Ví dụ minh họa hàm mất mát SVM [34] 20Hình 2.6:

Minh họa Softmax trong mạng neural network [31] 20Hình 2.7:

Mô phỏng kỹ thuật Dropout [14] 22Hình 2.8:

Minh họa quá trình huấn luyện trên mạng noron [32] 22Hình 2.9:

Gradient descent [33] 23Hình 2.10:

Cơ chế tích chập của mạng CNN [22] 24Hình 2.11:

Minh họa quá trình của mạng CNN [14] 25Hình 2.12:

Phép toán tích chập [23] 25Hình 2.13:

Max pooling với kernel 2x2 và stride = 2 [15] 26Hình 2.14:

Ví dụ minh họa mô hình CNN trong phân loại ảnh [15] 27Hình 2.15:

Mô hình mạng VGG16, VGG19 [38] 28Hình 2.16:

Modun Inception [5] 29Hình 2.17:

Mô hình mạng googlenet [24] 29Hình 2.18:

Hình ảnh mạng Resnet với residual block [38] 30Hình 2.19:

Depthwise convolution (trái) và pointwise convolution (phải)[43] 31Hình 2.20:

So sánh giữa convolution và depthwise separable convolution thấy Hình 2.21:

depwise separable convolution cần số lƣợng tham số ít hơn [37] 31

Modun Xception [4] 32Hình 2.22:

Mô hình mạng Xception [4] 32Hình 2.23:

Biểu đồ so sánh về độ chính xác và tham số của một số mạng CNN Hình 2.24:

[39]……… 32

Quá trình unpooling [40] 34Hình 3.1:

Trang 11

0 vào giữa các giá trị của kernel) [11] 36

Minh họa Atrous conv 2D [11] 37Hình 3.5:

Minh họa modun SPP [41] 37Hình 3.6:

Minh họa modun ASPP với conv sử dụng các rate = (6, 12, 18, 24) [11] 38Hình 3.7:

Minh họa nội suy tuyến tính, với điểm P(x, y) chƣa biết hàm f, và 4 điểm Hình 3.8:

Mô hình PSPnet [9] 42Hình 3.12:

Hình ảnh minh họa chuyển đổi mạng VGG-16 trong DCNN [17] 43Hình 3.13:

Minh họa sử dụng giải thuật hole chỉnh sửa bộ lọc, với rate = 4, stride = Hình 3.14:

Hình ảnh minh họa mô hình Deeplab V3+ [13] 47Hình 3.19:

Mô hình Aligned Xception [13] 50Hình 4.1:

Mô hình thử nghiệm DeeplabV3 plus [13] 51Hình 4.2:

Minh họa tập ảnh gốc trên pascal voc 2012 52Hình 4.3:

Minh họa tập ảnh groundtruth của pascal voc 2012 52Hình 4.4:

Minh họa tập ảnh groundtruth thô 52Hình 4.5:

Hình ảnh minh họa các lớp trên tập pascal voc 2012 52Hình 4.6:

Hình ảnh minh họa tập ảnh huấn luyện trong ADE20K dataset 54Hình 4.7:

Minh họa groundtruth trên tập training của ADE20K dataset 54Hình 4.8:

Hình ảnh minh họa khi hết bộ nhớ trên GPU Google Colab 55Hình 4.9:

Thƣ mục sau khi đƣợc chuyển sang tfrecord của 3 tập (train, trainval, Hình 4.10:

val) trong Pascal Voc 2012 55

Trang 13

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 12

DANH MỤC BẢNG BIỂU

Bảng 2.1 So sánh các mạng CNN phổ biến hiện nay về độ chính xác và số lượng tham số ……….33 Bảng 3.1 Kết quả của một số mô hình trên tập Pascal voc 2012 trong đó mô hình [20] ……… 48 Bảng 4.1: 20 lớp đối tượng trong tập dữ liệu Pascal Voc 2012 ……… 53 Bảng 4.2 Một số lớp đối tượng trong tập ADE20K Challenge 2016 ………54

Trang 14

để tạo ra thông tin số Các lĩnh vực con của thị giác máy tính bao gồm tái cấu trúc cảnh, theo dõi video, nhận diện bố cục đối tượng, học, đánh chỉ mục, phục hồi ảnh,…

Trong phạm vi đồ án tôi sẽ khai thác khía cạnh phân vùng ngữ nghĩa ảnh Trước khi deep learning khám phá thị giác máy tính, người ta đã tiếp cận bài toán phân vùng ảnh bằng một số phương pháp như TextonForest và Random Forest dựa trên bài toán phân loại ảnh để phân vùng ngữ nghĩa, tuy nhiên kết quả phân vùng còn kém, chưa rõ nét Cũng giống với phân loại ảnh, mạng noron tích chập đã đạt được nhiều thành công lớn trong bài toán phân vùng ảnh Vậy nên, tôi sẽ tiếp cận theo phương pháp sử dụng mạng noron tích chập (CNN) được giới thiệu ở Chương 2 Trong Chương 3 tôi sẽ giới thiệu về một số mô hình sử dụng mạng noron tích chập để giải quyết bài toán phân vùng ngữ nghĩa sau đó tôi lựa chọn mô hình và tiến hành thử nghiệm tại chương 4, rồi đưa ra nhận xét, kết luận, và hướng phát triển ở chương 5 Trong chương này tôi giới thiệu về bài toán phân vùng ngữ nghĩa cũng như các ứng dụng thiết thực của bài toán trong cuộc sống hiện đại

Giới thiệu về bài toán phân vùng ngữ nghĩa

1.1

Phân vùng ngữ nghĩa là miêu tả quá trình liên kết từng điểm ảnh với nhãn lớp hay là việc ta gán cho mỗi điểm ảnh của ảnh này một giá trị đặc trưng cho nhãn lớp đối tượng mà điểm ở vị trí ấy thuộc về (ví dụ như mèo, bò, đường, xe, cỏ, )

Trang 15

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 14

Hình ảnh minh họa bài toán Semantic Segmentation [ 28 ]

Hình 1.1:

Ta có thể định nghĩa bài toán cụ thể như sau:

● Input: Ảnh đầu vào có kích thước bất kỳ

● Output: Cho ra một ảnh đã gán nhãn từng điểm ảnh tương ứng với ảnh đầu vào dựa trên mô hình học được từ tập dữ liệu cho trước

Sự khác nhau giữa một số bài toán xử lý ảnh với phân vùng ngữ nghĩa

Một số bài toán trong xử lý ảnh [ 21 ]

Trang 16

 Trong Y tế: Phân vùng ảnh được áp dụng để phân biệt các bộ phận trong cơ thể như phát hiện khối u và phân tích theo dõi sự phát triển của khối u (to hay bé), mật độ hồng cầu trong máu,… hỗ trợ bác sĩ chẩn đoán và chữa trị chính xác hơn

 Trong nhận dạng đối tượng: Như nhận ra các vật thể, con người,… giúp thị giác của robot tốt hơn trong việc quan sát thế giới xung quanh

 Trong giao thông: Phát hiện ra các đối tượng trên đường: con người, xe cộ, cây cối, đèn tín hiệu và được ứng dụng trong xe tự lái – một chủ đề đang nóng của các ông lớn trong ngành ô tô

 Trong giải quyết các vấn đề của thế giới như: Áp dụng với các bức ảnh vệ tinh chúng ta có thể xác định được mật độ rừng che phủ, sự xâm lấn của nước biển, phát hiện cháy rừng, xác định mật độ đô thị hóa,…

Trang 17

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 16

MẠNG NORON VÀ MẠNG NORON TÍCH CHẬP CHƯƠNG 2:

Mạng noron là một trong những phương pháp kinh điển trong học máy, được

áp dụng thành công trong rất nhiều bài toán Nó bao gồm một tập các noron xếp theo các tầng và các liên kết giữa các tầng hoặc các noron trong cùng một tầng Cũng giống như các mô hình học máy khác, nó được sử dụng để mô phỏng một hàm toán học phức tạp nào đó Nhờ quá trình lan truyền tiến và lan truyền ngược,

mà các tham số của mạng được tối ưu Trong phần này tôi giới thiệu về mạng noron

và mạng noron tích chập cùng với một số kiến trúc mạng CNN phổ biến hiện nay

Mô hình toán học của mạng noron

Dựa trên mạng noron sinh học, trong mô hình toán học [15] của một noron các tín hiệu đi dọc theo sợi trục (ví dụ x0) tương tác nhiều với các sợi nhánh của các noron khác dựa trên trọng số của khớp nối tại khớp thần kinh đó (ví dụ w0) Ý tưởng là các trọng số của khớp nối có thể học được và kiểm soát ảnh hưởng của một noron đối với một noron khác (thúc đẩy nếu trọng số dương và ức chế nếu trọng số âm)

Trang 18

DNN (deep neural network) là khái niệm chỉ mạng noron có 2 tầng ẩn trở lên Mạng noron gồm có: mạng noron truyền thẳng (feed – forward neural network - FNN) và mạng noron hồi quy (recurrent neural network - RNN) Ở phạm vi bài toán này, tôi

sẽ tìm hiểu về mạng noron truyền thẳng

Kiến trúc mạng noron Bên phải là mạng 3 tầng ẩn, bên trái là mạng 2 tầng

Hình 2.3:

ẩn [15]

Chú ý: Khi nói mạng noron N tầng là không tính tầng đầu vào Do đó một mạng noron đơn nghĩa là mạng đó không có tầng ẩn (gồm đầu vào và đầu ra)

Trang 19

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 18

Tầng đầu ra (output): Không giống như tất cả các lớp trong mạng noron, tầng đầu ra thường không có hàm kích hoạt Là bởi vì tầng đầu ra cuối cùng được đại diện cho điểm số của lớp (trong phân loại) những con số có giá trị thực

Thước đo mạng noron: Hai thước đo mà mọi người thường sử dụng để đo kích thước của mạng noron là số noron hoặc số lượng tham số

 Cross Entropy (Log Loss)

Trang 20

Li= -∑ [ 19 ]

Trong đó M là số nhãn lớp, y là 1 nếu c là nhãn của mẫu dữ liệu o, 0 nếu ngƣợc lại,

p là xác suất mô hình dự đoán mẫu dữ liệu có nhãn là c

Loss = max(0, 5.1– 3.2 +1) + max(0, -1.7 - 3.2 + 1) = max(0, 2.9) + max(0, -3.9) = 2.9

Trang 21

[31] Trong đó hàm exp(zi) = ezi , hàm trên tính tất cả ai dựa vào tất cả các zi thỏa mãn các điều kiện trên Hàm này là hàm softmax [31] Lúc này ta có thể giả sử rằng

Trang 22

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 21

2.1.3.4 Batch Normalization (BN)

Trong quá trình đào tạo, sự thay đổi thông số nội bộ (Internal Covariate Shif)

do phân phối đầu vào khiến cho sự thay đổi hoạt động mạng làm chậm quá trình đào tạo Để khắc phục vấn đề này người ta sử dụng phương pháp Batch Normalization [6] để ép giá trị đầu vào của mỗi noron tuân theo một phân phối nào

đó

Giải thuật 1: Batch Normalization Transform, được áp dụng với x trên một mini-batch[ 6 ]

Trong công thức y = BNγ,β(xi) 2 giá trị γ, β sẽ được học trong quá trình học của mạng Trong mạng CNN Batch Normalization thường đặt sau Conv và trước hàm kích hoạt

2.1.3.5 Dropout

Để tránh quá khớp, dropout là kỹ thuật được sử dụng phổ biến khi huấn luyện mạng noron, ý tưởng của nó là trong mỗi lần forward batch dữ liệu trên mạng, ta ngắt ngẫu nhiên kết nối giữa một vài noron bằng cách đặt ngẫu nhiên một số noron bằng 0 (giá trị activation tại noron đó bằng 0) với một xác suất nào đó (thông thường khoảng 0.2 đến 0.5)

Trang 23

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 22

Mô phỏng kỹ thuật Dropout [ 14 ]

Hình 2.8:

2.1.3.6 Quá trình huấn luyện

Quá trình huấn luyện gồm các bước sau:

 Lan truyền tiến: Dữ liệu từ tầng nhận qua các tầng ẩn đến tầng đầu ra, khi có kết quả đầu ra, so sánh với đầu ra mong muốn, để tính toán lỗi

 Lan truyền ngược: Giá trị lỗi sẽ được truyền ngược lại để tìm ra trọng số để giá trị lỗi nhỏ nhất

Giả sử sau khi tính toán từ đầu vào đã cho, ta có đầu ra là Y Giá trị mong muốn là

Z đã biết trước Sự chênh lệch giữa Y và kết quả mong muốn Z được biểu diễn bởi tham số delta (gọi là lỗi) = Z - Y Mục đích của việc học là làm sao cho delta càng nhỏ càng tốt (nếu delta = 0 là hoàn hảo nhất) bằng cách điều chỉnh trọng số (weights) của các dữ liệu vào [32]

Minh họa quá trình huấn luyện trên mạng noron [ 32 ]

Hình 2.9:

Như hình minh họa trên deltai = Zi - Yi

Trang 24

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 23

Hiệu chỉnh trọng số: Wi(final) = Wi(initial) + alpha*delta*Xi

Trong đó alpha là tham số kiểm soát tốc độ học gọi là learning rate Việc chọn tham

số learning rate phù hợp (làm tăng độ chính xác) là vấn đề rất quan trọng

2.1.3.7 Tối ưu tham số

Khi huấn luyện mô hình mạng noron, người ta thường sử dụng giải thuật Gradient Decent để tối ưu tham số Ý tưởng của giải thuật là dịch chuyển tham số ngược với hướng của đạo hàm, cho tới khi đạt được trạng thái hội tụ

Đầu tiên, ta cần tính đạo hàm riêng của hàm mất mát đối với tham số W, dựa trên

dữ liệu data, từ đó cập nhật tham số ngược theo hướng của đạo hàm này, step_size hay learning rate là kích thước của bước nhảy, đây là một tham số điều chỉnh quá trình học của mạng Quá trình lặp lại cho tới khi gặp một điều kiện dừng, có thể là

sự tăng của hàm mất mát đối với bộ tham số hiện tại, hay giới hạn số lần lặp

Do dữ liệu thường rất lớn, quá trình tính toán đạo hàm riêng trên toàn bộ tập dữ liệu huấn luyện đòi hỏi lượng tính toán lớn và thời gian thực hiện lâu Người ta phát triển giải pháp cập nhật tham số trên một batch dữ liệu nhỏ, thay vì toàn bộ tập dữ liệu, gọi là phương pháp Stochastic mini-batch GD, quá trình cập nhật tham số được thay đổi như sau:

Trang 25

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 24

while True: data_batch = sample_training_data(data, 256) #sample 256 examples weight_grad = evaluate_gradient(loss_func, data_batch, weights) weights += -step_size * weight_grad # perform parameter update [35 ]

Trong quá trình sample_training_data người ta thường lấy một batch dữ liệu liên

tiếp có kích thước định sẵn, mỗi lần lấy ra một batch thì trượt cửa sổ có kích thước bằng batch_size, sau batch cuối cùng thì người ta sẽ tiến hành shuffle lại dữ liệu (hết một epoch) Bằng cách sử dụng Stochastic Gradient Decent, quá trình huấn luyện được tăng tốc một cách đáng kể

Mạng noron tích chập

2.2

Mạng noron tích chập [15], để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (sliding window) áp đặt lên một ma trận Bạn có thể theo dõi cơ chế của tích chập qua hình minh họa bên dưới

Cơ chế tích chập của mạng CNN [ 22 ]

Hình 2.11:

CNNs là một trong những kỹ thuật hiện đại nhất hiện nay cho bài toán phân loại ảnh nói riêng và lĩnh vực thị giác máy tính nói chung Đặc biệt, khác với mạng nơ-ron thông thường, các lớp của một CNN có norons sắp xếp theo 3 chiều: chiều rộng, chiều cao, chiều sâu (lưu ý rằng chiều sâu ở đây đề cập đến kích thước thứ ba của trọng số kích hoạt)

Trang 26

đó Ta có thể hình dung tầng này sẽ dịch chuyển cửa sổ (kernel) trên ma trận đầu vào, trong đó mỗi lần dịch chuyển theo bước trượt (stride) tính bằng pixel sẽ được tính bằng tổng tích chập Người ta gọi vùng mà kernel áp lên ma trận đầu vào là trường tiếp nhận (receptive field) Trong một số trường hợp để cân bằng giữa số bước dịch chuyển và kích thước ảnh, ta có thể chèn thêm P pixel (padding) với một giá trị cho trước (thường là 0) xung quanh viền của ảnh

Phép toán tích chập [ 23 ]

Hình 2.13:

Với bao nhiêu bộ lọc trong lớp này thì ta sẽ có bấy nhiêu ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp theo Các trọng số của bộ lọc ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần trong quá trình huấn luyện mô hình

Tầng RELU

Trang 27

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 26

Tầng RELU [15] này thường được cài đặt ngay sau tầng conv Tầng này sử dụng hàm kích hoạt f(x) = max(0, x) Nói một cách đơn giản, tầng này có nhiệm vụ chuyển toàn bộ giá trị âm trong kết quả lấy từ tầng conv thành giá trị 0 Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình Có rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các hàm kích hoạt sigmoid, tanh,… nhưng hàm f(x) = max(0,x) dễ cài đặt, tính toán nhanh mà vẫn hiệu quả

2.2.1.2 Pooling Layer

Tầng Pooling (subsampling hoặc downsample) [15] sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ liệu, mỗi lần trượt theo một bước trượt (stride) cho trước Khác với tầng Convolutional, tầng Pooling không tính tích chập mà tiến hành lấy mẫu (subsampling) Các phương thức lấy phổ biến trong tầng Pooling là Max pooling (lấy giá trị lớn nhất), và Average pooling (lấy giá trị trung bình) Xét một ảnh có kích thước 4×4 và tầng Pooling sử dụng bộ lọc có kích thước 2×2 với bước trượt stride = 2, phương pháp sử dụng là Max Pooling Bộ lọc sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4 giá trị nằm trong vùng cửa sổ 2×2 của bộ lọc được giữ lại và đưa ra đầu ra Như vậy sau khi qua tầng Pooling, ảnh

sẽ giảm kích thước xuống còn 2×2 (kích thước mỗi chiều giảm 2 lần)

Max pooling với kernel 2x2 và stride = 2 [ 15 ]

Hình 2.14:

Tầng Pooling có vai trò giảm kích thước dữ liệu Với một bức ảnh kích thước lớn qua nhiều tầng Pooling sẽ được thu nhỏ lại tuy nhiên vẫn giữ được những đặc trưng cần cho việc nhận dạng (thông qua cách lấy mẫu) Việc giảm kích thước dữ liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính toán và góp phần kiểm soát hiện tượng quá khớp (overfitting)

2.2.1.3 Fully-Connected Layer

Tầng này tương tự với tầng trong mạng nơ-ron truyền thẳng, các giá trị ảnh được liên kết đầy đủ vào noron trong tầng tiếp theo Sau khi ảnh được xử lý và rút trích đặc trưng từ các tầng trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô

Trang 28

Nguyễn Thị Phương Hằng – 20131345 – K58 - CNTT2.01 27

hình truyền thẳng nên ta có thể sử dụng mô hình truyền thẳng để tiến hành nhận dạng Tóm lại, tầng fully-connected đóng vai trò như một mô hình phân lớp và tiến hành dựa trên dữ liệu đã được xử lý ở các lớp trước đó

Cấu trúc mạng noron tích chập như thế nào?

Một mạng nơ-ron tích chập [15] được hình thành bằng cách ghép các lớp trên lại với nhau Mô hình bắt đầu với tầng Conv Tầng RELU thường luôn được cài đặt ngay sau tầng Conv hoặc thậm chí kết hợp cả hai tầng này thành một Các tầng tiếp theo có thể là Conv hay Pooling tùy theo kiến trúc mà ta muốn xây dựng Cuối cùng

sẽ là tầng fully-connected để tiến hành phân lớp

Ví dụ minh họa mô hình CNN trong phân loại ảnh [ 15 ]

Hình ảnh đầu vào là ảnh RGB với kích thước 224x224, bộ nhớ sử dụng cho mỗi ảnh khoảng 96Mb Hình ảnh được đi qua các tầng conv, ở đó sử dụng các bộ lọc với trường tiếp nhận nhỏ: 3x3 (kích thước nhỏ nhất có thể nắm bắt được thông tin trái/phải, trên/dưới, trung tâm), stride = 2, và padding =1 Pooling được thực hiện bởi 5 tầng max pooling theo sau một số tầng conv, max pooling với cửa sổ 2x2 và stride = 2 Cuối cùng là 3 tầng FC và hàm softmax để chuyển đầu ra của mạng về dạng phân phối xác xuất

Trang 30

Residual block để mạng học một bản đồ nhận dạng (identity map) bằng các học giá trị dƣ của đầu vào và đầu ra Cụ thể, giá trị đầu vào là x, giá trị đầu ra là H(x) thì giá trị dƣ (residual) chính là F(x)= H(x)-x Vậy để xác định đúng giá trị đầu ra, ta có: H(x)= F(x) + x

Trang 31

Depthwise convolution [7] đƣợc sử dụng để áp dụng bộ lọc đơn trên mỗi kênh đầu vào, sau đó pointwise convolution đƣợc sử dụng để tạo ra tổng hợp tuyến tính của đầu ra của tầng depthwise convolution

Trang 32

separable convolution cần số lượng tham số ít hơn [ 37 ]

Xception đƣợc mở rộng từ modun Inception (đƣợc sử dụng trong Googlenet), nó thay thế modun Inception chuẩn bằng depthwise separable convolution Trong Xception có 36 tầng conv, 36 tầng này đƣợc kiến trúc trong 14 modun, tất cả đƣợc kết nối dƣ (residual connections) tuyến tính, ngoại trừ modun đầu và cuối

Ngày đăng: 03/07/2020, 21:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w