Bài viết đề xuất một kiến trúc mạng nơ-ron nhân tạo lan truyền thẳng 2 lớp ứng dụng trong bài toán nhận dạng chữ số viết tay thực thi trên phần cứng cấu hình lại FPGA (Field Programmable Gate Array). Kiến trúc mạng nơ-ron đề xuất được tổng hợp và thử nghiệm trên thiết bị FPGA Virtex-5 XC5VLX110T của Xilinx. Kết quả thử nghiệm với tập dữ liệu chữ số viết tay MNIST cho tỉ lệ nhận dạng đúng là 90.88%. Mạng nơron được thiết kế chiếm 41% tài nguyên phần cứng, đạt tần số hoạt động tối đa là 205 MHz. Mời các bạn cùng tham khảo!
Trang 1Về một kiến trúc mạng nơ-ron nhân tạo trên FPGA
ứng dụng trong nhận dạng chữ số viết tay
Nguyễn Thị Kim Anh 1,2, Nguyễn Trường Thọ1, Huỳnh Việt Thắng1
1 Trường Đại học Bách khoa – Đại học Đà Nẵng, 2 Trường Đại học Nông Lâm – Đại học Huế
Emails: nguyenthikimanh@huaf.edu.vn, ntt0102@gmail.com, thanghv@dut.udn.vn
Abstract - Trong bài báo này, chúng tôi đề xuất một kiến trúc mạng
nơ-ron nhân tạo lan truyền thẳng 2 lớp ứng dụng trong bài toán
nhận dạng chữ số viết tay thực thi trên phần cứng cấu hình lại
FPGA (Field Programmable Gate Array) Kiến trúc mạng nơ-ron
đề xuất được tổng hợp và thử nghiệm trên thiết bị FPGA Virtex-5
XC5VLX110T của Xilinx Kết quả thử nghiệm với tập dữ liệu chữ
số viết tay MNIST cho tỉ lệ nhận dạng đúng là 90.88% Mạng
nơ-ron được thiết kế chiếm 41% tài nguyên phần cứng, đạt tần số hoạt
động tối đa là 205 MHz Kết quả thử nghiệm khi kết nối mạng
nơ-ron vào hệ thống nhúng sử dụng vi xử lý mềm 32-bit MicroBlaze
hoạt động tại tần số 100 MHz với bus PLB cho thấy tốc độ nhận
dạng cho mỗi mẫu dữ liệu vào là 799 chu kỳ đồng hồ/mẫu, tương
ứng với thời gian nhận dạng 7.99 Ps/mẫu
Keywords - Neural Network; MNIST; FPGA; floating-point;
high performance computing; MicroBlaze;
I. ĐẶT VẤN ĐỀ
Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN)
có nhiều ứng dụng trong xử lý tín hiệu, phân tích ảnh, nhận dạng
mẫu, trong các hệ thống chuẩn đoán y khoa và dự đoán chứng
khoán ANN được lấy cảm hứng từ mạng nơ-ron sinh học bản
chất là các hệ thống xử lý thông tin song song và phân tán Kiến
trúc 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ắt khe về tốc độ trong
các ứng dụng thời gian thực và/hoặc tính toán hiệu năng cao
(High Performance Computing – HPC) kiến trúc ANN cần
được thực thi trên phần cứng song song
Trong những năm gần đây, các hệ thống nhúng và ứng dụng
nhúng dựa trên nền tảng công nghệ FPGA (Field
Programmable Gate Array) đang phát triển mạnh mẽ và được
ứng dụng rộng rãi trong thực tế cũng như trong các nghiên cứu
Với khả năng cho phép cấu hình lại, cùng với mật độ cổng logic
cao, các chip FPGA cho phép tạo ra nhiều phiên bản thiết kế
của thiết bị mong muốn trong các ứng dụng khác nhau, và do
vậy rất phù hợp cho những bài toán đòi hỏi khối lượng tính toán
lớn FPGA cung cấp tốc độ có thể so sánh với các hệ thống phần
cứng cố định và chuyên dụng đối với việc tăng tốc các thuật
toán song song Trong khi đó, với việc thực thi trên phần mềm
thì có thể duy trì tính linh hoạt cho các thiết bị cấu hình lại chỉ
trong một vài ứng dụng FPGA rất khả thi đối với các ứng dụng
thiết kế tính toán cụ thể Những thay đổi trong thiết kế với
FPGA có thể được thực hiện lại trong một vài giờ và do đó tiết
kiệm đáng kể chi phí và thời gian thực hiện thiết kế
Trong bài báo này, chúng tôi quan tâm đến việc xây dựng
một kiến trúc ANN hướng đến việc thực thi thiết kế ANN trên
FPGA Chúng tôi bắt đầu với một kiến trúc ANN lan truyền
thẳng nhiều lớp với ứng dụng trong nhận dạng mẫu Mục tiêu của bài báo này là nghiên cứu thiết kế kiến trúc ANN lan truyền thẳng nhiều lớp trên FPGA, đồng thời ứng dụng kiến trúc mạng
đã thiết kế trong bài toán nhận dạng chữ số viết tay nhằm kiểm tra tính đúng đắn của thiết kế, xem xét khả năng thực thi và ứng dụng của kiến trúc mạng nơ-ron trên FPGA
Các công trình nghiên cứu liên quan có thể kể ra như công trình của Hoffman [1], Savic [2], Nichols [3], hay của nhóm tác giả [4] Nghiên cứu được thực hiện trong bài báo này là bước phát triển tiếp theo của kết quả đã đạt được ở công trình [4] Đóng góp khoa học của bài báo này là việc thiết kế một kiến trúc mạng nơ-ron nhân tạo trên FPGA; kiến trúc mạng nơ-ron
đề xuất được thực thi và thử nghiệm trên board FPGA Virtex-5 XUPV5-LX110T của Xilinx và ứng dụng cho nhận dạng chữ
số viết tay với tập dữ liệu MNIST
Phần còn lại của bài báo được sắp xếp theo trình tự sau đây Phần II giới thiệu mô hình hệ thống nhận dạng Phần III trình bày chi tiết cấu trúc, các bước thiết kế và thực hiện một kiến trúc ANN lan truyền thẳng 2 lớp trên FPGA Phần IV trình bày các kết quả đánh giá kiến trúc vừa được thiết kế Cuối cùng các kết luận và các hướng nghiên cứu tiếp theo được trình bày ở Phần V
II. MÔ HÌNH HỆ THỐNG NHẬN DẠNG
A Sơ đồ khối hệ thống
Sơ đồ khối hệ thống nhận dạng chữ số viết tay được trình
bày trong Hình 1 Hệ thống bao gồm hai khối chính đó là: khối
giảm số chiều cho ảnh đầu vào sử dụng phương pháp trích chọn
đặc trưng PCA (Principal Component Analysis – PCA) [5] và
khối thứ hai là mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp dùng để nhận dạng
Chúng tôi sử dụng tập cơ sở dữ liệu chữ số viết tay MNIST [6] để huấn luyện và kiểm tra mạng nơ-ron Tập cơ sở dữ liệu này gồm 60,000 mẫu dùng để huấn luyện và 10,000 mẫu dùng
để kiểm tra Có 10 chữ số khác nhau từ 0 đến 9 trong tập cơ sở
dữ liệu này 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
Hình 1 Sơ đồ khối hệ thống nhận dạng
ISBN: 978-604-67-0635-9
Trang 2trưng Vì số chiều của ảnh gốc là khá lớn nên cần phải giảm số
chiều trước khi huấn luyện mạng Chúng tôi sử dụng PCA để
trích chọn thành phần chính từ dữ liệu gốc và chỉ sử dụng một
số thành phần chính đầu tiên cho việc huấn luyện và kiểm tra
mạng nơ-ron
B Khối trích chọn đặc trưng PCA
PCA là một kỹ thuật phổ biến để trích chọn đặc trưng dữ
liệu, mục đích nhằm cách giảm số chiều hoặc kích thước tập dữ
liệu mà không mất mát thông tin nhiều Để thực hiện kỹ thuật
PCA cho tập dữ liệu X = (x1, x2, , xM) có M mẫu N chiều, ta
cần thực hiện các bước sau:
x Tính giá trị trung bình của X:
xtb ൌேଵσே
ୀଵxi (1) x Tính sai số từng phần tử của X so với giá trị trung bình:
ɔi = xi - xtb (2) x Tìm ma trận hiệp phương sai:
Cൌெଵσெ ߮Ǥ ்߮
ୀଵ = Ȱ.ȰT (3)
x Tìm trị riêng của C làሺߣଵǡ ߣଶǡ ǥ ǡ ߣெሻ tương ứng với N
vec-tơ riêng ݑଵǡ ݑଶǡ ǥ ǡ ݑே
x Sắp xếp các trị riêng theo giá trị thứ tự từ cao đến thấp, như
vậy các vec-tơ riêng sẽ được sắp xếp theo thứ tự từ cao đến
thấp của đặc trưng
x Trích chọn đặc trưng có ý nghĩa nhất
Việc lựa chọn số lượng đầu vào để đáp ứng những yêu cầu
về tỉ lệ nhận dạng đúng và khả năng thực thi được kiến trúc
ANN trên phần cứng FPGA với lượng tài nguyên hữu hạn đã
được khảo sát chi tiết trong [4] Trong bài báo này, từ tập cơ sở
dữ liệu MNIST, chúng tôi đã trích chọn đặc trưng dùng kỹ thuật
PCA và đã lựa chọn sử dụng 20 thành phần chính đầu tiên để
đưa vào đầu vào của ANN thực hiện huấn luyện và nhận dạng
Số lượng đầu vào này vừa đáp ứng được những yêu cầu về tỉ lệ
nhận dạng cũng như khả năng thực thi của kiến trúc ANN trên
FPGA Virtex-5 [4]
C Huấn luyện mạng nơ-ron nhân tạo
Việc huấn luyện mạng nơ-ron nhân tạo từ tập dữ liệu MNIST được tiến hành theo phương pháp học có giám sát, sử dụng mô hình mạng nơ-ron truyền thẳng gồm hai lớp với thuật toán lan truyền ngược sai lệch với các thông số sau: 20 đầu vào,
12 nơ-ron lớp ẩn và 10 rơ-ron lớp ra [4] Quá trình huấn luyện được thực hiện bằng công cụ Neural Network Design Toolbox
của Matlab [7] Hình 2 là sơ đồ thể hiện kiến trúc của mạng
nơ-ron nhận dạng chữ số viết tay cần thiết kế phần cứng Theo như
Hình 2, đầu vào của mỗi lớp nơ-ron sẽ được nhân với trọng số
W, sau đó cộng với ngưỡng (bias) b, tiếp đó đi qua hàm kích hoạt f (sẽ được trình bày trong mục sau)
Sau khi huấn luyện, chúng tôi đã thu được các ma trận trọng
số và ngưỡng tương ứng với kích thước của hai lớp như sau:
W1’ (12x20), W2’ (10x12), b1 (12), b2 (10) Để dễ dàng hơn cho việc thiết kế trên phần cứng, chúng tôi xem giá trị ngưỡng như
là một phần của bộ trọng số của nơ-ron (giá trị ngưỡng là trọng
số tương ứng với tín hiệu vào là “1”) và biến đổi trọng số của lớp ẩn và lớp ra tương ứng với kích thước như sau: W1 (12x21),
W2 (10x13), đồng thời vec-tơ vào của mỗi lớp cũng được tăng thêm một phần tử chính là hằng số “1” Các ma trận trọng số này sẽ được sử dụng để thiết kế kiến trúc lõi IP ANN trên FPGA
sẽ được trình bày ở những phần tiếp sau
D Kiểu dữ liệu
Chúng tôi sử dụng định dạng số dấu phẩy động trong tất cả các tính toán của kiến trúc ANN được thiết kế Tiêu chuẩn IEEE-754 (2008) [8] đề ra các quy định về định dạng của số thực dấu phẩy động thống nhất chung giữa các nhà thiết kế
Bảng 1 trình bày các định dạng dấu phẩy động bán chính xác
(half-precision), chính xác đơn (single-precision) và chính xác kép (double-precision) với tổng số bit sử dụng lần lượt là 16, 32
và 64 bit
Bảng 1 Đặc điểm 3 định dạng số thực dấu phẩy động thông
dụng được ứng dụng nhiều trong thực tế theo chuẩn IEEE-754
Định dạng Phần dấu Phần mũ Phần định trị
Chính xác đơn 1 bit 8 bit 23 bit Chính xác kép 1 bit 11 bit 52 bit Định dạng số dấu phẩy động bán chính xác được biểu diễn bằng một chuỗi nhị phân có kích thước 16 bit, bằng một nửa kích thước của định dạng chính xác đơn Vì vùng biểu diễn giá trị và độ chính xác nhỏ hơn cho nên định dạng dấu phẩy động bán chính xác không được xem là lý tưởng khi thực hiện các tính toán Tuy nhiên, định dạng bán chính xác ít chiếm dụng tài nguyên phần cứng hơn các định dạng còn lại nên đối với những ứng dụng, tính toán không yêu cầu quá khắt khe về vùng biểu diễn giá trị, độ chính xác mà ngược lại cần tốc độ tính toán nhanh và không tốn quá nhiều tài nguyên thì định dạng bán chính xác này sẽ là một lựa chọn thích hợp [4] Trong bài báo này, chúng tôi sử dụng định dạng dấu phẩy động bán chính xác Trong nghiên cứu này, các tính toán với định dạng số thực dấu phẩy động bán chính xác trong kiến trúc ANN đề xuất trên FPGA sẽ được thực hiện bằng ngôn ngữ mô tả phần cứng
Hình 2 Sơ đồ kiến trúc của mạng nơ-ron nhận dạng chữ số viết tay
Hình 3 Định dạng số thực dấu phẩy động bán chính xác
(half-precision floating-point format) theo FloPoCo
Trang 3
VHDL dựa vào thư viện mã nguồn mở FloPoCo [9] Lưu ý rằng,
định dạng số thực dấu phẩy động bán chính xác (16 bit theo
chuẩn IEEE-754) khi thực thi bằng thư viện FloPoCo sẽ được
thêm vào 2 bit để phân biệt các giá trị đặc biệt [9] như được
trình bày trong Hình 3 nên độ rộng các bus dữ liệu là 18 bit,
trong đó chia làm 4 trường cụ thể như sau:
x 2-bit trường ngoại lệ: 00 cho số 0, 01 cho số bình thường,
10 cho số vô cùng, 11 cho số NaN (Not a Number);
x 1-bit dấu s (sign): 0 cho số dương, 1 cho số âm;
x 5-bit trường mũ e (exponent);
x 10-bit trường phân số f (fraction)
III. THIẾT KẾ KIẾN TRÚC MẠNG NƠ-RON NHÂN TẠO
Trong phần này, chúng tôi trình bày việc thiết kế kiến trúc
mạng nơ-ron nhân tạo (ANN) ứng dụng cho bài toán nhận dạng
chữ số viết tay trên FPGA Để thuận tiện trong trình bày, chúng
tôi gọi kiến trúc ANN này là lõi IP ANN (IP – Intellectual
Property)
A Sơ đồ khối chung
Như đề cập ở phần trước, chúng tôi cần thiết kế lõi IP ANN
gồm 2 lớp: lớp ẩn và lớp ra Sơ đồ khối ở Hình 4 trình bày ý
tưởng để thiết kế lõi IP ANN thực hiện mạng nơ-ron nhân tạo
Kiến trúc tổng quát của hai lớp hoàn toàn giống nhau, tuy nhiên,
các lớp khác nhau về số nơ-ron và số các đầu vào một nơ-ron,
cũng như bộ trọng số tối ưu trong mỗi lớp Các bộ trọng số tối
ưu W1 và W2 là kết quả của quá trình huấn luyện mạng ở mục
trước là các hằng số nên sẽ được lưu cố định trong ROM
Cũng như trong phần huấn luyện trên Matlab, trong phần
thiết kế lõi IP ANN cho FPGA chúng tôi cũng chọn số đầu vào
là 20, số lượng nơ-ron lớp ẩn là 12 và lớp ra là 10 Vec-tơ đầu
vào x được nhân với ma trận trọng số W1, sau đó đi qua hàm
kích hoạt f sẽ cho 12 đầu ra của lớp ẩn Tiếp theo, 12 giá trị đầu
ra của lớp ẩn này sẽ trở thành đầu vào cho lớp ra Thực hiện
tương tự đối với lớp ra khi nhân đầu vào với ma trận trọng số
W2 và cũng qua hàm kích hoạt f để xác định 10 đầu ra của lõi
IP ANN
B Kiến trúc của một nơ-ron
Giả sử ma trận trọng số W có kích thước MxN và vec-tơ đầu
vào x = [x1, x2, , xN] Để tính nơ-ron thứ i, ta sử dụng các
công thức sau:
ݐൌ σேୀଵݓǡǤ ݔ ሺͶሻ
ݎൌ ݂ሺݐሻ ൌଵାଵష (5)
Trong đó, ti là tổng trọng của nơ-ron thứ i; wi,j là một trọng
số ứng với đầu vào xj; ri là nơ-ron thứ i được xác định bằng hàm
kích hoạt logsigmoid của ti Triển khai công thức (4) thành dạng
ma trận, ta được:
ۏ ێ ێ ێ ێ
ۍݓݓଵǡଵଶǡଵ ݓݓଵǡଶଶǡଶ ǥ ݓǥ ݓଵǡଶǡ ǥǥ ݓݓଵǡேଶǡே
ڭ
ݓǡଵ ݓǡଶ ڭ
ڭ
ǥ ݓǡ ǥ ڭ
ڭ
ݓǡே
ڭ
ݓெǡଵ ݓெǡଶ ǥ ݓெǡ ǥ ݓெǡேےۑ
ۑ ۑ ۑ
ې Ǥ ۏ ێ ێ ێ ێ
ۍݔݔଵଶ ڭ
ݔ ڭ
ݔேےۑ ۑ ۑ ۑ
ې
= ۏ ێ ێ ێ ێ
ۍݐݐଵଶ ڭ
ݐ ڭ
ݐெےۑ ۑ ۑ ۑ
ې (6)
Ta dễ dàng nhận thấy: ti chính là tích vô hướng
(dot-product) của vec-tơ wi – vec-tơ hàng thứ i của ma trận trọng số
W – và vec-tơ đầu vào x Vì vậy, chúng tôi thiết kế khối nhân
cộng tích lũy (Multiply Accumulate - MAC) để thực hiện nhân
vô hướng hai vec-tơ, sơ đồ khối MAC được xây dựng như Hình
5 Sơ đồ khối MAC bao gồm khối nhân, khối cộng và thanh ghi
sử dụng DFF để lưu giá trị 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à wi 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 Hàm kích hoạt f trong công thức (5) được thiết kế theo
sơ đồ khối ở Hình 6, 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 theo thứ tự lần lượt
Như vậy, để thực hiện nơ-ron thứ i chúng tôi ghép nối tiếp
hai khối nhân cộng tích lũy và khối hàm kích hoạt với nhau cùng với một bộ nhớ ROM có N ô nhớ để lưu trữ giá trị trọng
số hàng thứ i Sơ đồ khối tính toán nơ-ron (Neural) thứ i được
trình bày như trong Hình 7
Hình 5 Sơ đồ khối nhân cộng tích lũy MAC
Hình 6 Sơ đồ khối hàm kích hoạt của nơ-ron thứ i
Hình 7 Sơ đồ khối kiến trúc của nơ-ron thứ i Hình 4 Sơ đồ khối chung lõi IP ANN
Trang 4
C Kiến trúc lõi IP ANN
Hình 8 trình bày sơ đồ khối lõi IP ANN gồm 2 lớp được thiết
kế cho bài toán nhận dạng chữ viết tay Lớp ẩn gồm 12 nơ-ron
nên chúng tôi ghép song song 12 khối Neural Tương tự, đối
với lớp ra chúng tôi ghép song song 10 khối Neural Đầu ra của
lớp ẩn là song song, tuy nhiên đầu vào của lớp ra là nối tiếp Do
đó, chúng tôi thiết kế khối chuyển đổi song song sang nối tiếp
P2S Các đầu ra của lõi IP ANN lần lượt là: r1, r2, , r10
IV. KẾT QUẢ
A Kết quả thực thi lõi IP ANN trên phần cứng FPGA
Chúng tôi sử dụng bộ công cụ ISE 14.1 và board mạch
FPGA Virtex-5 XC5VLX110T của Xilinx [10] để thực thi thiết
kế lõi IP mạng nơ-ron nhân tạo ANN Lõi IP ANN cũng được
kết nối vào hệ thống nhúng sử dụng vi xử lý 32-bit MicroBlaze
hoạt động tại tần số 100 MHz và sử dụng hệ thống bus PLB
(Processor Local Bus) của Xilinx để kiểm tra tốc độ và tỉ lệ
nhận dạng Các kết quả thực thi lõi IP ANN trên phần cứng
FPGA như sau:
x Tần số hoạt động tối đa: f max = 205 (MHz);
x Tài nguyên phần cứng sử dụng được trình bày trong Bảng
2 cho thấy lõi IP ANN được thiết kế và thực thi chiếm
khoảng 41% lượng tài nguyên của board Virtex-5
XC5VLX110T và hoàn toàn phù hợp cho các ứng dụng
nhận dạng được nhúng trên FPGA;
x Tốc độ nhận dạng: tốc độ nhận dạng cho một mẫu dữ liệu
vào của lõi IP ANN là 799 chu kỳ đồng hồ / mẫu, tương
ứng với thời gian nhận dạng là 7.99 Ps/mẫu khi lõi IP ANN
được thử nghiệm trong hệ thống nhúng sử dụng
MicroBlaze hoạt động tại tần số đồng hồ 100 MHz
Bảng 2: Ước lượng tài nguyên phần cứng của lõi IP ANN trên board
mạch Virtex-5 XC5VLX110T (speed grade -3)
Logic sử dụng Tổng số Đã dùng Chiếm dụng
B Đánh giá độ chính xác và kiểm tra tỉ lệ nhận dạng
Để đánh giá tỉ lệ nhận dạng của lõi IP ANN chúng tôi sử
dụng tập dữ liệu kiểm tra từ MNIST gồm 10,000 mẫu dữ liệu
Quá trình kiểm tra được thực hiện với lõi IP ANN chạy trên board FPGA Virtex-5 XC5VLX110T và trên Matlab để đối sánh Tỉ lệ nhận dạng đúng của lõi IP ANN trên FPGA và
chương trình trên Matlab lần lượt là 90.88 % và 91.33 % Lõi
IP ANN cho tỉ lệ nhận dạng đúng xấp xỉ gần bằng tỉ lệ nhận dạng khi thực hiện trên Matlab Sự sai khác này là hoàn toàn chấp nhận được vì các tính toán trên Matlab dùng định dạng số với độ chính xác kép 64-bit trong khi các tính toán của IP ANN trên FPGA dùng định dạng số bán chính xác với chỉ với 16-bit
Tỉ lệ nhận dạng đúng đối với tập dữ liệu chữ số viết tay MNIST khi thực thi trên máy tính (bằng các phương pháp khác nhau) trong khoảng 95-99 % [6], khá cao so với tỉ lệ nhận dạng đạt được trên phần cứng FPGA trình bày trong nghiên cứu của chúng tôi Tuy nhiên, lưu ý rằng các thực nghiệm đã trình bày
ở [6] có kích thước mạng và số lượng đầu vào là rất lớn, chẳng hạn tương ứng với tỉ lệ nhận dạng đúng là 95.3 % cần sử dụng một kiến trúc mạng nơ-ron 2 lớp với 300 nơ-ron Trong khi đó, thiết kế lõi IP ANN của chúng tôi chỉ có tổng cộng 22 nơ-ron (chỉ bằng 7.3% so với thiết kế ở [6]) và đạt tỉ lệ nhận dạng khá
tốt (90.88%) Rõ ràng, sự suy giảm về độ chính xác nhằm đạt
được một kiến trúc mạng nơ-ron tinh giản để có thể thực thi được trên phần cứng FPGA với số lượng tài nguyên hạn hẹp
V. KẾT LUẬN
Trong bài báo này, chúng tôi đã trình bày việc nghiên cứu, thiết kế và thực thi một kiến trúc mạng nơ-ron nhân tạo 2 lớp (lõi IP ANN) trên FPGA và ứng dụng trong bài toán nhận dạng chữ số viết tay Lõi IP ANN có thể dễ dàng mở rộng theo hướng thay đổi số lượng nơ-ron trong mỗi lớp và có thể ứng dụng để thực hiện nhận dạng trên nhiều tập dữ liệu khác tùy theo mục đích của người sử dụng Việc xây dựng mạng nơ-ron trên FPGA
sẽ là cơ sở cho việc hiện thực hóa các giải thuật huấn luyện cho 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 Các hướng nghiên cứu trong tương lai bao gồm: tối ưu hóa kiến trúc lõi IP ANN đã thiết kế theo hướng tăng tốc độ nhận dạng, ứng dụng lõi IP ANN trong nhận dạng mặt người hay nhận dạng dấu vân tay, cũng như nghiên cứu thực thi kiến trúc ANN theo hướng ASIC
TÀI LIỆU THAM KHẢO [1] M Hoffman, P Bauer, B Hemrnelman, and A Hasan, "Hardware synthesis of artificial neural networks using field programmable gate
arrays and fixed-point numbers," in Region 5 Conference, 2006 IEEE
[2] A W Savich, M Moussa, and S Areibi, "The impact of arithmetic
representation on implementing MLP-BP on FPGAs: A study," IEEE
Transactionson on Neural Networks, Jan 2007
[3] K Nichols, M Moussa, and S Areibi, "Feasibility of Floating-Point
arithmetic in FPGA based artificial neural networks," in CAINE, 2002
[4] Thang Viet Huynh, "Design space exploration for a single-FPGA
handwritten digit recognition system," in 2014 IEEE-ICCE, 2014
[5] Lakhina, S ; Joseph, S ; Verma, B., " Feature Reduction using Principal Component Analysis for Effective Anomaly–Based Intrusion Detection
on NSL-KDD ", IJEST, 2010
[6] The MNIST database of handwritten digits, http://yann.lecun.com/exdb/mnist/
[7] Neural Network Toolbox™ 7 User’s Guide [8] IEEE Standard for Floating-Point Arithmetic," IEEE Std 754-2008 , vol., no., pp.1,70, Aug 29 2008
[9] FloPoCo project, http://flopoco.gforge.inria.fr/
[10] Xilinx training, http://www.xilinx.com/training/fpga-tutorials.htm
Hình 8 Sơ đồ khối lõi IP ANN 2 lớp ứng dụng trong nhận dạng
chữ số viết tay: lớp ẩn gồm 12 nơ-ron, lớp ra gồm 10 nơ-ron