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 1THÀ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 2BỘ 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 12LỜ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 13LỜ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 14TÓ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 15ABSTRACT
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 16MỤ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 172.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 183.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 19CNN (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 20DANH 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 21Hì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 22Bả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 23Chươ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 241.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 25khô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 26Bả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 27bị 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 281.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 30hiệ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 31Chươ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 32Cá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 33Hì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 34trong đó, 𝑓( ) 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 35dạ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 37Qua 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 38Hà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 40suấ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); … ; (𝑥𝐾, 𝑑𝐾); 〉