1. Trang chủ
  2. » Luận Văn - Báo Cá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 5 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)
Tác giả Nguyễn Trí Định
Người hướng dẫn Thạc sĩ Vương Quang Phước
Trường học Đại học Khoa Học
Chuyên ngành Điện Tử - Viễn Thông
Thể loại đồ án 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

 Xây dựng mô hình mạng  Chọn phương pháp đánh giá, hàm kích hoạt, hàm tối ưu và hàm tổn hao  Huấn luyện mô hình để tối ưu các thông số weight và bias  Đánh giá mô hình và dự đo

Trang 1

Liệu đã nhiệt tình giúp đỡ, giảng dạy và mang đến cho em những điều bổ ích về các môn đại cương cũng như các môn chuyên ngành, giúp em có được nền tả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ễn thô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ươ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, 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ỏi nhữ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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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ằng ngô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ôn ngữ Python 82

Trang 7

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

AI Artificial Intelligence Trí tuệ nhân tạo

Network

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

MLP Multi-Layers Perceptron Multi-Layers Perceptron

CIFAR Canadian Institute for

dốc

Package

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

hệ điều hành Android

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ụng và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ên google 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.

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 pixel Bộ cơ sở dữ liệu Fruit-360 với 30080 ảnh màu thuộc 48 lớp với 22783 ảnh huấ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…).

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ằng Google Colaboratory (Google Colab).

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

 Chuẩn bị cơ sở dữ liệu.

 Xây dựng mô hình mạng

 Chọn phương pháp đánh giá, hàm kích hoạt, hàm tối ưu và hàm tổn hao

 Huấn luyện mô hình để tối ưu các thông số weight và bias

 Đánh giá mô hình và dự đoán với dữ liệu mới

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

 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

 Chương 2: Mạng nơ-ron tích chập (Convolution neural network - CNN)

 Chương 3: So sánh mô hình MLP với CNN và khảo sát đánh giá các thông số để xây dựng mô hình.

 Chương 4: Ứng dụng mô hình mạng nơ-ron tích chập (CNN) vào bài toán phân loại củ quả

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ũng như ứng dụng rộng rãi, và bài toán nhận dạng hình ảnh là môt trong những vấn đề được quan tâm hàng đầu Chương 1 sẽ giới thiệu tổng quan về Deep Learning, cách thức cấu thành mạng nơ-ron, và phương pháp học, đặc điểm bà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ân tạo được nghiên cứu và biết đến vào những năm 1956, AI dùng để chỉ

Trang 11

Machine Learning là một lĩnh vực con của AI, sử dụng các thuật toán cho 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 có giám sát (Supervised Learning) : Là một kỹ thuật máy 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)

 Học không giám sát (Unsupervised Learning) : Là một kỹ 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ập dữ liệu không được gán nhãn cho trước Tập dữ liệu huấn luyện của họ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ồm cá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 (được gọi là mạng neuron nhân tạo), mạng nơ-ron nhân tạo không cần con người lập trình để thực hiện công việc, mà chỉ cần cung cấp cho máy tính một thuậ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ên cứu về mạng nơ-ron nhân tạo ANN(Artificial Neural Network), lấy cảm hứ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 đến rộng rãi vào 3/2016 khi thuật toán trí tuệ nhân tạo của Google đã đánh bại

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:

 Cơ sở dữ liệu cho việc huấn luyện ngày càng nhiều.

 Khả năng tính toán song song tốc độ cao của GPU.

 Nhiều kĩ thuật mới tăng độ chính xác cho mô hình: Dropout, Batch Normalization, Data Augmentation.

 Nhiều thư viện hỗ trợ cho việc huấn luyện mạng nơ-ron nhân tạo sâu với GPU: Theano, Tensorflow, Pytorch, Keras,…

 Nhiều kĩ thuật tối ưu mới : SGD, RMSProp, Adam,…

 Sự cải tiến của các cấu trúc mạng: CNN, RNN, RCNN…

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ột nơ-ron sinh học:

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ác trọ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ánh với một mức ngưỡng (bias) để đưa ra quyết định ngõ ra tương ứng, công thức:

Trang 15

output = { 0nế uj x j w j ≤n g ưỡ ng

1nế uj x j w j ≥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

ư ỡ

n : mức ngưỡng quyết định giá trị ngõ ra

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) được viết lại thành:

output = { 0nế uj x j w j +b≤0

1nế uj x j w j +b≥0 (2)

Giá trị bias b có thể xem là thang đo, và có quyết định lớn đến việc Perceptron đưa ra giá trị ngõ ra là 1 Việc sử dụng bias sẽ giúp quá trình tinh 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ác thông số này.

Sigmoid

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

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àm kí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ặc 1).

Để giải quyết được khó khăn này thì Sigmoid ra đời Về cơ bản Sigmoid cũng tương tự như Perceptron(cũng có các ngõ vào x1,x2 … và bias), tuy nhiên điểm khác biệt ở Sigmoid là khi có sự thay đổi nhỏ thông số hệ thống thì ngõ ra sẽ thay đổi tương ứng Khác với Perceptron chỉ có các ngõ vào nhận là 0/1 thì với Sigmoid ngõ vào có thể là bất kì giá trị nào nằm trong khoả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

j x j w j+ b ngõ ra của Sigmoid neuron được viết lại theo các tham số w, x và b như sau:

n r a

¿

1

1 + e−(∑j x j w j + b )

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)

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

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

trong khoảnh (-1,1) ở đầu ra.

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

và tanh:

+ Relu ko bị bão hòa ở 2 đầu

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ản nên thời gian tính toán nhanh hơ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ụ

- Bị bão hòa ở 2 đầu - Với các node nhỏ hơn 0 khi

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

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ết hợ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ứa trong ả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 hay tổ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ượng kênh D của ảnh sẽ bằng 1 (D = 1), ví dụ ảnh trong tập dữ liệu Mnist được biểu diễn dưới một ma trận ảnh xám có kích thước (28x28x1) Với một hình ảnh mà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àu Red, 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áy tính Thậm chí trong một số trường hợp bản thân con người cũng có thể không nhậ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án khá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 quanh trong ả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ũng như 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ản cấ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 ảnh lạ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ại tiế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ích thướ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ính tă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 Tensor 100*100*3 (Tensor là một kiểu dữ liệu dạng mảng có nhiều chiều) Nếu để biểu thị 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ải phá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ếp nhậ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ết cá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ạng lọ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ác hơ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ùng tiế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ểm khá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ạng CNN, 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ụng chung 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ích thước 3 x 3 pixel sẽ có 9 trọng số và 1 bias, 10 thông số này được sử dụng chung 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ới mạng MLP Các ma trận shared weight này sẽ được chập với dữ liệu từ lớp ngõ vào tạo thành các lớp ngõ ra tương ứng Khi đó các ma trận trọng số được gọ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ới giá 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ớp ngõ 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ên thự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ằm trích xuất nhiều thông tin của hình ảnh như: đường thẳng, đường cong, vùng biên, đường chéo Việc cho phép xử lý, trích xuất các thông tin theo chiều không gian giúp mạng CNN thể hiện được những kết quả tốt đối với các bài toá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ủa lớp phía trước và phía sau Ở mạng CNN, lớp ngõ vào sẽ được giữ nguyên kí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ính khá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ách trượ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 theo quy 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ột lớ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ên tắ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ột cá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ích thướ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ịch chuyể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ích thướ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ều lớ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ượng lớp ẩn sẽ bị hạn chế, trong khi để khai thác được nhiều các đặc tính cơ bản của dữ 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 sau khi 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ép thự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 được thê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ước 3x3 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 khi thê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ước lớ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ác bả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ột giải pháp được đề xuất là sử dụng các lớp pooling Mục đích của các lớp pooling 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ác phươ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ẽ được giảm kích thước bằng cách: một cửa sổ nhỏ ở lớp trước sẽ được thay thế bằng giá 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ột cử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ước pooling 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ạo tránh được trường hợp overfitting [16] Overfitting là một trường hợp thường gặ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 khi thử 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ệc huấn luyện các mô hình, mục đích cuối cùng chính là tỉ lệ nhận dạng đúng càng cao càng tốt Để đạt được điều đó, mô hình mạng phải được xây dựng phứ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ận dạng đúng trong khi thiếu thông tin từ các nơ-ron bị loại bỏ Điều này sẽ giúp tăng tỉ lệ nhận dạng của mô hình nhưng không quá phụ thuộc vào dữ liệu huấ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 2 yê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õ ra tươ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

e y i

(2.4)

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ứa cá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 Cross Entropy 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ọc nhanh 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ới việc mô hình mạng học nhanh Việc học càng nhanh sẽ giúp mô hình nhanh chó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ích hợ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ếp theo.

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

 Google Colab(Colaboratory) : Là một dịch vụ đám mây miễn phí,

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 Deep Learning Đã cài đặt sẵn cho chúng ta những thư viện phổ biến như PyTorch, Keras, TensorFlow, OpenCV…

 Keras là một thư viện mạng neuron được viết bằng Python có ưu đ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ấn luyệ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ỗi nhó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

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

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

Ngày đăng: 23/12/2023, 18:00

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ật họ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
[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
[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

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