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

Nội dung

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ƠN4 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ạngnơ-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ậptrì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 /10Ký tên (ghi rõ họ tên)

Trần Giang Sơn

Trang 2

- 7KXWKұSGӳOLӋXWăQJFѭӡQJGӳOLӋX - +LӋQWKӵFKӋWKӕQJQKұQGLӋQ

Trang 3

+ӑWrQQJѭӡLKѭӟQJGүQ: 9ѭѫQJ%i7KӏQK 7әQJTXiWYӅEҧQWKX\ӃWPLQK

6ӕWjLOLӋXWKDPNKҧR 3KҫQPӅPWtQKtoán: +LӋQYұW VҧQSKҭP

7әQJTXiWYӅFiFEҧQYӁ

- 6ӕEҧQYӁYӁWD\ 6ӕEҧQYӁWUrQPi\WtQK 1KӳQJѭXÿLӇPFKtQKFӫD/971

- 6LQKYLrQÿmWuPKLӇXYӅKӑFPi\KӑFVkX[ӱOêҧQK - SLQKYLrQÿmWuPKLӇXFiFF{Qg trình liên quan

- 7KXWKұSGӳOLӋXYjWăQJFѭӡQJGӳOLӋX - *LҧLSKiSÿѭDUDFyWtQKӭQJGөQJWKӵFWӃ - 7LӃQKjQKKXҩQOX\ӋQYjÿiQKJLiFiFP{KuQK 1KӳQJWKLӃXVyWFKtQKFӫD/971

- ĈӝFKtQK[iFOӡLJLҧLFKѭDFDR - &KѭDiSGөQJWKӵFWӃ

ĈӅQJKӏĈѭӧFEҧRYӋ† %әVXQJWKrPÿӇEҧRYӋ† K{QJÿѭӧFEҧRYӋ† 9 0 FkXKӓL69SKҧLWUҧOӡLWUѭӟF+ӝLÿӗQJ

ĈiQKJLiFKXQJ EҵQJFKӳJLӓLNKi7%  ĈLӇP8.5 /10 êWrQ JKLU}KӑWrQ

9ѭѫQJ%i7KӏQK

Trang 4

ĐẠI HỌC QUỐC GIA TP.HCMTRƯỜ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ồnlà 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ấtcứ 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ìnhem 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

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

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

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

learn-4Mô hình đề xuất cho bài toán414.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

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

5.2 Framework và Thư viện 45

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ảo49

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 NetworkCNN - Convolutional Neural NetworkConvNets - Convolutional Neural Networks

Trang 15

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

1.3Giai đ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.4Giớ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

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àovà 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)

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.3Cá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 đó, din là số chiều của

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

o =g(xW +b)

x ∈Rdin, o ∈ Rdout, W ∈Rdin×dout, b ∈Rdout

Trong đó:

• W là ma trận trọng số.• b là bias.

• 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.4Cá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ẫnlà các hàm Sigmoid, Tanh, ReLU.

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.5Hàm phân số xác suất Softmax

Đâ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:

Lcross−entropy(y, yb ) = −yilog(ybi)

2.1.7Cá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 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ìnhsẽ 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ínhvì 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.2Convolutional 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.1Convolution 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

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ọngsố 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ụcbộ đ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.

Trong mỗi phép tính convolution thì kích thước của feature maps sau đều nhỏhơn feature maps trước Để feature maps sau có kích thước bằng feature mapstrước thêm giá trị 0 ở viền ngoài feature maps trước Hành động trên được gọi làpadding.

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ầntử 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

TỪ KHÓA LIÊN QUAN

w