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, khi đó việc triển khai
Trang 1CÓ 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
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ
Trang 2Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Kỹ thuật điện tử họp tại Trường Đại học Bách
khoa vào ngày 15 tháng 07 năm 201
Có thể tìm hiểu luận văn tại:
Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học
Bách khoa
Thư viện Khoa Điện tử-Viễn thông, Trường Đại học Bách khoa – ĐHĐN
Trang 3MỞ ĐẦU
1 Tính cấp thiết của đề tài
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ệ 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 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, 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
Trang 4- 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, 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ó
Trang 5nhậ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
Chương 2 - Cơ sở hiện thực hóa mạng nơ-ron nhân tạo trên FPGA
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 4 - Thực hiện và đánh giá
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
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)
Trang 6trong đó: 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; x k+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
1.3 Thực hiện mạng nơ-ron nhân tạo trên phần cứng
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 off-line 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 (fixed-point 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
Trang 7dữ 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
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ế
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
2.2 Hệ thống nhận dạng mẫu dựa trên mạng nơ-ron nhân tạo
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
Trang 8hiệ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 ANN không có khối trích chọn đặc trưng như hình 2.2
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.Xét
Trang 9về 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:
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
Vector đầu ra của mạng nơ-ron ở dạng ma trận:
2.3.2.2 Mạng nơ-ron nhiều lớp
2.3.3 Hàm truyền
2.4 Huấn luyện mạng nơ-ron nhân tạo nhiều lớp [12, 16]
Có nhiều thuật toán dùng để huấn luyện mạng, trong luận văn
tác giả nghiên cứu mạng lan truyền thẳng nhiều lớp để nhận dạng
nên thuật toán phù hợp để huấn luyện là thuật toán lan truyền ngược
BP (Back Propagation) với SGD (stochastic gradient descent)
2.4.1 Mô hình một nơ-ron
Trang 102.5.2.1 Giới thiệu về ngôn ngữ VHDL
2.5.2.2 Ưu điểm của ngôn ngữ VHDL
2.5.2.3 Mô tả thiết kế VHDL
2.6 Thực hiện các phép toán số thực dấu phẩy động trên FPGA
Kết quả nghiên cứu trong [7] cho thấy việc thực thi mạng rôn nhân tạo có bộ trọng số với định dạng số thực dấu chấm phẩy động bán chính xác 16-bit đảm bảo cho tỷ lệ nhận dạng và hiệu quả trong việc sử dụng tài nguyên FPGA
nơ-2.6.1 Thư viện mã nguồn mở FloPoCo [13]
2.6.2 Các phép toán số thực dấu phẩy động trên FPGA
Trang 112.7.1 Bộ nhân cộng tích lũy MAC
Sơ đồ khối MAC bao gồm khối nhân, khối cộng và thanh ghi DFF để lưu ngõ ra hiện tại của phép toán cộng, ngõ ra của khối nhân
được xác định bằng phép nhân của hai vec-tơ x và y sẽ đưa tới khối
cộng để thực hiện phép cộng với giá trị đưa ngược trở về từ DFF, hay nói cách khác chính là cộng tích lũy Tốc độ (latency) của phép nhân cộng tích lũy này là 12 chu kỳ máy
2.7.2 Bộ thực hiện hàm truyền Logsigmoid
Trang 12Hàm truyền Logsigmoid được thiết kế theo sơ đồ khối ở hình 2.19, bao gồm ba khối: lấy mũ cơ số e, cộng và lấy nghịch đảo, được thực hiện tuần tự Đầu vào x và đầu ra r là các số thực dấu phẩy động
18 bit theo định dạng số thực dấu phẩy động của thư viện FloPoCo Tốc độ thực hiện của bộ hàm truyền này là 29 chu kỳ máy
3.2 Kiến trúc của một nơ-ron [6]
Sơ đồ khối nơ-ron tính toán được trình bày như trong hình 3.1, gồm các khối: khối bộ nhớ ROM để lưu trữ bộ trọng số và ngưỡng, khối nhân cộng tích lũy MAC và khối thực hiện hàm truyền Logsigmoid đã được giới thiệu trong chương 2 được nối tiếp với nhau
Trang 13Một nơ-ron tính toán sẽ thực hiện tính toán công thức (2.5),
cụ thể sẽ sử dụng bộ nhân cộng tích lũy MAC để nhân 2 vector trọng
số w (được lưu trữ trong bộ nhớ ROM) và vector đầu vào x, kết quả
của bộ MAC được đưa vào bộ thực hiện hàm truyền Logsigmoid và cho kết quả đầu ra r
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
Sơ đồ khối chức năng của 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) để thực hiện tính toán cho cấu hình mạng nơ-ron 3 lớp N-M1-M2-M3 (Hình 2.6) với R
là số đầu vào, số nơ-ron của 3 lớp lần lượt là M1, M2, M3 được trình
Trang 14hình ANN ba lớp R-M1-M2-M3 (Hình 2.6) Khác với kiến trúc
MHL-ANN, kiến trúc SHL-ANN chỉ có duy nhất một lớp phần cứng vật lý bao gồm M nơ-ron tính toán (với M là giá trị lớn nhất trong các giá
trị M1, M2, M3) để thực hiện tính toán chuyển tiếp cho các nơ-ron ở các lớp ẩn và các nơ-ron ở lớp ngõ ra trong ANN Kiến trúc SHL-ANN bao gồm 2 thành phần chính: khối nơ-ron tính toán Hardware Layer và khối điều khiển Control Unit
3.4.1 Khối nơ-ron tính toán Hardware_Layer
Khối nơ-ron tính toán Hardware_Layer thực hiện việc tính toán cho từng lớp nơ-ron theo tuần tự Ở lần tính toán đầu tiên, tín hiệu ngõ vào của mạng nơ-ron được chọn làm tín hiệu ngõ vào của Hardware_Layer Sau đó, tín hiệu ngõ ra của Hardware_Layer được
Trang 15hồi tiếp về làm tín hiệu ngõ vào Hardware_Layer để thực hiện lần tính toán tiếp theo Theo tuần tự như vậy, khối nơ-ron tính toán sẽ
thực hiện các phép tính toán cho toàn mạng nơ-ron
3.4.2 Khối điều khiển Control Unit
Khối điều khiển Control Unit được sử dụng để kiểm soát tính toán chuyển tiếp của các lớp nơ-ron logic, như chọn đúng vector trọng số và vector đầu vào thích hợp cho lớp phần cứng vật lý Sơ đồ khối mức chuyển thanh ghi RTL được thể hiện trong hình 3.8
Khối điều khiển hoạt động như một máy trạng thái hữu hạn FSM (Finite State Machine), sơ đồ khối của FSM được mô tả trong hình 3.9
3.4.3 Kết quả mô phỏng
Sơ đồ khối mức chuyển thanh ghi RTL của kiến trúc SHL_ANN được thể hiện trong hình 3.10, các chân vào/ra của kiến trúc được mô
tả trong bảng 3.3
Trang 16Mô phỏng dạng sóng của mạng nơ-ron có kiến trúc 40-10 cho ứng dụng nhận dạng chữ số viết tay, đầu vào là mẫu thử thứ 1 trong cơ sở dữ liệu MNIST Thời gian thực hiện tính toán một mẫu là 11371 chu kỳ máy Nơ-ron thứ 8 của lớp ngõ ra có giá trị lớn
Trang 17784-40-nhất = 0.999 (tương ứng chuỗi nhị phân 010011101111111110), cho kết quả nhận dạng là chữ số “7” đúng với cơ sở dữ liệu MNIST
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
Để thực thi mạng nơ-ron lan truyền thẳng nhiều lớp có cấu trúc tùy biến (về số lớp ẩn, số lượng nơ-ron trong các lớp) trên FPGA sử dụng kiến trúc SHL_ANN, luận văn sử dụng công cụ AutogenDNN để tạo tự động file mã mô tả phần cứng VHDL
Công cụ AutogenDNN là phần mềm phát triển trên MatLab bao gồm các file mẫu (template) VHDL của các component cấu thành nên kiến trúc SHL_ANN:
Nơ-ron tính toán
Khối bộ nhớ lưu trọng số
Khối nơ-ron tính toán
Khối điều khiển
Khi thực thi, AutogenDNN sẽ đọc ma trận lưu bộ trọng số và ngưỡng của một mạng nơ-ron có cấu trúc tùy biến (thu được từ huấn luyện mạng nơ-ron hoặc tạo ngẫu nhiên) kết hợp với các template để tạo thành 1 tập tin mã VHDL mô tả phần cứng của kiến trúc SHL_ANN
3.6 Kết luận chương
Tóm lại chương này giới thiệu và phân tích hoạt động 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 SHL-ANN (Single Hardware-Layer ANN) để thực thi mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp tùy biến được (thay đổi số lớp trong mạng hay số nơ-ron trong các lớp) trên FPGA Phần cuối chương giới thiệu công cụ AutogenDNN để tạo tự động file mã mô tả phần
Trang 18cứng cấu trúc SHL_ANN để thực thi mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp tùy biến được trên FPGA
CHƯƠNG 4 - THỰC HIỆN VÀ ĐÁNH GIÁ
SHL-4.2.1 Huấn luyện các mạng nơ-ron trên MatLab
Luận văn thực hiện bài toán nhận dạng chữ số viết tay với cơ
sở dữ liệu MNIST [14] để đánh giá hiệu suất hệ thống Cơ sở dữ liệu MNIST của các chữ số viết tay gồm có tập 60000 mẫu huấn luyện và
10000 mẫu kiểm tra Có 10 chữ số khác nhau từ 0 đến 9 trong tập cơ
sở dữ liệu MNIST Mỗi số là một ảnh đa cấp xám được chuẩn hóa với kích thước là 28x28 hay có tổng cộng là 784 điểm ảnh đặc trưng Luận văn sử dụng 784 pixel hình ảnh làm đầu vào trực tiếp đưa vào mạng nơ-ron, do đó cho phép loại bỏ khối trích chọn đặc trưng (PCA) Kết quả là, mạng nơ-ron thiết kế có 784 đầu vào trong lớp đầu vào và 10 nơ-ron trong lớp đầu ra Số lớp ẩn và số nơ-ron trong các lớp ẩn sẽ khác nhau để nghiên cứu việc sử dụng tài nguyên và hiệu năng hệ thống