Trong những năm gần đây mạng nơ ron nhân tạo ANN được sử dụng nhiều trong các ứng dụng và triển khai thực tế trong lĩnh vực nhận dạng mẫu Luận văn nghiên cứu một kiến trúc phần cứng tùy biến được để thực thi mạng nơ ron nhân tạo trên FPGA Kiến trúc chỉ sử dụng một lớp phần cứng tính toán được đặt tên là SHL_ANN để thực hiện tính toán cho toàn bộ mạng nơ ron nhân tạo lan truyền thẳng nhiều lớp Bộ trọng số của mạng nơ ron sử dụng định dạng số thực dấu phẩy động bán chính xác 16 bits Tác giả phân tích hoạt động của kiến trúc SHL_ANN đồng thời khảo sát khả năng mở rộng cũng như độ chiếm dụng tài nguyên phần cứng của kiến trúc đối với các board mạch FPGA của hãng Xilinx là Virtex 5 XC5VLX 110T and ZynQ 7 7Z045 Để đánh giá hiệu năng của kiến trúc tác giả sử dụng bài toán nhận dạng chữ số viết tay dựa vào cơ sở dữ liệu MNIST kết quả cho tỉ lệ nhận dạng MNIST tốt nhất là 97 20 khi sử dụng mạng nơ ron nhân tạo có kích cỡ 784 40 40 10 có 2 lớp ẩn chiếm 91 8 tài nguyên phần cứng board mạch Virtex 5 XC5VLX 110T và tỉ lệ nhận dạng MNIST tốt nhất là 98 16 khi sử dụng mạng nơ ron nhân tạo có kích cỡ 784 126 126 10 có 2 lớp ẩn chiếm 98 1 tài nguyên phần cứng board mạch ZynQ 7 7Z045 Kết quả thực nghiệm cho thấy kiến trúc SHL_ANN là một lựa chọn rất hứa hẹn để triển khai các ứng dụng nhận dạng nhúng hiệu năng cao
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG HUỲNH MINH VŨ NGHIÊN CỨU VÀ THỰC HIỆN MẠNG NƠ-RON NHÂN TẠO LAN TRUYỀN THẲNG NHIỀU LỚP CÓ KIẾN TRÚC TÙY BIẾN TRÊN FPGA Chuyên ngành: Kỹ thuật điện tử Mã số: 60.52.02.03 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: TS HUỲNH VIỆT THẮNG Đà Nẵng - Năm 2017 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa công bố công trình khác Tác giả luận văn Huỳnh Minh Vũ NGHIÊN CỨU VÀ THỰC HIỆN MẠNG NƠ-RON NHÂN TẠO LAN TRUYỀN THẲNG NHIỀU LỚP CÓ KIẾN TRÚC TÙY BIẾN TRÊN FPGA Học viên: Huỳnh Minh Vũ Chuyên ngành: Kỹ thuật Điện tử Mã số: 60.52.02.03 Khóa: K31 Trường Đại học Bách khoa - ĐHĐN Tóm tắt – Trong năm gần đây, mạng nơ-ron nhân tạo (ANN) sử dụng nhiều ứng dụng triển khai thực tế lĩnh vực nhận dạng mẫu Luận văn nghiên cứu kiến trúc phần cứng tùy biến để thực thi mạng nơ-ron nhân tạo FPGA Kiến trúc sử dụng lớp phần cứng tính tốn (được đặt tên SHL_ANN) để thực tính tốn cho tồn mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp Bộ trọng số mạng nơ-ron sử dụng định dạng số thực dấu phẩy động bán xác 16 bits Tác giả phân tích hoạt động kiến trúc SHL_ANN, đồng thời khảo sát khả mở rộng độ chiếm dụng tài nguyên phần cứng kiến trúc board mạch FPGA hãng Xilinx Virtex-5 XC5VLX-110T and ZynQ-7 7Z045 Để đánh giá hiệu kiến trúc tác giả sử dụng toán nhận dạng chữ số viết tay dựa vào sở liệu MNIST, kết cho tỉ lệ nhận dạng MNIST tốt 97,20% sử dụng mạng nơ-ron nhân tạo có kích cỡ 784-40-40-10 có lớp ẩn chiếm 91,8% tài nguyên phần cứng board mạch Virtex-5 XC5VLX-110T tỉ lệ nhận dạng MNIST tốt 98,16% sử dụng mạng nơ-ron nhân tạo có kích cỡ 784-126-126-10 có lớp ẩn chiếm 98,1% tài nguyên phần cứng board mạch ZynQ-7 7Z045 Kết thực nghiệm cho thấy kiến trúc SHL_ANN lựa chọn hứa hẹn để triển khai ứng dụng nhận dạng nhúng hiệu cao Từ khóa - mạng nơ-ron lan truyền thẳng nhiều lớp, kiến trúc tùy biến, FPGA, thực hiện, đánh giá STUDY AND IMPLEMENT A CUSTOMIZABLE ARCHITECTURE OF MULTILAYER FEED-FORWARD ARTIFICIAL NEURAL NETWORK ON FPGA Abstract – Artificial Neural Networks (ANNs) have attracted many applications and practical implementations in pattern recognition areas in recent years In this thesis, we study a customized hardware architecture for realization of multilayer ANNs on reconfigurable computing platforms like FPGAs The architecture employs only one single hardware-computing layer (namely SHL_ANN) to perform the whole computing fabric of multi-layer feed-forward neural networks The 16-bit half-precision floating-point number format is used to represent the weights of the designed network We analyse the operation of proposed architecture and investigate the scalability and hardware resource utilization of the SHL_ANN architecture on the Xilinx Virtex-5 XC5VLX-110T FPGA and ZynQ-7 7Z045 FPGA The handwritten digit recognition application with MNIST database is performed for performance evaluation, which reported the best recognition rate of 97,20% when using a neural network architecture of size 784-40-40-10 with two hidden layers, occupying 91,8% Virtex-5 XC5VLX-110T FPGA hardware resource and the best recognition rate of 98,16% when using a neural network architecture of size 784-126-126-10 with two hidden layers, occupying 98,1% ZynQ-7 7Z045 FPGA hardware resource Experimental results show that the SHL_ANN architecture is a very promising design choice for high performance embedded recognition applications Key words - multi-layer feed-forward neural network, customized architecture, FPGA, implementation, evaluation MỤC LỤC MỞ ĐẦU 1 Tính cấp thiết đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu .2 3.2 Phạm vi nghiên cứu Phương pháp nghiên cứu nội dung nghiên cứu 4.1 Phương pháp nghiên cứu 4.2 Nội dung nghiên cứu Ý nghĩa khoa học thực tiễn đề tài Kết cấu luận văn CHƯƠNG 1-TỔNG QUAN 1.1 Mạng nơ-ron sinh học 1.2 Mạng nơ-ron nhân tạo 1.3 Thực mạng nơ-ron nhân tạo phần cứng 1.4 Phạm vi nhiệm vụ luận văn CHƯƠNG - CƠ SỞ HIỆN THỰC HÓA MẠNG NƠ-RON NHÂN TẠO TRÊN FPGA 10 2.1 Mở đầu chương 10 2.2 Hệ thống nhận dạng mẫu dựa mạng nơ-ron nhân tạo 10 2.3 Mơ hình tính tốn mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp 11 2.3.1 Nơ-ron nhân tạo 11 2.3.2 Mơ hình tính tốn mạng nơ-ron nhân tạo [10] .12 2.3.3 Hàm truyền 14 2.4 Huấn luyện mạng nơ-ron nhân tạo nhiều lớp [12, 16] 14 2.4.1 Mơ hình nơ-ron .15 2.4.2 Mơ hình mạng nơ-ron 17 2.5 Công nghệ FPGA ngôn ngữ mô tả phần cứng VHDL [1] 20 2.5.1 Công nghệ FPGA 20 2.5.2 Ngôn ngữ mô tả phần cứng VHDL 22 2.6 Thực phép toán số thực dấu phẩy động FPGA 24 2.6.1 Thư viện mã nguồn mở FloPoCo [13] 24 2.6.2 Các phép toán số thực dấu phẩy động FPGA .25 2.7 Thực phép toán sở cho mạng nơ-ron [2, 6] 29 2.7.1 Bộ nhân cộng tích lũy MAC 29 2.7.2 Bộ thực hàm truyền Logsigmoid 31 2.8 Kết luận chương 32 CHƯƠNG - NGHIÊN CỨU KIẾN TRÚC MẠNG NƠ-RON NHÂN TẠO LAN TRUYỀN THẲNG NHIỀU LỚP TÙY BIẾN TRÊN FPGA 33 3.1 Mở đầu chương 33 3.2 Kiến trúc nơ-ron [6] 33 3.3 Kiến trúc mạng nơ-ron nhân tạo với nhiều lớp tính tốn phần cứng 35 3.4 Kiến trúc mạng nơ-ron nhân tạo với lớp tính tốn phần cứng 36 3.4.1 Khối nơ-ron tính tốn Hardware_Layer .36 3.4.2 Khối điều khiển Control Unit .40 3.4.3 Kết mô 42 3.5 Công cụ AutogenDNN cho tùy biến kiến trúc mạng nơ-ron lan truyền thẳng nhiều lớp FPGA 44 3.6 Kết luận chương 46 CHƯƠNG - THỰC HIỆN VÀ ĐÁNH GIÁ 47 4.1 Mở đầu chương 47 4.2 Quy trình thiết kế thực mạng nơ-ron nhân tạo FPGA 47 4.2.1 Huấn luyện mạng nơ-ron MatLab 48 4.2.2 Tạo mã chương trình mơ tả phần cứng VHDL cho mạng ANN 48 4.2.3 Tổng hợp mô 49 4.2.4 Thực thi phần cứng .49 4.3 Các thơng số (tiêu chí) đánh giá trường hợp đánh giá 49 4.4 Kết thực nghiệm 50 4.4.1 Kết huấn luyện mạng nơ-ron nhân tạo MatLab .50 4.4.2 Kết tổng hợp mô 52 4.4.3 Kết thực thi phần cứng 54 4.4.4 So sánh với số kết nghiên cứu khác .59 4.5 Kết luận chương 60 KẾT LUẬN VÀ ĐỀ XUẤT 61 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Dịch nghĩa Tiếng Việt ALUs Arithmetic Logic Units Các đơn vị logic số học ANN Artifical Neural Network Mạng nơ-ron nhân tạo ASIC Application Specific Intergrated Circuit Mạch tích hợp chuyên dụng BSB Base System Builder Bộ xây dựng hệ thống sở CLB Configurable Logic Blocks Các khối logic cấu hình CNN Convolutional Neural Network Mạng nơ-ron nhân tạo tích chập DSP Digital Signal Processing Xử lý tín hiệu số Erasable Programmable Read Only Memory Bộ nhớ đọc lập trình xóa FPGA Field Programmable Gate Array Mảng cổng lập trình FSM Finite State Machine Máy trạng thái hữu hạn HDL Hardware Description Language Ngôn ngữ mô tả phần cứng Input/Output Đầu vào/Đầu Institute of Electrical and Electronics Engineers Viện kỹ nghệ Điện – Điện tử IP Intellectual Property Sở hữu trí tuệ LMS Least Means Square Trung bình bình phương tối thiểu MAC Multiply Accumulator Bộ nhân cộng tích lũy Multi Hardware Layer Artifical Neural Network Mạng nơ-ron nhân tạo nhiều lớp tính tốn phần cứng PCA Principal Component Analysis Phân tích thành phần PLB Processor Local Bus Bus nội vi xử lý RAM Random Access Memory Bộ nhớ truy xuất ngẫu nhiên RTL Register Transfer Level Mức chuyển ghi EPROM I/O IEEE MHL_ANN Single Hardware Layer Artifical Neural Network Mạng nơ-ron nhân tạo lớp tính toán phần cứng UART Universal Asychronous Receiver Transmitter Bộ truyền nhận nối tiếp không đồng vạn VHDL VHSIC (very high speed integrated circuit) Hardware Description Language Ngôn ngữ mơ tả phần cứng cho mạch tích hợp tốc độ cao VLSI Very Large Scale Integration Tích hợp mật độ cao SHL_ANN DANH MỤC CÁC BẢNG Số hiệu bảng Tên Bảng Trang 2.1 Một số hàm truyền thông dụng 15 3.1 Các tín hiệu vào khối Hardware Layer 37 3.2 Các tín hiệu vào khối Control Unit 40 3.3 Các tín hiệu vào kiến trúc SHL_ANN 42 4.1 Tài nguyên board mạch FPGA Virtex-5 XC5VLX-110T 49 4.2 Chi tiết độ sử dụng tài nguyên FPGA 52 4.3 Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng tỉ lệ nhận dạng board mạch Virtex-5 XC5VLX-110T 53 4.4 Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng tỉ lệ nhận dạng board mạch ZynQ-7 7Z045 53 4.5 Tỉ lệ sử dụng tài nguyên, tần số hoạt động tỉ lệ nhận dạng hệ thống nhúng FPGA Virtex-5 57 4.6 So sánh kết đạt với số nghiên cứu khác 59 DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Cấu trúc minh họa nơ-ron sinh học [20] 1.2 Chip SyNAPSE IBM (2014) [17] 1.3 Deep Neural Network Processor KAIST (2017) ứng dụng [19] 2.1 Sơ đồ khối chức hệ thống nhận dạng sử dụng ANN 10 2.2 Sơ đồ khối chức hệ thống nhận dạng sử dụng ANN khơng có khối trích chọn đặc trưng 11 2.3 Cấu trúc nơ-ron nhân tạo 11 2.4 Mạng nơ-ron lớp gồm N đầu vào M nơ-ron [10] 12 2.5 Mơ hình mạng nơ-ron lớp [10] 13 2.6 Mơ hình mạng nơ-ron lớp 18 2.7 Kiến trúc tổng quát FPGA 21 2.8 Sơ đồ khối cộng 25 2.9 Dạng sóng cộng 26 2.10 Sơ đồ khối nhân 26 2.11 Dạng sóng nhân 27 2.12 Sơ đồ khối chia 27 2.13 Dạng sóng chia 28 2.14 Sơ đồ khối thực hàm mũ 28 2.15 Dạng sóng thực hàm mũ 29 2.16 Sơ đồ khối nhân cộng tích lũy MAC 29 2.17 Sơ đồ khối mức ghi RTL nhân cộng tích lũy MAC 30 2.18 Dạng sóng nhân cộng tích lũy MAC 30 2.19 Sơ đồ khối hàm truyền Logsigmoid 31 2.20 Sơ đồ khối mức ghi RTL hàm Logsigmoid 31 2.21 Dạng sóng thực hàm truyền Logsigmoid 32 3.1 Sơ đồ khối kiến trúc nơ-ron [6] 33 3.2 Sơ đồ khối mức chuyển ghi RTL nơ-ron 34 3.3 Dạng sóng thực nơ-ron 35 3.4 Sơ đồ khối chức kiến trúc MHL-ANN 35 3.5 Sơ đồ khối chức kiến trúc SHL-ANN 36 3.6 Sơ đồ khối RTL khối nơ-ron tính tốn Hardware Layer 37 3.7 Sơ đồ khối RTL chi tiết khối Hardware_Layer 39 3.8 Sơ đồ khối RTL khối điều khiển Control Unit 40 3.9 Sơ đồ máy trạng thái FSM khối điều khiển 41 3.10 Sơ đồ khối RTL kiến trúc SHL_ANN 43 3.11 Dạng sóng thực mạng nơ-ron 44 3.12 Sơ đồ khối trình tạo mã VHDL 45 4.1 Qui trình thiết kế thực mạng ANN FPGA 47 4.2 Sơ đồ khối trình huấn luyện Matlab 48 4.3 Kết huấn luyện Matlab mạng có 12 nơ-ron lớp ẩn 51 4.4 Kết huấn luyện Matlab mạng có 40 nơ-ron lớp ẩn 51 4.5 Kết huấn luyện Matlab mạng có 126 nơ-ron lớp ẩn 52 4.6 So sánh tỉ lệ sử dụng tài nguyên FPGA Virtex-5 tỉ lệ nhận dạng kiến trúc MHL_ANN SHL_ANN 54 4.7 Sơ đồ khối RTL lõi IP DNN_IP_TOPMODULE 55 4.8 Hệ thống kiểm tra đánh giá thực lõi IP FPGA Virtex-5 toán nhận dạng chữ số viết tay 56 4.9 Mơ hình thực thi kiến trúc SHL_ANN board FPGA 57 4.10 Kết nhận dạng IP core 785-12-12-10 thu phần mềm Hercules 58 4.11 Kết nhận dạng IP core 785-40-40-10 thu phần mềm Hercules 58 52 98.40 Tỉ lệ nhận dạng (%) 98.20 98.16 98,12 ANN 784-126-10 98.00 97,88 97.80 ANN 784-126-126-10 ANN 784-126-126-12610 97.60 97.40 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 21000 22000 23000 24000 25000 97.20 Số vịng lặp Hình 4.5 Kết huấn luyện mạng có 126 nơ-ron lớp ẩn 4.4.2 Kết tổng hợp mô Bảng 4.2 thể chi tiết độ sử dụng tài nguyên FPGA, mạng nơ-ron có số nơ-ron 12 40 lớp ẩn tổng hợp board mạch Virtex-5 XC5VLX-110T mạng nơ-ron có 126 nơ-ron lớp ẩn tổng hợp board mạch ZynQ-7 7Z045 Số nơron tính tốn FFs LUTs MHL-ANN 20-12-10 [6] 22 24025 28340 22 22 SHL-ANN 784-12-10 12 13164 19055 12 12 SHL-ANN 784-12-12-10 12 13168 19549 12 12 SHL-ANN 784-12-12-12-10 12 13168 19762 12 12 SHL-ANN 784-40-10 40 44059 62579 40 40 SHL-ANN 784-40-40-10 40 44079 63454 40 40 SHL-ANN 784-40-40-40-10 40 44049 63591 40 40 SHL-ANN 784-126-10 126 139364 211692 126 126 SHL-ANN 784-126-126-10 126 139364 214583 126 126 SHL-ANN 784-126-126-126-10 126 139364 218528 126 126 Kiến trúc mạng Bảng 4.2 Chi tiết độ sử dụng tài nguyên FPGA BRAMs DSPs 53 Bảng 4.3 4.4 thể tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng tỉ lệ nhận dạng kiến trúc SHL-ANN khác board mạch Virtex-5 XC5VLX110T ZynQ-7 7Z045 Kiến trúc mạng Sử dụng tài nguyên (%) (MHz) Số chu kỳ máy/mẫu fmax Tốc độ đỉnh (kFPS) Tỉ lệ nhận dạng MHL-ANN 20-12-10 [6] 41,1 205 799 404,34 90,88 SHL-ANN 784-12-10 27,6 193 10441 18,49 93,70 SHL-ANN 784-12-12-10 28,3 193 10643 18,14 94,13 SHL-ANN 784-12-12-12-10 28,6 193 10855 17,80 93,17 SHL-ANN 784-40-10 90,6 180 10805 16,67 97,07 SHL-ANN 784-40-40-10 91,8 179 11371 15,81 97,20 SHL-ANN 784-40-40-40-10 92,0 178 11937 14,98 96,76 Bảng 4.3 Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng tỉ lệ nhận dạng board mạch Virtex-5 XC5VLX-110T Kiến trúc mạng Sử dụng tài nguyên (%) Số chu fmax kỳ (MHz) máy/mẫu Tốc độ đỉnh (kFPS) Tỉ lệ nhận dạng SHL-ANN 784-126-10 96,8 190 11923 15,924 98,00 SHL-ANN 784-126-126-10 98,1 216 13607 15,902 98,16 SHL-ANN 784-126-126-126-10 99,9 219 15291 14,291 97,88 Bảng 4.4 Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng tỉ lệ nhận dạng board mạch ZynQ-7 7Z045 Kiến trúc SHL-ANN lớn triển khai Như thể bảng 4.3 4.4, cấu hình SHL-ANN mạng nơ-ron 784-40-40-40-10 với lớp ẩn, lớp ẩn có 40 nơ-ron, tương ứng với 40 nơ-ron máy tính chiếm 92% tài nguyên phần cứng thực thành công FPGA Virtex-5 Và cấu hình SHL-ANN mạng nơ-ron 784-126-126-126-10 với lớp ẩn, lớp ẩn có 40 nơ-ron, tương ứng với 40 nơ-ron máy tính chiếm 99,9% tài nguyên phần cứng FPGA ZynQ-7 7Z045 Xét hiệu thực nhận dạng, tốc độ đỉnh (peak performance) kiến trúc SHL-ANN giảm xuống với kích thước mạng tăng lên Kiến trúc SHL-ANN 54 784-40-40-10 tương ứng với tỷ lệ nhận dạng MNIST tốt 97,20%, đạt tốc độ đỉnh 15,81 nghìn mẫu giây (kFPS) sử dụng FPGA Virtex-5 Kiến trúc SHL-ANN 784-126-126-10 tương ứng với tỷ lệ nhận dạng MNIST tốt 98,16%, đạt tốc độ đỉnh 15,92 nghìn mẫu giây (kFPS) sử dụng FPGAZynQ-7 7Z045 Lưu ý, việc triển khai kiến trúc MHL-ANN có tốc độ nhận dạng tốt kiến trúc SHL-ANN tính tốn lớp phần cứng khác thực pipelined 100 97.2 91,8 90 80 70 60 50 40 30 Sử dụng tài nguyên (%) 20 Tỉ lệ nhận dạng 10 Hình 4.6 So sánh tỉ lệ sử dụng tài nguyên FPGA Virtex-5 tỉ lệ nhận dạng kiến trúc MHL_ANN SHL_ANN 4.4.3 Kết thực thi phần cứng Để kiểm tra kết tính tốn đánh giá tỉ lệ nhận dạng kiến trúc SHL_ANN, tác giả xây dựng hệ thống nhúng mạng nơ-ron nhân tạo có kích cỡ 784-12-12-10 784-40-40-10 cho toán nhận dạng chữ số viết tay board mạch FPGA Virtex-5 XC5VLX-110T dựa vi xử lý MicroBlaze Xilinx Các bước thực trình xây dựng hệ thống nhúng sau: Bước 1: Xây dựng hệ thống vi xử lý nhúng FPGA Sử dụng công cụ XPS (Xilinx Platform Studio) để tạo project BSB (Base System Builder) có tên SHL_ANN, project xác định: Sử dụng hệ thống bus PLB 55 Chọn loại board mạch: Virtex-5 Cấu hình vi xử lý MicroBlaze: hoạt động tần số 100 MHz với nhớ cục 64 KB Cấu hình ngoại vi cần thiết Bước 2: Tạo IP core nhúng vào hệ thống nhúng MicroBlaze - Tiếp tục sử dụng XSP, chọn menu “Hardware-> Create or Import Peripheral ” để khởi tạo IP core có tên mycore Trong đó: Chọn loại bus PLB để giao tiếp với MicroBlaze Chọn số lượng ghi (registers) để truy cập ngõ vào/ra IP core - Cơng cụ XSP tạo project ISE có tên mycore - Sử dụng công cụ ISE để mở Project mycore chèn toàn kiến trúc SHL_ANN vào project Cấu hình entity user_logic tạo sẵn project để kết nối với kiến trúc SHL_ANN Hình 4.7 Sơ đồ khối RTL lõi IP DNN_IP_TOPMODULE Để đồng liệu đầu vào cho kiến trúc SHL_ANN, module InputBuffer đặt trước module DNN_785_40_40_10 đóng vai trị đệm cho liệu đầu vào, đồng thời module My_Timer thêm vào kiến trúc để đo thời gian tính tốn mạch tạo thành module DNN_IP_TOPMODULE hình 4.7 - Thực “Implement Design” project mycore 56 Bước 3: Nhúng IP core vào hệ thống nhúng MicroBlaze - Sử dụng công cụ XPS để nhúng IP core tạo project mycore bước vào hệ thống nhúng MicroBlaze tạo bước cách click đúp vào đường dẫn “Project Local Pcores-> MYCORE” tag “IP Catalog” - Khai báo kết nối “mb_plb” để kết nối IP core với MicroBlaze qua PLB khai báo địa nhớ IP core - Chọn “Generate BitStream” để thực tổng hợp tạo file system.bit chứa bit cấu hình phần cứng để download xuống FPGA Bước 4: Tạo project phần mềm điều khiển phần cứng - Trong công cụ XPS, chọn chức “Export Hardware Design to SDK ” để xuất tồn thơng tin liên quan đến phần cứng tạo sang đồng thời mở phần mềm SDK (Software Development Kit) để tạo project phần mềm ngôn ngữ C điều khiển phần cứng xây dựng bước - Trong project phần mềm, tác giả tải toàn 10.000 mẫu thử sở liệu MNIST vào chương trình để thực tính tốn nhận dạng Bước 5: Download xuống FPGA - Trong công cụ XPS chọn chức “Program FPGA” để download toàn liệu phần cứng file system.bit sau biên dịch tải phần mềm xuống board mạch FPGA Terminal UART MicroBlaze PLB IP Core RAM Hình 4.8 Hệ thống kiểm tra đánh giá thực lõi IP FPGA Virtex-5 toán nhận dạng chữ số viết tay Sau nhúng hệ thống vào board mạch FPGA, tác giả thiết lập hệ thống kiểm tra đánh giá thực lõi IP cho toán nhận dạng chữ số viết tay dựa sở liệu MNIST hình 4.8 57 Trên máy tính PC sử dụng phần mềm terminal Hercules để nhận kết tính tốn nhận dạng mạng Mơ hình thực thi thực tế board FPGA thể hình 4.9, kết tính tốn nhận dạng thu phần mềm Hercules thể hình 4.10 4.11 Hình 4.9 Mơ hình thực thi kiến trúc SHL_ANN board FPGA Kiến trúc mạng nơ-ron nhúng với MicroBalze SHL-ANN 784-12-12-10 SHL-ANN 784-40-40-10 Sử dụng tài nguyên (%) 51,5% 99,7% fmax (MHz) 100,9 97,3 Tỉ lệ nhận dạng Ghi 94,13% MicroBlaze toàn ngoại vi 97,20% MicroBlaze ngoại vi Bảng 4.5 Tỉ lệ sử dụng tài nguyên, tần số hoạt động tỉ lệ nhận dạng hệ thống nhúng FPGA Virtex-5 Kết tổng hợp thực thi thể bảng 4.5 cho thấy, hệ thống nhúng mạng nơ-ron 784-40-40-10 chiếm dụng đến 99,7% tài nguyên board mạch FPGA với điều kiện sử dụng ngoại vi bản, tần số hoạt động tối đa fmax giảm xuống có đệm InputBuffer đặt trước kiến trúc SHL_ANN, nhiên kết 58 nhận dạng với kết mô phần mềm ISim 94,13% 97,20% tương ứng với mạng nơ-ron lớp ẩn có 12 nơ-ron 40 nơ-ron lớp ẩn Hình 4.10 Kết nhận dạng IP core 784-12-12-10 thu phần mềm Hercules Hình 4.11 Kết nhận dạng IP core 784-40-40-10 thu phần mềm Hercules 59 4.4.4 So sánh với số kết nghiên cứu khác Bảng 4.5 thể so sánh kết đạt với số nghiên cứu khác Với board mạch FPGA Virtex-5 XC5VLX-110T, sử dụng định dạng số thực dấu phẩy động 16 bit cho trọng số liệu đầu vào, kiến trúc SHL_ANN cho phép triển khai mạng nơ-ron có kích cỡ lớn dẫn đến kết đạt tỉ lệ nhận dạng cao nhiều so với [2] (97,20% so với 90,88% toán nhận dạng chữ số viết tay MNIST) nhiên tốc độ nhận dạng giảm xuống Tham khảo Cấu hình Cơng nghệ Tỉ lệ nhận dạng Tốc độ nhận dạng Nguyễn Thị Kim Anh,“Ứng dụng mạng nơ-ron nhân tạo nhận dạng chữ số viết tay FPGA”, Luận Văn Thạc sĩ, Đại học Bách khoa Đà Nẵng, 2015 [2] MHL_ANN 20-12-10 with PCA, 16-bit floating-point FPGA, Virtex-5 XC5VLX110T MNIST, 90,88% MNIST, 404 kFPS Jinhwan Park & Wonyong Sung (SNU), FPGA Based Implementation of Deep Neural Networks Using Onchip Memory Only, 2016 [4] 784-10221022-1022-10, 3-8 bits fixedpoint FPGA, ZynQ-7 7Z045, 172MHz MNIST, 98.92% MNIST, 70 kFPS “FINN: A Framework for Fast, Scalable Binarized Neural Network Inference”, Xilinx Research Lab, Norwegian Uni Of Science & Technology, University of Sydney, 2016 [5] 784-256-256256-10, Binarized Neural Network with & +1 FPGA, ZynQ-7 7Z045, 200MHz MNIST, 95.8% SHL_ANN78440-40-10, 16bit floatingpoint FPGA, Virtex-5 XC5VLX110T SHL_ANN 784-126-12610, 16-bit floating-point FPGA, ZynQ-7 7Z045, 200MHz Luận văn MNIST, 12360 kFPS MNIST, 97,20% MNIST, peak 15.8 kFPS MNIST, 98.16% MNIST, peak 15.9 kFPS Bảng 4.5 So sánh kết đạt với số nghiên cứu khác 60 Với board mạch FPGA ZynQ-7 7Z045, kiến trúc SHL_ANN triển khai mạng nơ-ron 784-126-126-10 cho tỉ lệ nhận dạng MNIST 98,16%, kết [4] sử dụng định dạng số thực dấu chấm tĩnh 3-8 bits nên triển khai mạng nơ-ron kích cỡ lớn nhiều (784-1022-1022-1022-10) cho tỉ lệ nhận dạng cao 98,92% Kết [5] giới thiệu kiến trúc mạng nơ-ron nhị phân tích chập, kích cỡ mạng nơ-ron 784-256-256-256-10 cho tỉ lệ nhận dạng MNIST thấp với 95,8% có tốc độ nhận dạng cao với 12630 kFPS, nhiên thuật toán huấn luyện mạng nơ-ron phức tạp đòi hỏi tài nguyên lớn 4.5 Kết luận chương Chương trình bày qui trình thực mạng nơ-ron nhân tạo lớp tính tốn phần cứng FPGA, thực mô đánh giá hiệu kiến trúc mạng SHL_ANN Kết mô cho thấy kiến trúc mạng hoạt động ổn định, tỉ lệ nhận dạng phần mềm mô với tỉ lệ nhận dạng MatLab cho thấy việc tính tốn kiến trúc SHL_ANN xác Kết tổng hợp mô đánh giá hiệu kiến trúc SHL_ANN mạng nơ-ron nhân tạo lan truyền thẳng có kiến trúc tùy biến board mạch FPGA khác nhau, đồng thời so sánh kết đạt với số nghiên cứu khác 61 KẾT LUẬN VÀ ĐỀ XUẤT Trên sở tìm hiểu, nghiên cứu kiến trúc mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp có kiến trúc tùy biến FPGA, đặt tên kiến trúc mạng nơron nhân tạo lớp tính tốn phần cứng SHL_ANN, đồng thời ứng dụng kiến trúc mạng vào toán nhận dạng chữ số viết tay dựa sở liệu MNIST, đề tài đạt mục tiêu nghiên cứu ban đầu đề Cụ thể, đề tài đạt kết sau đây: Nghiên cứu, phân tích hoạt động kiến trúc mạng nơ-ron nhân tạo lớp tính tốn phần cứng SHL_ANN triển khai cho mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp có cấu trúc tùy biến số lớp số nơ-ron lớp Thực mô thành công hoạt động kiến trúc mạng, áp dụng cho toán nhận dạng chữ số viết tay dựa sở liệu MNIST Đánh giá hiệu kiến trúc SHL_ANN cho mạng nơ-ron nhân tạo có kích cỡ khác qua thông số: sử dụng tài nguyên phần cứng, tốc độ đỉnh, tỉ lệ nhận dạng, xác định kích cỡ đối đa kiến trúc thực thi board mạch FPGA cụ thể Tổng hợp thực thi thành công kiến trúc SHL_ANN board mạch Virtex-5 XC5VLX-110T hãng Xilinx Bên cạnh đó, giới hạn thời gian hoàn thành luận văn, thời gian tiếp cận với FPGA khơng nhiều, tác giả chưa có nhiều kinh nghiệm thực hành lĩnh vực nên luận văn dừng lại việc nghiên cứu mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp toán nhận dạng chữ số viết tay từ tập MNIST FPGA Chính vậy, tác giả xin đề xuất số hướng nghiên cứu sau đây: Tối ưu hóa kiến trúc SHL_ANN theo hướng tăng tốc độ nhận dạng Xây dựng ứng dụng nhận dạng mẫu kiến trúc SHL_ANN như: nhận dạng tiếng nói, khn mặt hay dấu vân tay Nghiên cứu xây dựng mạng nơ-ron nhân tạo tích chập CNN (Convolutional Neural Network) FPGA Cuối tác giả mong nhận giúp đỡ đóng góp ý kiến tất thầy cô hội đồng bảo vệ bạn quan tâm để luận văn hoàn thiện Tác giả xin gởi lời cảm ơn chân thành sâu sắc đến người hướng dẫn khoa học Thầy giáo TS Huỳnh Việt Thắng, người gợi ý hướng đề tài, cung cấp tài liệu tham khảo, hướng dẫn cho phương pháp làm việc khoa học tận tình giúp đỡ động viên tơi suốt q trình thực luận văn 62 Xin gởi lời cảm ơn chân thành đến Tập thể Thầy Cô giáo khoa Điện Tử Viễn Thông, trường Đại học Bách Khoa, thuộc Đại học Đà Nẵng giúp đỡ tạo điều kiện thuận lợi cho tác giả suốt trình học tập hồn thành đề tài Tuy cố gắng, nỗ lực đạt kết đáp ứng mục tiêu nghiên cứu đặt ra, song chắn khơng tránh khỏi thiếu sót trình thực luận văn Tác giả mong nhận ý kiến đóng góp trao đổi người đọc để tiếp tục hoàn thiện nghiên cứu tương lai 63 DANH MỤC CƠNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ CỦA TÁC GIẢ Huỳnh Minh Vũ, Huỳnh Việt Thắng, A Customized Hardware Architecture for MultiLayer Artificial Neural Networks on FPGA, in Proc of the 4th International Conference on Information System Design and Intelligent Applications (accepted for presentation and publication on Springer AISC), June 15-17, 2017, in Danang City Vietnam 64 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Nguyễn Văn Cường, “Cơ sở thiết kế mạch tích hợp số (VLSI) cơng nghệ xử lý vi mạch (IC)”, Nhà xuất Giáo dục Việt Nam, 2014 [2] Nguyễn Thị Kim Anh,“ Ứng dụng mạng nơ-ron nhân tạo nhận dạng chữ số viết tay FPGA”, Luận Văn Thạc sĩ, Đại học Bách khoa Đà Nẵng, 2015 Tài liệu tiếng Anh [3] Huynh Viet Thang, “Evaluation of Artificial Neural Network Architectures for Pattern Recognition on FPGA”, International Journal of Computing and Digital Systems (ISSN: 2210-142X), 2017 [4] Park, Jinhwan; Sung, Wonyong, “FPGA Based Implementation of Deep Neural Networks Using On-chip Memory Only”, ICASSP 2016 [5] Yaman Umuroglu, Nicholas J Fraser, Giulio Gambardella, Michaela Blott, Philip Leong, Magnus Jahre and Kees Vissers, “FINN: A Framework for Fast, Scalable Binarized Neural Network Inference”, Xilinx Research Lab, Norwegian Uni Of Science & Technology, University of Sydney, 2016 [6] Huynh Viet Thang, “Design of Artificial Neural Network Architecture for Handwritten Digit Recognition on FPGA”, J Sci Techonlogy, UDN, vol 108, (2016) 206–210, 2016 [7] Huynh Viet Thang, “Design space exploration for a single-FPGA handwritten digit recognition system”, in 2014 IEEE-ICCE, 2014 [8] F M Dias, A Antunes, and A M Mota, “Artificial neural networks: a review of commercial hardware,” Eng Appl Artif Intell., vol 17, no 8, pp 945–952, 2004 [9] J Misra and I Saha, “Artificial neural networks in hardware: A survey of two decades of progress,” Neurocomputing, vol 74, no 1–3, pp 239–255, Dec 2010 [10] Martin T Hagan, Howard B Demuth, Mark Beale, “Neural Network Design”, PSW Publishing Company, 1996 [11] “IEEE Standard for Floating-Point Arithmetic”, IEEE Std 754-2008 [12] Deep Learning Basics: Neural Networks, Backpropagation and Stochastic Gradient Descent http://alexminnaar.com/deep-learning-basics-neuralnetworks-backpropagation-and-stochastic-gradient-descent.html/ [Accessed: 20-Jun-2017] 65 [13] FLoPoCo Project, http://flopoco.gforge.inria.fr/ [Accessed: 20-Jun-2017] [14] MNIST database, http://yann.lecun.com/exdb/mnist/ [Accessed: 20-Jun-2017] [15] Xilinx training, http://www.xilinx.com/training/fpga-tutorials.htm [Accessed: 20-Jun-2017] [16] Neural Networks and Deep Learning, http://neuralnetworksanddeeplearning.com [Accessed: 20-Jun-2017] [17] IBM Research: Neurosynaptic chips [Online] Available: http://research.ibm.com/cognitive-computing/neurosynapticchips.shtml#fbid=e8AW73seOQe [Accessed: 20-Jun-2017] [18] General Vision - NeuroMorphic Chip [Online] https://www.generalvision.com/ [Accessed: 20-Jun-2017] [19] KAIST Multimedia VLSI Laboratory - Deep Neural Network Processor http://mvlsi.kaist.ac.kr/research/multimedia-processor/deep-learning-processor [Accessed: 20-Jun-2017] [20] Neural Networks: https://tiendv.wordpress.com/2016/11/19/neural-networks/ [Accessed: 20-Jun-2017] ... dựng kiến trúc mạng nơ- ron nhân tạo chương Chương - Nghiên cứu kiến trúc mạng nơ- ron nhân tạo lan truyền thẳng nhiều lớp tùy biến FPGA: Chương mở đầu việc trình bày kiến trúc nơ- ron nhân tạo, ... [2, 6] Lớp ẩn Nơ- ron X Lớp ẩn Nơ- ron Lớp ngõ Nơ- ron r Nơ- ron Nơ- ron Nơ- ron Nơ- ron M1 Nơ- ron M2 Nơ- ron M3 Hình 3.4 Sơ đồ khối chức kiến trúc MHL-ANN Kiến trúc MHL-ANN có số lớp phần cứng cấu trúc. .. mạng nơ- ron nhân tạo FPGA bao gồm: hệ thống nhận dạng mẫu mạng nơ- ron nhân tạo, mơ hình tính tốn mạng nơ- ron nhân tạo lan truyền thẳng nhiều lớp, huấn luyện mạng nơ- ron nhân tạo nhiều lớp sử dụng