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

Nghiên cứu và ứng dụng mạng nơ ron có tập trọng số nguyên

93 0 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 đề Nghiên Cứu Và Ứng Dụng Mạng Nơ-Ron Có Tập Trọng Số Nguyên
Tác giả Lê Minh Phường
Người hướng dẫn PGS.TS Trương Ngọc Sơn
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 10,81 MB

Nội dung

Trang 1 THÀNH PHỐ HỒ CHÍ MINHBỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT LUẬN VĂN THẠC SĨ LÊ MINH PHƯỜNGNGHIÊN CỨU VÀ ỨNG DỤNG MẠNG NƠ-RON CÓ TẬP TRỌNG SỐ NGUYÊN NGÀNH:

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

LÊ MINH PHƯỜNG

NGHIÊN CỨU VÀ ỨNG DỤNG MẠNG NƠ-RON

CÓ TẬP TRỌNG SỐ NGUYÊN

NGÀNH: KỸ THUẬT ĐIỆN TỬ

SKC008340

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

LUẬN VĂN THẠC SĨ

LÊ MINH PHƯỜNG

NGHIÊN CỨU VÀ ỨNG DỤNG MẠNG NƠ-RON CÓ TẬP

Trang 12

LỜI CẢM ƠN

Lời đầu tiên, em xin được trân trọng gửi lời cảm ơn đến Ban giám hiệu cùng toàn thể các thầy, cô trong khoa Điện – Điện Tử của trường đại học Sư Phạm Kỹ Thuật

Tp Hồ Chí Minh đã tạo cơ hội và điều kiện cho em được thực hiện luận văn này

Em xin được gửi lời cảm ơn chân thành đến thầy PGS.TS Trương Ngọc Sơn, nhờ

sự hướng dẫn tận tụy của thầy mà em đã hoàn thành kịp tiến độ và qua đó em cũng học hỏi từ thầy thêm nhiều kỹ năng quan trọng để nghiên cứu vấn đề

Nhân tiện, con cũng xin gửi lời cảm ơn đến với ba mẹ, vì đã luôn ủng hộ, và động viên tinh thần con trong suốt quá trình học tập

Tôi muốn cảm ơn đến tất cả các bạn cùng lớp bởi sự động viên, khích lệ tinh thần, và chia sẽ kinh nghiệm đến với tôi Cảm ơn “nhóm luận văn” đã thảo luận, trao đổi cùng nhau để vượt qua mỗi khi các thành viên trong nhóm gặp khó khăn trong quá trình thực hiện luận văn

Một lần nữa, tôi xin trân trọng cảm ơn tất cả những người đã kề vai sát cánh trong suốt quá trình học tập và thực hiện luận văn này

Học viên

Lê Minh Phường

Trang 13

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tp, Hồ Chí Minh, ngày … tháng … năm 202…

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

Trang 14

TÓM TẮT

Đề tài đi sâu tìm hiểu một phương pháp tối ưu và áp dụng vào một mạng học sâu

để mạng học sâu đó có thể hoạt động dựa trên tập trọng số nguyên 8 bit Phương pháp tối ưu này thực hiện một quá trình chuyển đổi tập trọng số của mô hình mạng số thực

32 bit sau khi đã được huấn luyện Tập trọng số thu được sẽ được biểu diễn ở kiểu số nguyên 8 bit Trong một mạng học sâu tiêu chuẩn, các tham số tính toán được biểu diễn ở dạng số thực 32 bit, vì vậy các kết quả thu được bằng cách thực hiện nhiều phép tính phức tạp và tốn rất nhiều dung lượng để truy xuất các phần tử lưu trữ, điều này đòi hỏi thiết bị phần cứng phải được trang bị các đơn vị chuyên biệt để xử lý các phép toán số thực như FPU (Floating Point Units) Chính vì các đặc điểm này mà các mạng học sâu không thể được triển khai rộng rãi trong người dùng được với lý do là chi phí đầu tư quá lớn cho thiết bị phần cứng Với phương pháp lượng tử hóa mạng

số thực 32 bit thành mạng số nguyên 8 bit tạo ra tập trọng số có kích thước giảm hơn 3,9 lần, tăng tốc độ xử lý lên khoảng 3 lần tùy vào độ phức tạp của dữ liệu ngõ vào Trong khi đó, độ chính xác của mạng đã tối ưu sẽ được duy trì tương đương với độ chính xác của mô hình số thực 32 bit Trong luận văn này, tác giả đã sử dụng phương pháp lượng tử hóa tiếp cận QAT (Quantization Aware Training) để áp dụng vào một

mô hình mạng CNN (Convolution Neural Network) gồm 8 lớp để thực hiện phân loại

5 loại trái cây được triển khai trên phần cứng cấu hình thấp Raspberry Pi 3B+ Toàn

bộ mô hình được thực hiện trên nền tảng ngôn ngữ Python

Trang 15

ABSTRACT

This project explores an quantization method and applies it to a deep learning network so that the deep learning network models can operate based on 8-bit integer weights This optimization method performs a weight set transformation of the float32 network model after it has been trained The resulting of weights will be represented as an 8-bit integer In a standard deep learning network model, the computational parameters are represented as float32, so the results are obtained by performing many complex calculations and consuming a lot of space to access the storage elements, which requires the hardware device to be equipped with specialized units to handle floating point operations such as FPUs It is because of these characteristics that deep learning networks cannot be widely deployed in users due to the high cost of hardware equipment With the method of quantizing the float32 network into an int8 network, the size of weight set is reduced by more than 3.9 times, increasing the processing speed by 3 times depending on the complexity of the data set Meanwhile, the precision of the optimized network will be maintained equivalent

to the float32 model In this project, the author uses the quantization approach (Quantization Aware Training) to apply to an 8-layer CNN network model to classify

5 types of fruits implemented on low-end Raspberry Pi 3B+ hardware The entire model is implemented on the Python platform

Trang 16

MỤC LỤC

LỜI CẢM ƠN x

LỜI CAM ĐOAN xi

TÓM TẮT xii

MỤC LỤC xiv

DANH SÁCH CÁC CHỮ VIẾT TẮT xvii

DANH SÁCH CÁC HÌNH xviii

DANH SÁCH CÁC BẢNG xx

Chương 1 TỔNG QUAN 1

1.1 Tổng quan về hướng của đề tài nghiên cứu 1

1.1.1 Nghiên cứu trong nước 1

1.1.2 Nghiên cứu ngoài nước 2

1.2 Tính cấp thiết của đề tài 4

1.3 Ý nghĩa khoa học và tính thực tiễn của đề tài 6

1.3.1 Ý nghĩa khoa học 6

1.3.2 Tính thực tiễn 6

1.4 Mục đích đề tài 6

1.5 Nhiệm vụ và giới hạn đề tài 6

1.5.1 Nhiệm vụ chính 6

1.5.2 Giới hạn 7

1.6 Phương pháp nghiên cứu 7

1.7 Tóm tắt các nội dung chính của đề tài 7

1.8 Kế hoạch thực hiện đề tài 8

Chương 2 CƠ SỞ LÝ THUYẾT 9

2.1 Tổng quan về mạng thần kinh nhân tạo (ANN – Aftificial Neural Network) 9

Trang 17

2.1.1 Mạng thần kinh nhiều lớp (MLP – Multi-Layer-Perceptron) 10

2.1.2 Một số hàm kích hoạt cơ bản: 15

2.1.3 Một số phương pháp huấn luyện mạng thần kinh nhân tạo 18

2.1.3.1 Học có sự giám sát (Supervised-Learning) 18

2.1.3.2 Học không có giám sát (Unsupervised Learning) 19

2.1.3.3 Học củng cố (Reinforcement Learning) 19

2.2 Tổng quan về mạng tích chập (CNN – Convolution Neural Network) 22

2.2.1 Cấu tạo của mô hình mạng tích chập 22

2.2.1.1 Lớp tích chập (Convolution layer) 23

2.2.1.2 Lớp pooling 25

2.2.1.3 Lớp mạng đầy đủ (Fully.Connected -FC) 26

2.2.2 Các công thức trong lớp tích chập cơ bản 26

2.3 Phương pháp tối ưu sử dụng trong khi huấn luyện mạng học sâu 27

2.3.1 Chuẩn hóa dữ liệu ngõ vào 27

2.3.2 Phương pháp cập nhật trọng số Adam 28

2.4 Thuật toán lượng tử hóa 8 bit số nguyên 29

2.4.1 Hoạt động tính toán phép nhân ma trận trên thiết bị cấp thấp 29

2.4.2 Thuật toán lượng tử hóa 8 bit số nguyên 31

2.4.3 Phương pháp huấn luyện lượng tử hóa tiếp cận (QAT - Quantization Aware Training) 35

Chương 3 ĐÁNH GIÁ MÔ HÌNH MẠNG NƠ-RON SỬ DỤNG TẬP TRỌNG SỐ NGUYÊN TRÊN CÁC TẬP DỮ LIỆU CHUẨN 39

3.1 Mô hình chung 39

3.1.1 Các tập dữ liệu huấn luyện cho mô hình 39

3.1.2 Khối chuẩn hóa dữ liệu 40

3.1.3 Khối kiến trúc mạng LeNet-5 41

3.1.4 Khối kết quả dự đoán 42

Trang 18

3.1.5 Lựa chọn các tham số huấn luyện cho mô hình 42

3.2 Lưu đồ thuật toán của mô hình 43

3.2.1 Lưu đồ thuật toán quá trình huấn luyện 46

3.2.2 Lưu đồ thuật toán quá trình suy luận 46

3.3 Kết quả thực thi mô hình trên hai tập dữ liệu MNIST và Fashion-MNIST 46

3.3.1 Kết quả thực thi trên phần cứng cấp cao 46

3.3.2 Kết quả thực thi trên phần cứng cấp thấp 49

Chương 4 ỨNG DỤNG MÔ HÌNH MẠNG NƠ-RON CÓ TẬP SỐ NGUYÊN CHO BÀI TOÁN PHÂN LOẠI TRÁI CÂY ĐƯỢC THỰC HIỆN TRÊN RASPBERRY PI 3B+ 51

4.1 Mô hình tổng quan 51

4.1.1 Điều kiện thu thập dữ liệu huấn luyện cho mô hình 52

4.1.2 Phần cứng Raspberry.Pi 3B+ 53

4.1.3 Khối xử lý ảnh ngõ vào 54

4.1.4 Khối mạng CNN 55

4.1.5 Khối kết quả ngõ ra 56

4.2 Lưu đồ thuật toán của mô hình 57

4.3 Kết quả thực thi ứng dụng 59

4.3.2 Các kết quả huấn luyện mô hình mạng CNN 61

4.3.3 Kết quả thực thi ứng dụng trên Raspberry Pi 3 B+ 62

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 64

5.1 Kết luận 64

5.2 Hướng phát triển của đề tài 65

TÀI LIỆU THAM KHẢO 66

Trang 19

CNN (Convolutional Neural Network)

CPU (Central Processing Unit)

DL (Deep Learning)

DNN (Deep Neural Network)

FCNN (Fully Connected Neural Network)

FP (Floating Point)

FPU (Floating Point Unit)

GD (Gradient Descent)

GPU (Graphics Processing Unit)

MAC (Multiply Accumulate)

SDNN (Space Displacement Neural Networks)

STE (Straight Through Estimator)

QAT Quantization Aware Training

PQT Post Quantization Training

Trang 20

DANH SÁCH CÁC HÌNH

Hình 2 1 Mô hình một nơ-ron sinh học 9

Hình 2 2 Mô hình toán học của một nơ-ron nhân tạo 9

Hình 2 3 Kiến trúc mạng nơ-ron truyền thẳng đa lớp 11

Hình 2 4 Hoạt động hàm loss cross entropy 13

Hình 2 5 Sơ đồ minh họa quá trình học có sự giám sát 18

Hình 2 6 Sơ đồ miêu tả quá trình học không có sự giám sát 19

Hình 2 7 Sơ đồ minh họa quá trình học củng cố 20

Hình 2 8 Tổng quát quá trình huấn luyện một nơ-ron nhân tạo 21

Hình 2 9 Mô hình CNN đơn giản cho nhiệm vụ phân loại ảnh 22

Hình 2 10 Minh họa cho hoạt động tích chập 24

Hình 2 11 Minh họa sự khác nhau giữa max pooling và average pooling 25

Hình 2 12 Lưu đồ thuật toán của thuật toán tối ưu tham số mạng (Adam) 28

Hình 2 13 Sơ đồ tổng quan về phép nhân ma trận trong phần cứng gia tốc mạng thần kinh 30

Hình 2 14 Sơ đồ phép nhân ma trận trong một mạng đối với lượng tử hóa quá trình suy luận 32

Hình 2 15 Giải thích trực quan của các lưới lượng tử hóa đồng nhất khác nhau với độ rộng b= 8 bit, s, z 34

Hình 2 16 Sơ đồ tổng quan của quá trình lượng tử hóa chuyển tiếp đối với lớp tích chập 34

Hình 2 17 Biểu đồ tính toán thuận ngược đối với QAT với STE 36

Hình 2 18 Sơ đồ mô hình huấn luyện QAT tiêu chuẩn 37

Hình 3 1 Sơ đồ khối tổng quát 39 Hình 3 2 Các mẫu ảnh chữ số viết tay trong tập MNIST 40

Hình 3 3 Khối chuẩn hóa dữ liệu 41

Trang 21

Hình 3 4 Sơ đồ thuật toán giai đoạn huấn luyện mạng LeNet-5 sử dụng QAT 45 Hình 3 5 Độ chính xác và mất mát của mô hình float32 và mô hình số nguyên int8

trên tập dữ liệu MNIST 47

Hình 3 6 Độ chính xác và mất mát của mô hình float32 và mô hình số nguyên int8

trên tập dữ liệu Fashion-MNIST 48

Hình 4 1 Mô hình tổng quan của ứng dụng phân loại trái cây 51

Hình 4 2 Giao diện ứng dụng khi thực thi trên Raspberry Pi 3 B+ 52 Hình 4 3 Phần cứng Raspberry Pi 3B+ 54 Hình 4 4 Quá trình chuẩn hóa dữ liệu sử dụng Standard deviation – zero mean 55 Hình 4 5 Lưu đồ thuật toán xử lý trong quá trình huấn luyện của ứng dụng phần

loại trái cây 57

Hình 4 6 Mô tả kết quả quá trình học của hai mạng số thực 32 bit và số nguyên 8 bit 61 Hình 4 7 Thời gian suy luận giữa mô hình số thực 32 bit và số nguyên 8 bit 63

Trang 22

Bảng 4 1 Mô tả 5 loại trái cây được sử dụng trong ứng dụng 53

Bảng 4 2 Kiến trúc của mạng sử dụng để huấn luyện 56 Bảng 4 3 Kết quả đánh giá sự ảnh hưởng của môi trường phân loại đến hệ thống 59 Bảng 4 4 Bảng so sánh hiệu suất suy luận của hai mô hình số thực 32 bit và số

nguyên 8 bit 62

Trang 23

Chương 1

TỔNG QUAN

1.1 Tổng quan về hướng của đề tài nghiên cứu

Học sâu đã cho chúng ta thấy được những ưu điểm vô cùng tuyệt vời của chúng trong những năm gần đây và bây giờ nó đã được sử dụng một cách rộng rãi trong các học viện và các lĩnh vực của nền công nghiệp hiện đại Tuy nhiên, với kích thước lớn

và yêu cầu các phép tính toán phức trong các mô hình DNN (Deep Neural Network) cho thấy sự hạn chế rất lớn và khó có thể để triển khai chúng lên các phần cứng có cấu hình thấp (do các mô hình này đòi hỏi một phần cứng mạnh mẽ, được trang bị các đơn vị xử lý số thực và khả năng lưu trữ lớn, còn các phần cứng cấp thấp thì không được trang bị tốt các yêu cầu này) Trong khi hiện nay các thiết bị người dùng phổ biến thường có cấu hình thấp đang được sử dụng ngày càng rộng rãi trong nhiều lĩnh vực trên toàn thế giới, vì vậy nhiều ứng dụng thực tế được xây dựng trên nền tảng máy học cũng ngày càng được triển khai nhiều hơn trên các thiết bị đó Chính vì vậy nhiều nghiên cứu được thực hiện với mục đích chủ yếu để xây dựng các kỹ thuật

áp dụng vào tối ưu các mạng học sâu và đánh giá hiệu suất khi được triển khai trên các thiết bị phần cứng cấp thấp Một số công trình nghiên cứu liên quan đến tối ưu hóa mô hình mạng học sâu ở trong và ngoài nước được liệt kê như sau

1.1.1 Nghiên cứu trong nước

Qua quá trình nghiên cứu, tìm hiểu và thu thập các tài liệu liên quan đến các phương pháp tối ưu cho các mô hình mạng học sâu cho đến thời điểm hiện tại, tác giả nhận thấy hầu như tất cả các công trình nghiên cứu chỉ đề cập đến mạng được thực hiện huấn luyện và suy luận dựa trên biểu diễn số thực 32 bit hoặc 64 bit Chưa tìm thấy được các công trình nghiên cứu nào liên quan đến xử lý số nguyên

8 bit

Trang 24

1.1.2 Nghiên cứu ngoài nước

Nhiều công trình nghiên cứu đã được công bố theo hướng tối ưu hóa các mô hình huấn luyện DNN bằng cách sử dụng nhiều thuật toán để xử lý dựa trên số học

số nguyên Kết quả của các công trình nghiên cứu này sẽ thu được bộ tham số với dung lượng cho việc lưu trữ thấp, thời gian thực hiện quá trình suy luận hoặc huấn luyện của mô hình sẽ được rút ngắn, trong khi đó độ chính xác của các kết quả suy luận tương đương với mô hình gốc (mô hình số thực 32 bit), một số kỹ thuật được đưa ra như: Binary connect [1], Courbariaux và các cộng sự [2], XNOR-net [3], TTQ [4], Ron Banner và các cộng sự [5]… Trong các công trình này, họ đã sử dụng FP (Floating Point) có độ chính xác cao (hầu hết sử dụng 32 bit) cho quá trình huấn luyện và cập nhật cho tập trọng số Sau đó các giá trị tham số của mô hình được lượng tử hóa thành các giá trị biểu diễn có độ chính xác thấp hơn để sử dụng trong quá trình suy luận hoặc lượng tử hóa cho cả hai quá trình huấn luyện

và suy luận: DoReFa-Net [6], FxpNet [7], WAGE [8], NITI [9] Các nghiên cứu này hướng đến thiết kế các kỹ thuật lượng tử hóa có mức độ chính xác cao gần như mức độ chính xác của các mô hình số thực 32 bit bằng các kỹ thuật như: dịch chuyển bit, scaling, làm tròn số xác định, làm tròn số ngẫu nhiên, tùy chỉnh fixed-point để biểu diễn các giá trị số thực Mới đây, một nghiên cứu của Jaewoo Song

et al [10] công bố vào tháng 5 năm 2022 trên arxiv.org – tinyML Họ đã thiết kế một mô hình mạng được gọi là PocketNN để thực hiện huấn luyện, họ đánh giá trên hai tập dữ liệu phổ biến: MNIST và Fashion-MNIST PocketNN là một mô hình mạng sử dụng một nhóm các chức năng kích hoạt được điều chỉnh để áp dụng vào xử lý tính toán dựa trên số nguyên: pocketReLu8bit, pocketTanh8bit, pocketSigmoid8bit Để thực hiện quá trình huấn luyện, Jaewoo Song và các cộng

sự đã sử dụng phương pháp DFA (Direct Feedback Alignment) [11] để lan truyền lỗi và sử dụng hàm SSE (Sum Square Error) để tính sai số của mạng Toàn bộ pha huấn luyện và suy luận được xử lý hoàn toàn bằng hoạt động số nguyên Các thuật toán mà nhóm của anh ấy thiết lập đều được sử dụng nền tảng ngôn ngữ C++,

Trang 25

không sử dụng các bộ thư viện hỗ trợ trong huấn luyện mạng để tối ưu tính tương thích khi chạy trên thiết bị có cấu hình cấp thấp

Bảng 1 1 Nhóm hàm chức năng kích hoạt PocketNN

trả về

PocketSigmoid(x) 8bit 1 (𝑥 ≤ −128)

x/8 + 20 (-128 < 𝑥 ≤ −75) x/2 + 48 (-75 < 𝑥 ≤ −32)

x + 64 (-32 < 𝑥 ≤ 31) x/2 + 80 (31 < 𝑥 ≤ 74) x/8 + 108 (74 < 𝑥 ≤ 127)

PocketRelu(x) 8 bit min(max(0,x),127) [0,127]

Với các hàm kích hoạt Pocket được tác giả xây dựng xem Bảng 1.1, bất kỳ giá trị ngõ vào nào sẽ được điều chỉnh vào phạm vi 8 bit tương ứng, nếu các ngõ vào

đó thỏa các điều kiện đã thiết lập theo từng phạm vi của hàm kích hoạt Pocket Với thuật toán PocketNN, họ đã cho thấy các kết quả đánh giá giữa mô hình áp dụng thuật toán PocketNN với mô hình số thực 32 bit như Bảng 1.2

Trang 26

Bảng 1 2 Kết quả thu được giữa PocketNN với DFA và FP với BP float32

Tập dữ

liệu

Mức chính xác của PocketNN (DFA)

Mức chính xác của mô hình FP (BP)

Tỷ lệ suy giảm so với

BP truyền thống [12] Các kết quả đều được họ thực hiện đánh giá trên mô hình mạng có kết nối đầy đủ và với ít lớp ẩn, bởi thuật toán DFA chỉ phát huy hiệu quả cao nhất khi được áp dụng với lớp mạng đầy đủ (FC) và càng ít lớp ẩn càng tốt

Sự sụt giảm đáng kể mức độ chính xác khi áp dụng thuật toán này vào mô hình DNN được thể hiện rất rõ [13]

1.2 Tính cấp thiết của đề tài

Để áp dụng các kỹ thuật xử lý hiệu quả tính toán sử dụng công nghệ AI (Artificial Intelligence) vào các lĩnh vực sản xuất và đời sống để tối ưu được kết quả đạt được là điều rất cần thiết hiện nay Tuy nhiên, với mức chi phí đầu tư lớn cho các hệ thống sản xuất có áp dụng công nghệ AI này thì không thể nào áp dụng một cách đại trà được, do công đoạn đầu tư chi phí phần lớn tập trung vào các thiết

Trang 27

bị xử lý trung tâm, nơi mà các mô hình mạng học sâu thực thi nhiệm vụ tính toán

và xuất ra kết quả, vấn đề cốt lõi đó là các mô hình mạng học sâu này thực hiện tính toán dựa trên số thực có độ phân giải cao thường là 32 bit, vì vậy đòi hỏi phải được thực hiện trên các phần tử xử lý số thực như GPU (Graphics Processing Units), mà

để trang bị các phần tử xử lý số thực này trên các phần cứng thì vô cùng tốn chi phí

Vì vậy, nhiều nghiên cứu đã cho thấy hiệu quả tối ưu đáng kể khi áp dụng các thuật toán nhằm tối ưu hóa các mô hình mạng học sâu với độ chính xác tương đương với các mô hình mạng xử lý bằng số thực, nhưng giảm thiểu đáng kể các chi phí cho việc xây dựng các cơ sở hạ tầng trang thiết bị cho hệ thống nhà máy Các mô hình tối ưu này có thể thực hiện quá trình huấn luyện một cách trực tiếp hoặc chỉ cần thực hiện quá trình suy luận trên các phần cứng có cấu hình cấp thấp, trong khi các

mô hình xử lý số thực thì không thể triển khai lên chúng hoặc không thể đáp ứng được thời gian hoàn thành các kết quả theo đúng yêu cầu trong quá trình sản xuất, bởi vì các phần cứng cấp thấp không được trang bị các đơn vị xử lý mạnh mẽ để xử

lý các phép tính phức tạp khi thực hiện trên biểu diễn số thực có độ chính xác cao Hơn nữa bộ nhớ lưu trữ của chúng rất nhỏ, trong khi các tham số của các mô hình

số thực cần bộ nhớ lớn để lưu trữ trong quá trình thực hiện tính toán Trong dây chuyền công nghiệp, việc rút ngắn thời gian sản xuất một sản phẩm trong khi hiệu quả vẫn được đảm bảo, chi phí thiết kế cho từng công đoạn trong dây chuyền sản xuất được giảm thiểu, quá trình vận hành và kiểm soát công đoạn được đơn giản hóa là điều vô cùng cần thiết mà các doanh nghiệp đang hướng tới

Từ các nhu cầu thực tiễn đó, cùng với các nhược điểm của các mô hình mạng

xử lý bằng số thực và các ưu điểm vượt trội của các mô hình mạng áp dụng các thuật toán xử lý số nguyên được liệt kê như trên nên việc lựa chọn một đề tài mang tên NGHIÊN CỨU VÀ ỨNG DỤNG MẠNG NƠ-RON CÓ TẬP TRỌNG SỐ NGUYÊN làm phương hướng nghiên cứu, đồng thời áp dụng kỹ thuật phù hợp vào đánh giá trên các tập dữ liệu khác nhau, đồng thời cũng triển khai mô hình và đánh giá trên phần cứng cấp thấp thông qua một ứng dụng cụ thể để đánh giá mô hình là mục tiêu cấp thiết

Trang 28

1.3 Ý nghĩa khoa học và tính thực tiễn của đề tài

mô hình số thực 32 bit (float32) và mô hình số nguyên 8 bit (int8)

- Xây dựng ứng dụng phân loại trái cây sử dụng mô hình sử dụng tập trọng số nguyên

8 bit và triển khai lên Raspberry Pi 3 B+ Sau đó so sánh hiệu quả của hai mô hình số thực 32 bit và số nguyên 8 bit khi thực thi ứng dụng

1.5 Nhiệm vụ và giới hạn đề tài

1.5.1 Nhiệm vụ chính

- Tìm hiểu kiến trúc ANN (Artificial Neural Network),

- Tìm hiểu kiến trúc CNN,

- Tìm hiểu kiến trúc mạng LeNet-5,

- Tìm hiểu kiến trúc phần cứng khi thực hiện phép nhân ma trận tích chập,

- Tìm hiểu thuật toán lượng tử hóa PTQ và QAT,

- Tìm hiểu phương pháp lan truyền ngược STE (Straight Through Estimator) trong mạng số nguyên,

Trang 29

- Tìm hiểu thuật toán lan truyền ngược truyền thống (Gradient descent) trong mạng

số thực,

- Tìm hiểu kiến trúc phần cứng Raspbery Pi

1.5.2 Giới hạn

- Chỉ xét hai tập dữ liệu cơ bản: MNIST và Fashion MNIST,

- Đánh giá mô hình được áp dụng thuật toán vào bài toán phân loại trái cây với tập

dữ liệu được tác giả tự thu thập

1.6 Phương pháp nghiên cứu

- Phương pháp tìm hiểu, tham khảo các công trình nghiên cứu có liên quan đến đề tài trên thế giới, và trong nước

- Phương pháp thu thập dữ liệu, phân tích, tổng hợp các tài liệu liên quan đến đề tài,

- Phương pháp tổng hợp, xây dựng và viết báo cáo

1.7 Tóm tắt các nội dung chính của đề tài

Với mục đích của đề tài đưa ra, tác giả muốn áp dụng một thuật toán vào tối ưu một mô hình mạng CNN mà tác giả tự xây dựng, để triển khai mô hình lên phần cứng cấp thấp trong bài toán phân loại trái cây và đánh giá mô hình bằng cách so sánh tốc

độ, dung lượng lưu trữ tập trọng số và độ chính xác so với mô hình số thực 32 bit (float32), nội dung của đề tài bao gồm 5 chương được mô tả như sau

Chương 1 TỔNG QUAN: Tổng quan về hướng nghiên cứu của đề tài: Tóm tắt các

kết quả nghiên cứu có liên quan trong và ngoài nước để tìm ra phương hướng giải quyết, từ đó nêu lên tính cấp thiết, ý nghĩa khoa học, tính thực tiễn của đề tài Tiếp theo là xác định mục đích, nhiệm vụ, giới hạn và phương pháp nghiên cứu

Chương 2 CƠ SỞ LÝ THUYẾT: Bao gồm tất cả các lý thuyết về phần cứng và các

phương pháp được sử dụng trong mô hình

Chương 3 ĐÁNH GIÁ MÔ HÌNH MẠNG NƠ-RON SỬ DỤNG TẬP TRỌNG

SỐ NGUYÊN TRÊN CÁC TẬP DỮ LIỆU CHUẨN: Mô tả chi tiết quá trình thực

Trang 30

hiện đánh giá mô hình khi áp dụng phương pháp lượng tử hóa 8 bit, các kết quả của

mô hình được so sánh với mô hình số thực 32 bit (float32) trên hai loại phần cứng: laptop và raspberry Pi 3B+

Chương 4 ỨNG DỤNG MÔ HÌNH MẠNG NƠ-RON CÓ TẬP SỐ NGUYÊN CHO BÀI TOÁN PHÂN LOẠI TRÁI CÂY ĐƯỢC THỰC HIỆN TRÊN RASPBERRY PI 3B+: Mô tả chi tiết quá trình thực hiện ứng dụng phân loại trái

cây

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI: Nêu kết luận

chung và hướng phát triển của đề tài nghiên cứu

1.8 Kế hoạch triển khai

* Giai đoạn 1: Thực hiện báo cáo chuyên đề

- Từ tháng 2/2022 đến tháng 3/2022: Thu thập tài liệu, bài báo, các công trình liên quan đến hướng nghiên cứu của đề tài

- Từ tháng 4/2022 đến 15/5/2022: Nghiên cứu, phân tích và lựa chọn thuật toán phù hợp để thực hiện đề tài Đồng thời viết Chương 1 (Chương tổng quan) của đề tài

- Từ 16/5/2022 đến 27/5/2022: Viết Chương 2 và Chương 3, chuẩn bị hoàn thiện nội dung và powerpoint trình chiếu để báo cáo chuyên đề

- Ngày 28/5/2022: Thực hiện báo cáo chuyên đề trên hội đồng

* Giai đoạn 2: Phát triển luận văn

- Từ tháng 6/2022 đến tháng 5/2023: Tiếp tục thu thập tài liệu, chỉnh sửa nội dung báo cáo các chương 1, 2, 3 Bổ sung Chương 4 Hoàn thiện Chương 5 Hoàn tất các kết quả đánh giá và viết báo

* Giai đoạn cuối: Thực hiện bảo vệ luận văn

- Tháng 3/8/2023: Đăng ký bảo vệ luận văn

- Tháng 27/8/2023: Bảo vệ luận văn trước hội đồng

Trang 31

Chương 2

CƠ SỞ LÝ THUYẾT

2.1 Tổng quan về mạng thần kinh nhân tạo (ANN – Aftificial Neural Network)

Mạng thần kinh nhân tạo (ANN - Aftificial Neural Network) được xem như một

mô hình toán học của bộ não người Một ANN chứa nhiều tế bào thần kinh gọi là ron [14] Các nơ-ron thần kinh kết nối với nhau theo nhiều kiểu khác nhau để lan truyền các tín hiệu Như Hình 2.1 mô tả một nơ-ron sinh học và Hình 2.2 mô tả mô hình toán của một nơ-ron nhân tạo

nơ-Hình 2 1 Mô hình một nơ-ron sinh học(nguồn:

https://www.analyticsvidhya.com/blog/2020/01/fundamentals-deep-learning-activation-functions-when-to-use-them/)

Hình 2 2 Mô hình toán học của một nơ-ron nhân tạo

Trang 32

Các thông tin được gửi đến các nơ-ron thông qua dendrites hay còn gọi là các ngõ vào 𝓍𝑖 , độ mạnh hay yếu của 𝓍 gửi vào phụ thuộc vào các tác nhân hay còn gọi

là các trọng số (w𝑖), tất cả các tín hiệu gửi đến từ các ngõ vào sẽ được cộng dồn lại

và được xử lý bởi so-ma (cell-body), khi tổng các tín hiệu đạt lớn hơn mức ngưỡng thì nơ-ron sẽ phát ra một xung rồi truyền đến các nơ-ron thần kinh khác thông qua các khớp nối (axon terminals) Đó là cơ chế xử lý tín hiệu từ ngõ vào đến ngõ ra của một nơ-ron sinh học Để có thể xây dựng một mô hình mạng thần kinh nhân tạo thì các yếu tố của một nơ-ron sinh học sẽ được mô hình hóa như Hình 2.2 Trong đó, 𝓍𝑖đại diện cho các tín hiệu ngõ vào, 𝑤𝑖 đại diện cho các trọng số, b là bias giúp mô hình khớp với tập dữ liệu huấn luyện và y đại diện cho ngõ ra Theo Công thức 2.1 để thực

hiện tính toán ngõ ra

𝑦 = 𝑓 (∑ 𝑤𝑖𝑥𝑖+ 𝑏

𝑛

𝑖=1

trong đó, 𝑓( ) biểu diễn của hàm kích hoạt,với 𝑖 = [1, , 𝑛])

Trong một số trường hợp, b trong công thức 2.1 sẽ được bỏ qua Lúc này có

thể hình dung 𝑤0 = b như là một trọng số với ngõ vào 𝑥0 =1 Như vậy công thức 2.1 sẽ được viết lại thanh công thức 2.2:

𝑦 = 𝑓 (∑ 𝑤𝑖𝑥𝑖

𝑛

𝑖=0

2.1.1 Mạng thần kinh nhiều lớp (MLP – Multi-Layer-Perceptron)

Là dạng mạng nơ-ron có nhiều lớp ẩn và được kết nối theo một hướng từ ngõ

vào (input layer) đến ngõ ra (output layer) Các nơ-ron trong mạng MLP sử dụng

các hàm kích hoạt phi tuyến tính Các mạng MLP được dùng trong nhiều ứng dụng như phân lớp, nhận dạng, dự đoán, … Hình 2.3 minh họa cho mạng MLP nhiều lớp

Trang 33

Hình 2 3 Kiến trúc mạng nơ-ron truyền thẳng đa lớp

Trong mạng MLP được chia ra làm hai giai đoạn: Giai đoạn lan truyền thuận

và giai đoạn lan truyền ngược

* Giai đoạn lan truyền thuận: Các tham số tham gia trong quá trình thực hiện

phép toán gồm có: Ngõ vào x, trọng số lớp ẩn 𝑊ℎ, ngõ ra của các nơ-ron lớp ẩn 𝑎ℎ, bias của lớp ẩn 𝑏ℎ, ngõ ra của lớp ẩn sau hàm kích hoạt f(𝑎), tập trọng số lớp

ngõ ra 𝑊𝑜, ngõ ra của các nơ-ron lớp ngõ ra 𝑎𝑜, bias của lớp ngõ ra 𝑏𝑂, ngõ ra của

Trang 34

trong đó, 𝑓( ) Biểu thị cho hàm kích hoạt (ReLU, Sigmoid, Tanh) được sử dụng tùy vào từng bài toán Ở công thức (2.4) tính ngõ ra của một lớp ẩn khi áp dụng hàm sigmoid

* Ở lớp ngõ ra: Đối với các tác vụ phân loại, các mạng huấn luyện thường áp dụng hàm kích hoạt Softmax để tính ngõ ra theo phân bố xác suất Công thức 2.5 dùng

(2.6)

Hàm Softmax nếu được sử dụng thì chúng thường được kết hợp với hàm Loss cross-entropy Cross-entropy là một hàm loss được sử dụng để tính giá trị sai số giữa lớp ngõ ra của mạng và giá trị mong muốn

* Giai đoạn lan truyền ngược:

Để thực hiện quá trình lan truyền ngược [16], bước quan trọng và cuối cùng sau khi tính toán các giá trị trong quá trình lan truyền thuận là phải tính được giá trị sai số ngõ ra thực tế 𝑦̂ của mẫu dữ liệu ngõ vào so với ngõ ra mong muốn y, vì

vậy công thức 2.7 được sử dụng để tính toán giá trị sai số của ngõ ra sử dụng hàm

Loss cross entropy

trong đó, 𝑦̂𝑖 là ngõ ra của nơ-ron thứ 𝑖 (với 𝑖 = 1 → 𝑁) với N là số lượng nơ-ron của lớp ngõ ra và 𝑦𝑖 là ngõ ra mong muốn thứ i, ngõ ra 𝑦𝑖 được biểu diễn theo định

ℒ = − ∑ 𝑦𝑖𝑙𝑜𝑔𝑦̂𝑖

𝑁

𝑖=1

(2.7)

Trang 35

dạng one-hot ở nhiệm vụ phân lớp Mỗi ngõ vào sẽ được gắn một ngõ ra mong muốn tương ứng (gắn nhãn) Và hàm Loss cross-entropy thực thi nhằm tính sai số giữa đầu ra thực tế với ngõ ra mong muốn Hình 2.4 minh họa cho quá trình tính sai số của mạng sử dụng hàm Loss cross-entropy trong bài toán phân lớp

Hình 2 4 Hoạt động hàm loss cross entropy

Trong Hình 2.4, ngõ vào x được đưa vào lớp ẩn, mỗi điểm dữ liệu ngõ vào

được kết nối đến tất cả các nơ-ron (node) trong lớp ẩn thông qua các vector trọng

số tương ứng, các vector trọng số này được khởi tạo một cách ngẫu nhiên Kết quả ngõ ra của lớp ẩn được tính toán thông qua hàm kích hoạt và sẽ được kết nối đến lớp ngõ ra thông qua các vector trọng số kết nối (các trọng số này cũng được khởi tạo một cách ngẫu nhiên) Kết quả của lớp ngõ ra được tính thông qua hàm Softmax, với các trị số theo phân bố xác suất (tổng tất cả các giá trị của ngõ ra bằng 1) Hàm Loss cross-entropy sẽ tính được giá trị sai số của ngõ ra thực 𝑦̂𝑖 so với ngõ ra mong muốn 𝑦𝑖 theo mô tả như công thức (2.7) Để có thể thực hiện cập nhật giá trị cho các vector trọng số của mạng, ta thực hiện tính toán giá trị sai số lan truyền ngược cho từng lớp mạng

* Tính sai số cập nhật cho trọng số lớp ra 𝑊𝑜: 𝑔𝑂

𝐽′ = 𝛿𝑂 = 𝜕𝐽

𝜕𝑦̂ = 𝑦̂ − 𝑦

(2.8)

Trang 36

𝐽′ là đạo hàm của hàm loss cross entropy sau khi thực hiện từng bước theo chain rule

Sau khi tính được đạo hàm của hàm loss xong, thì ta có thể tính được độ dốc (gradients) để cập nhật cho các trọng số của lớp ngõ ra:

trong đó, 𝑓(𝑎ℎ) (1 − 𝑓(𝑎ℎ)) là kết quả đạo hàm đối với hàm Sigmoid

Sau khi tính được độ dốc của lớp ẩn, ta thực hiện cập nhật trọng số và bias cho lớp ẩn theo Công thức 2.14 và 2.15:

Trang 37

Qua cách tính sai số lan truyền ngược từ các công thức 2.8 đến công thức 2.15,

ta tổng hợp lại một công thức chung để tính giá trị sai số cập nhật của từng lớp mạng

với 1 ≤ 𝑘 ≤ 𝑛 − 1, trong đó n là số lớp mạng

2.1.2 Một số hàm kích hoạt cơ bản:

Ký hiệu 𝑓( ) đại diện cho hàm kích hoạt, đó là một biểu thức toán học để xác định đầu ra của các nơ-ron thần kinh Các mô hình mạng khác nhau thì sử dụng các hàm kích hoạt khác nhau phụ thuộc vào từng mục đích cụ thể của từng bài toán Một số hàm kích hoạt thông dụng, thường được sử dụng trong các mô hình mạng ANN như sau:

* Hàm ReLU (Rectified Linear Unit):

Trang 38

Hàm có giá trị ngõ ra tỷ lệ với giá trị ngõ vào f bằng một hệ số 𝛼 Hàm này

phù hợp với các nhiệm vụ đơn giản, có hiệu quả đối với những mẫu dữ liệu huấn luyện ít phức tạp

Trang 40

suất Thường được sử dụng trong các bài toán phân lớp Công thức tính xác suất của từng ngõ ra được tính bởi công thức 2.22 dưới đây:

𝑎(𝑓)𝑗 = 𝑒𝑓𝑗

𝑘=1

2.1.3 Một số phương pháp huấn luyện mạng thần kinh nhân tạo

Để sử dụng được một mô hình mạng nơ-ron nhân tạo, việc huấn luyện bắt buộc phải được thực hiện trước Có hai kiểu học:

- Học các tham số (Parameters-Learning): Để điều chỉnh các giá trị của trọng

số giữa các nơ-ron thần kinh trong mạng

- Học theo cấu trúc (Structure-Learning): Để chuyển đổi cấu trúc mạng, bao gồm số lượng nơ-ron và hình thức liên kết giữa chúng Trong học tập theo tham

số, có 3 kiểu học là: Học có giám sát, học không có giám sát và học củng cố

2.1.3.1 Học có sự giám sát (Supervised-Learning)

Trong dạng học có giám sát, dữ liệu để huấn luyện cho mạng thần kinh là các mẫu (đầu vào – nhãn) Hình 2.5 mô tả cho quá trình học có sự giám sát

Hình 2 5 Sơ đồ minh họa quá trình học có sự giám sát

Giả dụ, có K mẫu dữ liệu học:

〈(𝑥1, 𝑑1); (𝑥2, 𝑑2); … ; (𝑥𝐾, 𝑑𝐾); 〉

Ngày đăng: 20/03/2024, 14:31

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

TÀI LIỆU LIÊN QUAN

w