Tải bản đầy đủ (.pdf) (116 trang)

Phương pháp học sâu deep learning và ứng dụng trong thị giác máy tính computer vision

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.82 MB, 116 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN VIỆT HÀ
NGUYỄN VIỆT HÀ

PHƯƠNG PHÁP HỌC SÂU DEEP LEARNING
VÀ ỨNG DỤNG TRONG THỊ GIÁC MÁY TÍNH
COMPUTER VISION

CƠNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ
CÔNG NGHỆ THÔNG TIN

2016A

Hà Nội – Năm 2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN VIỆT HÀ

PHƯƠNG PHÁP HỌC SÂU DEEP LEARNING
VÀ ỨNG DỤNG TRONG THỊ GIÁC MÁY TÍNH
COMPUTER VISION
CHUN NGÀNH: CƠNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ
CÔNG NGHỆ THÔNG TIN


NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. ĐỖ PHAN THUẬN

Hà Nội – Năm 2019


LỜI CẢM ƠN
Trước tiên, tơi xin bày tỏ lịng biết ơn sâu sắc tới PGS. TS. Đỗ Phan Thuận, bộ mơn
Khoa học Máy tính, Viện Cơng nghệ thơng tin và Truyền thơng vì đã dành thời gian
q báu, tận tình hướng dẫn, chỉ bảo và góp ý cho tơi trong suốt q trình thực hiện
luận văn tốt nghiệp.
Tơi xin chân thành cảm ơn các thầy giáo, cô giáo trong Viện Công nghệ thông tin và
Truyền thông đã tham gia giảng dạy tơi trong q trình học tập tại trường. Các thầy
cơ đã tận tình giảng dạy, truyền đạt kiến thức, tạo tiền đề cho tơi hồn thành luận văn
này.
Xin được cảm ơn sự giúp đỡ nhiệt tình của các thầy giáo, cô giáo trong Viện đào tạo
sau đại học – Trường Đại học Bách Khoa Hà Nội.
Tôi cũng xin cảm ơn các đồng nghiệp tại Zalo Group đã hỗ trợ rất nhiệt tình về thiết
bị và dữ liệu phục vụ q trình thử nghiệm.
Cuối cùng, tơi xin chân thành cảm ơn gia đình tơi đã quan tâm và tạo mọi điều kiện
tốt nhất, động viên, cổ vũ tôi trong suốt q trình học tập và nghiên cứu để hồn thành
tốt luận văn tốt nghiệp này.
Xin trân trọng cảm ơn!
LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình nghiên cứu của riêng tơi trong đó có sự giúp đỡ rất
lớn của Thầy hướng dẫn PGS. TS. Đỗ Phan Thuận.
Các nội dung nghiên cứu, số liệu và kết quả nêu trong luận văn là trung thực và rõ
ràng.
Trong luận văn, tơi có tham khảo đến một số tài liệu đã được liệt kê tại phần Tài liệu
tham khảo ở cuối luận văn, các nội dung trích dẫn đã ghi rõ nguồn gốc.


1


MỤC LỤC

LỜI CẢM ƠN .............................................................................................................1
LỜI CAM ĐOAN .......................................................................................................1
MỤC LỤC ...................................................................................................................2
PHẦN MỞ ĐẦU .......................................................................................................12
CHƯƠNG 1. KIẾN THỨC CƠ BẢN VỀ MẠNG NEURAL SÂU ỨNG DỤNG
TRONG THỊ GIÁC MÁY ........................................................................................14
1.1. Những tiến bộ của học sâu ứng dụng trong thị giác máy ...............................14
1.1.1. Thị giác máy tính và một số bài tốn .......................................................14
1.1.2. Học sâu thúc đẩy sự phát triển của thị giác máy ......................................15
1.1.3. Học sâu và thị giác máy tính trên thiết bị di động....................................18
1.2. Mạng neural tích chập, huấn luyện mạng neural ............................................19
1.2.1. Khái niệm và các thành phần cơ bản của mạng neural tích chập.............19
1.2.2. Huấn luyện mạng neural tích chập ...........................................................27
1.2.3. Transfer learning ......................................................................................35
CHƯƠNG 2. CÁC CẤU TRÚC MẠNG TÍCH CHẬP TIÊN TIẾN .......................38
2.1. Xu thế thiết kế mạng tích chập hiệu quả ........................................................38
2.1.1. Tư tưởng thiết kế và độ hiệu quả của mạng neural sâu ............................38
2.1.2. Một số cách thiết kế lớp tích chập ............................................................39
2.2. Những mạng điển hình ...................................................................................43
2.2.1. Mạng ResNet sử dụng kết nối tắt .............................................................43
2.2.2. Mô đun Inception, mạng Inception ..........................................................46
2



2.3. Những kỹ thuật tiên tiến hiện nay...................................................................49
2.3.1. Khối dày đặc, mạng DenseNet .................................................................50
2.3.2. Phương pháp tìm kiếm cấu trúc neural, mạng NASNet ...........................53
2.3.3. Khối chiết xuất và kích thích, mạng SENet .............................................56
2.4. Mạng thiết kế cho di động ..............................................................................59
2.4.1. MobileNet .................................................................................................61
2.4.2. ShuffleNet ................................................................................................66
2.4.3. Đánh giá hoạt động các mạng neural tích chập trên thiết bị đi động .......71
CHƯƠNG 3. GIẢI QUYẾT BÀI TỐN VÀ PHÂN TÍCH KẾT QUẢ ..................76
3.1. Mơ tả bài tốn cần giải quyết ..........................................................................76
3.2. Phương pháp triển khai giải quyết bài toán ....................................................78
3.2.1. Phương pháp chung ..................................................................................78
3.2.2. Cài đặt, huấn luyện, đánh giá ...................................................................79
3.2.3. Từng bước tối ưu mạng neural .................................................................80
3.2.4. Xây dựng cấu trúc mạng và huấn luyện ...................................................80
3.2.5. Triển khai lên ứng dụng ...........................................................................82
3.3. Nền tảng TensorFlow, Keras API và cài đặt mã nguồn .................................82
3.3.1. Giới thiệu về TensorFlow và Keras API ..................................................82
3.3.2. TensorFlow Lite .......................................................................................83
3.3.3. TensorBoard .............................................................................................83
3.3.4. Cài đặt mã nguồn ......................................................................................84
3.4. Thử nghiệm, giải quyết bài tốn và kết quả....................................................85
3.4.1. Cấu hình thiết bị .......................................................................................85
3.4.2. Áp dụng Transfer learning .......................................................................86

3


3.4.3. Tối ưu quá trình huấn luyện và tinh chỉnh ...............................................87
3.4.4. Hoạt động trên thiết bị di động .................................................................94

3.4.5. Đánh giá và kết luận về quá trình giải quyết bài toán ..............................96
KẾT LUẬN .............................................................................................................100
TÀI LIỆU THAM KHẢO .......................................................................................101
CHƯƠNG 4. PHỤ LỤC .........................................................................................105
4.1. Các thử nghiệm khác ....................................................................................105
4.1.1. Thử nghiệm độ trễ trên một số thiết bị ...................................................105
4.1.2. Thử nghiệm bổ sung dữ liệu và nhãn mới ..............................................105
4.2. Bảng và biểu đồ chi tiết của các thử nghiệm ................................................106
4.2.1. Bảng liệt kê kết quả trong thử nghiệm sử dụng thực tế .........................106
4.2.2. Phân bố dữ liệu tập huấn luyện ..............................................................107
4.2.3. Các biểu đồ chi tiết về giá trị hàm mất mát trong tất cả các thử nghiệm
..........................................................................................................................108

4


DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
AI

Artificial Intelligence – trí tuệ nhân tạo

API

Application Programing Interface – giao diện lập trình ứng
dụng

BN

Batch Normalization – lớp chuẩn hóa theo lơ


CNN

Convolutional neural network (Convnets) – mạng neural tích
chập

RNN

Recurrent neural network – mạng neural hồi quy

FC

Fully connected – lớp kết nối đầy đủ

FLOPs

Floating-point Operations per second – số phép tính thập
phân

FPS

Frames per second – số khung hình trên giây

IoT

Internet of Things – vạn vật kết nối

MIT

Một loại giấy phép nguồn mở dựa trên giấy phép có nguồn
gốc từ Viện cơng nghệ Massachusetts


ms

mili giây

NNAPI

Neural Network API – giao diện lập trình hỗ trợ chạy các
thao tác học máy hiệu quả trên nhiều phần cứng khác nhau

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]

5


DANH MỤC BẢNG BIỂU
Bảng 2-1. Thiết kế đầy đủ của các mạng ResNet với số lớp khác nhau [8] .............45
Bảng 2-2. Tỷ lệ lỗi (top-5) của mạng ResNet so với một số mạng tiên tiến [8] .......45
Bảng 2-3. Kết quả thử nghiệm Inception-v4 và Inception-ResNet-v2 [21]..............48
Bảng 2-4. Cấu trúc mạng DenseNet [13] ..................................................................52
Bảng 2-5. Mạng NASNet so với các mạng tiên tiến giải quyết bài tốn phân loại
hình ảnh ImageNet [29] .............................................................................56
Bảng 2-6. Mạng NASNet dành cho di động so với MobileNet và ShuffleNet [29] .56
Bảng 2-7. So sánh chất lượng và độ phức tạp của hai mạng neural tiên tiến khi gắn
thêm khối chiết xuất và kích hoạt ..............................................................59
Bảng 2-8. So sánh chất lượng và độ phức tạp của hai mạng neural cho di động khi
gắn thêm khối chiết xuất và kích hoạt .......................................................59
Bảng 2-9. Hệ số nhân chiều rộng ảnh hưởng tới độ chính xác và độ phức tạp của
mạng MobileNet [5]...................................................................................62
Bảng 2-10. Hệ số nhân độ phân giải ảnh hưởng tới độ chính xác và độ phức tạp của

mạng MobileNet [5]...................................................................................62
Bảng 2-11. Độ chính xác và độ phức tạp của mạng MobileNet so với GoogLeNet và
VGG [5] .....................................................................................................62
Bảng 2-12. Biến đổi về kích thước và số kênh khi đi qua mô đun MobileNet-v2 [19]
....................................................................................................................63
Bảng 2-13. Cấu trúc mạng MobileNet-v2 [19] .........................................................65
Bảng 2-14. Chất lượng, độ phức tạp và độ trễ của mạng MobileNet-v2 so với các
mạng cùng thiết kế cho di động [19] .........................................................65
Bảng 2-15. Chất lượng của mạng ShuffleNet khi so sánh với mạng MobileNet
tương đương [28] .......................................................................................67
Bảng 2-16. Chất lượng và độ phức tạp của mạng ShuffleNet so với một số mạng
phổ biến [28] ..............................................................................................68
Bảng 2-17. Cấu trúc mạng ShuffleNet-v2 với 4 mức phức tạp khác nhau [18] .......69

6


Bảng 2-18. Chất lượng và tốc độ suy diễn của mạng ShuffleNet-v2 so với nhiều
mạng tiên tiến [18] .....................................................................................70
Bảng 2-19. Mạng ShuffleNet-v2 50 lớp so sánh với ResNet-50 và SENet [18] ......70
Bảng 2-20. Bảng liệt kê các mạng có chất lượng tốt nhất theo từng yêu cầu ràng
buộc về tài nguyên [1] ...............................................................................75
Bảng 3-1. So sánh với kết quả tốt nhất từ cuộc thi Zalo AI ......................................97
Bảng 4-1. Lỗi huấn luyện của mơ hình sử dụng dữ liệu mở rộng ..........................105
Bảng 4-2. Thử nghiệm thực tế trên nhãn mới bổ sung ...........................................105
Bảng 4-3. Chi tiết kết quả thử nghiệm sử dụng thực tế mạng MobileNet-v2 và
NASNet-A-Mobile...................................................................................106

7



DANH MỤC HÌNH VẼ
Hình 1-1. Tỷ lệ lỗi (top-5) phân loại hình ảnh ILSVRC từ 2010 đến 2017..............17
Hình 1-2. Bộ lọc cạnh đứng ......................................................................................20
Hình 1-3. Một bộ lọc 3×3 với tham số 𝑊 .................................................................21
Hình 1-4. Hình ảnh trực quan các đặc trưng trích xuất được từ bộ lọc qua các lớp
của mạng neural tích chập .......................................................................22
Hình 1-5. Một bộ lọc hoạt động trên đầu vào khối 3 chiều ......................................22
Hình 1-6. Kết hợp nhiều bộ lọc trong một lớp tích chập ..........................................23
Hình 1-7. Hàm ReLU y=max(0,x) ............................................................................24
Hình 1-8. Sử dụng hàm ReLU trong mạng neural tích chập ....................................24
Hình 1-9. Lớp pooling lớn nhất và pooling trung bình .............................................25
Hình 1-10. (a) Batch Gradient Descent (b) Stochastic Gradient Descent (c) Minibatch Gradient Descent ............................................................................28
Hình 1-11. Gradient Descent có Momentum ............................................................29
Hình 1-12. Cấu trúc mạng đầy đủ và khi sử dụng Dropout [20] ..............................33
Hình 1-13. Lật ảnh theo chiều ngang ........................................................................34
Hình 1-14. Cắt ngẫu nhiên hình ảnh .........................................................................34
Hình 1-15. Thay đổi giá trị các kênh màu của ảnh ...................................................35
Hình 1-16. Ưu điểm của việc sử dụng Transfer learning thay vì khởi tạo ngẫu nhiên
tham số .....................................................................................................36
Hình 2-1. Cấu trúc cơ bản của mạng AlexNet [16] ..................................................38
Hình 2-2. Hình ảnh trực quan đặc trưng trích xuất được qua từng lớp sâu dần của
mạng neural tích chập [27] ......................................................................38
Hình 2-3. Lớp tích chập thơng thường sử dụng 128 bộ lọc 3×3 ...............................40
Hình 2-4. Tích chập 1×1 thắt cổ chai hay tích chập điểm ........................................40
Hình 2-5. Hai bộ lọc 3×3 thay thế cho một bộ lọc 5×5 ............................................41
Hình 2-6. Hai bộ lọc 3×1 và 1×3 thay thế cho bộ lọc 3×3 ........................................41
Hình 2-7. Tích chập riêng rẽ từng kênh ....................................................................42
Hình 2-8. Tích chập điểm giúp điều chỉnh số kênh đầu ra .......................................42


8


Hình 2-9. Tích chập khả tách chiều sâu ....................................................................43
Hình 2-10. Ý tưởng một khối Residual với kết nối tắt [8] ........................................44
Hình 2-11. Thiết kế khối Residual cơ bản (Trái) và khối Residual với thiết kế thắt
cổ chai (Phải) [8] .....................................................................................44
Hình 2-12. Ngun mẫu mơ đun Inception [23] .......................................................46
Hình 2-13. Mơ đun Inception sử dụng trong GoogLeNet [23] .................................47
Hình 2-14. Các mơ đun Inception được sử dụng trong mạng Inception-v3 [22]......47
Hình 2-15. Mô đun Inception bổ sung kết nối tắt [21] .............................................48
Hình 2-16. So sánh q trính huấn luyện Inception-v3, Inception-v4 và InceptionResNet [21] ..............................................................................................49
Hình 2-17. Khối dày đặc [13] ...................................................................................50
Hình 2-18. Biến đổi phi tuyến giữa các lớp trong khối dày đặc ...............................51
Hình 2-19. So sánh số lượng tham số (Trái) và số phép toán (Phải) của DenseNets
so với ResNet [13] ...................................................................................52
Hình 2-20. Phương pháp tìm kiếm cấu trúc mạng neural [29] .................................54
Hình 2-21. Các khối cơ bản của mạng NASNet [29] ...............................................55
Hình 2-22. Sơ đồ hoạt động của khối chiết xuất và kích thích .................................57
Hình 2-23. Sơ đồ cách thức bổ sung khối chiết xuất và kích thích vào khối Inception
(Trái) và khối Residual (Phải) .................................................................58
Hình 2-24. Tương quan độ chính xác phân loại ảnh ImageNet với độ phức tạp tính
tốn của các mạng tiên tiến [1] ................................................................60
Hình 2-25. Một mơ đun tích chập trong mạng MobileNet [5]..................................61
Hình 2-26. Mơ đun MobileNet ban đầu (a) và Mơ đun có bổ sung thắt cổ chai (b).63
Hình 2-27. Kết nối tắt của ResNet (Trái) so với MobileNet-v2 (Phải) [19] .............64
Hình 2-28. Thiết kế các khối của mạng MobileNet-v2, khối có s=2 giảm kích thước
đầu vào và tăng số kênh (a), khối có s=1 kèm kết nối tắt giữ ngun kích
thước đầu vào (b) .....................................................................................64
Hình 2-29. Tích chập điểm chia nhóm và trộn kênh trong ShuffleNet [28] .............66


9


Hình 2-30. Mơ đun ShuffleNet giữ ngun kích thước đầu vào (Trái) và giảm kích
thước với s=2 (Phải) [28] .........................................................................67
Hình 2-31. Mơ đun của ShuffleNet-v2, mơ đun giữ ngun kích thước đầu vào
(Trái), mơ đun giảm kích thước đầu vào và tăng số kênh (Phải) [18].....69
Hình 2-32. So sánh mật độ độ chính xác (độ chính xác/số lượng tham số) của các
mạng tích chập tiên tiến [1] .....................................................................71
Hình 2-33. Tương quan mật độ độ chính xác với độ chính xác của các mạng neural
tiên tiến [1] ...............................................................................................72
Hình 2-34. Nhu cầu sử dụng bộ nhớ thực tế của các mạng neural ...........................73
Hình 2-35. Thời gian suy luận trên máy chủ cấu hình mạnh Titan Xp ....................74
Hình 2-36. Thời gian suy luận trên thiết bị nhúng Jetson TX1 ................................74
Hình 3-1. Một số hình ảnh trong tập dữ liệu huấn luyện ..........................................77
Hình 3-2. Cấu trúc bộ phân loại ................................................................................81
Hình 3-3. Tỷ lệ lỗi so sánh giữa các mơ hình khi sử dụng làm bộ trích xuất đặc
trưng .........................................................................................................86
Hình 3-4. Các lớp được giữ nguyên trong mạng MobileNet-v2 ...............................87
Hình 3-5. So sánh hàm mất mát khi sử dụng tốc độ học 0.01 và 0.001 ...................88
Hình 3-6. So sánh hàm mất mát khi sử dụng tốc độ học 0.001 và 0.00001 .............88
Hình 3-7. So sánh q trình huấn luyện sử dụng lơ nhỏ kích thước 8, 32 và 128 ....89
Hình 3-8. So sánh tỷ lệ lỗi trong thử nghiệm về số vòng lặp và thuật tốn tối ưu ...90
Hình 3-9. Biểu đồ giá trị hàm mất mát giảm trong tồn bộ hai lần huấn luyện........90
Hình 3-10. Tỷ lệ lỗi giảm rất ít khi huấn luyện nhiều hơn 200 vịng lặp..................91
Hình 3-11. Biểu đồ giá trị hàm mất mát hai lần huấn luyện tổng cộng gần 300 vịng
lặp.............................................................................................................91
Hình 3-12. Ảnh hưởng của Dropout và L2 lên các tỷ lệ lỗi......................................92
Hình 3-13. So sánh mơ hình NASNet-A-Mobile sử dụng và khơng sử dụng tăng

cường dữ liệu ...........................................................................................93
Hình 3-14. Dữ liệu gốc (Trái) và dữ liệu sau khi được áp dụng một số phương pháp
biến đổi hình ảnh (Phải)...........................................................................93

10


Hình 3-15. Kích thước mơ hình sau khi chuyển sang định dạng tflite .....................94
Hình 3-16. Độ trễ trên thiết bị ...................................................................................95
Hình 3-17. Một số hình ảnh ghi nhận quá trình thử nghiệm thực tế .........................95
Hình 3-18. Tỷ lệ lỗi khi thử nghiệm sử dụng thực tế ................................................96
Hình 3-19. Kết quả lỗi của các mơ hình tốt nhất cho mỗi loại mạng .......................97
Hình 4-1. Độ trễ của MobileNet-v2 và NASNet-A-Mobile trên một số thiết bị ....105
Hình 4-2. Hình ảnh thử nghiệm nhãn mới ..............................................................106
Hình 4-3. Phân bố tập dữ liệu huấn luyện ...............................................................107
Hình 4-4. Giá trị hàm mất mát khi khởi tạo ngẫu nhiên so với sử dụng transfer
learning ..................................................................................................108
Hình 4-5. Giá trị hàm mất mát trong các thử nghiệm tốc độ học ...........................109
Hình 4-6. Giá trị hàm mất mát trong các thử nghiệm lơ nhỏ kích thước 8, 16, 32 .110
Hình 4-7. Giá trị hàm mất mát trong các thử nghiệm lơ nhỏ kích thước 128, 64, 32
...............................................................................................................111
Hình 4-8. Kích thước lô lớn hơn ổn định hơn, so sánh giữa các giá trị hàm mát mát
lơ kích thước 8, 32, 128 .........................................................................112
Hình 4-9. Giá trị hàm mất mát so sánh khi sử dụng và không sử dụng các biện pháp
tăng cường dữ liệu .................................................................................113
Hình 4-10. Giá trị hàm mất mát trong tất cả các thử nghiệm chống quá khớp .......114

11



PHẦN MỞ ĐẦU
Thị giác máy tính đã đạt được những tiến bộ rất lớn trong gần 8 năm qua nhờ sự phát
triển của các mạng neural học sâu. Những cấu trúc mạng mới liên tục được phát minh
ra nhằm đạt tới kết quả tốt hơn trong các bài toán của thị giác máy. Năm 2015, mạng
ResNet [8], một mạng neural tích chập, đánh dấu một mốc quan trọng khi máy tính
đã vượt qua con người trong việc phân loại hình ảnh.
Thập kỷ qua cũng chứng kiến sự bùng nổ của các thiết bị di động như điện thoại, máy
tính bảng, các hệ thống IoT phục vụ nhiều mục đích khác nhau. Đặc điểm chung của
các thiết bị này là phần cứng nhỏ và có năng lực tính tốn giới hạn để đảm bảo tính
nhỏ gọn. Nhưng việc tất cả điện thoại và nhiều hệ thống IoT đều có trang bị camera
đặt ra nhu cầu về việc xử lý hình ảnh hiệu quả với tài ngun tính tốn hạn chế trên
các thiết bị này.
Các mạng neural ban đầu thường có khối lượng tính tốn rất lớn nên dù chỉ là việc
suy luận đưa ra kết quả cũng gặp khó khăn trên các thiết bị nhỏ. Năm 2017 một số
mạng được thiết kế đặc biệt cho thiết bị di động như MobileNet [5] [19], ShuffleNet
[28] [18] đã tìm cách giải quyết khó khăn này trong khi vẫn đảm bảo độ chính xác
gần sát với những mạng hiện đại nhất. Nhờ kết quả này mà các nhà phát triển có thêm
nhiều lựa chọn để tối ưu sản phẩm trên các thiết bị dạng này.
Từ những tiến bộ gần đây của các mạng neural sâu trong việc ứng dụng lên thị giác
máy đã đề cập ở trên tôi thực hiện đề tài "Phương pháp học sâu Deep Learning và
ứng dụng trong thị giác máy tính Computer Vision" nhằm so sánh và đánh giá các
cấu trúc mạng tiên tiến nhất, đưa vào thử nghiệm để đánh giá khả năng triển khai
thành sản phẩm giải quyết một bài tốn thực tế.
Luận văn trình bày kết quả quá trình tìm hiểu và thử nghiệm để đánh giá tính khả thi
của việc giải quyết một bài tốn thực tế bằng các kỹ thuật mới nhất. Yêu cầu của bài
toán được sử dụng trong luận văn là "Nhận ra cảnh vật thuộc về địa danh, cảnh đẹp
nổi tiếng tại Việt Nam" [26] với dữ liệu gồm 88 nghìn ảnh thuộc về 103 cảnh quan
khác nhau tại Việt Nam. Dựa trên đó tơi huấn luyện ra các mơ hình khác nhau và triển
12



khai trên một ứng dụng di động đưa lên nhiều thiết bị khác nhau nhằm đánh giá tính
khả thi của việc huấn luyện mơ hình, tính khả thi của việc hoạt động trên thiết bị di
động và đánh giá chất lượng phân loại.
Nội dung luận văn được tổ chức thành 3 chương đi từ tổng quan đến chi tiết. Chương
1 tóm lược lịch sử, nền tảng và tổng quan của mạng neural tích chập ứng dụng trong
thị giác máy, ngồi ra trong phần này luận văn cũng mô tả chi tiết bài toán sử dụng
để thực nghiệm. Chương 2 hệ thống lại các cấu trúc mạng hiện đại nhất hiện nay
nhằm mô tả rõ ràng cách hoạt động, so sánh, đánh giá ưu, nhược điểm của từng mạng.
Chương 3 mô tả chi tiết cách thức triển khai thực nghiệm và phân tích các kết quả thu
được.
Bằng phương pháp phân loại và hệ thống hóa, luận văn đã so sánh đánh giá các kỹ
thuật mới nhất của học sâu ứng dụng trên computer vision dựa trên ý tưởng cách hoạt
động và hiệu năng của từng mạng. Phần phân tích ở chương 2 hệ thống lại các kiến
trúc mạng tiên tiến nhất dựa trên đặc điểm chính giúp xây dựng nên mạng đó. Các
loại này gồm có mạng dựa trên mơ-đun Inception (các mạng Inception [23] [22] [21]),
mạng dựa trên khối Residual (các mạng ResNet [8] [9]), mạng dựa trên khối dày đặc
(DenseNet [13]), mạng sử dụng kỹ thuật Neural Architecture Search (NASNet [29]),
mạng sử dụng khối chiết xuất và kích thích (các mạng SENet [12]) và mạng thiết kế
riêng cho di động (Mobilenet [5] [19], ShuffleNet [28] [18]). Từ đó tơi có cơ sở để
triển khai huấn luyện thử nghiệm các mạng này với dữ liệu của bài toán.
Bằng phương pháp khoa học thực nghiệm, các mạng này được thử nghiệm nhiều lần
với nhiều tham số khác nhau nhằm tìm ra cách huấn luyện tối ưu với dữ liệu bài tốn,
tìm ra mạng hoạt động tốt nhất trên thiết bị di động. Kết quả thu được sau quá trình
thực nghiệm là kết luận về tính khả thi của bài tốn đặc biệt là trong thực tế sản phẩm
với mơ hình có hệ số lỗi dưới 10% với độ trễ chưa tới 100ms trên thiết bị di động phổ
thông. Luận văn cũng đưa ra các so sánh, đánh giá và các hướng dẫn giúp nhanh
chóng giải quyết một bài tốn tương tự trong thực tế.

13



CHƯƠNG 1. KIẾN THỨC CƠ BẢN VỀ MẠNG NEURAL SÂU ỨNG DỤNG
TRONG THỊ GIÁC MÁY
1.1. Những tiến bộ của học sâu ứng dụng trong thị giác máy
1.1.1. Thị giác máy tính và một số bài tốn
a. Thị giác máy tính
Thị giác máy tính là lĩnh vực nghiên cứu rộng nhằm làm cho máy tính có khả năng
nhận thức, hiểu được được nội dung trong hình ảnh hoặc chuỗi hình ảnh. Có thể coi
đây như q trình tìm cách mơ phỏng sao chép lại năng lực thị giác của con người.
Mục đích cuối cùng là giúp máy tính tự động trích xuất được thơng tin hữu ích, đặc
tính đối tượng trong ảnh giúp phân tích, ra quyết định hoặc nâng cao chất lượng của
hình ảnh.
Thị giác máy tính được bắt đầu nghiên cứu từ những năm 60 sử dụng các thuật toán
và kinh nghiệm chuyên gia. Đến những năm 80, 90 một số kỹ thuật của học sâu đã
được sử dụng để giải quyết một số bài toán như nhận dạng chữ viết tay. Tới những
năm gần đây việc phát triển các mạng neural sâu có nhiều tiến bộ đột phá, trở thành
xu thế trong việc giải quyết các bài toán của thị giác máy tính.
b. Một số ứng dụng và bài toán của thị giác máy
Ứng dụng của thị giác máy tính trải rộng trong nhiều ngành từ cơng nghiệp sản xuất
đến nghiên cứu. Thị giác máy tính có thể áp dụng lên việc theo dõi kiểm soát và tăng
cường tính tự động của dây truyền sản xuất. Nó cũng có thể hỗ trợ q trình nhận
dạng, phân loại, tổ chức thơng tin, dữ liệu hình ảnh hoặc văn bản. Việc mơ hình hóa
đối tượng vật thể, phân tích hình ảnh hỗ trợ rất nhiều trong các ngành cần nhiều kiến
thức chuyên gia như y tế, giải phẫu. Khoa học quân sự, quốc phòng, an ninh cũng là
những lĩnh vực có thể được ứng dụng nhiều thị giác máy tính. Gần đây các hệ thống
định hướng, lái tự động được hỗ trợ bởi thị giác máy đã chứng minh được độ chính
xác cao và tốc độ phản ứng rất tốt trong quá trình hoạt động thực tế.

14



Các ứng dụng trên đều sử dụng một hoặc nhiều tác vụ thị giác máy. Các tác vụ này
là các bài toán nhỏ thuộc về một trong các loại nhận dạng, phát hiện, phân tích chuyển
động hay tái tạo hình ảnh.
Phân loại nhận dạng hình ảnh là bài tốn cơ bản nhất của thị giác máy. Yêu cầu bài
toán là nhận ra vật thể và gán nhãn phân loại một hình ảnh. Nhiều bài tốn của thị
giác máy đều có thể quy về bài toán cơ bản này.
Phát hiện vật thể là bài tốn u cầu xác định vị trí vật thể trong hình ảnh hoặc video.
Vật thể được phát hiện có thể được u cầu xác định vị trí bằng nhiều cấp độ như gán
khung chữ nhật hay tìm chính xác đường biên của vật thể. Dù với cấp độ nào bài toán
cũng thường yêu cầu xử lý nhanh ở mức độ chính xác cao.
Theo dõi chuyển động yêu cầu xác định được chuyển động của điểm hoặc của vật thể
3 chiều trong một chuỗi hình ảnh. Các bài tốn khơi phục hoặc nâng cao chất lượng
ảnh u cầu tái tạo lại không gian 2 chiều, 3 chiều hoặc tái tạo tăng độ chi tiết hình
ảnh có chất lượng thấp hoặc bị ảnh hưởng bởi nhiễu, vật chắn.
1.1.2. Học sâu thúc đẩy sự phát triển của thị giác máy
a. Mạng neural học sâu
Học sâu là một thuật ngữ chỉ các mạng neural sâu. Đây là một phương pháp học máy
sử dụng nhiều lớp biến đổi phi tuyến lên dữ liệu đầu vào nhằm trích xuất ra đặc trưng
của dữ liệu. Trong quá trình học, dữ liệu được đưa qua nhiều lớp, mỗi lớp trừu tượng
dữ liệu ở mức độ khác nhau vì thế giúp máy tính “hiểu” dữ liệu “sâu sắc” hơn. Giống
như các phương pháp học máy nói chung, để học sâu hoạt động được cần có nhiều
dữ liệu và thường là dữ liệu có nhãn.
Ý tưởng sử dụng mạng neural nhân tạo đã có từ khá lâu trong trí tuệ nhân tạo, lấy
cảm hứng từ việc mơ phỏng hoạt động của các neural thần kinh trong não người.
Thay vì các tín hiệu hóa sinh, mạng neural sử dụng các cơng thức biến đổi tốn học.
Tuy nhiên chỉ nên xem đây là một cách giải thích trực quan vì các q trình trên
khơng hồn tồn tương quan với nhau.


15


b. Lịch sử và một số thành tựu chính trong nghiên cứu
Lịch sử phát triển của trí tuệ nhân tạo đã trải qua nhiều thăng trầm, học sâu đóng vai
trị quan trọng trong nhiều thời điểm then chốt xuyên suốt q trình lịch sử này. Trí
tuệ nhân tạo đã trải qua hai thời kỳ mà mọi nghiên cứu đều trở nên bế tắc, ứng dụng
trong công nghiệp không chứng minh được tính khả thi và mọi nguồn tài chính đều
bị cắt giảm, việc này xảy ra trong các khoảng thời gian 1974 – 1980 và 1987 – 2000s
được gọi là “AI winter”.
Mạng neural sâu sử dụng trong thị giác máy tính đều là các mạng neural tích chập –
Convolutional Neural Network (CNN hay ConvNets). Mạng CNN được sử dụng từ
khá sớm bởi Yann LeCun và các cộng sự tại Bell Labs từ những năm 1990. Mạng
này được gọi là LeNet-1 [17] và được sử dụng để nhận dạng ký tự số viết tay. Thời
bấy giờ, giống như các loại mạng neural sâu khác, các mạng CNN cũng gặp phải
nhiều trở ngại lớn về kỹ thuật nên rất khó để triển khai. Các hệ thống như LeNet-1 là
những điểm sáng hiếm hoi.
Thời gian này nằm trong mùa đơng trí tuệ nhân tạo lần thứ 2, mạng neural sâu gặp
rất nhiều khó khăn để sử dụng trong công nghiệp hay nghiên cứu. Các nghiên cứu
mới liên quan đến mạng neural sâu đều rất khó được xuất bản do định kiến về sự hiệu
quả của các mạng này. Trong nhiều năm liền, các mạng neural đều được cho là rất
tốn thời gian để huấn luyện, chất lượng không thể so sánh với nhiều phương pháp học
máy khác. Phải tới năm 2006 một nghiên cứu của Geoff Hilton và cộng sự đã đề xuất
một phương pháp huấn luyện mạng neural sâu hiệu quả sử dụng phương pháp khởi
tạo tham số từng lớp ẩn bằng học không giám sát [10]. Công bố này đã chứng minh
được mạng neural sâu thực sự có thể huấn luyện được và học sâu là hướng nghiên
cứu hứa hẹn. Sau này Geoff Hilton đã chỉ ra 4 vấn đề cản trở sự tiến bộ của mạng
neural: (1) Dữ liệu thời bấy giờ quá ít, (2) Giới hạn năng lực tính tốn của máy tính,
(3) Phương pháp khởi tạo tham số chưa phù hợp, (4) Lựa chọn hàm phi tuyến chưa
phù hợp. Liên tiếp trong những năm sau đó nhiều nghiên cứu về mạng neural sâu đặc


16


biệt là mạng tích chập ứng dụng trong thị giác máy tính được ra đời làm tiền đề cho
một bước ngoặt lớn vào năm 2012 đánh dấu cuộc cách mạng học sâu.
Tại cuộc thi ILSVRC 2012, AlexNets [16], một mạng CNN 8 lớp đánh dấu một bước
đột phá khi đạt lỗi phân loại ảnh chỉ 16.4% vượt xa thuật toán tốt nhất trước đó tới
hơn 10% (25.8%). AlexNet thành cơng nhờ sử dụng GPU và một hàm tác động mới
giúp q trình huấn luyện trở nên khả thi và có kết quả rất ấn tượng.
ILSVRC [15] là cuộc thi nhận dạng trên tập dữ liệu lớn về hình ảnh được tổ chức
thường niên từ năm 2010 đến năm 2017. Cuộc thi sử dụng tập dữ liệu ImageNet, là
một tập dữ liệu hình ảnh được tổ chức theo cấu trúc của WordNet, trong đó mỗi khái
niệm phổ biến có vài trăm tới vài nghìn ảnh. Trung bình mỗi khái niệm này có trên
500 hình ảnh và đang được bổ sung để đạt tới trên 1000 ảnh mỗi khái niệm.
28.20%

25.80%
16.40%
11.70%
6.70%

2010

2011
(XRCE)

2012
(AlexNet)


Tỷ lệ lỗi top-5

2013
(ZF)

2014
(GoogLeNet)

3.60%

3.10%

2.25%

2015
(ResNet)

2016
(Inception-v4)

2017
(SENet)

Tỷ lệ lỗi của con người (5.1%)

Hình 1-1. Tỷ lệ lỗi (top-5) phân loại hình ảnh ILSVRC từ 2010 đến 2017
ILSVRC dùng tập dữ liệu này để đánh giá các thuật tốn trong bài tốn phân loại hình
ảnh và một số bài toán khác. Động lực của cuộc thi là làm cơ sở để các nhà nghiên
cứu thử nghiệm so sánh đánh giá kết quả của mình với rất nhiều kết quả khác. Đồng
thời cuộc thi cũng là phép đo lường tốc độ phát triển của thị giác máy tính.

Tại cuộc thi năm 2015, mạng neural rất sâu ResNet-152 [8] (152 lớp) đã vượt qua
con người trong bài toán phân loại hình ảnh, đạt lỗi chỉ 3.57% (trong khi con người
là 5.1%). Trong 7 năm tổ chức cuộc thi, tỷ lệ lỗi đã giảm hơn 10 lần từ 28.2% còn
2.25%, chủ yếu là nhờ các mạng neural sâu tiên tiến được phát triển gần đây.
17


1.1.3. Học sâu và thị giác máy tính trên thiết bị di động
Thị giác máy ứng dụng các mạng neural học sâu hiện tại đã có thể áp dụng thực tế
trong sản xuất công nghiệp và đời sống. Các mạng neural thường được huấn luyện
trên các máy chủ có trang bị những bộ xử lý GPU, TPU mạnh có khả năng tính tốn
hiệu quả các phép tính ma trận sau đó mơ hình được vận hành trên máy chủ hoặc trên
thiết bị đầu cuối. Những mạng neural như ResNet-50 [8] với 25 triệu tham số, 3.8 tỷ
phép tính hay Inception-v3 [22] với 23 triệu tham số, 5.7 tỷ phép tính đều cần các
thiết bị đầu cuối có cấu hình mạnh để vận hành hiệu quả.
Tuy nhiên những thiết bị nhúng với cấu hình giới hạn cũng có nhu cầu rất lớn tiếp
cận những thành tựu mới nhất của học sâu. Đến năm 2020, 75% dân số thế giới sẽ sở
hữu điện thoại thông minh [11], mỗi thiết bị được trang bị camera đều có thể cài đặt
những ứng dụng liên quan đến xử lý hình ảnh có sử dụng học sâu, điển hình là những
ứng dụng từ Google như Photos, Lense, Translate (tính năng Live translation) và hàng
trăm ứng dụng từ những nhà phát triển khác [25]. Một trong những giải pháp cho các
ứng dụng này là gửi dữ liệu lên máy chủ để thực hiện suy luận và hiển thị kết quả trả
về cho người dùng. Nhưng những ứng dụng di động thực hiện suy luận trên máy chủ
có một số hạn chế. Thứ nhất, dữ liệu của người dùng khi được tải lên máy chủ khó
đảm bảo quyền riêng tư. Thứ hai, việc gửi yêu cầu lên máy chủ khiến cho ứng dụng
không thể hoạt động ngoại tuyến, có độ trễ nhất định và chịu ảnh hưởng bởi chất
lượng kết nối, đặc biệt, với những ứng dụng xử lý chuỗi hình ảnh, video thì khơng
thể đảm bảo xử lý thời gian thực. Thứ ba, nhiều ứng dụng cùng kết nối vào hệ thống
thực hiện suy luận có thể gây ra nghẽn dù năng lực tính tốn của máy chủ là rất lớn.
Vì vậy mơ hình hoạt động trực tiếp trên thiết bị sẽ giúp giải quyết vấn đề về quyền

riêng tư và đảm bảo khả năng hoạt động thời gian thực trên thiết bị mà không phụ
thuộc vào kết nối.
Trước nhu cầu này, những nhà sản xuất phần cứng và phần mềm đã đưa ra nhiều giải
pháp giúp nhanh chóng hiện thực hóa khả năng vận hành mạng neural trên thiết bị di
động. Năm 2015 và 2016, Qualcomn ra mắt Snapdragon 820 cùng với SNPE SDK

18


cho phép thực hiện phép nhân ma trận hiệu quả trên toàn bộ các nhân xử lý. Các phần
cứng tăng tốc xử lý hỗ trợ cho AI như Hexagon DSP (Qualcomn), NPU (Huawei),
APU (MediaTek) hay Pixel Visual Core (Google) cũng được các nhà sản xuất SoC
và điện thoại khác nhau bổ sung vào thiết bị của mình. Theo sau phần cứng, các nền
tảng phần mềm phát triển mạng neural dành cho di động lần lượt được công bố vào
năm 2017. TensorFlow Lite [7] của Google và Caffe2 [4] của Facebook đã giúp
những nhà phát triển các ứng dụng học sâu có thêm nhiều lựa chọn và dễ dàng tạo ra
nhiều ứng dụng mới thay vì phải bỏ nhiều cơng sức như trước. Hệ điều hành Android
phiên bản 8.1 đã giới thiệu NNAPI có nhiệm vụ làm lớp kết nối trung gian, tăng khả
năng tương thích giữa phần mềm, ứng dụng với phần cứng. Dù các nhà sản xuất đã
có nhiều giải pháp hỗ trợ nhưng việc triển khai mơ hình mạng neural có hiệu năng
nhất quán trên nhiều nền tảng nhiều loại thiết bị khác nhau vẫn rất khó khăn do các
giải pháp này chưa có một tiêu chuẩn và vẫn còn nhiều lỗi [14] [25]. Các nhà phát
triển ứng dụng thường phải tùy biến theo thiết bị hoặc bỏ qua một số thiết bị [14]. Mơ
hình mạng neural hoạt động trực tiếp trên thiết bị di động mới chỉ ở thời kì đầu của
sự phát triển và cịn cần nhiều bước cải tiến trong tương lai.
Bên cạnh đó, dù có sự hỗ trợ lớn từ phần cứng và phần mềm, các mạng neural muốn
chạy trên thiết bị di động hay bất kỳ thiết bị đầu cuối nào vẫn cần hiệu quả, nhỏ gọn
tương ứng với khả năng của thiết bị. Gần đây nhiều nhà nghiên cứu đã tập trung hơn
vào tính hiệu quả của mơ hình, cho ra đời những mạng neural rất nhỏ gọn nhưng độ
chính xác ngang bằng những mạng neural lớn hơn. Những ý tưởng đó giúp tạo ra

những mạng neural hoạt động rất hiệu quả trên thiết bị di động [5] [19] [28] [18] [29]
[1] và là tiền đề cho sự phát triển tiếp theo của học sâu trên di động.
1.2. Mạng neural tích chập, huấn luyện mạng neural
1.2.1. Khái niệm và các thành phần cơ bản của mạng neural tích chập
a. Mạng neural tích chập
Mạng neural tích chập là một kiểu mạng neural suy diễn tiến sử dụng các lớp tích
chập trong các tầng ẩn. Các mạng neural dạng này thường gồm rất nhiều lớp mỗi lớp
19


có khả năng tách đặc trưng của ảnh từ sơ cấp đến cao cấp và yêu cầu rất ít tiền xử lý.
Trước đây việc thiết kế đặc trưng cho bài tốn của thị giác máy tính tốn rất nhiều
cơng sức, kỹ năng và tri thức chuyên gia. Mạng neural tích chập tự học được đặc
trưng của dữ liệu giúp giảm thiểu cơng sức của con người.
Mạng neural tích chập có thể được xây dựng từ nhiều lớp khác nhau. Trong các loại
đó lớp tích chập là quan trọng nhất thể hiện đặc điểm cốt lõi của mạng. Ngoài ra các
lớp khác như ReLU, pooling, chuẩn hóa cũng thường được sử dụng. Trong bài toán
phân loại, đầu ra của mạng thường sử dụng một vài lớp kết nối đầy đủ kết hợp lớp
thực hiện phân loại như softmax hoặc nhị phân.
b. Các thành phần cơ bản
Các lớp tích chập
Các loại lớp tích chập (Convolutional layers) là thành phần quan trọng nhất của mạng
neural tích chập. Các lớp này thể hiện ý tưởng về các bộ lọc có thể tách được đặc
trưng nào đó của hình ảnh.
Tích chập trên đầu vào 2 chiều:
Trên không gian đầu vào 2 chiều, một bộ lọc và hoạt động của nó được thể hiện một
cách trực quan thơng qua ví dụ sau.




=


Hình 1-2. Bộ lọc cạnh đứng

20


Một bộ lọc kích thước 𝑓 × 𝑓 được trượt qua khơng gian kích thước của dữ liệu đầu
vào. Tại mỗi bước phép tính tích chập1 được thực hiện giữa cửa sổ trượt trên dữ liệu
và bộ lọc cho ra một giá trị đầu ra. Kết quả của quá trình này là đầu ra thể hiện một
đặc trưng của dữ liệu mà bộ lọc tách được. Kích thước của đầu ra 𝑛𝑜𝑢𝑡 phụ thuộc vào
kích thước bộ lọc 𝑓, độ lớn của bước 𝑠 (stride) và kích thước vùng đệm 𝑝 (padding).
𝑛𝑜𝑢𝑡 =

𝑛𝑖𝑛 + 2𝑝 − 𝑓
+1
𝑠

Ví dụ trong Hình 1-2 thể hiện một bộ lọc cạnh đứng với 𝑓 = 3, 𝑠 = 1 và 𝑝 = 0, với đầu
vào 6×6 sẽ cho đầu ra 4×4.

Hình 1-3. Một bộ lọc 3×3 với tham số 𝑊
Trong mạng neural tích chập các giá trị trong bộ lọc là các tham số được huấn luyện
trong quá trình học. Các giá trị như 𝑓, 𝑠 và 𝑝 là các siêu tham số2 được xác định trước
khi huấn luyện và cần được điều chỉnh thủ công để tối ưu.
Các tham số trong các bộ lọc khác nhau trải qua quá trình học sẽ nhận ra được các
đặc trưng khác nhau của đầu vào. Các bộ lọc các lớp đầu học được các đặc trưng sơ
cấp hơn như góc, cạnh, trong khi đó các bộ lọc ở các lớp sâu hơn sẽ học được các đặc
trưng cao cấp hơn như bộ phận, chi tiết của sự vật.


1

Đây là phép tính tương quan chéo nhưng thường được gọi là tích chập dù cách hoạt động khơng

giống với phép tính tích chập trong tốn học, cách gọi này mang tính quy ước và sẽ được sử dụng
trong phần cịn lại của nội dung luận văn.
2

Mạng neural có 2 loại tham số, tham số có thể học được thường gọi tắt là tham số, tham số cần

được điều chỉnh bằng tay gọi là siêu tham số. Việc lựa chọn các siêu tham số phù hợp sẽ giúp quá
trình huấn luyện nhanh hơn và các tham số học được chính xác hơn.

21


Hình 1-4. Hình ảnh trực quan các đặc trưng trích xuất được từ bộ lọc qua các lớp
của mạng neural tích chập
Tích chập trên đầu vào 3 chiều:
Hình ảnh được thể hiện trên máy tính có 3 chiều, ngồi chiều rộng và chiều cao, ảnh
còn bao gồm các kênh màu sắc. Kết hợp cường độ các kênh màu sắc trên một điểm
ảnh lại tạo thành màu sắc của của điểm ảnh đó. Các loại lớp tích chập được sử dụng
trong thực tế cũng hoạt động trên tồn bộ khơng gian khối 3 chiều.
Hoạt động của một bộ lọc trên đầu vào là khối 3 chiều cũng tương tự như trên đầu
vào hai chiều, chỉ có điểm khác là bộ lọc này có chiều sâu bằng số kênh của đầu vào.
Như vậy một bộ lọc 3×3 với đầu vào có 3 kênh sẽ có dạng 3×3×3 và có tất cả 9 tham
số.

Hình 1-5. Một bộ lọc hoạt động trên đầu vào khối 3 chiều

Trong một lớp tích chập cơ bản, nhiều bộ lọc cùng kích thước được sử dụng cùng
một lúc nhằm đồng thời tách được các đặc trưng khác nhau của đầu vào. Kết quả tính
được từ các bộ lọc này được xếp chồng lên nhau tạo thành các kênh của đầu ra. Như
vậy số kênh của đầu ra bằng số bộ lọc được sử dụng. Hình 1-6 thể hiện một lớp tích
chập cơ bản sử dụng 2 bộ lọc 3×3×3, với đầu vào 6×6×3, lớp tích chập này cho đầu
ra 4×4×2.

22


Hình 1-6. Kết hợp nhiều bộ lọc trong một lớp tích chập
Kích thước và các tham số của một lớp tích chập cơ bản
[𝑙−1]

Kích thước đầu vào: 𝑛𝐻
[𝑙]

[𝑙−1]

× 𝑛𝑊
[𝑙]

[𝑙−1]

× 𝑛𝐶

[𝑙]

Kích thước đầu ra: 𝑛𝐻 × 𝑛𝑊 × 𝑛𝐶
[𝑙−1]


Số lượng tham số: 𝑓 × 𝑓 × 𝑛𝐶

[𝑙]

× 𝑛𝐶

Kích thước đầu ra được tính theo cơng thức:

[𝑙]
𝑛𝐻/𝑊

[𝑙−1]

=

𝑛𝐻/𝑊 +2𝑝−𝑓
𝑠

+1

Trong đó: 𝑛𝐻 , 𝑛𝑊 là kích thước cao rộng của dữ liệu, 𝑛𝑐 là số kênh, 𝑓 là kích thước
bộ lọc, 𝑝 là kích thước vùng đệm, 𝑠 là kích thước bước
Trong q trình nghiên phát triển mạng neural sâu, rất nhiều các dạng biến đổi của
lớp tích chập được phát minh và sử dụng nhằm tăng hiệu quả hoặc giảm thiểu những
hạn chế của mạng. Một số kỹ thuật điển hình sẽ được mô tả trong Chương 2 của luận
văn.
Hàm tác động ReLU
Mạng neural thường sử dụng một hàm tác động để tạo ra biến đổi phi tuyến. Một số
hàm cổ điển như 𝑠𝑖𝑔𝑚𝑜𝑖𝑑 và 𝑡𝑎𝑛ℎ khi hoạt động trên mạng neural tích chập sâu có

một nhược điểm là làm chậm q trình tính tốn. AlexNets là mạng neural tích chập
đầu tiên sử dụng ReLU (thành phần tuyến tính chỉnh lưu) để tăng hiệu quả quá trình
huấn luyện. Ưu điểm của hàm ReLU so với 𝑠𝑖𝑔𝑚𝑜𝑖𝑑 là đơn giản hơn và có gradient

23


×