1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng học sâu cho bài toán nhận diện ảnh

118 3 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng Học sâu cho Bài toán Nhận diện Ảnh
Tác giả Trần Như Thuận, Lương Uy Long
Người hướng dẫn ThS. Quách Đình Hoàng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Kỹ Thuật Dữ Liệu
Thể loại Đề Tài
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 118
Dung lượng 8,56 MB

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

Nội dung

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 2

TRƯỜ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 5

LỜ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 6

LỜ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 7

Trườ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 8

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 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 10

1

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 11

3.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 12

3

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 13

DANH 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 14

5

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 16

7

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 17

Hì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 18

9

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 19

MỞ ĐẦ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 20

MỞ ĐẦ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 22

MỞ ĐẦ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 23

CHƯƠ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 24

CHƯƠ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 25

CHƯƠ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 26

CHƯƠ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 27

CHƯƠ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 28

CHƯƠ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 29

CHƯƠ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 30

CHƯƠ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 31

CHƯƠ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 32

CHƯƠ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 33

CHƯƠ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 34

CHƯƠ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 35

CHƯƠ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 36

CHƯƠ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 37

CHƯƠ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 38

CHƯƠ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 39

CHƯƠ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 40

CHƯƠ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

Ngày đăng: 15/05/2023, 15:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Adrian Rosebrock, "Deep Learning for Computer Vision with Python.", PyImageSearch.com, (9/2017) Sách, tạp chí
Tiêu đề: Deep Learning for Computer Vision with Python
Tác giả: Adrian Rosebrock
Nhà XB: PyImageSearch.com
Năm: 2017
[4]. Nguyễn Văn Chức, “Tổng quan về Mạng Neuron (Neural Network)”, BIS, (12/6/2011), http://bis.net.vn/forums/t/482.aspx, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Tổng quan về Mạng Neuron (Neural Network)
Tác giả: Nguyễn Văn Chức
Nhà XB: BIS
Năm: 2011
[8]. P. X. Trí, N. V. Khoa, "Phân biệt một số bài toán trong lĩnh vực Computer Vision", AI Club Tutorials, (28/04/2020), http://tutorials.mmlab.uit.edu.vn/index.php/2020/04/28/phan-biet-bai-toan-trong-cv/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Phân biệt một số bài toán trong lĩnh vực Computer Vision
Tác giả: P. X. Trí, N. V. Khoa
Nhà XB: AI Club Tutorials
Năm: 2020
[10]. CS231n Stanford, (2017), “Convolutional Neural Networks for Visual Recognition”, https://cs231n.github.io/convolutional-networks/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Convolutional Neural Networks for Visual Recognition
Tác giả: CS231n Stanford
Năm: 2017
[11]. Trung Đức, “Transfer Learning và bài toán Face Recognition” , (27/08/2021), https://viblo.asia/p/transfer-learning-va-bai-toan-face-recognition-3Q75w7xD5Wb, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Transfer Learning và bài toán Face Recognition
Tác giả: Trung Đức
Năm: 2021
[12]. Dr. Info Sec, “VGG-19 Convolutional Neural Network”, Machine learning blog, (6/5/2021), https://blog.techcraft.org/vgg-19-convolutional-neural-network/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: VGG-19 Convolutional Neural Network
Tác giả: Dr. Info Sec
Nhà XB: Machine learning blog
Năm: 2021
[13]. Darkedeneurope, “Vgg16 Là Gì” , (25/4/2021), https://darkedeneurope.com/vgg16-la-gi/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Vgg16 Là Gì
Tác giả: Darkedeneurope
Năm: 2021
[14]. Filegi, "Image Recognition", Filegi.com, https://filegi.com/tech-term/image-recognition-10277/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: Image Recognition
Tác giả: Filegi
Nhà XB: Filegi.com
[15]. Hải Đăng, “Sơ lược về Transfer Learning”, dlapplications, (15/7/2018), https://dlapplications.github.io/2018-07-15-Transfer-Learning-Basic/#first, (truy cập lần cuối Sách, tạp chí
Tiêu đề: Sơ lược về Transfer Learning
Tác giả: Hải Đăng
Nhà XB: dlapplications
Năm: 2018
[16]. Jason Brownlee, “A Gentle Introduction to Object Recognition with Deep Learning”, Machine Learning Mastery, (22/5/2019), https://machinelearningmastery.com/object-recognition-with-deep-learning/, (truy cập lần cuối: 24/6/2022) Sách, tạp chí
Tiêu đề: A Gentle Introduction to Object Recognition with Deep Learning
Tác giả: Jason Brownlee
Nhà XB: Machine Learning Mastery
Năm: 2019
[3]. Nawapi, “Giới thiệu tổng quan về Mạng Nơron nhân tạo (Artificial Neural Network-ANN)”, http://nawapi.gov.vn/index.php?option=com_content&amp;view=article&amp;id=3238%3Agii-thiu-tng-quan-v-mng-nron-nhan-to-artificial-neural-network-ann&amp;catid=70%3Anhim-v-chuyen-mon-ang-thc-hin&amp;Itemid=135&amp;lang=vi, (truy cập lần cuối: 24/6/2022) Link
[5]. Viet Anh Nguyen, “Các hàm kích hoạt (activation function) trong neural network”, AICurious, (23/9/2019), https://aicurious.io/posts/2019-09-23-cac-ham-kich-hoat-activation-function-trong-neural-networks/, (truy cập lần cuối: 24/6/2022) Link
[6]. Karn Ujjwal, “An Intuitive Explanation of Convolutional Neural Networks”, The data science blog, (11/8/2016), https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/, (truy cập lần cuối: 24/6/2022) Link
[7]. Pham Van Chung, "[Deep Learning] Tìm hiểu về mạng tích chập (CNN)", Viblo, (12/10/2020), https://viblo.asia/p/deep-learning-tim-hieu-ve-mang-tich-chap-cnn-maGK73bOKj2, (truy cập lần cuối: 24/6/2022) Link
[9]. Datawow, “Interns Explain CNN”, Datawow blog, (17/6/2020), https://datawow.io/blogs/interns-explain-cnn-8a669d053f8b, (truy cập lần cuối: 24/6/2022) Link
[18]. Chi–Feng Wang, “A Basic Introduction to Separable Convolutions”, Towards Data Science, (13/08/2018), https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728, (truy cập lần cuối: 24/6/2022) Link
[21]. Pham Duy Tung, “Tìm hiểu mạng MobileNetV1” , (25/5/2019), https://www.phamduytung.com/blog/2019-05-26-mobilenetv1/, (truy cập lần cuối: 24/6/2022) Link
[22]. StudyIT Administrator, “[Tâm Lý AI 01 - NET of CNN] MobileNETs là gì? Liệu bạn có hiểu và yêu nó?”, blogstudyIT, (28/10/2020), https://blog.studyit.dev/2020/10/tam-ly-ai-01-net-of-cnn-mobilenets-la.html, (truy cập lần cuối: 24/6/2022) Link
[25]. Mark Sandler et al., “MobileNetV2: Inverted Residuals and Linear Bottlenecks”, In Proceedings of the IEEE conference on computer vision and pattern recognition (21/4/2019), (pp. 4510- 4520), https://arxiv.org/pdf/1801.04381.pdf Link
[29]. Princy Sultania, “Malaria Detection using Transfer Learning”, (29/6/2020), Medium, https://medium.com/@princyjune66/malaria-detection-using-transfer-learning-7cb5798a7f30, (truy cập lần cuối: 24/6/2022) Link

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm