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
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC
SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ
MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT DỰ LIỆU
ỨNG DỤNG HỌC SÂU CHO BÀI TOÁN NHẬN DIỆN ẢNH
GVHD: ThS QUÁCH ĐÌNH HOÀNG SVTH: TRẦN NHƯ THUẬN
LƯƠNG UY LONG
SKL009500
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
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
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
3 Khuyết đ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
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
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:
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êncứ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ànhPhố 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ầyQuá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úngtô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 ghinhớ để 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.HCMKhoa : 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 : 18133026Thời gian làm luận văn : từ : 04/03/2022 Đến : 08/07/2022
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.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áo1 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
1 04/03/2022 Tìm hiểu và lựa chọn đề tài cho khoá
Trang 9 Tìm hiểu tổng quan về các hàm kíchhoạt.
Tìm hiểu ảnh kỹ thuật số trong máytính
Tìm hiểu về image recognition,transfer learning và mobileNet cũngnhư mobileNetV2
Tìm hiểu về kiến trúc mô hình VGG
và ResNet trong việc huấn luyện, cácframework để xây dựng ứng dụng
3 17/05/2022 Ứng dụng học sâu trong nhận diện để
– xây dựng demo nhỏ, cụ thể là ứng
19/06/2022 dụng nhận dạng loại bệnh hại cây
trồng thông qua lá
Tiến hành viết báo cáo sơ bộ
4 20/06/2022 Tổng hợp, chỉnh sửa cũng như hoàn
– thiện báo cáo cuối cùng
08/07/2022 Chuẩn bị thuyết trình cũng như phần
trình bày trước các giảng viên
Ý kiến giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
Ngày tháng năm 2021
Người viết đề cương
Trần Như Thuận Lương Uy Long
Trang 10MỤ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 126.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 14DANH MỤC CÔNG THỨC
( ) 26
( ) 26
( ) 27
( ) 28
( ) 30
( ) 31
( ) 32
( ) 39
5
Trang 15DANH 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 16Hì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 18DANH 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 Mạng nơ-ron tích chập dựa
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à deeplearning 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ầungà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ươngphá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ệutrang 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 NeuralNetworks) 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ânloại ngữ nghĩa, nhận dạng giọng nói, phân loại video, và GAN (GenerativeAdversarial Networks) được dùng để hướng tới việc sinh ra dữ liệu mới sau quá trìnhhọ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 haynhữ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êncứ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 nhanhchó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áthiệ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ươngphá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ậndạng hình ảnh đã giải quyết được nhiều vấn đề trong đời sống và xã hội ImageRecognition đượ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ạngkhuô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ạohashtag 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ủaImage Recognition của deep learning có hiệu quả cao và mang lại sự cải thiện hoànhảo cho xã hội Vì vậy, chúng tôi dùng kiến trúc VGG – MobileNet – ResNet thuộcImage Recognition của deep learning cho đề tài này với mong muốn sẽ cho được sảnphẩ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 nhanhchó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ệnhhại để xử lý cho cây trồng
nguyên lý hoạt động của kiến trúc VGG – MobileNet – ResNet
và mang bệnh hại khác nhau
6 Bố cục của bài báo cáo
Trang 22MỞ ĐẦ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
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
1 Kết quả đạt được
1.1 Ý nghĩa khoa học1.2 Ý nghĩa thực tiễn
2 Hạn chế
3 Hướng phát triển
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ộtvấ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ọcsâ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áctê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ộcnhấ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ôngqua 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ênmộ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ôngcần sự can thiệp của con người) Một ví dụ về kiến trúc Perceptron có thể được nhìnthấ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ạngthầ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ữngphản ứng trái chiều trong cộng đồng mạng thần kinh Tuy nhiên, một chứng minh vàonăm 1969 của Minsky và Papert đã trì trệ các nghiên cứu về mạng thần kinh trong gầnmộ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ạttuyế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ảiquyế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ệuXOR 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áncầ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únghoà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ạngthầ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 chophé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ìmhiể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ộtlĩ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 chophé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:
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ọcsâ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âygiờ 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ậpphâ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ừutượ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 ảnhmạ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ĩnhvự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ự độngkhá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ườnghợ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 sovớ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ậttoá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 để địnhlượ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ỗihì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ấyhì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 toathô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ằngtay 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à đầuvà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ớpcấ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ớpcấ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 đượcthiế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 choCNN 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 đầuvà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áckhu 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ùngcạ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áclớ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ôngdiễ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âucủ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ôngcạ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ậnrằng dựa trên nghiên cứu trước đây về ANNs đã bị khiếm khuyết nặng nề bởi:
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ơnhai 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 ôngthảo luận về lý do tại sao các hóa thân trước đây của deep learning (ANNs) đã khôngcất cánh phát triển trong giai đoạn những năm 1990:
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ớnhơ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ó:
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ếntrướ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âunó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ácmạ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óichuyệ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ácvớ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ơncá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ọcsâ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ộtmứ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áctrườ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ớinhau, 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ọngnhấ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ớitầ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 sinhhọ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 raqua 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ệnnà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ácnơ-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 (unseendata)
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ôngqua 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ộtvấ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ảnTuy 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
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 outputcủ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ủamộ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ởitạ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 đưavà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
vi đầu ra của mỗi nơ-ron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng
Kết quả xử lý tại các nơ-ron (output) đôi khi rất lớn, vì vậy transfer function được
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 outputnà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ưỡngthì 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 đốivớ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ơ-ronlayer 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ếukhông có activation function thì cơ bản chỉ là 1 mô hình hồi quy tuyến tính Activation
26
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ựchiệ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ấpcá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:
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ứngnhau quanh điểm gốc Phạm vi giá trị trong trường hợp này là từ -1 đến 1 như tronghình 2.4.2 biểu diễn
− ( ) = + (2.4.3)
Hoặc được biểu diễn theo hàm sigmoid:
( ) = ( )( − )′( ) = − ( )
Hình 2.4.2: Đồ thị hàm tanh và đạo hàm [5]
28
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ề bigdata 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ệchọ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 choCNN ở thời điểm hiện tại, được giới thiệu bởi Geoffrey E Hinton năm 2010 Trước khihà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 gradientbằ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àmkí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 độngReLU đượ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 đạohàm của ReLU tại x = 0 được ngầm định bằng 0 hoặc 1 Nó có công thức:
′( ) = { , <
, ≥
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ượttrội so với sigmoid và tanh:
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:
đấ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ớibướ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
Leaky ReLU có một độ nghiêng có độ dốc nhỏ trong vùng giá trị âm, vì vậy nó cho phép lan truyền ngược, kể cả khi input âm như hình 2.4.6
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