Đăng ký Đăng nhập
Trang chủ 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 ...

Tài liệu 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

.PDF
74
3
148

Mô tả:

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 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. 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 1. Tính cấp thiết của đề tài............................................................................................... 1 2. Mục tiêu nghiên cứu ................................................................................................... 2 3. Đối tượng và phạm vi nghiên cứu ............................................................................... 2 3.1. Đối tượng nghiên cứu .......................................................................................2 3.2. Phạm vi nghiên cứu ........................................................................................... 2 4. Phương pháp nghiên cứu và nội dung nghiên cứu ...................................................... 2 4.1. Phương pháp nghiên cứu...................................................................................2 4.2. Nội dung nghiên cứu .........................................................................................3 5. Ý nghĩa khoa học và thực tiễn của đề tài..................................................................... 3 6. Kết cấu của luận văn .................................................................................................... 3 CHƯƠNG 1-TỔNG QUAN .......................................................................................... 5 1.1. Mạng nơ-ron sinh học............................................................................................... 5 1.2. Mạng nơ-ron nhân tạo .............................................................................................. 6 1.3. Thực hiện mạng nơ-ron nhân tạo trên phần cứng .................................................... 7 1.4. Phạm vi và nhiệm vụ của luận văn ........................................................................... 9 CHƯƠNG 2 - 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 trên mạng nơ-ron nhân tạo ..................................... 10 2.3. Mô hình tính toán trong 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 toá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 một nơ-ron .....................................................................................15 2.4.2. Mô hình mạng nơ-ron ..................................................................................17 2.5. Công nghệ FPGA và 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 hiện các phép toán số thực dấu phẩy động trên 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 trên FPGA .......................................25 2.7. Thực hiện các phép toán cơ 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 hiện hàm truyền Logsigmoid .......................................................... 31 2.8. Kết luận chương ..................................................................................................... 32 CHƯƠNG 3 - 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 của một 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 toán phần cứng ..................... 35 3.4. Kiến trúc mạng nơ-ron nhân tạo với một lớp tính toán phần cứng ........................ 36 3.4.1. Khối nơ-ron tính toán Hardware_Layer .......................................................36 3.4.2. Khối điều khiển Control Unit.......................................................................40 3.4.3. Kết quả mô phỏng ........................................................................................ 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 trên FPGA................................................................................................................ 44 3.6. Kết luận chương ..................................................................................................... 46 CHƯƠNG 4 - THỰC HIỆN VÀ ĐÁNH GIÁ ........................................................... 47 4.1. Mở đầu chương ....................................................................................................... 47 4.2. Quy trình thiết kế và thực hiện mạng nơ-ron nhân tạo trên FPGA ........................ 47 4.2.1. Huấn luyện các mạng nơ-ron trên MatLab ..................................................48 4.2.2. Tạo mã chương trình mô tả phần cứng VHDL cho các mạng ANN ...........48 4.2.3. Tổng hợp và mô phỏng ................................................................................49 4.2.4. Thực thi trên phần cứng ...............................................................................49 4.3. Các thông số (tiêu chí) đánh giá và các trường hợp đánh giá ................................ 49 4.4. Kết quả thực nghiệm............................................................................................... 50 4.4.1. Kết quả huấn luyện các mạng nơ-ron nhân tạo trên MatLab .......................50 4.4.2. Kết quả tổng hợp và mô phỏng ....................................................................52 4.4.3. Kết quả thực thi trên phần cứng ...................................................................54 4.4.4. So sánh với một số kết quả 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 cơ sở CLB Configurable Logic Blocks Các khối logic cấu hình được 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ớ chỉ đọc có thể lập trình và xóa được FPGA Field Programmable Gate Array Mảng cổng lập trình được 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 ra 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 toán phần cứng PCA Principal Component Analysis Phân tích thành phần chính PLB Processor Local Bus Bus nội bộ vi xử lý RAM Random Access Memory Bộ nhớ truy xuất ngẫu nhiên RTL Register Transfer Level Mức chuyển thanh ghi EPROM I/O IEEE MHL_ANN Single Hardware Layer Artifical Neural Network Mạng nơ-ron nhân tạo một 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 bộ vạn năng 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 độ rấ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 ra khối Hardware Layer 37 3.2 Các tín hiệu vào ra khối Control Unit 40 3.3 Các tín hiệu vào ra 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 của FPGA 52 4.3 Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng và tỉ lệ nhận dạng trên 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 và tỉ lệ nhận dạng trên board mạch ZynQ-7 7Z045 53 4.5 Tỉ lệ sử dụng tài nguyên, tần số hoạt động và tỉ lệ nhận dạng của các hệ thống nhúng trên FPGA Virtex-5 57 4.6 So sánh kết quả đạt được với một 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 của một nơ-ron sinh học [20] 5 1.2 Chip SyNAPSE của IBM (2014) [17] 8 1.3 Deep Neural Network Processor của KAIST (2017) và các ứng dụng [19] 8 2.1 Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN 10 2.2 Sơ đồ khối chức năng 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 của một nơ-ron nhân tạo 11 2.4 Mạng nơ-ron một lớp gồm N đầu vào và M nơ-ron [10] 12 2.5 Mô hình mạng nơ-ron 3 lớp [10] 13 2.6 Mô hình mạng nơ-ron 2 lớp 18 2.7 Kiến trúc tổng quát của FPGA 21 2.8 Sơ đồ khối bộ cộng 25 2.9 Dạng sóng bộ cộng 26 2.10 Sơ đồ khối bộ nhân 26 2.11 Dạng sóng bộ nhân 27 2.12 Sơ đồ khối bộ chia 27 2.13 Dạng sóng của bộ chia 28 2.14 Sơ đồ khối bộ thực hiện hàm mũ 28 2.15 Dạng sóng của bộ thực hiện hàm mũ 29 2.16 Sơ đồ khối bộ nhân cộng tích lũy MAC 29 2.17 Sơ đồ khối mức thanh ghi RTL bộ nhân cộng tích lũy MAC 30 2.18 Dạng sóng bộ 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 thanh ghi RTL hàm Logsigmoid 31 2.21 Dạng sóng bộ thực hiện hàm truyền Logsigmoid 32 3.1 Sơ đồ khối kiến trúc của nơ-ron [6] 33 3.2 Sơ đồ khối mức chuyển thanh ghi RTL một nơ-ron 34 3.3 Dạng sóng thực hiện một nơ-ron 35 3.4 Sơ đồ khối chức năng của kiến trúc MHL-ANN 35 3.5 Sơ đồ khối chức năng của kiến trúc SHL-ANN 36 3.6 Sơ đồ khối RTL của khối nơ-ron tính toán Hardware Layer 37 3.7 Sơ đồ khối RTL chi tiết của khối Hardware_Layer 39 3.8 Sơ đồ khối RTL của khối điều khiển Control Unit 40 3.9 Sơ đồ máy trạng thái FSM của khối điều khiển 41 3.10 Sơ đồ khối RTL của kiến trúc SHL_ANN 43 3.11 Dạng sóng thực hiện mạng nơ-ron 44 3.12 Sơ đồ khối quá trình tạo mã VHDL 45 4.1 Qui trình thiết kế và thực hiện mạng ANN trên FPGA 47 4.2 Sơ đồ khối quá trình huấn luyện trên Matlab 48 4.3 Kết quả huấn luyện trên Matlab các mạng có 12 nơ-ron trong lớp ẩn 51 4.4 Kết quả huấn luyện trên Matlab các mạng có 40 nơ-ron trong lớp ẩn 51 4.5 Kết quả huấn luyện trên Matlab các mạng có 126 nơ-ron trong lớp ẩn 52 4.6 So sánh tỉ lệ sử dụng tài nguyên FPGA Virtex-5 và tỉ lệ nhận dạng của các kiến trúc MHL_ANN và SHL_ANN 54 4.7 Sơ đồ khối RTL lõi IP DNN_IP_TOPMODULE 55 4.8 Hệ thống kiểm tra và đánh giá sự thực hiện của lõi IP trên FPGA Virtex-5 trong bài 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 trên board FPGA 57 4.10 Kết quả nhận dạng của IP core 785-12-12-10 thu được trên phần mềm Hercules 58 4.11 Kết quả nhận dạng của IP core 785-40-40-10 thu được trên phần mềm Hercules 58 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) được nghiên cứu từ rất sớm vào đầu thế kỷ 20 với sự đóng góp của rất nhiều nhà khoa học nhằm mô phỏng mạng nơ-ron sinh học của con người. Từ những năm 1980s, cùng với những phát kiến mới quan trọng như thuật toán lan truyền ngược dùng để huấn luyện mạng nơ-ron đa lớp và sự phát triển mạng mẽ của khoa học máy tính, công cụ phần cứng để thực hiện tính toán, mạng nơ-ron nhân tạo đã phát triển bùng nổ và được ứng dụng trong nhiều lĩnh vực khác nhau trong cuộc sống. Mạng nơ-ron nhân tạo không cung cấp tất cả giải pháp cho mọi vấn đề, nhưng trong những tình huống thích hợp nó là công cụ rất hữu hiệu để giải quyết vấn đề hiệu quả hơn so với khi sử dụng các phương pháp khác. Mạng nơ-ron nhân tạo được sử dụng trong nhiều ứng dụng khoa học và công nghệ như: ngành hàng không (chế độ lái tự động, mô phỏng đường bay,…), y tế (phân tích điện não đồ và điện tâm đồ, phân tích tế bào ung thư,,…), tài chính (tư vấn cho vay, phân tích tài chính doanh nghiệp), nhận dạng mẫu (nhận dạng tiếng nói, nhận dạng khuôn mặt, nhận dạng chữ số viết tay,…). Mạng nơ-ron nhân tạo được thực hiện chủ yếu trên phần mềm. Điều này có lợi thế là người thiết kế không cần phải biết chi tiết các hoạt động bên trong các phần tử mạng nơ-ron mà chỉ tập trung vào các ứng dụng của mạng nơ-ron. Tuy nhiên, các ứng dụng yêu cầu thời gian đáp ứng nhanh hoặc thời gian thực của ANNs dựa trên phần mềm thực hiện chậm hơn so với các ANNs dựa trên phần cứng. Kiến trúc mạng ANN yêu cầu một khối lượng tính toán song song khổng lồ, vì vậy để đáp ứng những yêu cầu khắc khe về tốc độ trong ứng dụng thời gian thực và tính toán hiệu năng cao, kiến trúc ANN cần được thực thi trên phần cứng song song. Mạng nơ-ron nhân tạo có thể được thực hiện theo công nghệ ASIC/VLSI nhưng thường rất đắt đỏ và tiêu tốn thời gian thiết kế chip rất lớn. Một nền tảng phần cứng khác hiện đang được khai thác là FPGA (Field Programmable Gate Array). FPGA là các vi mạch tích hợp chuyên dụng được thiết kế với tính năng cơ bản là khả năng cấu hình lại và khả năng thực hiện các phép tính toán số học và logic với tốc độ cao. Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗ trợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi vẫn đảm bảo hoạt động bình thường cho các bộ phận khác. Các vi mạch này được sử dụng một cách rộng rãi trong các thiết bị công nghiệp cũng như dân dụng hiện nay như các bộ vi điều khiển, các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mô hình phần cứng máy tính, máy đánh cờ,... Do đó, khi thực thi mạng nơ-ron nhân tạo trên FPGA không những mang lại tính mềm dẻo mà còn tiết kiệm được thời gian thiết kế và chi phí sản xuất. 2 Hiện nay, những mạng nơ-ron sâu (Deep Neural Network - DNN) với từ 2 lớp ẩn trở lên cho phép mô hình hóa các bài toán và dữ liệu phức tạp hơn so với những mạng nơ-ron nông (shallow neural network) truyền thống với chỉ 1 lớp ẩn. Mạng nơron sâu - cùng với mạng nơ-ron tích chập (Convolutional Neural Network - CNN) do vậy hứa hẹn khả năng ứng dụng mạnh mẽ trong nhận dạng mẫu cũng như trong lĩnh vực thị giác máy tính (Computer Vision) và học sâu (Deep Learning) trong những năm gần đây. Tuy nhiên, thách thức khi thực hiện các kiến trúc mạng nơ-ron sâu DNN là sự tăng vọt về số lượng lớp, số lượng nơ-ron trong từng lớp cũng như số lượng liên kết giữa các lớp (số lượng trọng số) dẫn đến kích cỡ mạng có thể có từ hàng trăm đến hàng nghìn nơ-ron với hàng triệu trọng số, khi đó việc triển khai mạng nơ-ron sâu trên phần cứng (chẳng hạn FPGA) đòi hỏi người kỹ sư thiết kế cần tính toán đến việc cân bằng giữa các yếu tố: tài nguyên phần cứng, thời gian tính toán của mạng, công suất tiêu thụ và tỉ lệ nhận dạng mong muốn. 2. Mục tiêu nghiên cứu Mục tiêu của đề tài là 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 được và thử nghiệm trên FPGA, thực hiện và đánh giá các thông số về tài nguyên phần cứng và tốc độ tính toán, đồng thời ứng dụng kiến trúc mạng nơ-ron nhiều lớp trong nhận dạng mẫu. 3. Đối tượng và phạm vi nghiên cứu 3.1. Đối tượng nghiên cứu - Mô hình mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp và ứng dụng trong hệ thống nhận dạng mẫu. - Công nghệ FPGA, các công cụ hỗ trợ thiết kế số và phát triển hệ thống nhúng trên nền FPGA. - Cơ sở lý thuyết, kỹ thuật và công cụ để thực hiện tính toán với số thực dấu phẩy động trên FPGA. - Các tập dữ liệu để phục vụ bài toán nhận dạng mẫu. - Tiêu chí và phương pháp đánh giá mạng nơ-ron nhân tạo khi thực hiện trên phần cứng FPGA 3.2. Phạm vi nghiên cứu - Thực hiện và đánh giá khối nhận dạng sử dụng mạng nơ-ron nhân tạo nhiều lớp trong hệ thống nhận dạng mẫu dựa trên FPGA. 4. Phương pháp nghiên cứu và nội dung nghiên cứu 4.1. Phương pháp nghiên cứu Phương pháp nghiên cứu xuyên suốt của luận văn là kết hợp nghiên cứu lý thuyết, tính toán, viết chương trình bằng VHDL, kết hợp mô phỏng bằng phần mềm, 3 thực thi trên phần cứng để đánh giá các kết quả đạt được và so sánh với các công trình nghiên cứu liên quan đã được công bố. 4.2. Nội dung nghiên cứu - Thu thập và nghiên cứu tài liệu và công trình của các tác giả trong và ngoài nước có liên quan đến đề tài. - Nghiên cứu các lý thuyết: lý thuyết về mạng nơ-ron nhân tạo và ứng dụng, thuật toán lan truyền ngược (Back Propagation) cho huấn luyện mạng nơ-ron, thư viện để thực hiện các phép toán dấu phẩy động trên FPGA. - Tìm hiểu kiến trúc và phân tích hoạt động của một kiến trúc mạng nơ-ron nhân tạo nhiều lớp (với ít nhất một lớp ẩn) trên FPGA đã được thiết kế. Phân tích, đánh giá hiệu năng của kiến trúc này thông qua các thông số về tài nguyên phần cứng, tốc độ tính toán tương ứng với các mô hình mạng nơ-ron khác nhau (thay đổi số lớp, số nơron trong mỗi lớp), đánh giá khả năng thực hiện kiến trúc mạng nơ-ron này trên các board mạch FPGA hiện có. - Huấn luyện mạng nơ-ron nhân tạo nhiều lớp trong bài toán nhận dạng mẫu bằng phần mềm Matlab để tìm bộ trọng số tối ưu, sau đó tổng hợp và thực hiện kiến trúc này trên FPGA, mô phỏng kiểm tra. - Thực thi và đánh giá mạng nơ-ron đã thiết kế trên board mạch FPGA. 5. Ý nghĩa khoa học và thực tiễn của đề tài Việc nghiên cứu và thực thi mạng nơ-ron nhân tạo nhiều lớp trên FPGA nhằm xây dựng mạng nơ-ron ứng dụng trong nhận dạng mẫu. Việc xây dựng mạng nơ-ron trên phần cứng FPGA sẽ làm cơ sở cho việc hiện thực hóa các bài toán nhận dạng mẫu ứng dụng mạng nơ-ron trên chip và từ đó có thể mở ra các hướng thiết kế và ứng dụng mang tính thực tiễn cao với sự tích hợp các hệ thống xử lý thông minh trên chip. 6. Kết cấu của luận văn Luận văn bao gồm có 4 chương được tóm tắt như sau:  Chương 1 - Tổng quan: Trong chương này sẽ giới thiệu tổng quan về mạng nơron nhân tạo, ứng dụng mạng nơ-ron nhân tạo trong nhận dạng mẫu cũng như việc triển khai mạng nơ-ron nhân tạo trên phần cứng và giới thiệu các nghiên cứu đã thực hiện trên thế giới. Chương này cũng xác định mục tiêu, phạm vi và nhiệm vụ cụ thể của đề tài.  Chương 2 - Cơ sở hiện thực hóa mạng nơ-ron nhân tạo trên FPGA: Trong chương này sẽ trình bày những vấn đề cần quan tâm khi triển khai mạng nơ-ron nhân tạo trên FPGA bao gồm: hệ thống nhận dạng mẫu trên mạng nơ-ron nhân tạo, mô hình tính toán trong 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 thuật toán lan truyền ngược BP với SGD, công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL cũng như 4 giới thiệu thư viện nguồn mở FLoPoCo và các phép toán số thực dấu phẩy động trên FPGA, các phép toán cơ sở để thực hiện mạng nơ-ron nhân tạo. Đây là những cơ sở lý thuyết quan trọng làm tiền đề cho việc xây dựng kiến trúc mạng nơ-ron nhân tạo trong chương 3.  Chương 3 - 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: Chương này mở đầu bằng việc trình bày kiến trúc một nơ-ron nhân tạo, sau đó giới thiệu và mô tả hoạt động của hai kiến trúc mạng nơ-ron nhân tạo, đó là: i) kiến trúc mạng nơ-ron nhân tạo với nhiều lớp tính toán phần cứng (MHL_ANN) và ii) kiến trúc mạng nơ-ron nhân tạo với chỉ một lớp tính toán phần cứng (SHL_ANN). Một công cụ tự động dựa trên Matlab để tự động tạo mã mô tả phần cứng VHDL cho 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 được cũng sẽ được giới thiệu trong chương này.  Chương 4 - Thực hiện và đánh giá: Nội dung chương trình bày qui trình thiết kế và thực hiện mạng nơ-ron nhân tạo trên FPGA, xây dựng các thông số đánh giá hiệu năng của kiến trúc mạng và các kết quả thực nghiệm thông qua tổng hợp, mô phỏng và thực thi trên phần cứng, đồng thời so sánh kết quả đạt được với một số kết quả nghiên cứu khác. 5 CHƯƠNG 1-TỔNG QUAN 1.1. Mạng nơ-ron sinh học Bộ não con người và hoạt động của hệ thần kinh nói chung đã được quan tâm nghiên cứu từ rất lâu nhưng cho đến nay các nhà khoa học vẫn chưa thực sự hiểu rõ chi tiết về hoạt động của bộ não và hệ thần kinh, đặc biệt là trong các hoạt động liên quan đến trí óc như suy nghĩ, học tập, tư duy, trí nhớ, sáng tạo… Tuy nhiên, các nhà khoa học cũng có một số thông tin căn bản về bộ não con người. Theo đó, một bộ não con người trung bình cân nặng khoảng 1,5 kg và có thể tích là 235 cm3, cấu tạo bộ não được chia ra làm nhiều vùng khác nhau, mỗi vùng kiểm soát một hay nhiều hoạt động của con người. Hoạt động của cả hệ thống thần kinh bao gồm não bộ và các giác quan như sau: đầu tiên con người nhận được kích thích bởi các giác quan từ bên ngoài hoặc trong cơ thể. Các kích thích này được biến thành các xung điện bởi chính các giác quan tiếp nhận kích thích. Những tín hiệu này được chuyển về trung ương thần kinh là bộ não để xử lý. Tại bộ não các thông tin sẽ được xử lý, đánh giá và so sánh với các thông tin đã được lưu trữ để đưa ra các quyết định dưới dạng các xung điện. Từ những quyết định từ bộ não sẽ sinh ra các mệnh lệnh cần thiết và gửi đến những bộ phận thi hành thích hợp như các cơ tay, chân, giác quan…. [20] Khi xem xét ở mức độ tế bào thì bộ não được hình thành từ 1011 phần tử gọi là nơ-ron. Mỗi nơ-ron được liên kết chặt chẽ với 104 nơ-ron. Các nơ-ron này có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng có những khả năng mà các tế bào khác không có được đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa làm cơ sở hình cách thức xử lý thông tin của bộ não. Hình 1.1 mô tả cấu tạo và cách thức hoạt động của nơ-ron sinh học, trong đó nơ-ron sinh học có 4 thành phần cơ bản: Thân nơ-ron (cell body) chứa nhân (nucleus) hay một số tài liệu gọi là soma có nhiệm vụ chính là tổng hợp và xử lý các tín hiệu điện nhận vào từ các đầu vào. Bản chất của quá trình này chính là việc lấy tổng tất cả các tín hiệu nơ-ron nhận được. Hình 1.1. Cấu trúc minh họa của một nơ-ron sinh học [20] 6  Các nhánh tín hiệu vào (denrites) đây chính là các mạng dạng cây của các dây thần kinh truyền tín hiệu vào đến thân nơ-ron.  Sợi trục ra (axon) có chức năng truyền tín hiệu từ thân tế bào này sang nơ-ron khác. Phần cuối của axon được chia thành nhiều nhánh nhỏ (cả của denrites và axon) kết thúc tại khớp nối (Synapse).  Khớp nối (Synapse) là điểm liên kết giữa sợi trục ra của nơ-ron này với các nhánh denrites của nơ-ron khác. Liên kết giữa các nơ-ron và độ nhạy của mỗi synapse được xác định bởi quá trình học phức tạp. Khi điện thế của synapses tăng lên do xung điện phát ra từ axon thì synapses sẽ tiết ra một loại hóa chất để kết nối mở ra cho các ion đi qua nó. Các ion này làm thay đổi tín hiệu điện thế trên các điểm tiếp xúc tạo ra các xung điện lan truyền tới các nơ-ron khác. Một cách tổng quát nơ-ron sinh học hoạt động theo cách thức sau: nơ-ron nhận tín hiệu đầu vào từ các denrites sau đó xử lý các tín hiệu này tại nhân nơ-ron mà cụ thể hơn là lấy tổng tất cả các tín hiệu đầu vào mà nó nhận được sau đó phát ra một tín hiệu điện thế; nếu tổng tất cả các tín hiệu điện lớn hơn một ngưỡng cho phép nào đó thì xử lý và cho ra một tín hiệu đầu ra. Tín hiệu đầu ra này được truyền qua axon và chính là tín hiệu đầu vào của một nơ-ron khác. 1.2. Mạng nơ-ron nhân tạo Dựa trên cấu trúc và cách thức hoạt động của nơ-ron sinh học, các nhà nghiên cứu đã đề xuất mô hình nơ-ron nhân tạo và mạng nơ-ron nhân tạo. Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) là một mô hình toán học hay mô hình tính toán được phỏng theo cách thức xử lý thông tin của các nơ-ron sinh học cụ thể hơn ở đây là bộ não con người. Thành phần cơ bản của ANN là nơ-ron nhân tạo có cách thức hoạt động và xử lý tương tự nơ-ron sinh học. ANN được hình thành từ số lượng lớn các nơron nhân tạo được liên kết với nhau theo cấu trúc từng lớp với các nơ-ron kết nối với nhau giữa các lớp thông qua các liên kết có trọng số. Xét về mặt toán học, trong một mạng nơ-ron nhân tạo lan truyền thẳng với M lớp (không kể lớp vào), kết quả đầu ra tại lớp thứ k được tính như sau: xk+1 = f (Wkxk); k = 1, 2, 3…, M, (1.1) trong đó: xk và Wk là vector dữ liệu vào và ma trận trọng số (đặc trưng cho liên kết giữa hai lớp) của lớp thứ k; xk+1 là vector kết quả đầu ra của lớp thứ k và cũng chính là vector dữ liệu vào cho lớp kế tiếp k+1; và f là hàm kích hoạt (activation function, thường là hàm phi tuyến). Theo công thức (1.1), quá trình lan truyền thẳng trong mạng nơ-ron nhân tạo nhiều lớp chính là thực hiện phép nhân ma trận – vector Wkxk sau đó áp dụng hàm kích hoạt đối với từng phần tử của kết quả nhận được, và hai phép toán này sẽ được lặp lại cho từng lớp cho đến khi tính đến lớp cuối cùng. Quá trình học 7 (thông thường với thuật toán lan truyền ngược) trong mạng nơ-ron phức tạp hơn nhiều so với quá trình lan truyền. Mô hình tính toán chi tiết của ANN sẽ được trình bày trong chương tiếp theo. Mạng nơ-ron nhân tạo đã và đang được ứng dụng rộng khắp trong nhiều lĩnh vực khác nhau trong khoa học tự nhiên và kỹ thuật, đến các ứng dụng trong khoa học kinh tế và khoa học xã hội. Thông thường, ANN được sử dụng như một cơ chế xấp xỉ hàm tùy ý có thể đạt được thông qua việc “học” các dữ liệu quan sát đã biết. Bên cạnh đó, ANN cũng là công cụ mô hình hóa dữ liệu thống kê phi tuyến và có thể được dùng để mô hình hóa các mối quan hệ phức tạp giữa dữ liệu vào và ra. Một lĩnh vực ứng dụng phổ biến là sử dụng ANN trong nhận dạng mẫu (Pattern Recognition) và đây hiện đang là một trong những hướng nghiên cứu và ứng dụng dành được nhiều sự quan tâm của giới khoa học, cũng chính là hướng nghiên cứu mà luận văn tập trung vào. 1.3. Thực hiện mạng nơ-ron nhân tạo trên phần cứng Rất phổ biến, mạng nơ-ron nhân tạo thông thường được thực thi bằng các chương trình phần mềm từ đơn giản đến các phần mềm chuyên nghiệp trên các máy tính đa mục đích (general-purpose computers) trong nhiều ứng dụng trong thực tế, cho phép người thiết kế chỉ cần tập trung vào các thuật toán huấn luyện cũng như ứng dụng của mạng mà chưa quan tâm nhiều đến yếu tố thời gian xử lý hay thời gian huấn luyện mạng. Ngày nay, xu thế sử dụng các thiết bị nhúng thông minh có tích hợp chức năng nhận dạng và phân loại đang gia tăng, đòi hỏi sự tích hợp của các chip thông minh thực hiện chức năng nhận dạng vào các thiết bị này, ví dụ kiến trúc mạng nơ-ron nhân tạo trên phần cứng nhúng và hệ thống nhúng để đạt được những yêu cầu khắt khe về tốc độ xử lý, hiệu năng, tối thiểu công suất tiêu thụ. Hơn thế nữa, mạng nơ-ron yêu cầu một khối lượng tính toán song song khổng lồ, để đáp ứng những yêu cầu khắt khe về tốc độ, mạng nơ-ron cần được thực thi trên những nền tảng phần cứng song song. Cùng với sự phát triển mạnh mẽ của công nghiệp bán dẫn, các thực hiện mạng nơ-ron nhân tạo trên phần cứng đã và đang được nghiên cứu và phát triển trong suốt vài thập kỷ qua. Các công trình nghiên cứu trên thế giới nhằm thiết kế, thử nghiệm và triển khai kiến trúc mạng nơ-ron trên chip phần cứng đã được tiến hành. Các công nghệ được lựa chọn để nghiên cứu và thực thi kiến trúc mạng nơ-ron nhân tạo ANN là công nghệ FPGA (Field Programmable Gate Array) và công nghệ ASIC (ApplicationSpecific Integrated Circuit). Các nghiên cứu liên quan trong lĩnh vực này được tổng hợp trong [8, 9]. Các kết quả nghiên cứu trên thế giới đã được công bố, và cũng như thương mại hóa gần đây. Tháng 8/2014, hãng IBM giới thiệu SyNAPSE Chip [17] với kiến trúc gồm một triệu nơ-ron, lĩnh vực ứng dụng của chip mới này là các ứng dụng tính toán thông minh hiệu năng cao liên quan đến học máy (xem Hình 1.2). Bên cạnh đó, các vi mạch chuyên dụng thực thi chức năng của mạng nơ-ron nhân tạo hiện vẫn đang tiếp tục được nghiên 8 cứu và phát triển trên thế giới, chẳng hạn Neural Network Chip của General Vision [18], vi mạch ASIC thực hiện mạng nơ-ron tích chập của viện KAIST - Hàn Quốc [19] vừa được công bố đầu năm 2017 (xem Hình 1.3), hay các công trình nghiên cứu và thực hiện mạng nơ-ron trên nền tảng FPGA được công bố gần đây như trong [3, 4, 5]. Hình 1.2 Chip SyNAPSE của IBM (2014) [17] Hình 1.3 Deep Neural Network Processor của KAIST (2017) và các ứng dụng [19] 9 Nhiều vấn đề kỹ thuật (cũng như kinh tế) cần được xem xét kỹ lưỡng và cân nhắc lựa chọn khi thiết kế và thực hiện mạng nơ-ron nhân tạo trên phần cứng hướng đến một ứng dụng hay một nhóm ứng dụng cụ thể, có thể kể ra như sau:  Kiến trúc mạng (neural network architecture): mạng lan truyền thẳng hay mạng hồi quy, số lớp và số lượng nơ-ron ở mỗi lớp, dạng của hàm kích hoạt, mạng có chức năng học để tự động cập nhật bộ trọng số hay việc học được thực hiện offline trước đó trên máy tính.  Định dạng số (number format) phù hợp cho biểu diễn dữ liệu và tính toán trong mạng nơ-ron: sử dụng số nguyên, sử dụng số thực, hay sử dụng định dạng nhị phân; nếu sử dụng định dạng số thực thì dùng định dạng dấu chấm tĩnh (fixedpoint format) hay định dạng dấu chấm động (floating-point format); số lượng bit tối thiểu (bitwidth) cho các toán hạng và các phép toán; sử dụng đồng nhất một định dạng số cho dữ liệu và các phép toán hay sử dụng nhiều định dạng khác nhau cho dữ liệu vào ra, trọng số và các phép toán.  Độ chính xác/Tỷ lệ nhận dạng đúng (accuracy/recognition rate) của ứng dụng yêu cầu.  Tốc độ xử lý yêu cầu của mạng nơ-ron (performance).  Công suất.  Chi phí thiết kế và chế tạo.  Nền tảng phần cứng và tài nguyên phần cứng cần thiết để thực hiện thiết kế.  Khả năng thương mại hóa và các yếu tố khác có liên quan. 1.4. Phạm vi và nhiệm vụ của luận văn Tại Việt Nam, việc ứng dụng mạng nơ-ron nhân tạo trong các bài toán nhận dạng mẫu đã được nghiên cứu, ứng dụng và thực thi phổ biến trên các máy tính đa mục đích. Tuy nhiên, theo tìm hiểu của tác giả thì các đề tài và công trình nghiên cứu phát triển kiến trúc chip mạng nơ-ron nhân tạo ánh xạ trên nền tảng phần cứng FPGA hoặc hướng đến công nghệ ASIC ở trong nước hiện đang còn khá mới mẻ. Với sự giới hạn về thời gian hoàn thành luận văn cũng như những hạn chế trong điều kiện tiến hành thực nghiệm nên luận văn này sẽ tập trung nghiên cứu các kiến trúc mạng nơ-ron lan truyền thẳng nhiều lớp, thực hiện kiến trúc trên nền tảng FPGA dựa vào các công cụ sẵn có, đánh giá các mạng nơ-ron được lựa chọn thực hiện cho bài toán nhận dạng chữ số viết tay dựa vào các tiêu chí đánh giá gồm tỉ lệ nhận dạng đúng, tài nguyên phần cứng sử dụng và hiệu năng, từ đó đánh giá khả năng ứng dụng của kiến trúc mạng nơ-ron đã khảo sát trong ứng dụng thực tế. 10 CHƯƠNG 2 - CƠ SỞ HIỆN THỰC HÓA MẠNG NƠ-RON NHÂN TẠO TRÊN FPGA 2.1. Mở đầu chương Chương này sẽ trình bày những vấn đề cơ bản về mạng nơ-ron nhân tạo trên FPGA trong bài toán nhận dạng mẫu, bao gồm hệ thống nhận dạng mẫu trên mạng nơron nhân tạo, mô hình tính toán trong 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 thuật toán lan truyền ngược BP (Back Propagation) với SGD (stochastic gradient descent), công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL cũng như giới thiệu thư viện nguồn mở FLoPoCo và các phép toán số thực dấu phẩy động trên FPGA. Phần cuối chương sẽ giới thiệu các phép toán cơ sở để thực hiện mạng nơ-ron nhân tạo trên FPGA. Đây là những cơ sở lý thuyết quan trọng làm tiền đề cho việc xây dựng kiến trúc mạng nơ-ron nhân tạo trong chương 3. 2.2. Hệ thống nhận dạng mẫu dựa trên mạng nơ-ron nhân tạo Sơ đồ khối chức năng của một hệ thống phần cứng nhận dạng mẫu trên mạng nơron nhân tạo ANN điển hình được hiển thị trong hình 2.1, bao gồm hai khối: khối trích chọn đặc trưng với kỹ thuật phân tích thành phần chính (PCA) và khối nhận dạng sử dụng mạng nơ-ron nhân tạo ANN. Mục tiêu của PCA là giảm số chiều của một tập vec-tơ sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất. PCA tìm ra tập các thành phần trực giao để tối thiểu hóa các lỗi trong dữ liệu được xây dựng lại. Khối trích chọn đặc trưng là không bắt buộc và thường được sử dụng khi tài nguyên máy tính và lưu trữ phần cứng của ANN có phần hạn chế, như được trình bày trong [6]. Dữ liệu đầu vào Trích chọn đặc trưng sử dụng PCA thành phần cơ bản Nhận dạng sử dụng mạng nơ-ron nhân tạo ANN Kết quả nhận dạng Hình 2.1. Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN [3] Trong những năm gần đây, cùng với sự phát triển nhanh chóng trong lĩnh vực chip FPGA, toàn bộ cấu trúc ANN có thể thực hiện được trên các mạch phần cứng, dẫn đến việc loại bỏ khối trích chọn đặc trưng. Sơ đồ khối chức năng hệ thống nhận dạng chỉ sử dụng mạng nơ-ron nhân tạo không có khối trích chọn đặc trưng như hình 2.2. 11 Dữ liệu đầu vào Nhận dạng sử dụng mạng nơ-ron nhân tạo ANN Kết quả nhận dạng Hình 2.2. Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN không có khối trích chọn đặc trưng 2.3. Mô hình tính toán trong mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp 2.3.1. Nơ-ron nhân tạo Tương tự như nơ-ron sinh học, nơ-ron nhân tạo là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơ-ron nhân tạo. Cấu trúc một nơ-ron nhân tạo được thể hiện trong hình 2.3. x1 x2 xN w1 w2  t f r wN b Hình 2.3. Cấu trúc của một nơ-ron nhân tạo Một nơ-ron nhân tạo gồm có các thành phần cơ bản sau:  Tập các đầu vào x1, x2,..., xN: Là các tín hiệu vào (input signals) của nơ-ron, các tín hiệu này thường được đưa vào dưới dạng một vec-tơ N chiều.  Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số liên kết – Synaptic weight). Thông thường các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng.  Bộ tổng (Summing function-): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó.  Ngưỡng (còn gọi là độ lệch - b): Ngưỡng này thường được đưa vào bộ tổng. 12  Hàm truyền (Transfer function - f): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơ-ron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi nơ-ron được giới hạn trong đoạn [0,1] hoặc [-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng. Một số hàm truyền thường sử dụng trong các mô hình mạng nơ-ron được đưa ra trong Bảng 2.1.  Đầu ra r: Là tín hiệu đầu ra của một nơ-ron, với mỗi nơ-ron sẽ có một đầu ra. Xét về mặt toán học, cấu trúc của một nơ-ron được mô tả bằng cặp biểu thức sau: 𝑡 = ∑𝑁 𝑗=1 𝑤𝑗 ∗ 𝑥𝑗 + 𝑏 (2.1) r = 𝑓 (t ) (2.2) Trong đó: - x1, x2, ..., xN: là các tín hiệu vào; - w1, w2 ,..., wN là các trọng số liên kết của nơ-ron; - b là ngưỡng; f là hàm truyền; r là tín hiệu đầu ra của nơ-ron; Như vậy tương tự như nơ-ron sinh học, nơ-ron nhân tạo cũng nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền) và cho một tín hiệu đầu ra (là kết quả của hàm truyền). 2.3.2. Mô hình tính toán mạng nơ-ron nhân tạo [10] 2.3.2.1. Mô hình tính toán mạng nơ-ron một lớp w1,1 ∑ x1 t1 f r1 t2 f r2 tM f rM b1 x2 1 ∑ x3 b2 1 xN wM,N ∑ bM 1 Hình 2.4. Mạng nơ-ron một lớp gồm N đầu vào và M nơ-ron [10]
- Xem thêm -

Tài liệu liên quan