Mạng nơ ron Tích chập hiện nay thường được sử dụng nhiều trong các hệ thống thông minh do ưu điểm của mạng là có độ chính xác cao, tuy nhiên tốc độ tính toán lại rất nhanh.. Vì lý do đó,
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN MẠNH HÙNG
NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,
ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG
TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2019
Trang 2ĐẠI HỌC QUỘC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN MẠNH HÙNG
NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,
ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG
TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH
Chuyên ngành : Kỹ thuật phần mềm
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2019
Trang 3i
LỜI CAM ĐOAN
Tôi xin cam đoan: luận văn “Nghiên cứu về mạng neural Convolutional, áp dụng
vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính.” là công trình nghiên
cứu của tôi dưới sự hướng dẫn của giảng viên hướng dẫn, không sao chép lại của người khác Các tài liệu được luận văn tham khảo, kế thừa và trích dẫn đều được liệt kê trong danh mục các tài liệu tham khảo
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan trên
Hà Nội, ngày tháng năm 2019
Học viên
Nguyễn Mạnh Hùng
Trang 4và tạo mọi điều kiện tốt nhất cho em trong suốt quãng thời gian em theo học tại trường, để
em có thể hoàn thành được đề tài này
Em tỏ lòng biết ơn sâu sắc với PGS.TS Đỗ Trung Tuấn, người thầy đã tận tình hướng dẫn khoa học và giúp đỡ, chỉ bảo em trong suốt quá trình nghiên cứu và hoàn thành luận văn này
Tôi xin chân thành cảm ơn các bạn học viên cao học khóa 22 tại trường Đại học Công nghệ, Đại học quốc gia Hà Nội đã giúp đỡ tôi trong quá trình theo học tại trường, cũng như giúp đỡ tôi thực hiện đề tài này
Xin trân trọng cảm ơn!
Trang 5
iii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG BIỂU x
DANH MỤC VIẾT TẮT xi
LỜI MỞ ĐẦU 1
Lý do chọn đề tài 1
Cơ sở khoa học và thực tiễn của đề tài 1
Mục tiêu của luận văn 2
Cấu trúc luận văn 3
CHƯƠNG 1 4
TỔNG QUAN VỀ MẠNG NƠ RON 4
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP 4
1.1 Nơ ron nhân tạo 4
1.1.1 Lịch sử của nơ ron nhân tạo 4
1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học 5
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo 5
1.1.4 Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo 8
1.2 Mạng nơ ron nhân tạo 11
1.2.1 Giới thiệu mạng nơ ron nhân tạo 11
1.2.2 Một số kiểu mạng nơ ron 11
1.2.3 Mạng nơ ron lan truyền ngược 13
1.3 Mạng nơ ron tích chập 18
1.3.1 Khái niệm về mạng nơ ron tích chập 18
Trang 6iv
1.3.2 Mô hình mạng nơ ron tích chập 19
1.3.2 Xây dựng mạng nơ ron tích chập 20
1.4 Kết luận 27
CHƯƠNG 2 28
BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ RON TÍCH CHẬP 28
2.1 Khái niệm về nhận dạng 28
2.1.1 Nhận dạng đối tượng 28
2.1.2 Nhận dạng khuôn mặt 29
2.2 Lịch sử và phát triển 30
2.3 Cách thức hoạt động 30
2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera 32
2.4.1 Nhận diện khuôn mặt 32
2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt 33
2.4.3 Liên kết khuôn mặt 34
2.5 Kết quả các thuật toán sử dụng mạng nơ ron nhân tạo 35
2.5.1 Mô hình DeepID 2 (NIPS 2014) 35
2.5.2 Mô hình DeepID3 (arXiv 2015) 38
2.5.3 Mô hình DeepFace (Facebook, CVPR 2014) 39
2.5.4 Mô hình FaceNet (Google 2015) 39
2.5.5 Mô hình Baidu (2015) 41
2.6 Kết luận 42
CHƯƠNG 3 44
SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP 44
TRONG NHẬN DẠNG ĐỐI TƯỢNG 44
3.1 Sơ lược về áp dụng mạng nơ ron tích chập vào các giải pháp thông minh trong thực tế 44
Trang 7v
3.2 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện người vào/ra và đánh giá thực nghiệm, so sánh với phương pháp
HOG 44
3.2.1 Giới thiệu hệ thống nhận diện và đếm lượt người vào/ra sử dụng mạng nơ ron tích chập 44
3.2.2 Giới thiệu kiến trúc của máy chủ xử lý nhận diện và đếm lượng người 45 3.2.3 Giới thiệu sơ lược về phương pháp mô tả đặc trưng HOG sẽ được dùng để so sánh 47
3.2.4 So sánh khả năng nhận diện của hệ thống nhận diện người vào/ra sử dụng mạng nơ ron tích chập với phương pháp HOG đã có 50
3.2.5 Mô tả cơ chế chạy nhận diện người trong lõi máy chủ tính toán 52
3.2.6 Mô tả quá trình sử dụng hệ thống ở giao diện người dùng để hiển thị kết quả 53
3.3 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp HOG 55
3.3.1 Xây dựng hệ thống nhận diện khuôn mặt 55
3.3.2 Giới thiệu cơ chế của máy chủ xử lý nhận diện 56
3.3.3 Giới thiệu sơ lược về phương pháp phát hiện khuôn mặt sử dụng HOG sẽ được dùng để so sánh 58
3.3.4 So sánh hệ thống nhận diện khuôn mặt với phương pháp HOG đã có 59
3.3.4 So sánh khả năng nhận diện khuôn mặt giữa HOG và CNN 62
3.2.5 Kết quả hệ thống web nhận diện khuôn mặt 64
3.3 Kết luận 67
KẾT LUẬN 68
Kết quả đã thực hiện được của luận văn 68
Phương hướng phát triển luận văn 69
TÀI LIỆU THAM KHẢO 70
Trang 8vi
DANH MỤC HÌNH VẼ
Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10] 4
Hình 1.2: Hình ảnh một nơ ron sinh học [14] 5
Hình 1.3: Công thức của một nơ ron nhân tạo [41] 5
Hình 1.4: Hình ảnh một nơ ron nhân tạo 6
Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế 6
Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch 7
Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau 7
Hình 1.8: Đồ thị hàm Sigmoid 8
Hình 1.9: Đồ thị hàm TanH 9
Hình 1.10: Đồ thị hàm tuyến tính 9
Hình 1.11: Đồ thị hàm RELU 10
Hình 1.12: Đồ thị hàm ELU 10
Hình 1.13: Mạng nơ ron truyền thẳng 11
Hình 1.14: Mạng nơ ron hồi quy 12
Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy 12
Hình 1.16: Các tầng (layer) trong CNN là 3 chiều 18
Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20] 19
Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19] 19
Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ 20
Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron 20
Hình 1.21: Ví dụ về lớp tích chập 21
Hình 1.22: So sánh giữa ReLU và Sigmoid 23
Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp 24
Hình 1.24: Một ví dụ của lớp được kết nối đầy đủ 25
Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải) 25
Trang 9vii
Hình 1.26: Cấu trúc của AlexNet 26
Hình 1.27: Cấu trúc của VGGNet 27
Hình 2.1: Sự khác biệt giữa nhận dạng đối tượng và phát hiện đối tượng 29
Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32, conv42 và conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt 29
Hình 2.3: Tổng quan về phương pháp nhận dạng khuôn mặt người 31
Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh 31
Hình 2.5: Các giai đoạn dò tìm và hiệu chỉnh 32
Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu 33
Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mô tả cục bộ cho nhiệm vụ phát hiện các điểm mốc trên khuôn mặt 33
Hình 2.8: Ví dụ về các điểm mốc trên khuôn mặt 34
Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS CS2, là bộ dữ liệu mở rộng của IJB-A 35
Hình 2.10: Kiến trúc mạng của mô hình DeepID 2 36
Hình 2.11: 25 phần khuôn mặt tốt nhất được chọn để trích xuất đặc điểm 36
Hình 2.12: Kiến trúc mạng của mô hình DeepID3 38
Hình 2.13: Kiến trúc của DeepFace 39
Hình 2.14: Hình ảnh: Mô hình lấy cảm hứng từ Zeiler & Fergus 40
Hình 2 15 Mô hình GoogleNet 40
Hình 2.16: Tổng quan về cấu trúc CNN trên nhiều phần khuôn mặt của Baidu 41
Hình 2.17: Thống kê các mô hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất bản 42
Hình 3.1: Hình ảnh thiết kế của hệ thống nhận diện đối tượng 45
Hình 3.2: Phương pháp mạng YOLO sử dụng để nhận diện đối tượng 46
Hình 3.3: Mô hình mạng yolo 47
Hình 3.4: Tiền xử lý để xác định khung hình 48
Hình 3.5: Độ dốc sau khi tính toán 48
Trang 10viii
Hình 3.6: Kết quả sau khi tính toán véc tơ đặc trưng cho từng ô 49
Hình 3.7: Biểu diễn các véc tơ chỉ hướng theo HOG thu được sau khi tính toán 50
Hình 3.8: Hình ảnh nhận diện bằng phương pháp HOG 50
Hình 3.9: Hình ảnh nhận diện bằng phương pháp CNN 51
Hình 3.10: Hệ thống sử dụng ffmpeg để trích xuất các khung hình trong video 52
Hình 3.11: Các khung hình lần lượt được hệ thống trích xuất và đưa vào lõi để xử lý 52
Hình 3.12: Dữ liệu số người vào/ra được nhập vào cơ sở dữ liệu, và video báo cáo được hệ thống tự động xuất ra để làm đối chiếu 53
Hình 3.13: Hình ảnh đăng nhập vào hệ thống 53
Hình 3.14: Kết quả dữ liệu đã được thêm vào cơ sở dữ liệu và hiển trị trên web 54
Hình 3.15: Một ví dụ tương tự dữ liệu được xuất báo cáo nhận diện trong hệ thống 54
Hình 3.16: Kiến trúc hệ thống nhận diện khuôn mặt, tích hợp cùng hệ thống mua hàng 55
Hình 3.17: Khuôn mặt được trích xuất từ bức ảnh 56
Hình 3.18: Hình ảnh 68 điểm mốc trên khuôn mặt được sử dụng trên bộ thư viện dlib 57
Hình 3.19: Hình ảnh trích xuất đặc trưng khuôn mặt 57
Hình 3.20: Khuôn mặt được sử dụng để nhận dạng 58
Hình 3.21: Khuôn mặt được trích xuất 58
Hình 3.22: Hình ảnh được xử lý sau khi qua bộ lọc Gabor 58
Hình 3.23: Các đặc trưng được trích xuất bằng HOG 59
Hình 3.24: Phát hiện khuôn mặt sử dụng HOG 59
Hình 3.25: Phát hiện khuôn mặt sử dụng CNN 60
Hình 3.26: Phát hiện khuôn mặt sử dụng HOG với góc nghiêng lớn 60
Hình 3.27: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn 61
Hình 3.28: Kết quả nhận diện khuôn mặt với HOG 62
Hình 3.29: Phát hiện khuôn mặt sử dụng CNN 62
Hình 3 30: Nhận diện khuôn mặt sử dụng HOG với góc nghiêng lớn 63
Hình 3.31: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn 63
Trang 11ix
Hình 3.32: Giao diện hệ thống trên web (hai hình trên) và giao diện hệ thống trên mobile (hai hình dưới) 65 Hình 3.33: Huấn luyện thêm khuôn mặt mới 65 Hình 3.34: Kết quả nhận diện sau khi huấn luyện 66 Hình 3.35: Nhận diện user có ID 00280 với góc nghiêng khoảng 80 độ và user có ID
00388 với góc nghiêng 30 độ trên mặt phẳng Oxz 67
Trang 12x
DANH MỤC BẢNG BIỂU
Bảng 2.1: Thống kê xác minh độ chính xác của khuôn mặt bằng DeepID2 khi tăng dần số
lượng của các phần khuôn mặt 36
Bảng 2.2: So sánh độ chính xác của mô hình DeepID2 với các kết quả mô hình trước đó trên bộ thư viện LFW 37
Bảng 2.3: Kết quả so sánh của mô hình DeepID3 với các mô hình trước trên bộ thư viện LFW 38
Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu LFW 39
Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet 41
Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo 41
Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau 42
Bảng 3.1 Kết quả so sánh nhận diện người giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống 51
Bảng 3.2: Kết quả so sánh phát hiện khuôn mặt giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống 61
Bảng 3.3: Kết quả so sánh nhận diện khuôn mặt giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống 64
Bảng 3.4: Cơ sở dữ liệu thời gian phát hiện khuôn mặt của hệ thống 67
Trang 13xi
DANH MỤC VIẾT TẮT
AI Artificial Intelligence - Trí tuệ nhân tạo
ANN Artificial Neural Network – Mạng thần kinh nhân tạo
CNN Convolutional Neural Network – Mạng thần kinh tích chập
ReLU Rectified Linear Unit – Điều chỉnh đơn vị tuyến tính
GPU Graphics Processing Unit – Vi xử lý đồ họa
CPU Central Processing Unit – Bộ xử lý trung tâm
CUDA Compute Unified Device Architecture - kiến trúc tính toán song song
do hãng NVIDIA phát triển
IOT Internet of Things – vạn vật kết nối
ASCI Red Accelerated Strategic Computing Initiative Red – một siêu máy tính
của Intel
W Watt – một đơn vị đo lường của điện lực
kW KiloWatt – một đơn vị đo lường của điện lực
SVM Support Vector Machine – một thuật toán phân lớp
DP2MFD Deep Pyramid Deformable Parts Model for Face Detection
IJB-A IARPA Janus Benchmark-A – một thử thách mở cho nhận diện khuôn
mặt KLT Kanade–Lucas–Tomasi – một giải thuật thị giác máy tính
LFW Labeled Faces in the Wild – một bộ thư viện khuôn mặt
Trang 14xii
API Application Programming Interface – giao diện lập trình
YOLO You only look once – một hệ thống mạng nơ ron nhân tạo phát hiện
đối tượng thời gian thực HOG Histogram of Oriented Gradients – biểu đồ độ dốc định hướng
PCA Principal Component Analysis - Phân tích thành phần chính
Trang 15Nvidia's Jetson TX1 được ra mắt năm 2015, có thể nằm vừa trong lòng bàn tay và chỉ sử
dụng 10 oát điện, đã có sức mạnh tính toán tới 1 ngàn tỉ phép tính trên giây, điều mà cách
đó tròn 20 năm, vào năm 1996, siêu máy tính ASCI Red của Intel, phải sử dụng tới 6000
vi xử lý Pentium Pros, vận hành với 1000 kW mới có thể đạt được sức mạnh tính toán trên
Máy tính hiện nay có sức mạnh tính toán lớn nhưng giá thành lại ở mức phổ thông, dẫn tới người làm nghiên cứu rất dễ dàng để có thể tự kiểm nghiệm được các lý thuyết về trí tuệ nhân tạo từ nhiều năm trước Cùng với mã nguồn mở, hiện làn sóng trí tuệ nhân tạo đang bùng nổ mạnh mẽ trong thời gian gần đây, và đem lại rất nhiều ứng dụng trong đời sống
Chính vì lý do trên, việc tìm hiểu và nghiên cứu thị giác máy tính rất có ý nghĩa và thiết thực Hiện nay trên thế giới, nhiều nước đã và đang ứng dụng thị giác máy tính vào đời sống hàng ngày, ví dụ như SkyNet của Trung Quốc, các hệ thống kiểm duyệt nội dung tự động, …
Cơ sở khoa học và thực tiễn của đề tài
Ngày nay, trong kỷ nguyên số, máy tính là một phần không thể thiếu trong nghiên cứu khoa học cũng như trong đời sống hàng ngày Tuy nhiên, do hệ thống máy tính dựa trên lý thuyết cổ điển (tập hợp, logic nhị phân), nên dù có khả năng tính toán lớn và độ chính xác cao, thì máy tính cũng chỉ có thể làm việc theo một chương trình gồm các thuật toán được viết sẵn do lập trình viên chứ chưa thể tự lập luận hay sáng tạo
Học máy (Machine learning) là một phương pháp phân tích dữ liệu có thể tự động
hóa phân tích dữ liệu và tìm ra các trích xuất đặc trưng của bộ dữ liệu Học máy sử dụng các thuật toán trừu tượng để tự học từ dữ liệu, cho phép máy tính tìm thấy những thông
Trang 162
tin có giá trị ẩn ở rất sâu mà không thể lập trình được bằng cách thông thường Khi tiếp xúc với dữ liệu mới, học máy có thể thích ứng rất nhanh và độc lập
Học sâu (Deep Learning) là một ngành đặc biệt của học máy Học sâu sử dụng
mạng nơ ron nhân tạo (Artificial Neural Networks) để giải quyết các bài toán mà tính toán
cứng chưa thể xử lý được như dữ liệu trừu tượng, dữ liệu mờ, dữ liệu không rõ ràng,
Với tính chất như vậy, học sâu thường được ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên hoặc dự đoán, dự báo
Mạng nơ ron nhân tạo (Artificial Neural Networks) là một mô hình xử lý thông tin,
cấu thành từ các lớp nơ ron, được ra đời trên cơ sở mô phỏng hoạt động não bộ của sinh vật Mạng nơ ron nhân tạo gắn kết nhiều nơ ron theo một mô hình nhất định, được trải
qua huấn luyện để rút ra được kinh nghiệm, và sử dụng các kinh nghiệm đã có để xử lý
các thông tin mới Mạng nơ ron nhân tạo thường áp dụng vào giải các bài toán nhận dạng mẫu, hoặc dự đoán
Mạng nơ ron Tích chập (Convolutional Neural Network) là một trong những mô
hình học sâu hiện đại nhất hiện nay Mạng nơ ron Tích chập hiện nay thường được sử dụng nhiều trong các hệ thống thông minh do ưu điểm của mạng là có độ chính xác cao, tuy nhiên tốc độ tính toán lại rất nhanh Vì lý do đó, mạng nơ ron tích chập rất mạnh trong
xử lý hình ảnh, và được ứng dụng rất nhiều trong ngành thị giác máy tính trong các bài toán liên quan đến nhận dạng đối tượng
Ngày nay, với sự phát triển của công nghệ bán dẫn, máy tính ngày càng nhỏ đi, năng lượng tiêu thụ ngày càng thấp xuống, trong khi sức mạnh lại ngày càng tăng lên Với những ưu điểm như vậy, chúng ta có thể thấy rất nhiều thiết bị thông minh đã và đang hiện diện mọi nơi trong đời sống, với camera nhiều điểm ảnh, bộ nhớ trong lớn và vi xử
lý mạnh như: điện thoại thông minh, máy ảnh kỹ thuật số, camera hành trình,… Ngoài ra, với sự bùng nổ của xu hướng mạng vạn vật IOT, người ta có thể sẽ còn thấy rất nhiều thiết bị thông minh mới xuất hiện: xe ô tô tự lái, thiết bị bay không người lái tự giao hàng, Có thể thấy, việc sử dụng trí thông minh nhân tạo để khai thác dữ liệu hình ảnh trong các thiết bị thông minh trong tương lai đã và đang trở thành xu hướng Từ nhận
định trên và sự gợi ý của giảng viên hướng dẫn, tôi quyết định chọn nội dung “Nghiên
cứu về mạng Neural Convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh
vực thị giác máy tính” để làm đề tài nghiên cứu thực hiện luận văn thạc sỹ của mình
Mục tiêu của luận văn
Luận văn của tôi tập trung vào nghiên cứu, tìm hiểu về mạng nơ ron tích chập Sau
đó so sánh các phương pháp học sâu ở mức độ tổng quan trên phương diện học thuật, từ
Trang 173
đó thấy được tiềm năng cũng như hạn chế của AI với cái nhìn khách quan nhất Ở phần ứng dụng, tôi sử dụng mạng nơ ron tích chập để áp dụng vào hai bài toán thực tế: bài toán nhận dạng người và bài toán nhận diện khuôn mặt trong lĩnh vực thị giác máy tính
Cấu trúc luận văn
Luận văn được tổ chức gồm ba chương gồm:
Chương 1: Trình bày tổng quan về nơ ron, các thành phần và cơ chế hoạt
động của nơ ron Từ đó, trình bày về một số kiểu mạng nơ ron và cơ chế lan truyền ngược Cuối cùng là giới thiệu về cấu tạo và cách hoạt động của mạng nơ ron tích chập;
Chương 2: Trình bày tổng quan về bài toán nhận dạng bằng mạng nơ ron
tích chập, cách thức hoạt động của việc nhận dạng đối tượng và nhận dạng khuôn mặt của mạng nơ ron tích chập Ngoài ra, chương hai giới thiệu về các mô hình sử dụng nơ ron tích chập nổi tiếng đang được áp dụng hiện nay
và kết quả của từng mô hình;
Chương 3: Áp dụng mạng nơ ron tích chập vào trong thực tế Ở chương
này, tác giả báo cáo về kết quả đạt được khi áp dụng mạng nơ ron tích chập
để xây dựng hai hệ thống: hệ thống nhận dạng người và hệ thống nhận diện khuôn mặt Ngoài ra, tác giả có thực hiện so sánh với phương pháp cũ để có thể thấy ưu điểm và hạn chế của mạng nơ ron tích chập
Cuối cùng là phần kết luận cho phép tóm tắt kết quả đã đạt được và nêu ra những tồn tại, dựa vào đó để đưa ra những mục tiêu và phương hướng phát triển cho hệ thống sau này
Trang 184
CHƯƠNG 1
TỔNG QUAN VỀ MẠNG NƠ RON
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP
1.1 Nơ ron nhân tạo
1.1.1 Lịch sử của nơ ron nhân tạo
Vào năm 1943, nhà thần kinh học Warren McCulloch đã cùng nhà toán học Walter Pitts đã viết một cuốn sách về cách mạng thần kinh hoạt động Và họ đã thực hiện
mô phỏng một mạng thần kinh đơn giản trên một mạch điện [9]
Vào năm 1949, Donald Hebb đã viết cuốn sách Organization of Behavior Điểm
nhấn chính là mạng thần kinh nào được sử dụng nhiều sẽ được tăng cường
Vào năm 1959, David Hubel và Torsten Wiesel đã xuất bản cuốn sách Receptive
fields of single neurons in the cat’s striate cortex, miêu tả về phản ứng của các tế bào thần
kinh thị giác trên loài mèo, cũng như cách loài mèo ghi nhớ và nhận diện hình dạng trên kiến trúc vỏ não của nó
Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10]
Vào năm 1989, Yann LeCun đã áp dụng thuật toán học cho mạng nơ ron theo kiểu lan truyền ngược vào kiến trúc mạng nơ ron tích chập của Fukushima Sau đó vài năm, LeCun đã công bố LeNet-5 [13] Có thể nói, LeNet-5 là một trong những mạng nơ ron tích chập sơ khai nhất, tuy nhiên các dấu ấn của nó vẫn tồn tại tới ngày nay, có thể thấy thông qua một số thành phần thiết yếu mà các mạng nơ ron tích chập của ngày nay vẫn đang sử dụng
Trang 195
1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học
Hình 1.2: Hình ảnh một nơ ron sinh học [14]
Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, trong đó:
Thân nơ ron: là nơi xử lý các tín hiệu được đưa vào;
Tua gai thần kinh: là nơi nhận các xung điện vào trong nơ ron;
Sợi trục thần kinh: là nơi đưa tín hiệu ra ngoài sau khi được xử lý bởi nơ
ron;
Khớp thần kinh: vị trí nằm giữa tua gai thần kinh và sợi trục thần kinh, đây
là điểm liên kết đầu ra của nơ ron này với đầu vào của nơ ron khác
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo
Dựa vào cấu tạo của một nơ ron sinh học, các nhà khoa học nghiên cứu và lập trình
đã đưa ra kiến trúc của một nơ ron nhân tạo:
Hình 1.3: Công thức của một nơ ron nhân tạo [41]
Trang 206
Mạng nơ ron nhân tạo có thể mô tả đơn giản lại như sau:
Hình 1.4: Hình ảnh một nơ ron nhân tạo
Trong đó:
Danh sách các đầu vào: Là các thuộc tính đầu vào của một nơ ron Số
lượng thuộc tính đầu vào thường nhiều hơn một, do dữ liệu thô đầu vào thường là một vector nhiều chiều, hoặc nhiều nơ ron tầng trước kết nối tới một nơ ron tầng sau
Trọng số liên kết: Các liên kết được thể hiện độ mạnh yếu qua một giá trị
được gọi là trọng số liên kết Kết hơp với các đầu truyền, tín hiệu đến các
nơ ron nhân tạo khác sẽ được tính bằng ;
Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế
Trang 217
Hàm tổng: Tổng các tích của các đầu vào với trọng số liên kết mô phỏng
các khớp kết nối Sau đó đi qua hàm tính tổng để tính ra giá trị trước khi đưa vào hàm truyền;
Thiên lệch (b): Độ lệch được đưa vào sau khi khi tính toán xong hàm tổng,
tạo ra giá trị cuối cùng trước khi đưa vào hàm truyền Mục đích của việc thêm vào thiên lệch nhằm dịch chuyển chức năng của hàm kích hoạt sang trái hoặc phải, giúp ích khi mạng được huấn luyện Hình ảnh vị trí thiên lệch được thêm vào trong mạng nơ ron thực tế
Hình ảnh huấn luyện khi có và không có thiên lệch:
Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch
Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau
Hàm kích hoạt (Activation functions): Hàm này được sử dụng để tính toán giá trị của đầu ra dựa vào giá trị của hàm Tổng
Trang 22về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm
Trang 2511
1.2 Mạng nơ ron nhân tạo
1.2.1 Giới thiệu mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giải thuật lập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộ các sinh vật sống Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập
dữ liệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lại chứa nhiều nơ ron Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kết được biểu hiện qua trọng số liên kết
Lập trình thông thường có thể làm được rất nhiều phần mềm lớn, như tính toán mô phỏng các vụ nổ hạt nhân trong siêu máy tính ở các phòng thí nghiệm, hoặc tái hiện các tế bào ở cấp độ phân tử để phân tích các thử nghiệm thuốc Một siêu máy tính có thể tính toán được nhiều tỉ phép tính trên giây, tuy nhiên lập trình thông thường lại gặp khó khăn trong việc nhận ra các mẫu đơn giản, ví dụ như nhận diện mặt người, điều mà một bộ não sinh học xử lý nhanh và chính xác hơn nhiều
Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được áp dụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải quyết được Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu thế trên nhiều lĩnh vực
1.2.2 Một số kiểu mạng nơ ron
Có hai kiểu mạng nơ ron chính: mạng nơ ron truyền thằng (feedforward neural network) và mạng nơ ron hồi quy (recurrent neural network)
Mạng truyền thẳng và hồi quy được minh họa như sau:
Hình 1.13: Mạng nơ ron truyền thẳng
Trang 2612
Dễ thấy, ở mạng nơ ron truyền thẳng, các nơ ron trong tầng ẩn đều được kết
nối với các nơ ron trong tầng n Do có nhiều tầng ẩn nên chúng ta có thể thấy rằng mạng
truyền thẳng kéo dài trong không gian, và là không có bất kỳ đường tuần hoàn (cyclic path) nào nằm trong mạng Mạng nơ ron truyền thẳng rất phổ biến hiện nay
Hình 1.14: Mạng nơ ron hồi quy
Một loại khác là mạng nơ ron hồi quy Không giống như mạng nơ ron truyền thẳng, mạng nơ ron hồi quy có ít nhất một đường dẫn tuần hoàn Chúng ta có thể thấy nó
ở hình minh họa phía trên Vì có một đường dẫn tuần hoàn, nên mạng nơ ron hồi quy có thể gây ra vòng lặp vô cực Tuy nhiên, mạng nơ ron tuần hoàn có một ứng dụng quan trọng là chúng có thể nhận diện cho các giai đoạn thời gian khác nhau, như hình minh họa sau:
Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy
Như ví dụ trên, có một nút A kết nối với nút B và một chu kỳ đến chính nút A Mạng nơ ron hồi quy không xử lý đường dẫn tuần hoàn và các kết nối cùng một lúc
Mạng nơ ron hồi quy giả sử rằng đầu ra của nút A trong thời gian n là đầu vào của nút B
và nút A trong thời gian n + 1 Vì vậy, ngoài tính chất kéo dài trong không gian khi kết nối với các tầng nơ ron tiếp theo, mạng nơ ron hồi quy cũng nằm sâu trong thời gian Vì vậy, các mạng nơ ron hồi quy có thể mô hình hóa các hệ thống thay đổi theo bối cảnh Ví dụ: mạng nơ ron hồi quy thường được sử dụng trong xử lý ngôn ngữ theo ngữ cảnh Mạng
Trang 2713
nơ ron hồi quy có thể xử lý các phụ thuộc xa (long-term dependencies) theo mốc thời gian, ví dụ như mạng bộ nhớ dài-ngắn (Long Short Term Memory networks)
1.2.3 Mạng nơ ron lan truyền ngược
1.2.3.1 Tổng quan về mạng nơ ron lan truyền ngược
Giải thuật lan truyền ngược được mô tả ngắn gọn như sau:
1 Bước 1: Lan truyền Giai đoạn lan truyền có hai bước, lan truyền tiến và lan
truyền ngược Bước lan truyền tiến là nhập dữ liệu huấn luyện vào các mạng nơ ron và tính toán đầu ra Sau đó, dựa vào kết quả đầu ra, so sánh với
dữ liệu huấn luyện Chúng ta có thể sử dụng lan truyền ngược để cập nhật ngược lại trọng số lại cho các nơron trong các tầng trước đó
2 Bước 2: Cập nhật trọng số Mạng cập nhật các giá trị của trọng số của nơ
ron theo lỗi của kết quả đầu ra
3 Bước 3: Lặp hai bước trên Lặp lại bước một và hai cho đến khi sai số tối
thiểu Sau đó kết thúc khóa huấn luyện
1.2.3.2 Cách thức lan truyền ngược
1 Sử dụng để biểu diễn đầu vào cho nút của lớp
2 Sử dụng cho trọng số từ nút của lớp đến nút của lớp
3 Sử dụng được biểu diễn cho độ lệch của nút của lớp
4 Sử dụng đại diện cho đầu ra của nút của lớp
5 Sử dụng đại diện cho đầu ra mong muốn, dựa trên tập huấn luyện được sử dụng
6 Sử dụng là hàm kích hoạt, sử dụng Sigmoid cho hàm kích hoạt
Để có được lỗi tối thiểu, hàm chi phí được tính toán với công thức như sau:
Trang 28
đó, phương trình mới thu được là:
Trong đó x k L sự kết hợp tuyến tính của tất cả các đầu vào của nút j trong tầng L với các trọng số Hàm sigmoid là đạo hàm có dạng sau:
Trang 29để biểu diễn nút của tầng Do vậy, phương trình mới thu được là:
Ta xem xét các nút của tầng ẩn Ở lớp ngay trước lớp đầu ra Áp dụng đạo hàm riêng một phần trên trọng số cho hàm chi phí Các trọng số cho các nút của tầng ẩn này:
Trang 30Dòng thứ 2 của (14) dựa vào đầu vào của là sự kết hợp tuyến tính giữa các đầu
ra của nút của lớp trước với trọng số Vì đạo hàm không liên quan đến nút của lớp L
Do đó, ta đơn giản hóa đạo hàm dựa trên quy tắc chuỗi:
Chuyển thành Do đó phương trình trở thành:
Ta xét 2 trường hợp:
Trang 3117
Đối với tầng đầu ra nút k: , trong đó:
Đối với tầng ẩn nút j: , trong đó:
Áp dụng quy trình tương tự Ví dụ, Tính đạo hàm riêng cho độ lệch của nút k trong lớp cuối cùng và thu được:
Bước 2: Đối với mỗi nút đầu ra, ta thực hiện phép tính:
Bước 3: Đối với mỗi nút ở tầng ẩn, ta thực hiện phép tính:
Trang 321.3 Mạng nơ ron tích chập
1.3.1 Khái niệm về mạng nơ ron tích chập
Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt Mạng nơ ron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay Hầu hết các hệ thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý nhanh và độ chính xác cao Trong mạng nơ ron truyền thống, các tầng được coi là một chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: chiều cao, chiều rộng và chiều sâu (Hình 1.11) Mạng nơ ron tích chập có hai khái niệm quan trọng: kết nối cục bộ và chia sẻ tham số Những khái niệm này góp phần giảm số lượng trọng số cần được huấn luyện, do đó tăng nhanh được tốc độ tính toán
Hình 1.16: Các tầng (layer) trong CNN là 3 chiều
Trang 3319
Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20]
1.3.2 Mô hình mạng nơ ron tích chập
Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập:
1 Tầng tích chập;
2 Tầng gộp (pooling layer);
3 Tầng được kết nối đầy đủ (fully-connected)
Tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thực
hiện tích chập nhiều lần trên tầng trước Tầng gộp có thể làm giảm kích thước mẫu trên
từng khối 2x2 của tầng trước đó Ở các mạng nơ ron tích chập, kiến trúc mạng thường
chồng ba tầng này để xây dựng kiến trúc đầy đủ Ví dụ minh họa về một kiến trúc mạng
nơ ron tích chập đầy đủ:
Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19]
Trang 34Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ
Hình trên cho thấy nếu áp dụng mạng nơ ron được kết nối đầy đủ, toàn bộ kiến trúc mạng sẽ cần tính toán hơn 3 triệu nơ ron Số lượng lớn các nơ ron làm cho toàn bộ quá trình học rất chậm và dẫn đến quá tải so với khả năng tính toán của máy tính hiện tại
Qua một vài nghiên cứu về xử lý ảnh, các nhà nghiên cứu nhận thấy rằng các tính năng trong một hình ảnh thường là cục bộ, và các nhà nghiên cứu chú ý đến các tính năng cấp thấp đầu tiên khi xử lý ảnh Vì vậy, kiến trúc mạng có thể chuyển mạng được kết nối đầy đủ sang mạng được kết nối cục bộ, nhằm làm giảm độ phức tạp của tính toán Đây là một trong những ý tưởng chính trong CNN Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron
tầng ẩn
Giống như xử lý hình ảnh thông thường, chúng ta có thể kết nối cục bộ một khối vuông ma trận với nơ ron Kích thước khối thông thường là 3x3, 5x5, hoặc 7x7 Ý nghĩa vật lý của khối giống như một cửa sổ trượt (cửa sổ trượt là một trong những phương pháp
Trang 3521
xử lý ảnh) Bằng cách đó, số lượng tham số có thể giảm xuống rất nhỏ nhưng không gây
ra giảm hoặc mất thông tin, vì hình ảnh thông thường thường có tính lặp trong không gian Để trích xuất nhiều thông tin hơn, các mạng nơ ron kết nối khối cùng với một nơ ron khác Độ sâu trong các tầng là số lần chúng ta kết nối một khu vực với các nơ ron khác nhau Ví dụ, mạng kết nối cùng một khu vực với 5 nơ ron khác nhau Vì vậy, độ sâu là năm trong tầng mới Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.21: Ví dụ về lớp tích chập
Trong thực tế, có thể kết nối tất cả thông tin độ sâu (ví dụ: kênh 3 RGB) với nơ ron tiếp theo vì kết nối là cục bộ trong không gian và có chiều sâu đầy đủ Tuy nhiên ở ví dụ này chỉ kết nối thông tin cục bộ về chiều cao và chiều rộng Vì vậy, có thể có
các tham số trong hình trên cho nơ ron sau lớp màu xanh nếu chúng ta sử dụng cửa sổ
Biến thứ nhất và thứ hai là chiều cao và chiều rộng của kích thước cửa sổ và biến thứ ba là độ sâu của lớp
Ví dụ này di chuyển cửa sổ bên trong hình ảnh và làm cho tầng tiếp theo cũng có chiều cao và chiều rộng, và là một hai chiều Ví dụ: nếu chúng ta di chuyển cửa sổ 1 pixel mỗi lần, gọi là bước nhảy là 1, trong một hình ảnh và kích thước cửa sổ là
sẽ có các nơ ron ở tầng tiếp theo Có thể thấy rằng, kích
thước đã giảm từ 32 xuống 28 Vì vậy, để bảo toàn kích thước, chúng ta thêm phần trống vào đường viền Quay lại ví dụ trên, nếu chúng ta đệm với 2 pixel, có
các nơ ron ở lớp tiếp theo để giữ kích thước chiều cao và chiều
rộng Như ví dụ trên, nếu chúng ta sử dụng kích thước cửa sổ w, chúng ta sẽ có 1 vùng được tích chập với kích cỡ của cửa sổ mới là pixel Thông tin đường viền sẽ không ảnh hưởng nhiều vì những giá trị đó chỉ được sử dụng một lần
Trang 3622
Phần kế tiếp sẽ chi tiết hơn về bước nhảy của cửa sổ trượt, tức khoảng cách thay đổi của cửa sổ mỗi lần Ví dụ: giả sử bước nhảy là 2 và cửa sổ trượt bao phủ vùng
Sau đó, cửa sổ thứ hai bao phủ vùng và cửa sổ thứ 3 bao phủ vùng
Ví dụ, nếu chúng ta sử dụng bước nhảy 1 và kích thước cửa sổ trong hình ảnh và không sử dụng bù viền (pad-zero), thì chúng ta sẽ có
các nơ ron ở lớp tiếp theo Nếu chúng ta thay đổi bước nhảy 1 thành bước nhảy 2 và những tham số khác vẫn giữ nguyên, thì chúng ta sẽ có có
những nơ ron ở lớp tiếp theo Chúng ta có thể kết luận rằng nếu chúng
ta sử dụng bước nhảy s, kích thước cửa sổ trong ảnh , thì sẽ có
các nơ ron ở lớp tiếp theo Khi chúng ta sử dụng bước nhảy 3 và những tham số khác vẫn giữ nguyên thì chúng ta sẽ nhận được Vì kết quả không phải là số nguyên, nên bước nhảy 3 không thể dùng vì chúng ta không thể có được một khối hoàn chỉnh trong một mạng nơ ron
1.3.2.2 Chia sẻ tham số
Trong ví dụ minh họa của mục 1.3.2.1, ta sẽ có số lượng là nơ ron
ở tầng tiếp theo có bước nhảy 1, kích thước cửa sổ 5 x 5 và không có đệm, với độ sâu là 5
Mỗi nơ ron sẽ có tham số Vì vậy, trong tầng tiếp theo sẽ có
tham số Ở đây, chúng ta có thể chia sẻ các tham số theo từng độ sâu, do đó nơ ron ở mỗi tầng ẩn sẽ sử dụng tham số giống nhau là
, và tổng tham số sử dụng cho mỗi tầng là Điều này làm số lượng tham số giảm một cách đáng kể Tương tự, các nơ ron ở mỗi độ sâu trong tầng tiếp theo sẽ áp dụng tích chập cho tầng trước đó Và quá trình học tập giống như học lõi (core) tích chập Đây là lý do mà các mạng nơ ron này được gọi là mạng nơ ron tích chập
1.3.2.3 Hàm kích hoạt
Trong mô hình nơ ron truyền thống, các mạng thường sử dụng hàm sigmoid cho hàm kích hoạt Tuy nhiên Krizhevsky [21] đã thử với hàm kích hoạt RELU Sau khi so
Trang 3723
sánh hiệu quả của hàm kích hoạt RELU và hàm kích hoạt sigmoid trong CNNs Họ thấy rằng mô hình với RELU cần ít thời gian lặp hơn trong khi đạt tỷ lệ lỗi khi huấn luyện tương đương Chúng ta có thể thấy kết quả trong hình sau:
Hình 1.22: So sánh giữa ReLU và Sigmoid
Như hình trên, đường liền nét là mô hình sử dụng RELU và đường đứt nét là sử dụng hàm Sigmoid Có thể dễ dàng thấy rằng, RELU cần ít vòng lặp hơn để đạt tỉ lệ lỗi chấp nhận được Do đó, ngày nay đa số các mô hình CNN gần đây sử dụng RELU để làm hàm kích hoạt
1.3.2.4 Tầng gộp
Tầng gộp sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ lại các đặc điểm, tính chất nổi bật nhất của ảnh Điều này cho phép giảm mức độ tính toán khi hình ảnh có kích thước quá lớn, đồng thời không làm mất đi các đặc điểm quan trọng của ảnh
Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số lượng tham số trong mang nơ ron vẫn là quá lớn So với một tập dữ liệu tương đối nhỏ, nó
có thể gây ra tình trạng quá khớp (overfitting) Vì vậy, mạng nơ ron nhân tạo thường chèn các tầng gộp vào mạng Tầng gộp xử lý để giảm dần số lượng tham số nhằm cải thiện thời gian tính toán trong mạng nơ ron Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng cách sử dụng hàm max Tầng gộp hoạt động độc lập trên mỗi tầng trước đó Ngoài ra, có
Trang 3824
thể đặt lượng pixel khi chúng ta di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng tích chập Ví dụ, trong hình sau:
Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp
Ở ví dụ trên, kích thước cửa sổ trượt là và bước nhảy mỗi lần trượt là 2 Tại mỗi cửa sổ, hàm max sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo Có hai loại tầng gộp: Nếu kích thước cửa sổ trượt bằng bước nhảy, đó là gộp chung (traditional pooling) Nếu kích thước cửa sổ trượt lớn hơn bước nhảy, đó là gộp nhóm (overlapping pooling) Trong thực tế, các mạng nơ ron thường sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp chung và sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất các đặc tính của dữ liệu
Ngoài việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác Ví dụ người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính toán giá trị cho tầng tiếp theo, được gọi là gộp trung bình
1.3.2.5 Tầng được kết nối đầy đủ
Tầng thứ ba là tầng được kết nối đầy đủ Tầng này giống như mạng nơ ron truyền thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối cùng là đầu ra Để có thể đưa hình ảnh từ những tầng trước vào, ta phải dàn phẳng dữ liệu
ra thành một véc tơ nhiều chiều Cuối cùng là sử dụng hàm softmax để thực hiện phân loại đối tượng
Trang 39Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải)
Một trong những phương pháp đó là là giảm trọng số trong lúc huấn luyện Dropout là một trong những kỹ thuật nổi tiếng và khá phổ biển để khắc phục vấn đề này Dropout đặt đầu ra của mỗi nơ ron ẩn thành 0 với xác suất 0,5 Vì vậy, các nơ ron này sẽ không đóng góp vào lan truyền tiến, do đó và sẽ không tham gia vào lan truyền ngược Thông thường, đối với các đầu vào khác nhau, mạng nơ ron xử lý dropout theo một cấu trúc khác nhau
Một cách khác để cải thiện việc việc quá khớp là tăng lượng dữ liệu Chúng ta có thể phản chiếu hình ảnh, lộn ngược hình ảnh, lấy mẫu hình ảnh, v.v Những cách này sẽ tăng số lượng dữ liệu huấn luyện Vì vậy, nó có khả năng ngăn chặn quá khớp Với ví dụ thực tế, trong một vài dự án, các bức ảnh được sử dụng để huấn luyện đã được xử lý thêm
Trang 40AlexNet
Hình 1.26: Cấu trúc của AlexNet
Alex đã phát triển mạng này vào năm 2012 Cho tới thời điểm hiện tại, AlexNet vẫn còn đang được sử dụng phổ biến và rộng rãi Mạng AlexNet có năm lớp chập và ba lớp kết nối đầy đủ Cấu trúc trong AlexNet được chia thành hai khối Nguyên nhân vì tác giả đã sử dụng hai GPU để huấn luyện dữ liệu song song Mạng này được sử dụng trong phân loại đối tượng quy mô lớn Lớp đầu ra có một nghìn nơ ron Đó là bởi vì kiến trúc ban đầu được thiết kế để phân loại một nghìn nhãn Thông thường, những người áp dụng kiến trúc mạng nơ ron AlexNet sẽ thay thế lớp cuối cùng, phụ thuộc vào mục đích của họ Tác giả của mạng này đã làm nhiều thử nghiệm để có thể ra được mô hình này có kết quả tốt nhất Vì vậy, hiệu suất của cấu trúc này rất ổn định và mạng này được sử dụng rộng rãi trong nhiều ứng dụng
VGGNet
VGGNet [10] được phát triển vào năm 2014 và đã giành chiến thắng trong cuộc thi ILSVRC-2014 Mạng này mạnh hơn mạng AlexNet nhưng rất sâu Mạng này có 16 đến
19 tầng (Hình 1.21) Mạng này đã được thiết kế với 5 cấu trúc Sau một số thí nghiệm, D
và E là cấu trúc tốt nhất Hiệu suất của E tốt hơn một chút so với B Nhưng các tham số trong E lớn hơn D Vì vậy, người sử dụng có thể chọn một trong số cấu trúc mạng dựa trên những gì họ cần Đặc điểm của VGGNet là việc áp dụng nhiều lớp chập với kích