1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tốt nghiệp Khoa học máy tính: Nhận dạng biển báo nguy hiểm

63 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề NHẬN DẠNG BIỂN BÁO NGUY HIỂM
Tác giả Trần Đăng Khoa
Người hướng dẫn ThS. Vương Bỏ Thịnh
Trường học ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
Chuyên ngành Khoa học & Kỹ thuật máy tính
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2021
Thành phố TP.HCM
Định dạng
Số trang 63
Dung lượng 1,5 MB

Nội dung

Trong đó, mỗi đầu vào sẽ một trọng số tương ứng để tính toán, sau đó cộng tất cả các tích của đầu vào và trọng số, đem kết quả đóqua hàm phi tuyến tính để đầu ra là một đại lượng vô hướn

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc

-Ngày 11 tháng 08 năm 2021

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người phản biện)

1 Họ và tên SV: TRẦN ĐĂNG KHOA

2 Đề tài: NHẬN DẠNG BIỂN BÁO NGUY HIỂM

3 Họ tên người phản biện: TRẦN GIANG SƠN

4 Tổng quát về bản thuyết minh:

6 Những ưu điểm chính của LVTN:

- Sinh viên đã tìm hiểu những kiến thức cơ sở để thực hiện luận văn như mạng nơ-ron (ANN), mạng nơ-ron tích chập (CNN), mạng EfficientNet.

- Sinh viên đã tìm hiểu một số công nghệ phục vụ cho việc hiện thực luận văn như ngôn ngữ lập trình Python cùng với các Framework và thư viện như TensorFlow, Keras, OpenCV.

- Đã đề xuất mô hình giải quyết bài toán nhận dạng biển báo nguy hiểm là mô hình học sâu sử dụng Fine-tuning với EfficientNet.

- Tạo và làm giàu tập dữ liệu các loại biển báo nguy hiểm thông dụng Kết quả nhận dạng tương đối khả quan.

7 Những thiếu sót chính của LVTN:

- Kết quả chưa đủ tốt để có thể ứng dụng trong thực tế.

- Thu thập nhiều dữ liệu hơn, nên tiền xử lý dữ liệu đầu vào.

- Có thể cải tiến mô hình hoặc lựa chọn một mô hình khác, để nâng cao độ chính xác.

8 Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ 

9 3 câu hỏi SV phải trả lời trước Hội đồng:

- Em hãy đề xuất phương án để làm tăng độ chính xác khi nhận dạng biển báo.

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm : 8.5 /10

Ký tên (ghi rõ họ tên)

Trần Giang Sơn

Trang 4

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

——————– * ———————

LUẬN VĂN TỐT NGHIỆP

NHẬN DẠNG BIỂN BÁO NGUY HIỂM

Giảng viên hướng dẫn : ThS Vương Bá Thịnh

Giảng viên phản biện : ThS Trần Giang Sơn

Sinh viên thực hiện : Trần Đăng Khoa - 1620031

Ngày 26 tháng 07 năm 2021

Trang 5

Lời cam đoan

Em cam đoan mọi điều được trình bày trong báo cáo, cũng như mã nguồn

là do tự bản thân thực hiện - trừ các kiến thức tham khảo có trích dẫn cũng như

mã nguồn mẫu do chính nhà sản xuất cung cấp, hoàn toàn không sao chép từ bất

cứ nguồn nào khác Nếu lời cam đoan trái với sự thật, em xin chịu mọi trách nhiệmtrước Ban Chủ Nhiệm Khoa và Ban Giám Hiệu Nhà Trường

Sinh viên thực hiện đề tài

Trang 6

Lời cảm ơn

Lời đầu tiên em xin gửi lời cảm ơn đến tập thể thầy cô giáo trường Đại HọcBách Khoa TP.HCM đã giảng dạy và cung cấp các tri thức cũng như kinh nghiệmtrong quá trình học tập Đặc biệt, em muốn gửi lời cảm ơn chân thành đến ngườithầy hướng dẫn trực tiếp cho em là ThS.Vương Bá Thịnh Người đã dìu dắt vàmang đến những kiến thức, định hướng và tài liệu hướng dẫn trong suốt quá trình

em làm đề tài

Ngoài ra, em xin cám ơn đến gia đình, người thân và bạn bè luôn giúp đỡ

và cổ vũ tinh thần để em đủ nghị lực và sức khỏe để hoàn thành tốt giai đoạn cuốicùng của luận văn

Mặc dù đã hoàn thành luận văn tốt nghiệp nhưng chắc chắn còn nhiềuthiếu sót,em rất mong nhận được ý kiến đóng góp của thầy, cô để hoàn thiện vàphát triển đề tài Để có thể làm tài liệu tham khảo có ích cho thế hệ sinh viên sau

Lời cuối cùng, em xin gửi lời cảm ơn, lời chúc sức khỏe tốt đẹp và cảm ơnchân thành đến thầy Vương Bá Thịnh, những người đồng hành cùng em trongsuốt những năm học tại trường Đại Học Bách Khoa TP.HCM

Trận trọng

Sinh viên thực hiện đề tài

Trang 7

Tóm tắt

Việc lưu kho các hóa chất độc hại, các sản phẩm nguy hiểm cần được đặt ở khuvực riêng biệt tránh nhầm lẫn với các sản phẩm thông dụng trong kho là một việclàm cần thiết và tuân thủ nghiêm ngặt Vì thế nhận diện các biển cảnh báo trêncác container hay các nhãn cảnh báo trên các sản phẩm một cách tự động là mộtnhu cầu cần thiết của các doanh nghiệp kho bãi, đặc biệt là các doanh nghiệp cókho Fulfillment

Đề tài sử dụng mã nguồn Python và các thư viện như Keras, Numpy, OpenCV,EfficientNet Cũng như các máy tính được cung cấp bởi Google Colab giúp pháttriển và train model

Trang 8

Mục lục

Lời cam đoan

Danh Sách Hình Vẽ vii

Thuật ngữ & từ viết tắt ix

1.1 Về kiến thức 1

1.2 Về sản phẩm 1

1.3 Giai đoạn thực hiện 1

1.4 Giới hạn đề tài 1

2 Cơ sở lý thuyết 3 2.1 Artificial neural network (ANN) 3

2.1.1 Nguyên lý hoạt động 3

2.1.2 Kiến trúc tổng quát của mạng neuron nhân tạo (ANN) 5

2.1.3 Các công thứ toán học 6

Trang 9

Mục lục

2.1.4 Các hàm kích hoạt phi tuyến tính phổ biến 7

2.1.5 Hàm phân số xác suất Softmax 10

2.1.6 Hàm mất mát Categorical Cross-entropy 10

2.1.7 Các kỹ thuật tránh Overfiting 10

2.2 Convolutional Neural Network (CNN) 12

2.2.1 Convolution trong xử lý ảnh 12

2.2.2 Định nghĩa Convolutional Neural Network (CNN) 13

2.2.3 Các khái niệm của mạng CNN 14

2.2.4 Cấu trúc của mạng CNN 16

2.2.5 Convolutional Layer 18

2.2.6 Pooling Layer 21

2.3 Các mạng CNN nổi tiếng 21

2.3.1 EfficientNet 23

2.3.2 Kiến trúc mô hình EfficientNet-B0 27

2.4 Transfer Learning 32

2.4.1 Fine tuning 32

3 Công trình liên quan 36 3.1 Giới thiệu 36

3.2 Các nghiên cứu liên quan 36

3.2.1 Plant leaf disease classification using EfficientNet deep learn-ing model [? ] 36

4 Mô hình đề xuất cho bài toán 41 4.1 Kiến trúc mô hình 41

4.1.1 Mô hình học sâu sử dụng Fine-tuning với EfficientNet 41

4.1.2 Tập dữ liệu 42

4.1.3 Tiến hành thực nghiệm 42

Trang 10

Mục lục

4.1.4 Kết quả thực nghiệm 43

5 Công nghệ sử dụng 44 5.1 Ngôn ngữ lập trình Python 44

5.2 Framework và Thư viện 45

5.2.1 Tensorflow 45

5.2.2 Keras 45

5.2.3 OpenCV 45

5.3 Công cụ Jupyter NoteBook 46

6 Tổng kết 47 6.1 Kết quả đạt được 47

6.2 Hạn chế và cải tiến trong tương lai 47

6.2.1 Hạn chế 47

6.2.2 Cải tiến trong tương lai 48

Tài liệu tham khảo 49

Trang 11

Danh sách hình vẽ

2.1 Mạng neuron não bộ con người [4] 3

2.2 Mạng neuron nhân tạo [1] 4

2.3 Kiến trúc mạng neuron nhân tạo 5

2.4 Mô hình tính toán trong một neuron 6

2.5 Hàm kích hoạt phi tuyến Sigmoid [1] 8

2.6 Hàm kích hoạt phi tuyến Tanh [1] 9

2.7 Hàm kích hoạt phi tuyến ReLU [1] 9

2.8 Mạng neuron ban đầu và Mạng neuron sau khi Dropout 12

2.9 Convolutional trong xử lý ảnh 13

2.10 Minh họa kiến trúc của một CNN 14

2.11 Minh họa Vanishing Gradient 16

2.12 Cấu trúc một mạng CNN đơn giản 17

2.13 Tính chất liên kết cục bộ của tầng Convolutionl 19

2.14 Ví dụ cách tính kích thước output volume 20

2.15 Mô phỏng tính toán của Pooling layer với MaxPooling 21

2.16 Mô tả mở rộng mạng CNN theo 3 hướng [5] 23

2.17 Mở rộng theo 3 hướng: Độ rộng, độ sâu và độ phân giải 24

2.18 Mở rộng tổ hợp - Compound Scaling 26

2.19 Một phần kiến trúc EfficientNet-B0 28

2.20 Stem module trong EfficientNet-B0 28

Trang 12

Danh sách hình vẽ

2.21 Final module trong EfficientNet-B0 29

2.22 Sub module 1 trong EfficientNet-B0 29

2.23 Sub module 2 trong EfficientNet-B0 29

2.24 Sub module 3 trong EfficientNet-B0 29

2.25 Sub module 4 trong EfficientNet-B0 30

2.26 Sub module 5 trong EfficientNet-B0 30

2.27 Module 1, Module 2 và Module 3 trong EfficientNet-B0 31

2.28 Mô hình kiến trúc EfficientNet-B0 31

2.29 Mô tả kỹ thuật Fine-tuning 33

2.30 Mô tả kỹ thuật Fine-tuning giai đoạn 1 34

2.31 Mô tả kỹ thuật Fine-tuning giai đoạn 2 35

3.1 Tập dữ liệu được sử dụng trong mô hình phân loại lá cây 37

3.2 Mô hình EfficientNet trong phân loại lá cây 38

4.1 Mô hình học sâu sử dụng Fine-tuning với EfficientB2 41

4.2 Tập dữ liệu cho mô hình fine-tuning với EfficientNetB2 42

Trang 13

Danh sách bảng

2.1 EfficientNet-B0 baseline network 27

3.1 Bảng chia tỷ lệ Train - Validation - Test trong phân loại lá cây 37

3.2 Các HyperParameters trong mô hình phân loại lá cây 38

3.3 Kết quả trung bình 12 mô hình với tập dữ liệu gốc 39

3.4 Kết quả trung bình 12 mô hình với tập dữ liệu đã làm giàu 40

4.1 Chia tập dữ liệu cho mô hình fine-tuning với EfficientNet 42

4.2 Kết quả thực nghiệm giữa các mô hìnhh 43

Trang 14

Thuật ngữ & từ viết tắt

ANN - Artificial Neural Network

CNN - Convolutional Neural Network

ConvNets - Convolutional Neural Networks

Trang 15

• Xây dựng bộ dữ liệu từ tập dữ liệu có sẵn.

1.3 Giai đoạn thực hiện

• Nghiên cứu mô hình phân loại với EfficientNetB0, EfficientNetB1, NetB2, EfficientNetB3, EfficientNetB4, EfficientNetB5

Efficient-1.4 Giới hạn đề tài

Do giới hạn về thời gian và nhân lực, em chỉ mới nghiên cứu – khảo sát những vấn

đề cốt lõi trong việc nhận diện các biển cảnh báo Các vấn đề hiệu năng tính toán

Trang 16

1.4 Giới hạn đề tài

hay áp dụng thực thế ở doanh nghiệp còn cần nhiều điều chỉnh và thay đổi chophù hợp trong giai đoạn tiếp theo

Trang 17

dự đoán các dữ liệu chưa biết.

Hình 2.1: Mạng neuron não bộ con người [4]

Trang 18

2.1 Artificial neural network (ANN)

Cũng như cấu trúc não bộ con người, mạng neuron nhân tạo xem mỗi neuron làmột đơn vị tính toán có đầu vào và đầu ra, một neuron có thể nhận nhiều đầu vào

và cho ra một kết quả duy nhất Trong đó, mỗi đầu vào sẽ một trọng số tương ứng

để tính toán, sau đó cộng tất cả các tích của đầu vào và trọng số, đem kết quả đóqua hàm phi tuyến tính để đầu ra là một đại lượng vô hướng Và cứ tiếp tục nhưthế sẽ thu được một mạng lưới với đầu ra của neuron sẽ trở thành đầu vào củanhiều neuron khác Từ đó, mạng neuron nhân tạo có thể tính toán gần chính xácbất cứ hàm toán học nào

Hình 2.2: Mạng neuron nhân tạo [1]

Trang 19

2.1 Artificial neural network (ANN)

(ANN)

Hình 2.3: Kiến trúc mạng neuron nhân tạo

Kiến trúc tổng quát của mạng neuron nhân tạo được hình thành gồm 3 thànhphần chính là Input Layer, Hidden Layer, Output Layer Trong đó mỗi phần tửđược xem như là một neuron, các mũi tên đi vào và đi ra lần lượt là đầu vào vàđầu ra của neuron đó Các neuron được sắp xép thành các tầng, biểu diễn luồngthông tin đi qua mạng từ trái qua phải Trong đó Input layer thể hiện đầu vàocủa mạng, Output Layer thể hiện đầu ra của mạng – là kết quả thu được qua quátrình học hỏi

Trang 20

2.1 Artificial neural network (ANN)

Hình 2.4: Mô hình tính toán trong một neuron

Mỗi phép tính bên trong neron được thể hiện như hình trên, trong đó hàm g(x) làmột hàm phi tuyến Mỗi neuron của lớp bên phải kết nối tất cả các neuron củalớp bên trái thì được gọi là “kết nối đầy đủ” (fully-connected - FC)

2.1.3 Các công thứ toán học

Như đã nói ở trên, một tầng fully-connected (FC) được xem như một phép biếnđổi vector từ chiều không gian này sang chiều không gian khác Gọi x là vector

đầy đủ của 1 tầng FC và o là vector giá trị đầu ra của tầng đó, d in là số chiều của

x, d out là số chiều của o Công thức như sau:

• g là hàm kích hoạt (activation function), nó là một hàm phi tuyến nhầm loại

bỏ tính chất tuyến tính của tầng FC Hàm g rất quan trọng vì nếu không có hàm g thì neuron chỉ có thể biểu diễn được các hàm tuyến tính của đầu vào.

Trang 21

2.1 Artificial neural network (ANN)

Đối với mạng neuron nhân tạo (ANN) có nhiều Hidden Layer với đầu ra của lớpnày là đầu vào của lớp tiếp theo Khi đó công thức ở mô hình trên sẽ có dạng nhưsau:

2.1.4 Các hàm kích hoạt phi tuyến tính phổ biến

Hiện nay có rất nhiều hàm phi tyến tính được sử dụng, nhưng phổ biến nhất vẫn

là các hàm Sigmoid, Tanh, ReLU

Sigmoid

Hàm Sigmoid có dạng σ(x) = 1+1e −x với đồ thị hình dạng chữ S, có miền giá trị từ[0,1] Nếu đầu vào rất lớn thì hàm số sẽ cho ra kết quả gần với 1 Với đầu vào càng

âm thì hàm số sẽ cho kết quả gần với 0

Hàm Sigmoid được sử dụng rất nhiêu, nhưng nó có nhược điểm dễ nhận thấy làkhi đầu vào có trị tuyệt đối rất lớn (cực âm hoặc cực dương), gradient của hàm số

sẽ rất gần với 0 Điều này dẫn đến đồ thị sẽ bị bão hòa và các tham số gần nhưkhông được cập nhật sau mỗi lần học hỏi

Trang 22

2.1 Artificial neural network (ANN)

Hình 2.5: Hàm kích hoạt phi tuyến Sigmoid [1]

Trang 23

2.1 Artificial neural network (ANN)

Hình 2.6: Hàm kích hoạt phi tuyến Tanh [1]

Trang 24

2.1 Artificial neural network (ANN)

2.1.5 Hàm phân số xác suất Softmax

Hàm Softmax có công thức:

i=0 k

sof tmax(x i) = Pk e xi

j=1e xj

Khi đó hàm phân phối sẽ cho ra kết quả của một vector với các đơn vị thành phần

có tổng là 1, thể hiện phân phối xác suất của đơn vị đầu vào

Sử dụng hàm phân phối xác suất Softmax trong trường hợp bài toán yêucầu phân phối xác suất trên các kết quả bài toán có thể ra

2.1.6 Hàm mất mát Categorical Cross-entropy

Categorical Cross-entropy Loss là một hàm mất mát được sử dụng kết hợp vớicác phương pháp cho ra kết quả dưới dạng phân phối xác suất Khi đó đầu vàoinpout là 1 vector y đã được biểu diễn dưới dạng one-hot encoder và vector đầu

ra là yb= [yb 1,yb 2,yb 3 ybn] đã được biến đổi thông qua hàm phân phối Softmax vớidạng yb=P(y=i|x)

Đây là một hàm mất mát được sử dụng rộng rãi trong các mạng neuron nhân tạobởi nó cung cấp một phân bố xác suất của tất cả các lớp, từ đó có thể điều chỉnhtham số, lọc dữ liệu Công thức của Categorical Cross-entropy Loss như sau:

L cross−entropy(y, yb ) = −y i log(ybi)

2.1.7 Các kỹ thuật tránh Overfiting

Trong huấn luyện mạng neuron nhân tạo, việc mô hình thường quá đạt chỉ số đocao với dữ liệu huấn luyện (dữ liệu train) và dữ liệu kiểm tra (dữ liệu validation)nhưng kiểm thử mô hình với các dữ liệu thực tế thì chỉ cho kết quả thấp, đó được

Trang 25

2.1 Artificial neural network (ANN)

gọi là là overfiting Chính vì thế cần áp dụng một số kỹ thuật nhằm hạn chếoverfiting dưới đây:

Data Augmentation

Độ chính xác, hiệu năng và khả năng học của một mô hình học máy phụ thuộcvào dữ liệu mà nó được học Chính vì thế mà dữ liệu quá ít sẽ dấn đến mô hìnhcủa không thể khớp được với thực tế, mà dữ liệu quá nhiều nhưng không đúngcũng khiến mô hình học máy bị sai lệch

Data augmentation là một kỹ thuật làm giàu bộ dữ liệu huấn luyện bằng cách biểudiễn nhiều dữ liệu đầu tao theo nhiều cách như phóng to, thu nhỏ, dịch chuyển,đổi góc nhìn, xoay hình ảnh, thêm các hiệu ứng thời tiết v.v.v Do đó bằng cách ápdụng data augmentation có thể thu được một lượng lớn dữ liệu hình ảnh chínhxác để huấn luyện mô hình, từ đó giúp tăng khả năng học của máy Tuy nhiên,nếu lạm dụng data augmentation sẽ khiến mô hình bị học lệch và overfiting Vìthế không nên data augmentation quá 10 lần dữ liệu ban đầu

Dropout

Dropout là một phương pháp tránh overfiting đơn giản nhưng lại cực kỳ hiệu quảtrong việc giảm thiểu overfiting Các Dropout thực hiện là xóa bỏ một số unittrong các bước huấn luyện với một giá trị xác suất cho trước

Đôi với mạng neuron nhân tạo, thông thường muốn tăng độ chính xác của mô hình

sẽ chọn cách tăng số lượng Hidden Layer và số lượng neuron trong mỗi HiddenLayer lên Nhưng đôi khi việc đó lại khiến mô hình phức tạp và bị overfiting Chính

vì thế, khi áp dụng Dropout vào một lớp nào đó, thì thực tế tại mỗi bước huấnluyện mạng neuron nhân tạo chỉ còn 1 phần, góp phần đem lại hiệu quả giảmoverfiting của mô hình

Trang 26

2.2 Convolutional Neural Network (CNN)

Hình 2.8: Mạng neuron ban đầu và Mạng neuron sau khi Dropout

2.2 Convolutional Neural Network (CNN)

Convolutional Neural Network (Mạng neuron tích chập) là một mô hình học sâuđược ra đời vào cuối những năm 90 bởi hai nhà nghiên cứu Yann Lecun và LeonBottou trong việc nhận dạng chữ số viết tay trong văn bản Bộ dữ liệu được nghiêncứu trên sử dụng là MNIST, gồm tập hợp các chữ số viết tay Mô hình được hainhà nghiên cứu sử dụng là LeNet5 đã nhận dạng chữ số trong tập dữ liệu MNISTđạt tới độ chính xác 99.2% Đây là một tiền đề quan trọng trong quá trình pháttriển các mạng neuron nhân tạo nhận diện và xử lý hình ảnh

2.2.1 Convolution trong xử lý ảnh

Convolution là một kỹ thuật quan trọng trong xử lý ảnh, được sử dụng chính yếutrong các phép toán trên ảnh như: đạo hàm ảnh, làm trơn ảnh, trích xuất biêncạnh trong ảnh

Phép tính chập (convolution) là một phép toán tuyến tính, mà ở đó cho ra kết quả

là một hàm bằng việc tính toán dựa trên hai hàm đã có (f và g) Công thức tính

chập giữa hàm ảnh f(x, y) và bộ lọc k(x, y) với kích thước m × n.

k(x, y)× f(x, y) =Pm/2

u=−m/2

Pn/2

v=−n/nk(u, v)f(x − u, y − v)

Trang 27

2.2 Convolutional Neural Network (CNN)

Thành phần không thể thiếu trong phép tích chập là bộ lọc k hay còn gọi là matrận kernel Điểm neo (anchor point) của kernel sẽ quyết định vùng ma trận tươngứng trên hình ảnh để tích chập, thông thường anchor point sẽ được chọn là tâmcủa kernel, vì thế thông thường kích thước của kernel là một số lẻ như 3x3, 5x5,7x7.v.v.v Giá trị mỗi phần tử trên kernel được xem là hệ số tổ hợp với lần lượtgiá trị độ xám của điểm ảnh trong vùng tương ứng với kernel

Hình 2.9: Convolutional trong xử lý ảnh

Phép tích chập được hình dung bằng cách dịch chuyển ma trận kernel lần lượt quatất cả các điểm ảnh trong ảnh, bắt đàu từ góc bên trái trên cùng của ảnh Và đặtanchor point tương ứng tại điểm ảnh đang xét, mỗi lần dịch chuyển sẽ thực hiệntính toán kết quả mới cho điểm ảnh đang xét bằng công thức tích chập

2.2.2 Định nghĩa Convolutional Neural Network (CNN)

Convolutional Neural Network là một dạng cấu trúc mới của mạng neuron nhântạo trong việc xử lý thị giác máy tính Một mạng ANN thông thường không thể thểhiện các dữ liệu thuộc dạng hình ảnh Chính sự liên kết quá đầy đủ (fully-connected)

đã tạo nên những hạn chế trên Dữ liệu hình ảnh có kích thước khá lớn, một tấmảnh xám có kích thước 32x32 pixel sẽ cho ra vector đặc trưng có 1024 chiều, cònđối với ảnh màu cùng kích thước thì có 1024x3 chiều Điều này có thể hiểu sẽ cầntới 3072 trọng số cho một neuron cho một lớp ẩn (Hidden Layer) kế tiếp Số trọng

số sẽ còn nhân gấp nhiều lần hơn nữa nếu số lượng neuron trong lớp ẩn tăng lên

Trang 28

2.2 Convolutional Neural Network (CNN)

Mà như thế là quá nhiều so với mô hình chỉ nhận dạng kích thước 32x32 pixel,còn đối với ảnh có kích thước lớn hơn thì cần phải tiêu tốn nhiều thời gian và tàinguyên để lưu trữ và xử lý dữ liệu

Một vấn đề khác nữa là việc liên kết đầy đủ (fully-connected) tất cả các điểm ảnhvào 1 neuron là dư thừa, vì điểm ảnh chỉ có quan hệ phụ thuộc vào những điểmảnh gần nó Vì thế Convolutional Neural Network ra đời nhằm giải quyết các vấn

đề trên Thay vì tất cả các điểm ảnh nối với một neuron thì chỉ có một phần cục

bộ điểm ảnh trong ảnh được kết nối Khi đó mô hình sẽ học được đặc trưng điểmảnh để phân loại hiệu quả hơn

Hình 2.10: Minh họa kiến trúc của một CNN

Không chỉ tốt trong các bài toán thị giác, Convolutional Neural Network còn thíchhợp cho việc xử lý ngôn ngữ tự nhiên khi kết hợp chuyển đổi dữ liệu hình ảnh sangdạng văn bản, sau đó xét các mối quan hệ để chỉnh sửa văn bản sao cho phù hợpnhất

Input, Output Volume

CNN sẽ xem dữ liệu đầu vào được tổ chức thành khối 3D, gồm có độ rộng – chiềungang – độ sâu Đối với một ảnh thông thường, xác định màu sắc của ảnh dựa vào

Trang 29

2.2 Convolutional Neural Network (CNN)

các kênh màu Red, Green, Blue (RGB), do đó độ sâu của ảnh được biểu thị là 3

Stride

Nếu feature maps sau phép tính convolutional có kích thước bằng feature mapstrước thì có stride = 1 Nếu stride lớn hơn 1, feature maps sau sẽ thu giảm kíchthước sau phép tính convolutional Phép tính convolutional sẽ nhảy k bước theochiều dọc và chiều ngang cho khi đến hết feature maps

Vanishing Gradient

Thuật toán lan truyền ngược (backpropagation algorithm) là một kỹ thuật thườngđược sử dụng trong quá trình đào tạo của mạng ANN Ý tưởng chung của thuậttoán là sẽ đi từ Output Layer trở về ngược lại Input Layer và tính toán gradientcủa hàm mất mát (lost function) tương ứng cho từng trọng số của mạng Quá

Trang 30

2.2 Convolutional Neural Network (CNN)

trình trên sẽ được lặp lại cho tới khi các trọng số của mạng hội tụ

Hình 2.11: Minh họa Vanishing Gradient

Tuy nhiên trên thực tế, việc tính gradient thường sẽ có giá trị nhỏ dần khi xuốngcác lớp thấp hơn Kết quả là các cập nhật thực hiện bởi Gradient Descent khônglàm thay đổi nhiều về trọng số của lớp đó Khiến chúng không thể hội tụ và các hệ

số của mạng neuron nhân tạo sẽ không học được nữa Hiện tương như vậy gọi làVanishing gradient

Một mạng CNN đơn giản được cấu thành bởi nhiều lớp chồng lên nhau, đầu racủa lớp dưới là đầu vào của lớp trên Có 3 loại lớp chính xây dựng nên kiến trúccủa CNN: Convolutional Layer, Pooling Layer và Fully-Connected Layer

Đầu vào của mạng CNN sẽ đi qua các tầng convolutional và pooling để trích xuấtcác đặc trưng Thông thường các tầng convolutional và pooling được xếp xen kẽnhau Tầng cuối cùng là tầng fully-connected sẽ nhận các đặc trưng đã được rúttrích từ các tầng convolutional và pooling để phân loại dữ liệu

Trang 31

2.2 Convolutional Neural Network (CNN)

Hình 2.12: Cấu trúc một mạng CNN đơn giản

Một ví dụ về kiến trúc mạng CNN cơ bản gồm [ INPUT – CONV – RELU – POOL– FC ], trong đó INPUT là input layer, CONV là convolutional layer, RELU làhàm kích hoạt phi tuyến, FC là fully-connected Input đầu vào là một tấm ảnh vớikích thước 32x32 pixel, dữ liệu thuộc biển số gồm 10 số khác nhau mà hệ thốngcần phân loại

• INPUT: Layer này dùng để nạp các giá trị ảnh vào input đầu vào nhằm đưatới layer tiếp theo Ảnh được sử dụng là một miền ảnh màu nên sẽ có mộtmiền độ sâu xác định qua các kênh R, B, G của ảnh

• CONV: Layer này hỗ trợ thực hiện các bước tính tích chập thông qua bộ lọc.Kết quả trả về có thể là một ma trận 3 chiều [32x32x12] nếu quyết định sửdụng 12 filter

• RELU: Layer này là một activation function, sẽ tác dụng lên từng phần

tử nhằm mục đích phi tuyến tính hóa các trọng số Do chỉ có 1 activationfunction nên kích thước output không đổi là [32x32x12]

• POOL: Layer này nhận input đầu vào và sẽ thu giảm mẫu theo không gian.Giả sử thu giảm 2 theo cả chiều dài và độ rộng, khi đó kích thước output là[16x16x12]

Ngày đăng: 31/07/2024, 10:17

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Charu C. Aggarwal (2018).Neural Networks and Deep Learning. Springer International Publishing AG Sách, tạp chí
Tiêu đề: Neural Networks and Deep Learning
Tác giả: Charu C. Aggarwal
Năm: 2018
[2] Hamed Habibi Aghdam & Hamed Habibi Aghdam (2017).Guide to Convolu- tional Neural Networks. Springer International Publishing AG Sách, tạp chí
Tiêu đề: Guide to Convolu-tional Neural Networks
Tác giả: Hamed Habibi Aghdam & Hamed Habibi Aghdam
Năm: 2017
[3] M. Arif Wani & Mehmed Kantardzic & Moamar Sayed-Mouchaweh (2020).Deep Learning Based Hazard Label Object Detection for Lithium-ion Batteries Using Synthetic and Real Data. Deep Learning Applications. (137-154) Springer International Publishing AG Sách, tạp chí
Tiêu đề: Deep Learning Applications
Tác giả: M. Arif Wani & Mehmed Kantardzic & Moamar Sayed-Mouchaweh
Năm: 2020
[4] National Institute on Drug Abuse (2010). Neurons, Brain Chemistry, and Neurotransmission. The Brain: Understanding Neurobiology Through the Study of Addiction (44-59). BSCS and Videodiscovery, Inc Sách, tạp chí
Tiêu đề: The Brain: Understanding Neurobiology Through the Studyof Addiction
Tác giả: National Institute on Drug Abuse
Năm: 2010
[5] Mingxing Tan & Quoc V. Le (2020). EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks Khác
[6] ă Umit Atila & Murat Uácar & Kemal Akyol & Emine Uácar (2021). Plant leaf disease classification using EfficientNet deep learning model Khác

TỪ KHÓA LIÊN QUAN

w