Hiện nay, hầu hết các nghiên cứu và kiểm thử mạng nơ-ron được thực hiện sử
dụng các mô phỏng phần mềm. Triển khai phần mềm cho phép phân tích các hành vi mạng dễ dàng. Thêm vào đó, các vấn đề kiểu dự báo trước trong nhiều trường hợp không cần ứng dụng phần cứng nhúng. Tuy nhiên, mạng nơ-ron phần cứng có thểđạt được rất nhiều các lợi ích [12]
Một triển khai phần cứng tối ưu có thể mang lại hiệu năng tốt hơn cấu hình phần mềm chạy trên một bộ vi xử lý chuẩn. Thêm vào đó, một triển khai phần cứng có thể thực hiện cho các ứng dụng khó đạt được trong thiết lập phần mềm, như với các ứng dụng cảm nhận từ xa. Việc thiết kế cho một FPGA cũng đạt được nhiều lợi ích, thảo luận trong chương 2.
Khả năng của FPGA là khả trình có một số tính năng nổi trội cụ thể. Nhiều kĩ
28
mỗi đơn vị mạch”. Một cách thực hiện điều này là phân tách ra các giai đoạn khác nhau của thuật toán học mạng trong nhiều vùng khác nhau của FPGA. Một cách khác là sử dụng các bộ nhân hệ số không thay đổi tối ưu để xử lý các phép tính weight của các đầu vào nơ-ron. Các phép tính này sẽđược thực hiện nhanh [3].
FPGA cũng dùng cho việc triển khai thực hiện phần cứng của các mạng nơ- ron nhân tạo, có thểđiều chỉnh động đồ hình của chúng. Điều này cấp cho các thuật toán học phức tạp đểđiều chỉnh đồ hình, đưa đến một mạng cuối cùng tinh vi hơn.
Các triển khai phần cứng cải thiện những vấn đề không thực hiện được của các thiết kế phần mềm. Một điều đáng chú ý đó là cách trình bày số, về cơ bản có hai cách mà một số có thể được miêu tả trong bất cứ thiết bị phần cứng nào: dấu phẩy tĩnh và dấu phẩy động. CORDIC sử dụng ký hiệu dấu phẩy tĩnh là một số nguyên tỉ
lệ đơn giản. Dấu phẩy động là cách miêu tả phổ biến nhất được sử dụng trong tính toán phần cứng vì dải giá trị rộng có thể thực hiện. Trong một thiết kế phần cứng,
đặc biệt là một thiết kế ở đó các đơn vị số học hỗ trợ một kiến trúc phần cứng rất phức tạp (Ví dụ: mạng Neuron nhân tạo), phạm vi khu vực tính năng chip yêu cầu một đơn vị dấu phẩy động quá cao, điều đó không khả thi để triển khai một mạng Neuron trên FPGA sử dụng các weight dấu phẩy động. Các khối dấu phẩy tĩnh có nhiều hấp dẫn hơn trong việc chúng cấp thêm phạm vi khu vực tính năng chip để
dành cho mạng neural thực tế. Có một lượng lớn các nghiên cứu đang thực hiện về
việc sử dụng các weight dấu phẩy tĩnh trong các mạng Neuron, loại bỏ sự cần thiết của các phần cứng dấu phẩy động.
Theo việc lựa chọn cách trình bày số dẫn đến quyết định độ chính xác của các weight nên có như thế nào. Vì với bất cứ hệ thống nào, độ chính xác càng lớn đưa
đến việc làm tăng thời gian tính toán, các yêu cầu phạm vi khu vực tính năng chip và nguồn tiêu thụ càng lớn. Vì bất cứ vấn đề gì, việc hi vọng loại bỏ một số vấn đề
kết hợp với một độ chính xác cao, gọi là “độ chính xác tối thiểu” phải được xác
29