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

Deep learning, mạng nơ ron nhân tạo nhiều lớp MLP và bài toán nhận dạng hình ảnh mạng nơ ron tích chập (convolution neural network CNN)

76 12 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 đề Deep Learning, Mạng Nơ Ron Nhân Tạo Nhiều Lớp MLP Và Bài Toán Nhận Dạng Hình Ảnh Mạng Nơ Ron Tích Chập (Convolution Neural Network CNN)
Người hướng dẫn Thạc sĩ Vương Quang Phước, giảng viên Bộ môn Kỹ thuật Viễn thông - trường Đại học Khoa Học
Trường học Đại học Khoa Học
Chuyên ngành Kỹ thuật Viễn thông
Thể loại Báo cáo tốt nghiệp
Định dạng
Số trang 76
Dung lượng 2,71 MB

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

Nội dung

LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Khoa Học cùng các thầy cô trong khoa Điện, Điện Tử và Công Nghệ Vật Liệu đã nhiệt tình giúp đỡ, giảng d.

Trang 1

LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn các thầy cô giáo trong trường Đạihọc Khoa Học cùng các thầy cô trong khoa Điện, Điện Tử và Công Nghệ VậtLiệu đã nhiệt tình giúp đỡ, giảng dạy và mang đến cho em những điều bổ íchvề các môn đại cương cũng như các môn chuyên ngành, giúp em có được nềntảng cơ sở lý thuyết vững chắc và kiến thức cần thiết để có thể thực hiện bài

đồ án tốt nghiệp và xa hơn là có được hướng đi tốt trong tương lai

Tiếp theo đó, em xin chân thành cảm ơn các bạn trong lớp Điện tử - Viễnthông K40, gia đình và những người đã luôn đông hành, khích lệ, giúp đỡ vàđộng viên em trong suốt thời gian vừa qua

Đặc biệt nhất, em xin gửi lời cám ơn chân thành đến Thạc sĩ VươngQuang Phước, giảng viên Bộ môn Kỹ thuật Viễn thông - trường Đại học KhoaHọc, người đã hướng dẫn, cung cấp tài liệu, động viên và chỉ bảo nhiệt tình để

em có thể hoàn thành bài đồ án tốt nghiệp này

Trong suốt quá trình thực hiện đồ án, chắc chắn sẽ không tránh khỏinhững sai sót Em rất mong nhận được sự đóng góp từ các thầy, cô để có thểhoàn thiện hơn bài đồ án tốt nghiệp này Em xin chân thành cám ơn!

Sinh viên thực hiện

Nguyễn Trí Định

i

Trang 2

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC ii

DANH MỤC HÌNH ẢNH iv

DANH MỤC BẢNG BIỂU vi

DANH MỤC CÁC CHỮ VIẾT TẮT vii

MỞ ĐẦU 1

CHƯƠNG 1 DEEP LEARNING, MẠNG NƠ-RON NHÂN TẠO NHIỀU LỚP MLP VÀ BÀI TOÁN NHẬN DẠNG HÌNH ẢNH 3

1.1 Giới thiệu chương 1 3

1.2 Deep learning 3

1.3 Mạng nơ-ron nhân tạo 5

1.3.1 Perceptron 6

1.3.2 Sigmoid 8

1.3.3 Mạng nơ-ron nhân tạo nhiều lớp MLP 1

1.3.4 Bài toán nhận dạng hình ảnh 2

1.4 Kết luận chương 1 4

CHƯƠNG 2 LÝ THUYẾT CƠ BẢN VỀ MẠNG NƠ-RON TÍCH CHẬP CNN VÀ CÁC THAM SỐ LIÊN QUAN 5

2.1 Giới thiệu chương 2 5

2.2 Mạng nơ-ron tích chập 5

2.3 Lớp tích chập 6

2.3.1 Phép tích chập 6

2.3.2 Vùng tiếp nhận cục bộ 7

2.3.3 Số bước trượt (Strides) 9

2.3.4 Zero padding 11

2.4 Lấy mẫu xuống (Pooling) 12

2.5 Lớp Dropout 13

2.6 Hàm kích hoạt ngõ ra Softmax 14

2.7 Hàm tổn hao Cross Entropy 15

2.8 Tỷ lệ học 15

ii

Trang 3

Kết luận chương 2 16

CHƯƠNG 3 SO SÁNH MÔ HÌNH MLP VỚI CNN VÀ KHẢO SÁT SỰ ẢNH HƯỞNG CỦA CÁC THAM SỐ 17

3.1 Giới thiệu chương 3 17

3.2 Cơ sở dữ liệu, so sánh mô hình 17

3.2.1 Cơ sở dữ liệu 17

3.2.2 So sánh mô hình MLP và CNN 18

3.3 Đánh giá ảnh hưởng của các tham số 21

3.3.1 Lớp tích chập 21

3.3.2 Hàm kích hoạt: 26

3.3.3 Pooling: 27

3.3.4 Dropout 28

3.3.5 Tỉ lệ học 30

3.3.6 Kết luận: 31

3.4 Kết luận chương 3 32

CHƯƠNG 4 SỬ DỤNG MÔ HÌNH CNN TỐI ƯU CHO VIỆC PHÂN LOẠI CỦ QUẢ 33

4.1 Giới thiệu chương 4 33

4.2 Cơ sở dữ liệu 33

4.3 Khảo sát với mạng Lenet 37

4.4 Khảo sát với mô hình CNN tối ưu: 39

4.5 Mở rộng cơ sở dữ liệu 43

4.6 Kết luận chương 4 48

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49

TÀI LIỆU THAM KHẢO 51

PHỤ LỤC 54

iii

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1 Mối quan hệ giữa AI/Machine Learning/Deep Learning [2] 4

Hình 1.2 Sơ đồ mô tả cách mạng nơ-ron hoạt động [3] 6

Hình 1.3 Một mạng nơ-ron nhân tạo cơ bản 7

Hình 1.4 Cấu trúc của một perceptron với 5 đầu vào 8

Hình 1.5 Mạng nơ-ron tích chập [5] 10

Hình 1.6 Thuật toán Gradient descent 14

Hình 1.7 Thuật toán SGD với động lượng (Stochastic gradient descent with momentum) [9] 15

Hình 1.8 Hình ảnh dưới góc nhìn của máy tính [13] 19

Hình 2.1 Nơ-ron ở lớp ẩn kết nối với vùng tiếp nhận cục bộ 21

Hình 2.2. Quá trình trượt của vùng tiếp nhận cục bộ theo chiều ngang và chiều dọc 22

Hình 2.3 Quá trình hình thành lớp ẩn sau khi trượt vùng tiếp nhận cục bộ 22

Hình 2.4 Giá trị stride bằng 1 (a) và stride bằng 2 (b) 23

Hình 2.5. Lớp ẩn giữ nguyên kích thước lớp ngõ vào khi được thêm zero padding 24

Hình 2.6 Lớp ngõ vào (a), bộ lọc (b) và bản đồ đặc tính (c) 26

Hình 2.7 Đồ thị hàm ReLu 27

Hình 2.8 Lớp ngõ vào (a) và lớp ngõ ra sau khi áp dụng lớp pooling (b) 28

Hình 2.9. Mạng nơ-ron sau khi được áp dụng Dropout [16]. 29

Hình 3.1 Hình ảnh chữ số viết tay từ tập MNIST [17] 32

Hình 3.2 Hình ảnh trích xuất từ bộ cơ sở dữ liệu CIFAR10 [18] 33

Hình 3.3 Mô hình mạng Multilayer Perceptron (MLP) 34

Hình 3.4 Mô hình mạng Lenet-5 (CNN) được Yan Lecun công bố năm 1998 [19] 34

Hình 3.5 Khảo sát mạng MLP với tỉ lệ học khác nhau 38

Hình 3.6 Kết quả của mạng MLP theo từng lớp ẩn 39

Hình 3.7 Kết quả của mạng MLP theo từng số lượng nơ-ron lớp ẩn 40

Hình 3.8 Kết quả mạng MLP khi thay đổi giá trị Dropout 41

iv

Trang 5

Hình 3.9 Khảo sát mạng CNN với tỉ lệ học khác nhau 43

Hình 3.10 Kết quả mạng CNN khi tăng số khối tích chập 44

Hình 3.11 Kết quả mạng CNN khi tăng số lượng bản đồ đặc tính 44

Hình 3.12. Kết quả mạng CNN khi thay đổi giá trị Dropout. 45

Hình 3.13 Sơ đồ biểu diễn kích thước của bộ lọc ảnh hưởng tới mô hình 47

Hình 3.14 Sơ đồ thể hiện kích thước của các bước trượt ảnh hưởng tới mô hình mạng 48

Hình 3.15 Sơ đồ thể hiện các loại lấy mẫu xuống ảnh hưởng tới mô hình mạng 49

Hình 3.16 Sơ đồ khối mô hình CNN sử dụng để đánh giá 50

Hình 3.17 Tỉ lệ mất mát của các thuật toán tối ưu trên tập dữ liệu MNIST 51

Hình 3.18 Tỉ lệ nhận dạng đúng của các thuật toán trên tập huấn luyện và tập đánh giá 52

Hình 3.19 Tỉ lệ mất mát của các thuật toán tối ưu trên tập dữ liệu CIFAR-10.53

Hình 3.20 Tỉ lệ nhận dạng đúng của các thuật toán trên tập huấn luyện và tập đánh giá 53

Hình 4.1 Chế độ xem các project (dự án) 56

Hình 4.2. Các mo-đun dự án của hệ thống. 57

Hình 4.3 Bộ mô phỏng cho các loại thiết bị 59

Hình 4.4 Mô hình mạng CNN sử dụng để phát triển lên ứng dụng 61

Hình 4.5 Tham số weight ở mô hình tensorflow 64

Hình 4.6 Tham số weight ở mô hình tensorflow lite 64

Hình 4.7 Mô hình CNN với định dạng tensorflow 65

Hình 4.8 Mô hình CNN với định dạng tensorflow lite 65

Hình 4.9 Giao diện của ứng dụng nhận dạng chữ số viết tay 66

Hình 4.10 Một số kết quả nhận dạng đúng trích xuất từ ứng dụng 67

Hình 4.11 Một số nhận dạng sai trích xuất từ ứng dụng 68

Hình 4.12 Sơ đồ khối mô hình mạng MLP sử dụng đánh giá khảo sát 72

Hình 4.13 Sơ đồ khối mô hình mạng Lenet-5 sử dụng khảo sát đánh giá 75

Hình 4.14 Nhập mô hình vào Android studio với định dạng tflite 85

DANH MỤC BẢNG BIỂU Bảng 3.1 Kết quả mạng MLP khi thay đổi kích thước gói con 42

v

Trang 6

Bảng 3.2 Kết quả mạng CNN khi thay đổi kích thước gói con 46 Bảng 4.1 Chuyển đổi định dạng h5 thành tflite 63 Bảng 4.2 Xây dựng mô hình MLP để tiến hành đánh giá bằng ngôn ngữPython 73 Bảng 4.3 Xây dựng mô hình Lenet-5 tiến hành đánh giá bằng ngôn ngữPython 76 Bảng 4.4 Xây dựng mô hình CNN để đánh giá các thuật toán tối ưu bằngngôn ngữ Python 79 Bảng 4.5 Huấn luyện và đánh giá mô hình CNN trên Google colab bằng ngônngữ Python 82

vi

Trang 7

DANH MỤC CÁC CHỮ VIẾT TẮT

Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt

Network

Mạng nơ-ron tích chập

dốcANN Artificial Neural Network Mạng nơ-ron nhân tạo

Package

Bộ cài đặt ứng dụng trên

hệ điều hành Android

vii

Trang 8

Xây dựng mô hình thích hợp dựa trên những đánh giá trên để áp dụngvào bài toán phân loại củ quả.

Trong quá trình thực hiện đồ án, em đã học hỏi và rèn luyện được một

số kiến thức và kỹ năng như:

 Nâng cao kỹ năng lập trình với ngôn ngữ Python, mô phỏng trêngoogle colab

 Phát triển kỹ năng báo cáo nhóm, làm việc nhóm

 Nâng cao kỹ năng đọc tài liệu khoa học, tài liệu tiếng anh

3 Đối tượng nghiên cứu

Bộ cơ sở dữ liệu CIFAR10 với 60000 hình ảnh màu gồm: máy bay, ô tô,chim, mèo, hươu, chó, ếch, ngựa, tàu và xe tải có kích thước 32x32 pixelBộ cơ sở dữ liệu Fruit-360 với 30080 ảnh màu thuộc 48 lớp với 22783 ảnhhuấn luyện và 7297 ảnh kiểm tra, kích thước mỗi ảnh là 100x100 pixel.Deep Learning(Mạng MLP và CNN – Các thông số, cấu trúc mạng).Ngôn ngữ lập trình Python ( Thư viện Keras, numpy, matplotlib…).Ngôn ngữ lập trình Python

1

Trang 9

4 Phương pháp đánh giá

Nghiên cứu lý thuyết, đánh giá thông qua mô phỏng thực nhiệm bằngGoogle Colaboratory (Google Colab)

Quá trình thực hiện gồm các bước:

hàm tổn hao

5 Cấu trúc bài báo cáo đề tài

Nội dung bài đồ án gồm 4 chương:

MLP và bài toán nhận dạng hình ảnh

network - CNN)

giá các thông số để xây dựng mô hình

(CNN) vào bài toán phân loại củ quả

2

Trang 10

DEEP LEARNING, MẠNG NƠ-RON NHÂN TẠO NHIỀU LỚP MLP

VÀ BÀI TOÁN NHẬN DẠNG HÌNH ẢNH Giới thiệu chương 1

Deep Learning là một kỹ thuật huấn luyện đang được nghiên cứu cũngnhư ứng dụng rộng rãi, và bài toán nhận dạng hình ảnh là môt trong nhữngvấn đề được quan tâm hàng đầu Chương 1 sẽ giới thiệu tổng quan về DeepLearning, cách thức cấu thành mạng nơ-ron, và phương pháp học, đặc điểmbài toán nhận dạng

Deep learning

Thuật ngữ AI (Artificial Intelligence) hay còn gọi là trí thông minh nhântạo được nghiên cứu và biết đến vào những năm 1956, AI dùng để chỉnhững cổ máy được chế tạo phức tạp, sở hữu những đặc tính gần giống vớitrí thông minh của con người

3

Trang 11

Machine Learning là một lĩnh vực con của AI, sử dụng các thuật toáncho phép máy tính có thể học từ dữ liệu để đưa ra quyết định, dự đoán ngõ

ra hay thực hiện các công việc thay vì được lập trình một cách rõ ràng.Machine Learning được phân thành 2 loại:

học để học tập từ tập dữ liệu được gián nhãn cho trước Nhiệm vụcủa học có giám sát là dự đoán đầu ra mong muốn dựa vào giá trịđầu vào Học có giám sát được áp dụng chủ yếu cho 2 bài toán chính

là bài toán dự đoán và bài toán phân lớp (classification problem)

thuật của máy học nhằm tìm ra một mô hình hay cấu trúc ẩn bởi tậpdữ liệu không được gán nhãn cho trước Tập dữ liệu huấn luyện củahọc không giám sát không do con người gán nhãn, mà máy tính sẽ tựhọc hoàn toàn

Deep Learning là một nhánh nhỏ của ngành Machine Learning bao gồmcác thuật toán được xây dựng dựa trên cấu trúc của não bộ con người (đượcgọi là mạng neuron nhân tạo), mạng nơ-ron nhân tạo không cần con ngườilập trình để thực hiện công việc, mà chỉ cần cung cấp cho máy tính mộtthuật toán học và lượng lớn dữ liệu thì máy tính sẽ tự học được cách đểnhận dạng một đối tượng Khởi đầu của Deep Learning là những nghiêncứu về mạng nơ-ron nhân tạo ANN(Artificial Neural Network), lấy cảmhứng từ các mô hình nơ-ron sinh học Perceptron

Các mô hình mạng nơ-ron nhân tạo hay Deep Learning được biết đếnrộng rãi vào 3/2016 khi thuật toán trí tuệ nhân tạo của Google đã đánh bạinhà vô địch trò chơi cờ vây Lee Sedol, người từng 18 lần vô địch thế giới bộmôn này Thuật toán AlphaGo được phát triển bởi Google DeepMind đã

4

Trang 12

giành chiến thắng 4/5 trước nhà vô địch cờ vây Tại sao Deep Learning làngày càng thành công, trở thành công cụ đắc lực của AI:

Batch Normalization, Data Augmentation

tạo sâu với GPU: Theano, Tensorflow, Pytorch, Keras,…

Mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo là một kỹ thuật máy học phổ biến được môphỏng dựa trên nơ-ron sinh học Bộ não chúng ta sử dụng mạng lớn các nơ-ron liên kết với nhau để xử lý thông tin Bên dưới là cấu trúc cơ bản của mộtnơ-ron sinh học:

5

Trang 13

6

Trang 14

Trong đó:

+ X1, …, Xn: các ngõ vào nhị phân của perceptron

+ W1, …, Wn: trọng số (weight) – biểu thị mức độ quan trọng của ngõvào (input) so với ngõ ra (output)

Nguyên lý làm việc của Perceptron dựa trên phương pháp sử dụng cáctrọng số để xét và lựa chọn giá trị ngõ ra Để quyết định ngõ ra của các nơ-ron nhân tạo người ta sử dụng các hàm kích hoạt để thực hiện tính toán.Hàm kích hoạt được dừng trong Perceptron là hàm bước (step function) – làmột hàm tính tổng của các trọng số nhân với ngõ vào tương ứng và so sánhvới một mức ngưỡng (bias) để đưa ra quyết định ngõ ra tương ứng, côngthức:

7

Trang 15

output = { 0nế uj xjwj≤n g ưỡ ng

1nế uj xjwj≥n gư ỡn g (1)

Trong đó:

+ x j: ngõ vào thứ j của Perceptron

+ w j: trọng số của ngõ vào x j

ư

Có thể thấy ngõ ra của Perceptron phụ thuộc vào tổng của các tích ngõvào và trọng số Để đơn giản cho việc Perceptron quyết định ngõ ra là 0 hay

1, ta thay thế giá trị ngưỡng bằng đại lượng bias = – b và công thức (1) đượcviết lại thành:

1nế ujxjwj+b≥0 (2)

Giá trị bias b có thể xem là thang đo, và có quyết định lớn đến việcPerceptron đưa ra giá trị ngõ ra là 1 Việc sử dụng bias sẽ giúp quá trìnhtinh chỉnh ngõ ra một cách thuật tiện mà không làm thay đổi các trọng sốtrong mạng Trong các mô hình thực tế, các trọng số và bias trong mạng sẽđược khởi tạo ngẫu nhiên, quá trình học chính là quá trình tinh chỉnh cácthông số này

Sigmoid

+ Hàm bước (Step function):

8

Trang 16

Với mạng nơ-ron Perceptron thì hàm kích hoạt là hàm bước, là một hàmkích hoạt dựa vào ngưỡng Nếu giá trị đầu vào nằm trong 1 ngưỡng xácđịnh, nơ-ron sẽ được kích hoạt và gửi chính dữ liệu đó qua lớp tiếp theo.Nhưng vấn đề khó khăn ở hàm bước là không cho nhiều đầu ra (chỉ 0 hoặc1).

Để giải quyết được khó khăn này thì Sigmoid ra đời Về cơ bản Sigmoidcũng tương tự như Perceptron(cũng có các ngõ vào x1,x2 … và bias), tuynhiên điểm khác biệt ở Sigmoid là khi có sự thay đổi nhỏ thông số hệ thốngthì ngõ ra sẽ thay đổi tương ứng Khác với Perceptron chỉ có các ngõ vàonhận là 0/1 thì với Sigmoid ngõ vào có thể là bất kì giá trị nào nằm trongkhoảng (0,1) và từ đó ngõ ra sẽ có giá trị o𝑢𝑡𝑝𝑢𝑡 = 𝜎(𝑤 𝑥 + 𝑏) với 𝜎 được gọi

là hàm sigmoid được định nghĩa sigmoid:

Trang 17

Với ¿z

tham số w, x và b như sau:

n o r a

¿

1

Một số hàm kích hoạt:

- Nhận đầu vào là 1 số thức

sau đó chuyển đổi và đưa

kết quả ở đầu ra 1 giá trị

trong khoảnh (0, 1)

- Vì hàm sigmoid có đạo

- Nhận đầu vào là 1 số thực

và chuyển thành giá trị

trong khoảnh (-1,1) ở đầura

- Đối xứng qua gốc tọa độ

- Ưu điểm vượt trội Sigmoid

và tanh:

+ Relu ko bị bão hòa ở 2 đầu+ Do sigmoid và tanh sử dụnghàm exp cũng như công thức10

Trang 18

hàm đẹp nên thường hay

phức tạp tốn nhiều chi phítính toán trong khi Relu chỉ

sử dụng công thức đơn giảnnên thời gian tính toán nhanhhơn

Nhược

điểm

- Hàm Sigmoid bị bão hòa ở

2 đầu và triệt tiêu gradient

- Hàm sigmoid không có

trung tâm là 0 gây khó khăn

cho việt hội tụ

qua Relu sẽ được đưa về 0 vìvậy một số đặc tính sẽ bị mất

11

Trang 19

Mạng nơ-ron nhân tạo nhiều lớp MLP

Mạng nơ-ron nhân tạo nhiều lớp MLP (Mutil Layer Perceptron) là sự kếthợp của nhiều lớp Perceptron và có cấu tạo như hình dưới:

Mỗi mô hình mạng MLP sẽ có 3 dạng:

+ Lớp ngõ vào (Input layer): Tiếp nhận dữ liệu đưa vào mạng

+ Lớp ẩn (Hidden layer): Thực hiện tính toán các thông số dựa trên dữ liệuđược đưa vào mạng từ lớp ngõ vào và chuyển tiếp kết quả tới lớp ngõ ra Cóthể có 1 hoặc nhiều lớp ẩn

Trang 20

+ Lớp ngõ ra (Output layer): Có nhiệm vụ thể hiện kết quả đạt được từ lớp

ẩn dựa trên các thuật toán

1.1.2 Bài toán nhận dạng hình ảnh

 Hình ảnh dưới góc nhìn của con người:

 Hình ảnh dưới góc nhìn của máy tính:

Trang 21

Về cơ bản, nhận dạng hình ảnh là quá trình trích xuất các thông tin chứatrong ảnh để phân loại đối tượng trong ảnh Và dưới góc nhìn của hệ thống,dữ liệu khi đưa vào mạng được biểu diễn bằng ma trận (matrix) số liệu haytổng quát là ma trận nhiều chiều (tensor)

Một hình ảnh bất kì đều được biểu diễn dưới dạng một ma trận 3 chiều cókích thước H x W x D trong đó H x W là chiều dài và rộng của ảnh, D là sốlượng kênh của ảnh (thể hiện chiều sâu của ảnh) Với các ảnh xám, số lượngkênh D của ảnh sẽ bằng 1 (D = 1), ví dụ ảnh trong tập dữ liệu Mnist được biểudiễn dưới một ma trận ảnh xám có kích thước (28x28x1) Với một hình ảnhmàu thì ma trận có kích thước (H x W x 3), D = 3 tương ứng với 3 kênh màuRed, Green, Blue

Trang 22

Với bộ não con người chỉ cần chưa tới vài giây ta có thể nhận dạng đượcđối tượng Tuy nhiên đây lại là một vấn đề khó khăn đối với hệ thống máytính Thậm chí trong một số trường hợp bản thân con người cũng có thể khôngnhận dạng được đối tượng Một số thách thức đối với bài toán nhận dạng hìnhảnh có thể kể đến như:

 Sự sai khác góc nhìn: Các góc nhìn khác nhau sẽ đưa ra các dự đoánkhác nhau đối với cùng một đối tượng

 Về vấn đề che khuất: Đối tượng bị che khuất một phần

 Nhầm lẫn bối cảnh: Đối tượng bị hòa trọn vào môi trường xung quanhtrong ảnh

 Sự sai khác về tỉ lệ, hình dạng của đối tượng: Tỉ lệ ảnh lớn – nhỏ, bịlệch hướng so với ảnh góc cũng gây ảnh hưởng đến kết quả dự đoán

1.2 Kết luận chương 1

Chương này đã giới thiệu sơ lược về sự phát triển của Deep Learning,phương pháp nhận dạng hình ảnh của máy tính sử dụng Deep Learning, vềbài toán và phương pháp của Deep Learning trong nhận dạng hình ảnh cũngnhư các thuật toán tối ưu Chương 2 sẽ trình bày cơ sở lý thuyết và các đơn vịcấu thành mạng nơ-ron nhân tạo CNN

Trang 23

CHƯƠNG 2 LÝ THUYẾT CƠ BẢN VỀ MẠNG NƠ-RON TÍCH CHẬP

CNN VÀ CÁC THAM SỐ LIÊN QUAN 2.1 Giới thiệu chương 2

Chương 2 sẽ đi sâu vào giới thiệu các khái niệm, các thành phần cơ bảncấu tạo thành mô hình mạng CNN và cách mà mô hình mạng hoạt động

2.2 Mạng nơ-ron tích chập

Trong chương 1, em đã trình bày về mạng nơ-ron nhân tạo nhiều lớp MLP.Tuy nhiên việc ứng dụng mô hình này vào giải quyết bài toán phân loại ảnhlại cần được cân nhắc: Việc sử dụng các lớp Full connection, mỗi dữ liệu ngõvào sẽ được đưa đến tất cả các nơ-ron của lớp ẩn thứ nhất, và giá trị sau đó lạitiếp tục được đưa đến tất cả các nơ-ron của lớp ẩn thứ hai Nhận thấy, với kíchthước dữ liệu lớn, thì hệ thống sẽ trở nên rất phức tạp và số lượng phép tínhtăng vọt sau mỗi lớp ẩn

Giả sử với một bức ảnh màu 100*100 được biễu diễn dưới dạng 1 Tensor100*100*3 (Tensor là một kiểu dữ liệu dạng mảng có nhiều chiều) Nếu để biểuthị hết nội dung của bức ảnh thì cần truyền vào lớp đầu vào tất cả các pixel(100*100*3 = 30000) Nghĩa là đầu vào giờ có 30000 nơ-ron Giả sử số lượng nơ-ron trong lớp ẩn thứ nhất là 1000 Số lượng trọng số giữa lớp đầu vào và lớp

ẩn thứ nhất là 30000*1000 = 30000000, số lượng bias là 1000 Như vậy, tổng sốthông số là: 30001000 Đây mới chỉ là thông số giữa lớp đầu vào và lớp ẩn thứnhất, trong hệ thống còn nhiều lớp khác nữa, và nếu kích thước ảnh tăng, ví

Trang 24

dụ 1000*1000 thì số lượng thông số tăng cực kì nhanh Vì vậy cần một giảipháp thích hợp hơn đó là sử dụng mạng nơ-ron tích chập CNN.

Mạng CNN sử dụng 3 ý tưởng cơ bản là Local Receptive Field (vùng tiếpnhận cục bộ), Shared Weight And Bias (trọng số chung) và Pooling (lấy mẫu)[1] Để làm rõ hơn về nguyên lý hoạt động của CNN, chúng ta đi vào chi tiếtcác phần sau

2.3 Lớp tích chập

Lớp tích chập đóng vai trò cốt lõi của mạng CNN, là nhân tố giúp mạnglọc và học các đặc điểm của hình ảnh, tăng khả năng phân loại ảnh chính xáchơn Lớp tích chập có các đặc điểm sau:

2.3.1 Phép tích chập

Phép tích chập được thực hiện bằng cách tính tổng của giá trị của vùngtiếp nhận cục bộ nhân với ma trận trọng số có kích thước tương đương Điểmkhác biệt giữa mạng CNN và mạng MLP chính là các trọng số ở mạng MLP làhoàn toàn khác nhau giữa các nơ-ron và trong cùng một nơ-ron Với mạngCNN, các ma trận trọng số sẽ được dùng chung cho một lớp ẩn [4] Các giá trịdùng chung này được gọi là shared weights và shared biases Việc sử dụngchung các giá trị shared weights và shared biases sẽ giúp mạng tích chập giảmđược số lượng lớn các thông số Ví dụ với một vùng tiếp nhận cục bộ có kíchthước 3 x 3 pixel sẽ có 9 trọng số và 1 bias, 10 thông số này được sử dụngchung cho một lớp ẩn phía sau Rõ ràng số lượng thông số ít hơn nhiều so vớimạng MLP Các ma trận shared weight này sẽ được chập với dữ liệu từ lớpngõ vào tạo thành các lớp ngõ ra tương ứng Khi đó các ma trận trọng số đượcgọi là các bộ lọc (filters), ngõ ra tích chập của vùng tiếp nhận cục bộ với bộ lọcđược gọi là các bản đồ đặc tính (feature maps)

Trang 25

Hình mô tả cách hình thành các bản đồ đặc tính với lớp ngõ vào 6 x 6, bộlọc có kích thước 3 x 3, stride = 1 (dấu nhân thể hiện phép tích chập) Ví dụ vớigiá trị đầu tiên trong lớp bản đồ đặc tính được tính như sau: [2 x (-1) + 2 x (-1)+ 1 x (-1)] + [0 x 0 + 1 x 0 + 0 x 0] + [0 x 1 + 0 x 1 + 1 x 1] = − ¿ 4

Vùng tiếp nhận cục bộ sẽ được chập với bộ lọc sau mỗi bước trượt trên lớpngõ vào tạo thành một nơ-ron ở lớp ẩn tương ứng Quá trình này lặp lại chođến khi vùng tiếp nhận cục bộ trượt đến hết lớp ngõ vào sẽ tạo thành một bản

đồ đặc tính Với mỗi bộ lọc sẽ tạo thành một bản đồ đặc tính khác nhau Trênthực tế, các lớp ẩn sẽ có nhiều bản đồ đặc tính với các bộ lọc khác nhau nhằmtrích xuất nhiều thông tin của hình ảnh như: đường thẳng, đường cong, vùngbiên, đường chéo Việc cho phép xử lý, trích xuất các thông tin theo chiềukhông gian giúp mạng CNN thể hiện được những kết quả tốt đối với các bàitoán nhận dạng hình ảnh

2.3.2 Vùng tiếp nhận cục bộ

Ở mạng MLP, các nơ-ron lớp này được kết nối đến toàn bộ các nơ-ron củalớp phía trước và phía sau Ở mạng CNN, lớp ngõ vào sẽ được giữ nguyênkích thước cũng như số chiều của hình ảnh ban đầu, mỗi nơ-ron ở lớp ẩn sẽ

Trang 26

được kết nối với một vùng nhỏ ở lớp ngõ vào Mỗi vùng nhỏ ở lớp ngõ vàođược gọi là các cửa sổ hoặc các vùng tiếp nhận cục bộ (local receptive field).

Ví dụ như hình 2.3.2 vùng có kích thước 3x3 tại lớp ngõ vào được gọi làvùng tiếp nhận cục bộ Với mỗi vùng tiếp nhận cục bộ ở lớp ngõ vào, ta sẽ cótương ứng một nơ-ron ở lớp ẩn tiếp theo Các nơ-ron ở lớp ẩn này có nhiệm vụhọc các đặc tính của vùng cục bộ ở lớp ngõ vào Mỗi nơ-ron sẽ có một đặc tínhkhác nhau dựa trên đặc tính của vùng tiếp nhận cục bộ ở lớp ngõ vào Để cóđược một lớp ẩn gồm các nơ-ron ẩn, quá trình này được thực hiện bằng cáchtrượt vùng tiếp nhận cục bộ trên dữ liệu của lớp ngõ vào Quá trình trượt theoquy tắc dịch từ trái sang phải, từ trên xuống dưới, được mô tả như hình 2.3.3:

Trang 27

Sau khi vùng tiếp nhận cục bộ trượt qua hết ngõ vào, ta có được mộtlớp ẩn với các nơ-ron có kích thước nhỏ hơn so với kích thước lớp ngõ vào(hình 2.3).

Trang 28

2.3.3 Số bước trượt (Strides)

Như đã mô tả ở trên, quá trình hình thành lớp ẩn phụ thuộc vào nguyêntắc trượt vùng tiếp nhận cục bộ Ngoài việc tuân theo quy tắc đã được nêu ra,kích thước lớp ẩn còn phụ thuộc vào số bước trượt vùng tiếp nhận cục bộ Mộtcách ngắn gọn, số bước trượt chính là số pixel mà vùng tiếp nhận cục bộ sẽdịch chuyển so với vị trí trước đó Giả sử chọn vùng tiếp nhận cục bộ có kíchthước 4x4 pixel, với giá trị bước trượt bằng 1, vùng tiếp nhận cục bộ sẽ dịchchuyển 1 pixel (hình 2.4a), với bước trượt bằng 2, vùng tiếp nhận cục bộ sẽdịch chuyển 2 pixel (hình 2.4b) Giá trị bước trượt càng lớn, kích thước của lớp

ư ớ

c l

Trang 29

10 x 10, vùng tiếp nhận có cục bộ có kích thước 4 x 4 pixel thì H = (10-4)/1 + 1 =

7 pixel

2.3.4 Zero padding

Ở trên, ta thấy giá trị lớp ngõ vào từ 10x10 pixel qua lớp tích chập thì kíchthước dữ liệu bị rút gọn lại còn 7x7 pixel, nếu tiếp tục cho dữ liệu qua nhiềulớp tích chập thì đầu ra tiếp tục giảm dẫn đến các vấn đề: Thứ nhất, số lượnglớp ẩn sẽ bị hạn chế, trong khi để khai thác được nhiều các đặc tính cơ bản củadữ liệu, chúng ta lại cần nhiều lớp ẩn Thứ hai, thông tin sẽ bị mất mát dần saukhi qua bộ lọc tích chập Để xây dựng được nhiều lớp ẩn hơn nhưng vẫn giữnguyên kích cỡ của lớp ẩn nhằm mục đích nâng cao hiệu quả của mô hình vàtránh mất mát các thông tin, các lớp zero padding (gọi tắt padding) cho phépthực hiện điều này bằng cách thêm vào các nơ-ron có giá trị 0 bao quanhđường biên

Ở hình trên, lớp ngõ vào ban đầu có kích thước 8x8 pixel, sau khi đượcthêm lớp padding kích thước 1x1 pixel ở 4 cạnh, thì lúc này kích thước lớp ngõ

Trang 30

vào trở thành 10x10 pixel Giả sử áp dụng vùng tiếp nhận cục bộ có kích thước3x3 pixel, bước trượt bằng 1 Theo công thức 2.1 ta được lớp ẩn có kích thước

H = (10 – 3)/1 + 1 = 8x8 pixel Giá trị này bằng với kích thước ban đầu trước khithêm padding của lớp ngõ vào Như vậy, việc thêm padding khắc phục được

sự mất mát thông tin Tổng quát, với H là kích thước lớp ảnh, n là kích thướclớp ngõ vào, k là kích thước vùng tiếp nhận cục bộ, s là giá trị bước trượt, p làgiá trị padding,, ta có được công thức sau:

K

í

c h t h

ư

c l

2.4 Lấy mẫu xuống (Pooling)

Việc mạng CNN sử dụng các trọng số dùng chung giúp hạn chế được sốlượng thông số trong mạng Tuy nhiên, nếu các lớp tích chập chứa nhiều cácbản đồ đặc tính thì số lượng các thông số vẫn tăng lên theo cấp số nhân Mộtgiải pháp được đề xuất là sử dụng các lớp pooling Mục đích của các lớppooling là để giảm kích thước của dữ liệu từ đó giảm số lượng các thông số vàtính toán trong mạng, đồng thời vẫn giữ nguyên chiều sâu của dữ liệu Có cácphương pháp pooling như max pooling hay average pooling

Trang 31

Với Max Pooling, sau khi đi qua lớp pooling, các bản đồ đặc tính sẽ đượcgiảm kích thước bằng cách: một cửa sổ nhỏ ở lớp trước sẽ được thay thế bằnggiá trị lớn nhất của nơ-ron ở lớp đó, tức lấy giá trị lớn nhất của vùng nơ-ron

đó Với Average Pooling thì các bản đồ đặc tính sẽ được giảm bằng cách: mộtcửa sổ nhỏ ở lớp trước sẽ được thay thế bằng tổng trung bình của các nơ-ron ởlớp đó Hình 2.8a là max pooling, 2.8b là average pooling với vùng nơ-ron cókích thước 2 x 2 và stride bằng 2 Với kích thước như này, sau khi đi qua lớp

Trang 32

pooling, kích thước của lớp ngõ ra sẽ được giảm một nửa Các kích thướcpooling lớn hơn sẽ làm mất mát thông tin dữ liệu nhiều hơn.

2.5 Lớp Dropout

Dropout là phương pháp cho phép huấn luyện mạng nơ-ron nhân tạotránh được trường hợp overfitting [16] Overfitting là một trường hợp thườnggặp khi huấn luyện các mạng nơ-ron, khi mô hình huấn luyện bám quá sát dữliệu huấn luyện, dẫn tới kết quả trên tập dữ liệu huấn luyện rất cao trong khithử nghiệm mô hình trên tập dữ liệu đánh giá cho kết quả thấp hơn đáng kể.Với các mô hình thực tế, việc overfitting là không thể tránh khỏi bởi vì khi việchuấn luyện các mô hình, mục đích cuối cùng chính là tỉ lệ nhận dạng đúngcàng cao càng tốt Để đạt được điều đó, mô hình mạng phải được xây dựngphức tạp, phải được huấn luyện nhiều lần khi đó hiện tượng overfitting sẽxuất hiện

Để giảm được overfitting, thì với phương pháp dropout sẽ loại bỏ một sốnơ-ron ngẫu nhiên trong mạng với một xác suất cho trước Bằng cách thiết lập

Trang 33

tất cả trọng số của nơ-ron đó bằng 0, đồng nghĩa với các liên kết tới nơ-ron đóđều không có giá trị (hình trên bên phải), khi đó mô hình sẽ phải cố gắng nhậndạng đúng trong khi thiếu thông tin từ các nơ-ron bị loại bỏ Điều này sẽ giúptăng tỉ lệ nhận dạng của mô hình nhưng không quá phụ thuộc vào dữ liệuhuấn luyện.

2.6 Hàm kích hoạt ngõ ra Softmax

Hàm softmax được sử dụng để đưa ra quyết định của mạng Hàm softmax

sẽ chuyển các giá trị ngõ ra của mạng thành phân phối xác suất thỏa mãn 2yêu cầu: xác suất dự đoán của một nơ-ron luôn lớn hơn 0 và tổng xác suất dựđoán của mạng bằng 1 Thay vì dự đoán đầu ra theo các giá trị ngõ ra, mạng

sử dụng hàm softmax sẽ dự đoán đầu ra dựa vào xác suất của các ngõ ratương ứng Giá trị nơ-ron ngõ ra càng lớn, xác suất dự đoán rơi vào ngõ ra nơ-ron đó càng cao Công thức hàm softmax được cho bởi:

y i

¿

e y i

i=1 j

Trong đó: y i là xác suất của ngõ ra y i ; j là số lượng nơ-ron ở lớp ngõ ra Công thức (2.4) được hiểu đơn giản là xác suất của nơ-ron thứ i bằng giá trị ngõ ra tại nơ-ron thứ i chia cho tổng tất cả các giá trị nơ-ron tại lớp ngõ ra.

2.7 Hàm tổn hao Cross Entropy

Cross Entropy được sử dụng rộng rãi ngày nay trong các mạng có chứacác lớp softmax ở ngõ ra Cross Entropy sử dụng giá trị xác suất của ngõ ra dựđoán để so sánh với ngõ ra thực sự Công thức hàm tổn hao được cho bởi:

Trang 34

mô hình sẽ bị phạt càng nặng từ đó có thể hiệu chỉnh các thông số phù hợp VD: Nhãn dán của 1 ngõ vào là [1; 0; 1] tại ngõ ra có 3 nơ-ron có các giá trịlần lượt là [3; 4; 5] Giá trị ngõ ra sau khi qua hàm softmax có giá trị ngõ ra 3:e3/(e3 + e4 + e5) = 0.09, tương tự ngõ ra 4 = 0.24, ngõ ra 5 = 0.66 Với CrossEntropy giá trị hàm tổn hao [1; 0; 1] là: 1*log(0.09) + 0*log(0.24) + 1*log(0.66) =1.2

2.8 Tỷ lệ học

Tỉ lệ học có vai trò quan trọng trong việc quyết định mô hình mạng họcnhanh hay chậm Việc cập nhật trọng số và bias lên quan đến tỉ lệ học Tỉ lệhọc càng lớn, các giá trị cập nhật của trọng số và bias càng lớn đồng nghĩa vớiviệc mô hình mạng học nhanh Việc học càng nhanh sẽ giúp mô hình nhanhchóng đạt tới điểm hội tụ của mạng, tuy nhiên sự thay đổi các thông số quálớn sẽ làm cho hàm tổn hao mô hình mạng không đạt được giá trị tối ưu nhỏnhất mà sẽ dao động xung quanh giá trị đó Ngược lại khi chọn tỉ lệ học thấp,

sự thay đổi các thông số trong mạng rất nhỏ, làm chậm lại quá trình học dẫnđến rất lâu hàm tổn hao mới đạt giá trị nhỏ nhất

Trang 36

CHƯƠNG 3 SO SÁNH MÔ HÌNH MLP VỚI CNN VÀ KHẢO SÁT SỰ

ẢNH HƯỞNG CỦA CÁC THAM SỐ

3.1 Giới thiệu chương 3

Chương 3 sẽ khảo sát khả năng nhận dạng đúng của hai mô hình MLP vàCNN Từ đó thấy được sự vượt trội giữa 2 mô hình và khảo sát các tham sốliên qua đến mô hình được chọn để xây dựng được mô hình tối ưu và thíchhợp nhất cho bài toán phân loại trái cây sẽ được trình bày trong chương tiếptheo

Đối với việc huấn luyện và đánh giá cho mô hình mạng trên môi trườngGoogle Colab sử dụng thư viện Keras:

có hỗ trợ GPU(Tesla K80) và TPU Là một công cụ hỗ trợ rèn luyện kỹnăng lập trình với ngôn ngữ Python thông qua các thư viện của DeepLearning Đã cài đặt sẵn cho chúng ta những thư viện phổ biến nhưPyTorch, Keras, TensorFlow, OpenCV…

điểm là cú pháp đơn giản, dễ sử dụng, có thể chạy trên CPU và GPU.Trong Keras hỗ trợ 2 cách xây dựng Model đó là: Sequential model vàFunction API

3.2 Cơ sở dữ liệu, so sánh mô hình

3.2.1 Cơ sở dữ liệu

Bộ cơ sở dữ liệu CIFAR10 là tập dữ liệu ảnh màu tự nhiên, được thu tập vàchia sẽ miễn phí bởi Alex Krizhevsky, Vinod Nair và Geoffrey Hinton[] Bộ

Trang 37

CIFAR10 bao gồm 60000 ảnh màu, chia thành 2 tập: gồm 50000 ảnh huấnluyện và 10000 ảnh đánh giá, có kích thước 32 x 32 x 3 (3 lớp màu RGB) Cácảnh này gồm 10 nhóm khác nhau, mỗi nhóm có 6000 ảnh, tương ứng mỗinhóm được đánh nhãn: máy bay, ô tô, chim, mèo, hươu, chó, ếch, ngựa, tàu và

xe tải

3.2.2 So sánh mô hình MLP và CNN

Trang 38

Mô hình mạng MLP:

- Lớp ngõ vào: 3072 nơ-ron

- Số lượng lớp ẩn: 4 lớp

+ Lớp 1 gồm 1024 nơ-ron+ Lớp 2 gồm 512 nơ-ron+ Lớp 3 gồm 256 nơ-ron+ Lớp 4 gồm 128 nơ-ron

- Hàm truyền: Relu

- Tỷ lệ Dropout: 0.5

- Ngõ ra: 10 nơ-ron với hàm kích hoạt ngõ ra là softmax

- Hàm tối ưu Adam

- Chu kỳ học (Epoch): 50

- Kích thước gói con (Batch size): 32

Mô hình mạng CNN:

- Lớp ngõ vào: 32x32x3 pixel

- Số lượng khối tích chập: 2 (Convolution + MaxPooling)

Ngày đăng: 03/08/2022, 15:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đề tài nghiên cứu khoa học. Phạm Phú Quốc (2019). “Ứng dụng kĩ thuật học sâu vào bài toán nhận dạng hình ảnh”. Khoa điện tử - Viễn thông, Đại học Khoa học - Huế Sách, tạp chí
Tiêu đề: Ứng dụng kĩ thuậthọc sâu vào bài toán nhận dạng hình ảnh
Tác giả: Đề tài nghiên cứu khoa học. Phạm Phú Quốc
Năm: 2019
[19] Eugenio Culurciello (2017) “The History of Neural Networks”.Medium Sách, tạp chí
Tiêu đề: The History of Neural Networks
[8] Qian, N. (1999). On the momentum term in gradient descent learning algorithms. Neural Networks: The Official Journal of the International Neural Network Society, 12(1), 145–151. http://doi.org/10.1016/S0893-6080(98)00116-6 Link
[10] Christian Igel and Michael H ̈usken (2000). Improving the Rprop Learning Algorithm. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1332 Link
[2] Michael Copeland (2016). What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning?, NVIDIA Blog Khác
[3] Bill Schmarzo (2018). Using Confusion Matrices to Quantify the Cost of Being Wrong, View Blog Khác
[4] Michael A. Nielsen (2015). Neural Networks and Deep Learning, Determination Press Khác
[5] V SHARMA (2018). Deep Learning – Introduction to Convolutional Neural Networks. Vinod Sharma's Blog Khác
[6] Léon Bottou, Frank E. Curtis, Jorge Nocedal (2016). Optimization Methods for Large-Scale Machine Learning, arXiv:1606.04838 Khác
[7] Goodfellow, Bengio & Courville 2016, p. 200, "Furthermore, back propagation is often misunderstood as being specific to multi-layer neural networks, but in principle it can compute derivatives of any function&#34 Khác
[9] Sutskever, I., Martens, J., Dahl, G.E. and Hinton, G.E. (2013). On the importance of initialization and momentum in deep learning. ICML (3), Vol 28, pp. 1139—1147 Khác
[11] Alexandre Défossez, Léon Bottou, Francis Bach, Nicolas Usunier (2020).On the Convergence of Adam and Adagrad, arXiv:2003.02395 Khác
[12] Matthew D. Zeiler (2012), ADADELTA: AN ADAPTIVE LEARNING RATE METHOD,arXiv:1212.5701v1 [cs.LG] 22 Dec 2012 Khác
[13] Jean-Louis Queguiner (2019). Deep Learning explained to my 8-year- old daughter. OVHcloud blog Khác
[14] Fei-Fei Li, Andrej Karpathy, Justin Johnson (2016). Image Classification, in Convolutional Neural Networks for Visual Recognition, Stanford CS Khác
[15] Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton (2012). Imagenet classification with deep convolutional neural networks, NIPS, vol. 25, pp. 1097- 1105 Khác
[16] Xiang Li, Shuo Chen, Xiaolin Hu, Jian Yang (2018). Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift.arXiv:1801.05134 Khác
[17] Yann LeCun, Courant Institute (1989). The MNIST Database of Handwritten Digits Khác
[18] Alex Krizhevsky, Vinod Nair and Geoffrey Hinton (2009). The CIFAR- 10 dataset Khác
[20] Sagar Sharma (2017). Epoch vs Batch Size vs Iterations. Medium Khác

TỪ KHÓA LIÊN QUAN

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

w