Trên thực tế, quy trình huấn luyện tự động này đã hình thành cơ sở của Stochastic Gradient Descent SGD vẫn được sử dụng để huấn luyện các mạng thần kinh rất sâu ngày nay... Hình 1.1.3:
Trang 1ỨNG DỤNG HỌC SÂU CHO BÀI TOÁN NHẬN DIỆN ẢNH
Tp.Hồ Chí Minh, tháng 7/2022
S K L 0 0 9 5 0 0
LƯƠNG UY LONG
GVHD: ThS QUÁCH ĐÌNH HOÀNG SVTH: TRẦN NHƯ THUẬN
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT DỰ LIỆU
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: KỸ THUẬT DỮ LIỆU
Trần Như Thuận 18133054 Lương Uy Long 18133026
Đề Tài:
ỨNG DỤNG HỌC SÂU CHO BÀI TOÁN NHẬN DIỆN ẢNH
KHOÁ LUẬN TỐT NGHIỆP KỸ SƯ KỸ THUẬT DỮ LIỆU
GIÁO VIÊN HƯỚNG DẪN ThS QUÁCH ĐÌNH HOÀNG
KHOÁ 2018 – 2022
Trang 3ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CNTT Độc lập – Tự do – Hạnh Phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1: Trần Như Thuận MSSV : 18133054
Họ và tên Sinh viên 2: Lương Uy Long MSSV : 18133026
Ngành: Kỹ Thuật Dữ Liệu
Tên đề tài: Ứng dụng học sâu cho bài toán nhận diện ảnh
Họ và tên Giáo viên hướng dẫn: ThS Quách Đình Hoàng
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm
4 Đề nghị cho bảo vệ hay không ?
5 Đánh giá loại :
6 Điểm :
Tp Hồ Chí Minh, ngày tháng năm 2022
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 4ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CNTT Độc lập – Tự do – Hạnh Phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Trần Như Thuận MSSV : 18133054
Họ và tên Sinh viên 2: Lương Uy Long MSSV : 18133026
Ngành: Kỹ Thuật Dữ Liệu
Tên đề tài: Ứng dụng học sâu cho bài toán nhận diện ảnh
Họ và tên Giáo viên phản biện: ThS Trần Tiến Đức
NHẬN XÉT
7 Về nội dung đề tài & khối lượng thực hiện:
8 Ưu điểm:
9 Khuyết điểm
10 Đề nghị cho bảo vệ hay không ?
11 Đánh giá loại :
12 Điểm :
Tp Hồ Chí Minh, ngày tháng năm 2022
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 5LỜI CAM ĐOAN
Khoá luận này là công trình nghiên cứu của chúng tôi, được thực hiện dưới sự hướng dẫn khoa học của ThS Quách Đình Hoàng Các số liệu, những kết luận nghiên cứu và sản phẩm được tạo ra bởi chúng tôi được trình bày trong khoá luận này là trung thực
Chúng tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này
Trần Như Thuận Lương Uy Long
Trang 6LỜI CẢM ƠN
Qua thời gian học tập và rèn luyện tại trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh cho đến nay, chúng tôi đã nhận được rất nhiều sự quan tâm giúp đỡ của quý Thầy Cô và bạn bè Với lòng biết ơn sâu sắc và chân thành, chúng tôi xin gửi đến Ban Giám Hiệu trường đã tạo môi trường học tập và sáng tạo năng động, đầy đủ tiện nghi trong suốt 4 năm theo học tại trường
Một kỳ thực hiện luận văn tốt nghiệp ngắn ngủi đã trôi qua nhưng để lại trong chúng tôi rất nhiều cảm xúc Chúng tôi xin được gửi lời cảm ơn chân thành đến Thầy Quách Đình Hoàng Thầy đã cung cấp tài liệu và hướng dẫn tận tình cho chúng tôi Trong suốt quá trình thực hiện luận văn tốt nghiệp, Thầy luôn theo dõi tiến độ và giải đáp, chia sẻ giúp chúng tôi vượt qua những khó khăn Chúng tôi rất trân quý sự tâm huyết và trách nhiệm của Thầy trong công việc giảng dạy và truyền đạt kiến thức Chúng tôi cũng xin gửi lời cảm ơn sâu sắc đến Thầy Cô khoa Công nghệ Thông tin - Đại học Sư phạm Kỹ thuật TP.HCM đã đồng hành và hỗ trợ chúng tôi trong suốt quá trình học tập và thực hiện khóa luận Chúng tôi xin cảm ơn trường Sư phạm Kỹ thuật đã tạo nhiều điều kiện thuận lợi cho hoạt động phục vụ học tập của sinh viên chúng tôi, đặc biệt là thư viện số với nguồn tri thức vô tận Chúng tôi cũng gửi lời cảm
ơn chân thành đến các bạn khóa 2018 ngành Kỹ thuật Dữ liệu, cảm ơn những góp ý và chia sẻ quý giá từ tất cả các bạn Cảm ơn sự động viên từ các bạn để nhóm chúng tôi
có thể giữ vững tinh thần và thực hiện khóa luận đúng tiến độ
Những giá trị cốt lõi nhà trường, Thầy Cô và bạn bè mang đến, chúng tôi sẽ luôn ghi nhớ để làm động lực thúc đẩy bản thân phát triển và hoàn thiện hơn nữa Công việc nào chắc chắn cũng có khó khăn nhưng khổ luyện thành nhân, rõ ràng bản thân chúng tôi đã có những bước tiến cả về kiến thức, tư duy, kỹ năng, cách làm việc và mối quan
hệ ứng xử với mọi người Chúng tôi cũng nhận thấy bản thân có những khuyết điểm và thiếu sót cần cố gắng cải thiện để tốt hơn, hướng tới mục tiêu lớn trong tương lai
Trang 7Trường ĐH Sư Phạm Kỹ Thuật TP.HCM Khoa : Công Nghệ Thông Tin
ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP
Họ và Tên SV thực hiện 1 : Trần Như Thuận Mã Số SV : 18133054
Họ và Tên SV thực hiện 2 : Lương Uy Long Mã Số SV : 18133026 Thời gian làm luận văn : từ : 04/03/2022 Đến : 08/07/2022
Chuyên ngành : Kỹ thuật Dữ liệu
Tên luận văn : Ứng dụng học sâu cho nhận diện ảnh
GV hướng dẫn : ThS Quách Đình Hoàng
Nhiệm Vụ Của Luận Văn :
1 Tìm hiểu khái quát Deep Learning trong Computer Vision
2 Ảnh trong máy tính và tìm hiểu Image Recognition
3 Thu thập và xây dựng tập dữ liệu
4 Xử lý dữ liệu và tạo mô hình huấn luyện dựa trên kiến trúc
5 Ứng dụng minh họa
6 Đánh giá và đưa hướng phát triển
Đề cương viết luận văn:
1 Phần MỞ ĐẦU
1.1 Tính cấp thiết của đề tài
1.2 Mục tiêu của đề tài
1.3 Cách tiếp cận và phương pháp nghiên cứu
- Đối tượng nghiên cứu
- Phạm vi nghiên cứu
1.4 Phân tích những công trình có liên quan
1.5 Kết quả dự kiến đạt được
Trang 81.6 Bố cục của bài báo cáo
2 Phần NỘI DUNG
1 Chương 1: Tìm hiểu khái quát học sâu
2 Chương 2: Artificial neural network
3 Chương 3: Ảnh trong máy tính
4 Chương 4: Covolution neural network
5 Chương 5: Image Recognition
6 Chương 6: Tìm hiểu mạng MobileNetV2
7 Chương 7: Xây dựng ứng dụng Plant Disease Prediction
Trang 9 Tìm hiểu tổng quan về các hàm kích hoạt
Tìm hiểu ảnh kỹ thuật số trong máy tính
Tìm hiểu về image recognition, transfer learning và mobileNet cũng như mobileNetV2
Tìm hiểu về kiến trúc mô hình VGG
và ResNet trong việc huấn luyện, các framework để xây dựng ứng dụng
Tiến hành viết báo cáo sơ bộ
Trang 101
MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC BẢNG 4
DANH MỤC CÔNG THỨC 5
DANH MỤC CÁC HÌNH 6
DANH MỤC VIẾT TẮT 9
PHẦN 1: MỞ ĐẦU 10
1 Tính cấp thiết của đề tài 10
2 Mục tiêu của đề tài 10
3 Cách tiếp cận và phương pháp nghiên cứu 11
4 Phân tích những công trình có liên quan 11
5 Kết quả dự kiến 12
6 Bố cục của bài báo cáo 12
PHẦN 2: NỘI DUNG 14
CHƯƠNG 1: TÌM HIỂU DEEP LEARNING 14
1.1 LỊCH SỬ SƠ LƯỢC VỀ DEEP LEARNING 14
1.2 HỌC PHÂN CẤP 18
1.3 THẾ NÀO LÀ “SÂU” TRONG HỌC SÂU 20
1.4 TỔNG KẾT 21
CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK 23
2.1 NEURAL NETWORK LÀ GÌ 23
2.2 HOẠT ĐỘNG 23
2.3 QUÁ TRÌNH XỬ LÍ 25
2.4 HÀM KÍCH HOẠT 26
2.4.1 Hàm sigmoid 27
2.4.2 Hàm tanh 28
2.4.3 Hàm RELU 29
2.4.4 Hàm leaky RELU 31
2.4.5 Hàm RELU6 32
2.4.6 Hàm softmax 32
CHƯƠNG 3: ẢNH TRONG MÁY TÍNH 34
3.1 HỆ MÀU RGB 34
3.2 ẢNH MÀU 34
3.3 TENSOR 36
Trang 113.4 ẢNH XÁM 37
3.5 CHUYỂN HỆ MÀU 39
CHƯƠNG 4: CONVOLUTIONAL NEURAL NETWORK 40
4.1 PHÉP TÍNH CONVOLUTION 40
4.1.1 Convolution 40
4.1.2 Padding 41
4.1.3 Stride 42
4.1.4 Ý nghĩa của phép tính convolution 43
4.2 CONVOLUTIONAL NEURAL NETWORK 44
4.2.1 Convolution layer 44
4.2.2 Convolutional layer đầu tiên 45
4.2.3 Convolutional layer tổng quát 48
4.2.4 Pooling layer 49
4.2.5 Fully connected layer 51
CHƯƠNG 5: IMAGE RECOGNITION 52
5.1 TÌM HIỂU CHUNG VỀ IMAGE RECOGNITION 52
5.1.1 Image Recognition là gì? 52
5.1.2 Hiểu về Image Recognition 52
5.1.3 Image Recognition hoạt động như thế nào? 52
5.1.4 Những thách thức về Image Recognition 53
5.1.5 Mối liên hệ của Image Recognition 53
5.2 TÌM HIỂU VỀ TRANSFER LEARNING 55
5.2.1 Kiến trúc mô hình sử dụng transfer learning 56
5.2.2 Lợi ích và hạn chế của Transfer learning 58
5.2.3 Mạng VGG16 59
5.2.4 Mạng VGG19 60
CHƯƠNG 6: TÌM HIỂU MẠNG MOBILENET V2 VÀ RESNET 64
6.1 TÍCH CHẬP HAI CHIỀU THÔNG THƯỜNG VÀ TÍCH CHẬP TÁCH BIỆT CHIỀU SÂU 64
6.1.1 Tích chập 2 chiều thông thường 64
6.1.2 Tích chập tách biệt chiều sâu 64
6.2 KIẾN TRÚC MẠNG MOBILENET 68
6.3 MẠNG MOBILENET V2 71
6.3.1 Khối dư (Residual Block) 71
Trang 123
6.3.2 Kiến trúc mạng MobileNet V2 73
6.3.3 Kiến trúc mạng ResNet34 75
CHƯƠNG 7: XÂY DỰNG ỨNG DỤNG PLANT DISEASE PREDICTION 83
7.1 MÔ TẢ BÀI TOÁN VÀ ỨNG DỤNG 83
7.1.1 Mô tả bài toán 83
7.1.2 Mô tả ứng dụng 83
7.1.3 Mô tả chức năng 84
7.2 XÂY DỰNG ỨNG DỤNG 84
7.2.1 Thu thập dữ liệu 84
7.2.2 Huấn luyện mô hình 86
7.2.3 Xây dựng website 93
7.2.4 Giao diện ứng dụng 100
7.3 THỰC NGHIỆM ĐÁNH GIÁ 101
PHẦN 3: KẾT LUẬN 104
1 KẾT QUẢ ĐẠT ĐƯỢC 104
1.1 Ý nghĩa khoa học 104
1.2 Ý nghĩa thực tiễn 104
2 HẠN CHẾ 105
3 HƯỚNG PHÁT TRIỂN 105
TÀI LIỆU THAM KHẢO 106
Trang 13DANH MỤC CÁC BẢNG
Bảng 6.2.1: Đặc điểm các lớp của mạng MobileNet [19] 68
Bảng 6.2.2: Depthwise Separable vs Full Convolution MobileNet [19] 70
Bảng 6.2.3: MobileNet Comparison to Popular Models [19] 70
Bảng 6.2.4: Smaller MobileNet Comparison to Popular Models [19] 71
Bảng 6.2.5: MobileNet for Stanford Dogs [19] 71
Bảng 6.3.1: Kiến trúc MobileNet V2 [25] 75
Trang 145
DANH MỤC CÔNG THỨC
(𝟐 𝟑 𝟏) 26
(𝟐 𝟒 𝟏) 26
(𝟐 𝟒 𝟐) 27
(𝟐 𝟒 𝟑) 28
(𝟐 𝟒 𝟒) 30
(𝟐 𝟒 𝟓) 31
(𝟐 𝟒 𝟔) 32
(𝟑 𝟓 𝟏) 39
Trang 15
DANH MỤC CÁC HÌNH
Hình 1.1.1: Mối quan hệ giữa DL, ML, AL [1] 14
Hình 1.1.2: Ví dụ về kiến trúc Perceptron [1] 15
Hình 1.1.3: Bài toán phi tuyến trong bộ dữ liệu XOR [1] 16
Hình 1.1.4: Mạng thần kinh chuyển tiếp nhiều lớp [1] 17
Hình 1.2.1: Mô tả quá trình định lượng một hình ảnh thuốc viên [1] 19
Hình 1.3.1: Mối quan hệ giữa độ chính xác và dữ liệu của DL, ML [1] 21
Hình 2.2.1: Mô hình mạng nơ-ron sinh học [2] 23
Hình 2.2.2: Kiến trúc một mạng thần kinh [2] 24
Hình 2.3.1: Quá trình xử lí thông tin của một NN [3] 25
Hình 2.4.1: Đồ thị hàm Sigmoid và đạo hàm [5] 27
Hình 2.4.2: Đồ thị hàm tanh và đạo hàm [5] 28
Hình 2.4.3: Kết quả chuyển đổi hàm ReLU [6] 29
Hình 2.4.4: Cách hoạt động hàm ReLU [6] 30
Hình 2.4.5: Đồ thị hàm ReLU và đạo hàm [5] 30
Hình 2.4.6: Đồ thị hàm leaky ReLU [5] 32
Hình 3.1.1: Hệ màu RGB [2] 34
Hình 3.2.1: Minh họa bức hình màu [2] 35
Hình 3.2.2: Biểu diễn ma trận kích thước 600 * 800 35
Hình 3.2.3: Ảnh màu kích thước 3*3 biểu diễn dạng ma trận, mỗi pixel biểu diễn giá trị (r,g,b) [2] 36
Hình 3.2.4: Tách mỗi giá trị màu trong mỗi pixel ra ma trận riêng [2] 36
Hình 3.2.5: Tổng quát tách màu trong mỗi pixel ra ma trận riêng [2] 36
Hình 3.3.1: Biểu diễn vecto v và ma trận W [2] 36
Hình 3.3.2: Biểu diễn một tensor [2] 37
Hình 3.4.1: Minh họa ảnh xám [2] 38
Hình 3.4.2: Biểu diễn ảnh xám thành ma trận [2] 38
Hình 3.4.3: Ví dụ ma trận ảnh xám cụ thể [2] 39
Hình 4.1.1: Kerel kích thước 3*3 [2] 40
Hình 4.1.2: Phép tính convolution giữa X và W [2] 40
Hình 4.1.3: Phần viền ma trận được bỏ qua [2] 41
Hình 4.1.4: ma trận X được thêm viền giá trị 0 [2] 42
Hình 4.1.5: Stride =1 (bên trái) và stride =2 (bên phải) [7] 42
Hình 4.1.6: Minh họa bước nhảy k =2 của ma trận X [2] 43
Trang 167
Hình 4.1.7: Một số kernel phổ biến [8] 44
Hình 4.2.1: Input layer và hidden layer 1 [2] 45
Hình 4.2.2: Biểu diễn phép tính convolution của ảnh xám [8] 46
Hình 4.2.3: Phép tính convolution trên ảnh màu với k=3 [2] 46
Hình 4.2.4: Tensor X, W 3 chiều được viết dưới dạng 3 matrix [9] 47
Hình 4.2.5: Thực hiện phép tính convolution trên ảnh màu [10] 48
Hình 4.2.6: Convolution layer đầu tiên [2] 48
Hình 4.2.7: Convolution layer tổng quát [2] 49
Hình 4.2.8: Max pooling layer với size = (3,3), stride=1, padding=0 [2] 50
Hình 4.2.9: Sau pooling layer (2*2) [10] 50
Hình 4.2.10: Hai loại pooling layer [2] 51
Hình 4.2.11: Layer cuối cùng chuyển đổi thành vecto [2] 51
Hình 5.1.1: Sơ đồ các mối liên hệ giữa các tác vụ trong computer vision [16] 54
Hình 5.1.2: Phân biệt Image classification [8] 55
Hình 5.2.1: Kiến trúc của mạng VGG16 được sử dụng làm base network trong transfer learning [27] 57
Hình 5.2.2: Kiến trúc base network kết hợp với fully connected layers [27] 57
Hình 5.2.3: So sánh tương quan hiệu quả của model train từ đầu và transfered model [27] 58
Hình 5.2.4: Mô phỏng hình ảnh kiến trúc VVG16 [14] 59
Hình 5.2.5: Kiến trúc mạng VGG16 [14] 60
Hình 5.2.6: Mô phỏng hình ảnh kiến trúc mạng VGG19 [29] 61
Hình 5.2.7: Kiến trúc mạng VGG19 [29] 61
Hình 5.2.8: Tổng quan kiến trúc các biến thể của mô hình mạng VGG [12] 63
Hình 6.1.1: Cấu tạo của kernel [22] 64
Hình 6.1.2: Tích chập tách biệt chiều sâu [21] 65
Hình 6.1.3: Depthwise convolution [22] 66
Hình 6.1.4: Pointwise Convolution [22] 67
Hình 6.1.5: Pointwise Convolution với đầu ra là 8×8×256 [22] 67
Hình 6.2.1: Conv truyền thống (trái), DSC với BN và ReLU [19] 69
Hình 6.3.1: Hiện tượng Vanishing Gradient [23] 72
Hình 6.3.2: Residual Block [20] 73
Hình 6.3.3: Sự khác biệt giữa một khối thông thường và khối phần dư [24] 73
Hình 6.3.4: Residual Block trong mạng [20] 74
Hình 6.3.5: Khối phần dư và khối dư ngược [25] 74
Trang 17Hình 6.3.6: Mô hình kiến trúc của VGG19, ResNet34, khối dư của ResNet34 [30]
76
Hình 6.3.7: Kích thước đầu ra và convolutional kernels của ResNet34 cùng các biến thể khác [30] 77
Hình 6.3.8: Cái nhìn khác về kiến trúc ResNet34 [30] 78
Hình 6.3.9: Conv1 – Convolution [30] 78
Hình 6.3.10: Conv1 – Max pooling [30] 79
Hình 6.3.11: Lớp 1, khối 1, phép tính 1 [30] 80
Hình 6.3.12: Lớp 1, khối 1 [30] 80
Hình 6.3.13: Lớp 1 [30] 80
Hình 6.3.14: Lớp 2, khối 1, phép tính 1 [30] 81
Hình 6.3.15: Kết nối tắt [30] 81
Hình 6.3.16: Lớp 2, khối 1 [30] 82
Hình 6.3.17: Lớp 2 [30] 82
Hình 7.2.1: Thực hiện huấn luyện mô hình lần 1 91
Hình 7.2.2: Thực hiện huấn luyện mô hình lần 2 91
Hình 7.2.3: Biểu đồ thể hiện độ đo accuracy trên tập validation 92
Hình 7.2.4: Biểu đồ thể hiện độ đo mất mát loss trên tập training và validation 92
Hình 7.2.5: Kết quả độ do accuracy khi thực nghiệm trên tập testing 93
Hình 7.2.6: Giao diện Plant Disease Prediction 100
Hình 7.2.7: Giao diện Plant Disease Prediction 101
Hình 7.2.8: Giao diện Plant Disease Prediction 101
Hình 7.3.1: Giao diện Plant Disease Prediction 102
Hình 7.3.2: Giao diện Plant Disease Prediction 102
Hình 7.3.3: Giao diện Plant Disease Prediction 103
Hình 7.3.4: Giao diện Plant Disease Prediction 103
Trang 189
DANH MỤC VIẾT TẮT
AI Artificial Intelligence Trí tuệ nhân tạo
NN (ANN) Artificial Neural Network Mạng nơ-ron nhân tạo
CNN Convolutional Neural Networks Mạng nơ-ron tích chập
DSC Depthwise Separable Convolution Tích chập tách biệt chiều sâu
GAN Generative Adversarial Networks Mạng sinh đối nghịch
R–CNN Region-Based Convolutional Neural
Networks
Mạng nơ-ron tích chập dựa trên khu vực
RNN Recurrent Neural Networks Mạng nơ-ron hồi quy
BN Batch Normalization Chuẩn hoá hàng loạt
VGG Visual Geometry Group Nhóm hình học trực quan
Trang 19MỞ ĐẦU
PHẦN 1: MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong những năm gần đây, trí tuệ nhân tạo cụ thể machine learning và deep learning hầu như đã thâm nhập vào toàn bộ các lĩnh vực đời sống xã hội với nhu cầu ngày càng cao để giải quyết các vấn đề phức tạp về y tế, giáo dục, giao thông, dịch vụ giải trí
Cùng với việc phát triển, các giống cây trồng ngày càng đa dạng, phong phú hơn Tuy nhiên cùng với đó, bệnh hại ở cây trồng ngày càng nhiều và nguy hiểm hơn.Nhằm đảm bảo chất lượng vá số lượng lương thực không bị thiếu hụt nghiêm trọng Cho nên, việc phát hiện bệnh hại là mục tiêu quan trọng để đạt được an ninh lương thực Phương pháp phát hiện bệnh truyền thống thường được nông dân hoặc chuyên gia kiểm tra thủ công, có thể tốn kém thời gian và chi phí, chứng tỏ là không khả thi đối với hàng triệu trang trại quy mô vừa và nhỏ trên khắp thế giới
Về deep learning, có rất nhiều mô hình mạng nơ-ron phục vụ cho những mục đích khác nhau Mạng nơ-ron tích chập (CNN - Convolutional Neural Networks) thường dùng cho xử lý phân loại ảnh, Mạng nơ-ron hồi quy (RNN - Recurrent Neural Networks) thường dùng cho các bài toán xử lý ngôn ngữ tự nhiên như: Dịch máy, phân loại ngữ nghĩa, nhận dạng giọng nói, phân loại video, và GAN (Generative Adversarial Networks) được dùng để hướng tới việc sinh ra dữ liệu mới sau quá trình học GAN có thể tự sinh ra một đoạn văn, chữ viết, một bản nhạc giao hưởng hay những thứ tương tự thế Nhận thấy mạng nơ-ron tích chập (CNN) phù hợp với vấn đề mà đề tài đang gặp phải là phân loại ảnh, nên chúng tôi quyết định tìm hiểu và nghiên cứu về mạng nơ-ron tích chập
2 Mục tiêu của đề tài
Nghiên cứu các phương pháp phát hiện đối tượng bằng kỹ thuật học sâu và áp dụng kiến trúc VGG – MobileNetV2 – ResNet nhằm:
Trang 20MỞ ĐẦU
- Nhận dạng loại bệnh hại của cây trồng thông qua lá một cách nhanh chóng
và chính xác hơn, bớt tốn kém thời gian và chi phí hơn so với phương pháp phát hiện bệnh truyền thống Phương pháp phát hiện bệnh truyền thống là sử dụng phương pháp kiểm tra thủ công bởi nông dân hoặc chuyên gia, điều này làm tốn kém thời gian và chi phí
3 Cách tiếp cận và phương pháp nghiên cứu
Đối tượng nghiên cứu:
- Hình ảnh thu thập được từ lá của các cây trồng khoẻ mạnh và mang bệnh hại khác nhau
- Kiến trúc VGG – MobileNetV2 – ResNet thuộc nhóm mạng nơ-ron tích chập trong deep learning
Phương pháp nghiên cứu:
Cụ thể, trong khuôn khổ luận văn, để tiếp cận được đề tài và phương pháp nghiên cứu, sẽ lần lượt nghiên cứu các nội dung sau:
- Thu thập các tài liệu và phân tích chọn lọc các thông tin liên quan đến deep learning, mạng nơ-ron tích chập, iamge recognition, transfer learning và kiến trúc VGG – MobileNetV2 – ResNet
- Thu thập và xử lý hình ảnh về lá của các cây trồng khoẻ mạnh và mang bệnh hại khác nhau
- Xây dựng thuật toán, huấn luyện mô hình và viết chương trình xác định, phân loại đối tượng
4 Phân tích những công trình có liên quan
Với sự phát triển mạnh mẽ của deep learning, đặc biệt là trong lĩnh vực nhận dạng hình ảnh đã giải quyết được nhiều vấn đề trong đời sống và xã hội Image Recognition được áp dụng và khai thác triệt để trong các lĩnh vực trong xã hội
Trang 21- Nhận dạng hình ảnh và khuôn mặt trên mạng xã hội: tính năng nhận dạng khuôn mặt để gắn thẻ mọi người trên ảnh của người dùng trong một thời gian hoặc tạo hashtag cho ảnh
- Tiếp thị tương tác và chiến dịch quảng cáo: nhận dạng hình ảnh có thể được sử dụng để tạo nội dung sáng tạo thu hút mọi người và giúp xây dựng mối quan hệ của họ với thương hiệu
Chúng tôi thấy rằng các công trình đều sử dụng các thuật toán phổ biến của Image Recognition của deep learning có hiệu quả cao và mang lại sự cải thiện hoàn hảo cho xã hội Vì vậy, chúng tôi dùng kiến trúc VGG – MobileNet – ResNet thuộc Image Recognition của deep learning cho đề tài này với mong muốn sẽ cho được sản phẩm hiệu quả tốt để giúp nhận dạng các loại bệnh hại ở cây trồng một cách nhanh chóng và chính xác, giúp nông dân có thể tìm hiểu thêm hoặc nhận biết được loại bệnh hại để xử
lý cho cây trồng
5 Kết quả dự kiến
Nắm vững cơ sở lý thuyết deep leanring, mạng nơ-ron tích chập và nguyên
lý hoạt động của kiến trúc VGG – MobileNet – ResNet
Tạo được bộ dữ liệu hình ảnh gồm các lá của các cây trồng khoẻ mạnh và mang bệnh hại khác nhau
Huấn luyện được kiến trúc VGG – ResNet để phân loại đối tượng
6 Bố cục của bài báo cáo
Trang 22MỞ ĐẦU
1 Phần MỞ ĐẦU
1.1 Tính cấp thiết của đề tài
1.2 Mục tiêu của đề tài
1.3 Cách tiếp cận và phương pháp nghiên cứu
- Đối tượng nghiên cứu
- Phạm vi nghiên cứu
1.4 Phân tích những công trình có liên quan
1.5 Kết quả dự kiến đạt được
1.6 Bố cục của bài báo cáo
2 Phần NỘI DUNG
1 Chương 1: Tìm hiểu khái quát học sâu
2 Chương 2: Artificial neural network
3 Chương 3: Ảnh trong máy tính
4 Chương 4: Covolution neural network
5 Chương 5: Image Recognition
6 Chương 6: Tìm hiểu mạng MobileNetV2
7 Chương 7: Xây dựng ứng dụng Plant Disease Prediction
Trang 23CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
PHẦN 2: NỘI DUNG CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
1.1 LỊCH SỬ SƠ LƯỢC VỀ DEEP LEARNING
Học sâu là một lĩnh vực con của học máy, và học máy là một lĩnh vực con của trí tuệ nhân tạo (AI) Mục tiêu trọng tâm của AI là cung cấp một tập hợp các thuật toán và
kỹ thuật được sử dụng để giải quyết các vấn đề mà con người có thể thực hiện nó một cách dễ dàng, tự động, nhưng mặt khác rất thách thức cho máy tính Một ví dụ điển hình
về một vấn đề AI như vậy là giải thích và hiểu rõ nội dung của một hình ảnh - nhiệm vụ này là điều mà con người có thể làm một cách dễ dàng với ít hoặc không cần có sự nỗ lực nào, nhưng nó đã được chứng minh là khó khăn cho máy móc để hoàn thành
Trong khi AI thể hiện một tập hợp lớn, đa dạng các công việc liên quan đến lý luận máy móc tự động (suy luận, lập kế hoạch, heuristics, v.v.), lĩnh vực học máy có xu hướng đặc biệt quan tâm đến nhận dạng mẫu và học hỏi từ dữ liệu
Mạng thần kinh nhân tạo (ANNs) là một lớp thuật toán học máy học hỏi từ dữ liệu
và chuyên nhận dạng mẫu, lấy cảm hứng từ cấu trúc và chức năng của não Học sâu thuộc về họ thuật toán ANN, và trong hầu hết các trường hợp, hai thuật ngữ có thể được
sử dụng thay thế cho nhau Lĩnh vực học sâu đã tồn tại hơn 60 năm, đi theo các tên và hóa thân khác nhau dựa trên xu hướng nghiên cứu, phần cứng và bộ dữ liệu có sẵn và các tùy chọn phổ biến của các nhà nghiên cứu nổi tiếng vào thời điểm đó
Hình 1.1.1: Mối quan hệ giữa DL, ML, AL [1]
Trang 24CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Lịch sử của mạng nơ-ron và học sâu là một lịch sử lâu dài Thực chất "học sâu" đã tồn tại từ những năm 1940 và trải qua nhiều lần thay đổi tên khác nhau, bao gồm cả thuật điều khiển học - cybernetics, chủ nghĩa kết nối - connectionism và quen thuộc nhất
là mạng thần kinh nhân tạo - Artificial Neural Networks (ANNs)
Trong khi lấy cảm hứng từ bộ não con người và cách các tế bào thần kinh của nó tương tác với nhau, ANN không có nghĩa là mô hình thực tế của não Thay vào đó, chúng là một nguồn cảm hứng, cho phép chúng ta vẽ ra sự tương đồng giữa một mô hình rất cơ bản của não và cách chúng ta có thể bắt chước một số hành vi này thông qua các mạng thần kinh nhân tạo
Mô hình mạng lưới thần kinh đầu tiên đến từ McCulloch và Pitts vào năm 1943 Mạng này là một phân loại nhị phân, có khả năng nhận ra hai loại khác nhau dựa trên một số đầu vào Vấn đề là các trọng số được sử dụng để xác định nhãn lớp cho một đầu vào nhất định cần phải được điều chỉnh thủ công bởi con người - loại mô hình này rõ ràng không mở rộng quy mô tốt nếu một người vận hành được yêu cầu can thiệp Sau đó, vào những năm 1950, thuật toán Perceptron đã được Rosenblatt ra đời -
mô hình này có thể tự động tìm hiểu trọng số cần thiết để phân loại đầu vào (không cần
sự can thiệp của con người) Một ví dụ về kiến trúc Perceptron có thể được nhìn thấy ở hình 1.1.2 Trên thực tế, quy trình huấn luyện tự động này đã hình thành cơ sở của Stochastic Gradient Descent (SGD) vẫn được sử dụng để huấn luyện các mạng thần kinh rất sâu ngày nay
Hình 1.1.2: Ví dụ về kiến trúc Perceptron [1]
Trang 25CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Trong khoảng thời gian này, các kỹ thuật dựa trên Perceptron gặp phải những phản ứng trái chiều trong cộng đồng mạng thần kinh Tuy nhiên, một chứng minh vào năm
1969 của Minsky và Papert đã trì trệ các nghiên cứu về mạng thần kinh trong gần một thập kỷ Công trình của họ đã chứng minh rằng một Perceptron với hàm kích hoạt tuyến tính (bất kể độ sâu) chỉ đơn thuần là một bộ phân loại tuyến tính, không thể giải quyết các bài toán phi tuyến Ví dụ kinh điển của một bài toán phi tuyến là bộ dữ liệu XOR trong hình 1.1.3
Hình 1.1.3: Bài toán phi tuyến trong bộ dữ liệu XOR [1]
Hơn nữa, các lập luận rằng (vào thời điểm đó) không có các tài nguyên tính toán cần thiết để xây dựng các mạng thần kinh lớn, sâu (trong nhận thức muộn màng, chúng hoàn toàn chính xác) Chỉ riêng điều này đã gần như giết chết các nghiên cứu về mạng thần kinh
May mắn thay, thuật toán backpropagation và nghiên cứu của Werbos (1974), Rumelhart (1986), và LeCun (1998) đã có thể hồi sinh các mạng thần kinh từ những gì
có thể là một sự sụp đổ sớm Nghiên cứu của họ trong thuật toán backpropagation cho phép các mạng thần kinh chuyển tiếp nhiều lớp có thể được huấn luyện (Hình 1.1.4)
Trang 26CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Hình 1.1.4: Mạng thần kinh chuyển tiếp nhiều lớp [1]
Kết hợp với các hàm kích hoạt phi tuyến, các nhà nghiên cứu giờ đây có thể tìm hiểu các chức năng phi tuyến và giải quyết bài toán XOR, mở ra cánh cổng cho một lĩnh vực nghiên cứu hoàn toàn mới trong mạng thần kinh
Thuật toán backpropagation là nền tảng của các mạng thần kinh hiện đại cho phép chúng ta huấn luyện hiệu quả các mạng thần kinh và 'dạy' chúng học hỏi từ những sai lầm của chúng Nhưng ngay cả như vậy, tại thời điểm này:
(1) máy tính chậm (so với các máy hiện đại)
(2) thiếu các bộ huấn luyện lớn, được dán nhãn, các nhà nghiên cứu đã không thể huấn luyện các mạng thần kinh có nhiều hơn hai lớp ẩn
Ngày nay, hóa thân mới nhất của các mạng thần kinh, như chúng ta biết, là học sâu Điều khiến học sâu khác biệt với các hóa thân trước đây của nó là chúng ta có phần cứng nhanh hơn, chuyên biệt hơn với dữ liệu huấn luyện có sẵn nhiều hơn Bây giờ chúng ta có thể huấn luyện các mạng với nhiều lớp ẩn hơn, có khả năng học tập phân cấp Trong đó, các khái niệm đơn giản được học ở các lớp dưới, và các mẫu trừu tượng hơn so với các lớp cao hơn của mạng
Trong nhiều ứng dụng, CNN hiện được coi là phương pháp phân loại hình ảnh mạnh nhất và hiện đang chịu trách nhiệm thúc đẩy sự tiến lên hiện đại trong các lĩnh vực thị giác máy tính
Trang 27CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Trong trường hợp không được giám sát, các thuật toán học máy cố gắng tự động khám phá và học hỏi chỉ với dữ liệu đầu vào, mà không có bất kì gợi ý Trong trường hợp này, học sinh cố gắng nhóm các câu hỏi và câu trả lời tương tự với nhau, mặc dù học sinh không biết câu trả lời chính xác là gì và giáo viên không ở đó để cung cấp cho
họ câu trả lời thực sự Học tập không giám sát rõ ràng là một vấn đề khó khăn hơn so với học tập có giám sát
Trong bối cảnh học máy được áp dụng để phân loại hình ảnh, mục tiêu của thuật toán học máy là lấy các bộ hình ảnh này và xác định các mẫu có thể được sử dụng để phân biệt các lớp/đối tượng hình ảnh khác nhau
Trước đây, chúng ta đã sử dụng các đặc trưng được thiết kế thủ công để định lượng nội dung của một hình ảnh - chúng ta hiếm khi sử dụng cường độ pixel thô làm đầu vào cho các mô hình học máy, vốn phổ biến với học sâu hiện nay Đối với mỗi hình ảnh trong bộ dữ liệu, chúng ta đã thực hiện trích xuất đặc trưng hoặc quá trình lấy hình ảnh đầu vào, định lượng nó theo một số thuật toán (được gọi là trình trích xuất đặc trưng hoặc mô tả hình ảnh) và trả về vector nhằm định lượng nội dung của hình ảnh Hình 1.2.1 mô tả quá trình định lượng một hình ảnh có chứa thuốc viên theo toa thông qua một loạt các bộ mô tả màu sắc, kết cấu và hình dạng
Trang 28CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Hình 1.2.1: Mô tả quá trình định lượng một hình ảnh thuốc viên [1]
Trong mỗi tình huống này, một thuật toán được xác định bằng tay để định lượng
và mã hóa một khía cạnh cụ thể của một hình ảnh (ví dụ: hình dạng, kết cấu, màu sắc, v.v.) Với hình ảnh đầu vào pixel, chúng ta sẽ áp dụng thuật toán được xác định bằng tay cho các pixel và đổi lại nhận được một vector đặc trưng định lượng nội dung hình ảnh - bản thân các pixel hình ảnh không phục vụ mục đích nào khác ngoài việc là đầu vào cho quá trình trích xuất đặc trưng
Học sâu, và đặc biệt là mạng thần kinh tích chập, có một cách tiếp cận khác Thay
vì xác định bằng tay một bộ quy tắc và thuật toán để trích xuất các đặc trưng từ hình ảnh, các đặc trưng này thay vào đó được tự động học hỏi từ quá trình huấn luyện
Sử dụng học sâu, chúng ta cố gắng hiểu vấn đề về mặt phân cấp các khái niệm Mỗi khái niệm được xây dựng trên những khái niệm khác Các khái niệm trong các lớp cấp thấp hơn của mạng mã hóa một số đại diện cơ bản của vấn đề, trong khi các lớp cấp cao hơn sử dụng các lớp cơ bản này để tạo thành các khái niệm trừu tượng hơn Việc học phân cấp này cho phép loại bỏ hoàn toàn quy trình trích xuất đặc trưng được thiết
kế thủ công và coi CNN là người học đầu cuối
Với một hình ảnh, chúng ta cung cấp các giá trị cường độ pixel làm đầu vào cho CNN Một loạt các lớp ẩn được sử dụng để trích xuất các đặc trưng từ hình ảnh đầu vào Những lớp ẩn này xây dựng trên nhau theo cách phân cấp Lúc đầu, chỉ có các khu vực giống như cạnh được phát hiện ở các lớp cấp thấp hơn của mạng Các vùng cạnh này được sử dụng để xác định các góc (nơi các cạnh giao nhau) và đường viền (phác thảo của các đối tượng) Kết hợp các góc và đường viền có thể dẫn đến các bộ phận, đối tượng trừu tượng trong lớp tiếp theo
Trang 29CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
Quá trình này là học tập phân cấp: mỗi lớp trong mạng sử dụng đầu ra của các lớp trước đó làm 'khối xây dựng' để xây dựng các khái niệm ngày càng trừu tượng hơn Những lớp này được học tự động - không có kỹ thuật trích xuất đặc trưng thủ công diễn
ra
1.3 THẾ NÀO LÀ “SÂU” TRONG HỌC SÂU
Câu trả lời ngắn gọn là không có sự đồng thuận giữa các chuyên gia về độ sâu của mạng được coi là sâu
Theo định nghĩa, mạng thần kinh tích chập (CNN) là một loại thuật toán học sâu Nhưng giả sử chúng ta có một CNN chỉ có một lớp phức tạp - là một mạng lưới nông cạn, nhưng vẫn thuộc về một loại thuật toán bên trong học sâu thì có được coi là 'sâu' ? Bất kỳ mạng nào có nhiều hơn hai lớp ẩn đều có thể được coi là 'sâu' Lý luận rằng dựa trên nghiên cứu trước đây về ANNs đã bị khiếm khuyết nặng nề bởi:
1 Thiếu các bộ dữ liệu huấn luyện được dán nhãn lớn sẵn có
2 Máy tính quá chậm để huấn luyện các mạng thần kinh lớn
3 Hàm kích hoạt chưa phong phú
Vì những vấn đề này, mà không thể dễ dàng huấn luyện các mạng với nhiều hơn hai lớp ẩn trong những năm 1980 và 1990 (và tất nhiên là trước đó) Trên thực tế, Geoff Hinton đã ủng hộ ý kiến này trong bài nói chuyện năm 2016 của mình, nơi ông thảo luận
về lý do tại sao các hóa thân trước đây của deep learning (ANNs) đã không cất cánh phát triển trong giai đoạn những năm 1990:
1 Bộ dữ liệu được dán nhãn quá nhỏ - hàng ngàn lần so với hiện nay,
2 Máy tính quá chậm - hàng triệu lần so với hiện nay,
3 Chúng ta đã khởi tạo các trọng số mạng một cách ngu ngốc,
4 Chúng ta đã sử dụng sai loại hàm kích hoạt phi tuyến tính
Tất cả những lý do này chỉ ra thực tế rằng huấn luyện các mạng có độ sâu lớn hơn hai lớp ẩn là vô ích, không thể tính toán Trong hóa thân hiện tại, thời thế đã thay đổi Bây giờ chúng ta có:
1 Máy tính nhanh hơn
2 Phần cứng được tối ưu hóa cao (tức là GPU)
3 Các bộ dữ liệu lớn, được dán nhãn ủa hàng triệu hình ảnh
4 Hiểu rõ hơn về chức năng khởi tạo trọng số và việc sử dụng hàm kích hoạt
Trang 30CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
5 Hàm kích hoạt vượt trội và sự hiểu biết về lý do tại sao các hàm phi tuyến trước
đó làm đình trệ nghiên cứu
Theo Andrew Ng, một trong những nhà nghiên cứu hàng đầu thế giới về học sâu nói riêng và trí tuệ nhân tạo nói chung thì "Giờ đây, chúng ta có thể xây dựng các mạng thần kinh sâu hơn và huấn luyện chúng với nhiều dữ liệu hơn." (từ bài nói chuyện năm
2013 của ông là “Deep Learning, Self-Taught Learning, and Un–supervised Feature Learning”)
Khi độ sâu của mạng tăng lên, độ chính xác phân loại cũng vậy Điều này khác với các thuật toán học máy truyền thống (ví dụ: SVM, cây quyết định, v.v.)
Hình 1.3.1: Mối quan hệ giữa độ chính xác và dữ liệu của DL, ML [1]
Hình 1.3.1 minh họa sự khác biệt đáng kể giữa các mô hình học sâu so với các mô hình truyền thống về mối quan hệ giữa dữ liệu với hiệu quả của mô hình Theo đó, khi
có ít dữ liệu, hiệu quả của các mô hình học sâu không có sự khác biệt đáng kể (thậm chí
tệ hơn) so với các mô hình truyền thống Tuy nhiên, khi có nhiều dữ liệu hơn các mô hình học sâu sẽ hiệu quả hơn hẳn các mô hình truyền thống Các mô hình học sâu càng hiệu quả khi càng có nhiều dữ liệu Ngược lại, khi dữ liệu đã nhiều đến một mức độ nhất định, việc có thêm dữ liệu không làm tăng đáng kể hiểu quả của các mô hình truyền thống Do sự tương quan thuận giữa sự hiệu quả với dữ liệu của các mô hình học sâu, người ta có xu hướng dùng chúng khi có các bộ dữ liệu lớn
1.4 TỔNG KẾT
Học sâu đã có từ những năm 1940, đi theo tên và hóa thân khác nhau dựa trên các trường phái tư tưởng khác nhau và xu hướng nghiên cứu phổ biến tại một thời điểm nhất
Trang 31CHƯƠNG 1: TÌM HIỂU DEEP LEARNING
định Về cốt lõi, học sâu thuộc về loại mạng thần kinh nhân tạo (ANNs), một tập hợp các thuật toán học các mô hình lấy cảm hứng từ cấu trúc và chức năng của não
Không có sự đồng thuận giữa các chuyên gia về chính xác điều gì làm cho mạng nơ-ron "sâu"; tuy nhiên, chúng ta biết rằng:
1 Các thuật toán học sâu học theo kiểu phân cấp và do đó xếp chồng nhiều lớp lên nhau để học các khái niệm ngày càng trừu tượng hơn
2 Một mạng phải có nhiều hơn 2 lớp ẩn mới được coi là "sâu" (đây là ý kiến đa số dựa trên nhiều thập kỷ của nghiên cứu mạng nơ-ron)
3 Một mạng có nhiều hơn 10 lớp ẩn được coi là rất sâu (mặc dù con số này sẽ thay đổi do các kiến trúc như ResNet đã được huấn luyện thành công với hơn 100 lớp ẩn)
Trang 32CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
2.1 NEURAL NETWORK LÀ GÌ
Neural là tính từ của nơ-ron, network chỉ cấu trúc, cách các nơ-ron đó liên kết với nhau, nên neural network (NN) là một hệ thống tính toán lấy cảm hứng từ sự hoạt động của các nơ-ron trong hệ thần kinh
2.2 HOẠT ĐỘNG
Nơ-ron là đơn vị cơ bản cấu tạo hệ thống thần kinh và là thành phần quan trọng nhất của não Đầu chúng ta gồm khoảng 10 triệu nơ-ron và mỗi nơ-ron lại liên kết với tầm 10.000 nơ-ron khác [2]
Hình 2.2.1 mô tả một mô hình mạng nơ-ron sinh học Theo đó, mỗi nơ-ron sinh học gồm có phần thân (soma) chứa nhân, các tín hiệu đầu vào qua sợi nhánh (dendrites)
và các tín hiệu đầu ra qua sợi trục (axon) để kết nối với các nơ-ron khác Hiểu đơn giản, mỗi nơ-ron nhận dữ liệu đầu vào qua sợi nhánh và truyền dữ liệu đầu ra qua sợi trục, đến các sợi nhánh của các nơ-ron khác
Hình 2.2.1: Mô hình mạng nơ-ron sinh học [2]
Mỗi nơ-ron nhận xung điện từ các nơ-ron khác qua sợi nhánh Nếu các xung điện này đủ lớn để kích hoạt nơ-ron, tín hiệu này đi qua sợi trục đến các sợi nhánh của các nơ-ron khác
Mạng Nơron nhân tạo (Artificial Neural Network- ANN) là mô hình xử lý thông tin được lấy cảm hứng dựa trên cách hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các nơ-ron được gắn kết để xử lý thông tin ANN được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri
Trang 33CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data)
Nó được tạo nên từ một số lượng lớn các phần tử (nơ-ron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó Để được coi là một ANN thì nó phải chứa cấu trúc đồ thị có hướng,
có nhãn trong đó mỗi nút trong đồ thị thực hiện một số tính toán đơn giản
Tuy nhiên, NN không phải bắt chước toàn bộ các chức năng của não bộ, mà chỉ là lấy cảm hứng từ não bộ và cách nó hoạt động Việc của chúng ta dùng mô hình đấy đi giải quyết các bài toán chúng ta cần
Kiến trúc của một neural network được mô tả ở hình 2.2.2
Hình 2.2.2: Kiến trúc một mạng thần kinh [2]
Layer đầu tiên là input layer, các layer ở giữa được gọi là hidden layer, layer cuối cùng được gọi là output layer Các hình tròn được gọi là node
Mỗi mô hình luôn có 1 input layer, 1 output layer, có thể có hoặc không các hidden layer Tổng số layer trong mô hình được quy ước là số layer – 1 (không tính input layer) Mỗi node trong hidden layer và output layer:
Liên kết với tất cả các node ở layer trước đó với các hệ số w riêng
Có 1 hệ số bias b riêng
Trang 34CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
Được định trị bằng 2 bước: tính tổng tuyến tính (của các trọng số w với output của các node tương ứng ở layer trước đó cộng với bias) và áp dụng activation function
2.3 QUÁ TRÌNH XỬ LÍ
Hình 2.3.1: Quá trình xử lí thông tin của một NN [3]
Quá trình xử lí thông tin của một NN được biểu diễn như hình 2.3.1 với các yếu tố sau:
Inputs (dữ liệu vào): Mỗi input tương ứng với 1 thuộc tính (attribute) của dữ liệu (patterns)
Output (kết quả): Kết quả của một ANN là một giải pháp cho một vấn đề
Connection weights (trọng số liên kết): Đây là thành phần rất quan trọng của một ANN, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối với quá trình
xử lý thông tin (quá trình chuyển đổi dữ liệu từ layer này sang layer khác) Quá trình học (learning processing) của ANN thực ra là quá trình điều chỉnh các trọng số (weight) của các input data để có được kết quả mong muốn các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng
Summation function (hàm tổng): Tính tổng trọng số của tất cả các input được đưa vào mỗi nơ-ron Hàm tổng của một nơ-ron đối với n input được tính theo công thức sau:
Trang 35CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
𝐘 = ∑ 𝐗𝐢𝐖𝐢𝐧
sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo Đôi khi thay vì sử dụng transfer/activation function, ta có thể sử dụng giá trị ngưỡng (threshold value) để kiểm soát các output của các nơ-ron tại một layer nào đó trước khi chuyển các output này đến các layer tiếp theo Nếu output của một nơron nào đó nhỏ hơn giá trị ngưỡng thì nó sẽ không được chuyển đến layer tiếp theo
2.4 HÀM KÍCH HOẠT
Activation function là 1 thành phần rất quan trọng của neural network Nó quyết định khi nào thì 1 nơ-ron được kích hoạt hoặc không Liệu thông tin mà nơ-ron nhận được có liên quan đến thông tin được đưa ra hay nên bỏ qua
𝒀 = 𝑨𝒄𝒕𝒊𝒗𝒂𝒕𝒊𝒐𝒏((𝒘𝒆𝒊𝒈𝒉𝒕 ∗ 𝒊𝒏𝒑𝒖𝒕) + 𝒃𝒊𝒂𝒔) (2.4 1)
Trong đó weight là trọng số của đường nối
Activation function là 1 phép biến đổi phi tuyến tính mà chúng ta thực hiện đối với tín hiệu đầu vào Đầu ra được chuyển đổi sẽ được sử dụng làm đầu vào của nơ-ron layer tiếp theo
Nếu không có activation function thì weight và bias chỉ đơn giản như 1 hàm biến đổi tuyến tính và khó giải quyết được những vấn đề phức tạp Một mạng nơ-ron nếu không có activation function thì cơ bản chỉ là 1 mô hình hồi quy tuyến tính Activation
Trang 36CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
function thực hiện việc biến đổi phi tuyến tính với đầu vào làm việc học hỏi và còn thực hiện những nhiệm vụ phức tạp hơn như dịch ngôn ngữ hoặc phân loại ảnh là khả thi Activation function hỗ trợ back-propagation (lan truyền ngược) với việc cung cấp các lỗi để có thể cập nhật lại các weight và bias, việc này giúp mô hình có khả năng tự hoàn thiện
Một số hàm kích hoạt phổ biến:
2.4.1 Hàm sigmoid
Hàm sigmoid còn được gọi là đường cong sigmoid Đây là một hàm toán học có đặc trưng là đường cong hình chữ S Nó thể hiện cho sự biến đổi các giá trị giữa phạm
vi 0 và 1 Là một trong những hàm kích hoạt (activation function) phi tuyến tính được
sử dụng rộng rãi Công thức của hàm sigmoid:
Trang 37CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
Hàm sigmoid sẽ nhận input là một số thực và thực hiện các công việc như hình 2.4.1 như sau:
• Nếu biến đầu vào là âm, hàm sigmoid sẽ chuyển thành một số gần với 0
• Với đầu vào là dương, hàm sigmoid sẽ chuyển thành một số gần với 1
• Nếu trường hợp là gần 0 hoặc là số 0, hàm sigmoid sẽ chuyển thành một số bất
kì từ 0 đến 1
2.4.2 Hàm tanh
Hàm tanh tương tự như hàm sigmoid Nhưng khác nhau là hàm tanh đối xứng nhau quanh điểm gốc Phạm vi giá trị trong trường hợp này là từ -1 đến 1 như trong hình 2.4.2 biểu diễn
Trang 38CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
Hàm tanh được sử dụng nhiều hơn so với hàm sigmoid trong các ứng dụng về big data vì đạo hàm của hàm tanh thường có giá trị lớn hơn đạo hàm của hàm sigmoid, do
đó độ dốc của hàm tanh cũng lớn hơn
Hàm tanh thường được sử dụng trong các lớp ẩn của mạng nơ-ron vì các giá trị của nó nằm trong khoảng từ -1 đến 1 Do đó giá trị trung bình của lớp ẩn xuất hiện sẽ nằm trong khoảng giữa là 0 hoặc rất gần với nó
Với việc đưa giá trị trung bình về gần 0, nó sẽ giúp căn giữa dữ liệu, làm cho việc học lớp tiếp theo dễ dàng hơn nhiều
2.4.3 Hàm RELU
ReLU (Rectified Linear Units, f (x) = max (0, x)) là hàm kích hoạt phổ biến nhất cho CNN ở thời điểm hiện tại, được giới thiệu bởi Geoffrey E Hinton năm 2010 Trước khi hàm ReLU được áp dụng thì những hàm như sigmoid hay tanh mới là những hàm được sử dụng phổ biến Hàm ReLU được ưa chuộng vì tính toán đơn giản, cải thiện một
số hạn chế của mạng, và cũng cho kết quả huấn luyện tốt hơn Sự tăng tốc này được cho
là vì ReLU được tính toán gần như tức thời và gradient của nó cũng được tính cực nhanh với gradient bằng 1 nếu đầu vào lớn hơn 0, bằng 0 nếu đầu vào nhỏ hơn 0 ReLU cũng như những hàm kích hoạt khác, được đặt ngay sau tầng convolution
Hình 2.4.3: Kết quả chuyển đổi hàm ReLU [6]
Trang 39CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
Hoạt động ReLU có thể được hiểu rõ ràng ở hình 2.4.4 Nó cho thấy hoạt động ReLU được áp dụng cho một trong các feature map Feature map đầu ra ở đây còn được gọi là ‘Rectified’ Feature map [4]
Hình 2.4.4: Cách hoạt động hàm ReLU [6]
Theo hình 2.4.5, nếu có bất cứ nơi nào có số âm, ReLU sẽ hoán đổi số đó với 0
Nó giúp các giá trị đã được học khỏi bị mắc kẹt gần 0 hoặc bị đưa về vô tận Đây là hàm không tuyến tính và không có đạo hàm tại x = 0 Tuy nhiên trong tính toán đạo hàm của ReLU tại x = 0 được ngầm định bằng 0 hoặc 1 Nó có công thức:
𝒇′(𝒙) = {𝟎, 𝒙 < 𝟎
𝟏, 𝒙 ≥ 𝟎 (2.4 4)
Trang 40CHƯƠNG 2: ARTIFICIAL NEURAL NETWORK
Hàm ReLU được sử dụng khá nhiều trong việc huấn luyện các mạng nơ-ron ReLU đơn giản lọc các giá trị < 0 như hình 2.4.3 Hàm ReLU có những ưu điểm vượt trội so với sigmoid và tanh:
• Tốc độ hội tụ nhanh hơn hẳn ReLU có tốc độ hội tụ nhanh gấp 6 lần hàm tanh
• Tính toán nhanh hơn Tanh và sigmoid sử dụng hàm epxilon và công thức phức tạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi phí hơn để tính toán
Bên cạnh đó còn có những nhược điểm:
• Khi các node có giá trị nhỏ hơn 0, qua ReLU activation sẽ thành 0, hiện tượng đấy gọi là “dying ReLU” Nếu các node bị chuyển thành 0 thì sẽ không có ý nghĩa với bước linear activation ở lớp tiếp theo và các hệ số tương ứng từ node đấy cũng không được cập nhật với gradient descent => leaky ReLU ra đời
• Khi learning rate lớn, các trọng số (weights) có thể thay đổi theo cách làm tất cả nơ-ron dừng việc cập nhật
Ngoài leaky ReLU còn có hàm PReLU khá nổi tiếng của hàm ReLU PreLU tương
tự như hàm leaky ReLU nhưng cho phép nơ-ron tự chọn hệ số α tốt nhất