Bối cảnh và vấn đề nghiên cứu

Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) là mô hình tính toán mô phỏng hoạt động truyền dẫn điện hóa của mạng nơ-ron sinh học, sở hữu khả năng xử lý song song, thích nghi và phi tuyến. Các mạng nơ-ron truyền thẳng huấn luyện theo giải thuật lan truyền ngược (Backpropagation) đã được áp dụng trong nhiều lĩnh vực thực tế như xử lý tín hiệu, nhận dạng mẫu, điều khiển phi tuyến và dự báo tài chính. Tuy nhiên, phần lớn các ứng dụng hiện nay vẫn được triển khai trên nền tảng phần mềm (chạy trên các máy tính truyền thống), dẫn đến khối lượng tính toán lớn, tốc độ xử lý bị giới hạn bởi cấu trúc kiến trúc tuần tự và không khai thác được tối đa bản chất xử lý song song của mạng nơ-ron.

Trong bối cảnh công nghệ vi mạch phát triển, các thiết bị logic khả trình như PLD và FPGA (Field Programmable Gate Array) cho phép tích hợp mật độ logic cao trên một chip đơn và triển khai các thuật toán xử lý song song với độ trễ thấp. Việc chuyển đổi giải thuật từ các ngôn ngữ lập trình cấp cao (như MATLAB, C++) sang kiến trúc phần cứng (Verilog HDL) nhằm hiện thực hóa giải thuật Backpropagation trực tiếp trên phần cứng FPGA là yêu cầu kỹ thuật cần thiết, tạo tiền đề để hướng tới thiết kế vi mạch chuyên dụng (ASIC trên tiến trình 180nm hoặc 65nm).

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể:

  1. Nghiên cứu cơ sở lý thuyết về mạng nơ-ron nhân tạo và giải thuật huấn luyện lan truyền ngược (Backpropagation).
  2. Nghiên cứu chuẩn chuyển đổi số thực sang số nhị phân dấu phẩy động IEEE 754 và các giải pháp tính toán gần đúng các hàm kích hoạt phi tuyến (Sigmoid, Tansig) trên phần cứng.
  3. Thiết kế hoàn chỉnh cấu trúc vi mạch (Register Transfer Level - RTL) bằng ngôn ngữ mô tả phần cứng Verilog HDL để thực thi toàn bộ quá trình truyền thẳng (Feedforward), tính toán sai số và lan truyền ngược cập nhật trọng số cho mô hình mạng nơ-ron cấu hình $2 \times 2 \times 1$ (2 nơ-ron ngõ vào, 1 lớp ẩn gồm 2 nơ-ron và 1 nơ-ron ngõ ra).
  4. Tiến hành mô phỏng từng module chức năng, tổng hợp khối top-layer và so sánh, đối chiếu kết quả hoạt động trên phần cứng FPGA với kết quả tính toán mô phỏng trên phần mềm MATLAB.

Đối tượng nghiên cứu là kiến trúc vi mạch mạng nơ-ron truyền thẳng đa tầng (MLP), giải thuật học Backpropagation, ngôn ngữ mô tả phần cứng Verilog HDL và công nghệ FPGA. Phạm vi nghiên cứu tập trung vào việc mô hình hóa phần cứng cho mạng kích thước $2 \times 2 \times 1$, tính toán số thực dấu phẩy động 32-bit theo chuẩn IEEE 754, đánh giá việc sử dụng tài nguyên logic và thời gian trễ của từng khối mạch trên môi trường mô phỏng.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đồ án dựa trên mô hình toán học của nơ-ron nhân tạo do McCulloch - Pitts khởi xướng, kết hợp cùng mô hình mạng nơ-ron truyền thẳng nhiều tầng (Multi-Layer Perceptron - MLP) và thuật toán học có giám sát lan truyền ngược (Backpropagation) dựa trên nguyên lý cực tiểu hóa sai số bình phương trung bình (Least Mean Square - LMS).

Phương pháp nghiên cứu kết hợp giữa nghiên cứu lý thuyết và phương pháp thực nghiệm thiết kế - mô phỏng số:

  • Khung toán học và giải thuật:
    • Mỗi nơ-ron $k$ thực hiện tính tổng trọng số $u_k = \sum_{j=1}^{p} w_{kj} x_j$ và đưa qua hàm truyền $y_k = f(u_k - b_k)$.
    • Các hàm kích hoạt phi tuyến dạng chữ S được khảo sát gồm hàm Log-sigmoid $f(H) = \frac{1}{1 + e^{-H}}$ và hàm Tan-sigmoid $f(H) = \frac{1 - e^{-2H}}{1 + e^{-2H}}$.
    • Quá trình lan truyền ngược xác định gradient sai số tại ngõ ra $\delta_k = O_k (1 - O_k)(t_k - O_k)$ và gradient sai số lớp ẩn $\delta_h = O_h (1 - O_h) \sum_{k} w_{hk} \delta_k$, từ đó cập nhật bộ trọng số theo công thức $\Delta w_{ij} = \eta \delta x_{ij}$ (với $\eta$ là hệ số học).
  • Chuẩn định dạng số thực: Sử dụng định dạng dấu phẩy động 32-bit đơn chính xác (Single-precision floating-point) theo chuẩn IEEE 754, gồm 1 bit dấu (sign), 8 bit số mũ (exponent) và 23 bit phần định trị (mantissa).
  • Quy trình thiết kế phần cứng: Mô hình hóa hệ thống bằng ngôn ngữ Verilog HDL ở mức truyền thanh ghi (RTL), chia tách hệ thống thành các module chức năng độc lập có khả năng ghép nối.
  • Nguồn dữ liệu và kiểm chứng: Tạo tập dữ liệu mẫu huấn luyện đầu vào - đầu ra, chạy mô phỏng đối chứng song song trên công cụ tính toán số trị MATLAB và phần mềm mô phỏng mạch số để kiểm tra tính chính xác của các phép toán số thực và sai số cập nhật trọng số.

Thiết kế và triển khai kiến trúc vi mạch

Kiến trúc phần cứng của hệ thống huấn luyện mạng nơ-ron Backpropagation được xây dựng theo cấu trúc phân cấp, tích hợp từ các khối tính toán số thực cơ bản đến các module điều khiển và tổng hợp lớp.

Khối chức năng (Module) Nguyên lý và nhiệm vụ thiết kế RTL
Khối nhân số thực (mult) Thực hiện phép nhân hai số thực 32-bit chuẩn IEEE 754: tách bit dấu, cộng số mũ và nhân phần định trị, sau đó chuẩn hóa kết quả.
Khối cộng số thực (adder) Thực hiện phép cộng/trừ số thực 32-bit IEEE 754: so sánh và cân bằng số mũ, dịch bit phần định trị, thực hiện phép cộng và chuẩn hóa kết quả.
Khối hàm kích hoạt (sigmod / tansig) Tính toán số hóa gần đúng giá trị phi tuyến của hàm Sigmoid và Tansig từ giá trị ngõ vào dấu phẩy động để tối ưu tài nguyên phần cứng.
Khối tính Net (net) Tính tích vô hướng giữa vector đầu vào và vector trọng số liên kết ($\sum x_{ij} w_{ij}$) thông qua chuỗi khối nhân và khối cộng số thực.
Khối tính sai số (error) và So sánh (so_sanh) Tính hiệu số giữa ngõ ra thực tế và giá trị mục tiêu, bình phương sai số và so sánh tổng sai số toàn mạng $E$ với sai số mục tiêu $E_{target}$ để quyết định điều kiện dừng.
Khối tính đạo hàm lỗi ngõ ra ($\delta_k$) Thực hiện phép nhân số thực giữa sai số ngõ ra và đạo hàm của hàm kích hoạt tại lớp ngõ ra: $O_k(1 - O_k)(t_k - O_k)$.
Khối tính đạo hàm lỗi lớp ẩn ($\delta_{h1}, \delta_{h2}$) Tính toán phản hồi lỗi từ lớp ngõ ra ngược về các nơ-ron lớp ẩn: $O_h(1 - O_h)(w_{h1}\delta_{k1} + ...)$.
Khối cập nhật trọng số (update_weights) Tính lượng biến thiên $\Delta w_{ij} = \eta \delta x_{ij}$ và cộng dồn vào giá trị trọng số cũ của các đường liên kết $w_1, w_2, w_3, w_4, w_5, w_6$.
Khối điều khiển và tổng hợp (top_layer, network_control) Máy trạng thái (FSM) phối hợp thứ tự nạp dữ liệu, thực hiện lan truyền thẳng (pre_backpropagation), tính toán lỗi ngược (backpropagation) và cập nhật trọng số.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương này tổng kết lịch sử phát triển của mạng nơ-ron nhân tạo từ các nghiên cứu ban đầu của McCulloch - Pitts, Hebb, Frank Rosenblatt (Perceptron) và sự ra đời của thuật toán lan truyền ngược bởi Rumelhart, McClelland. Tác giả trình bày các lĩnh vực ứng dụng của mạng nơ-ron trong thực tế như hàng không, ô tô, quốc phòng, điện tử, tài chính và phân tích tính cấp thiết của việc chuyển dịch từ phần mềm sang kiến trúc phần cứng FPGA/ASIC nhằm tối ưu tốc độ và khả năng xử lý song song. Mục tiêu, nhiệm vụ và phạm vi nghiên cứu của đề tài được định hình cho mô hình mạng $2 \times 2 \times 1$.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết cấu trúc tế bào thần kinh sinh học (thân nơ-ron, sợi nhánh, sợi trục, khớp nối synapse) và mô hình toán học tương ứng của nơ-ron nhân tạo. Nội dung phân loại các hàm kích hoạt (Hard-limit, Tuyến tính Purelin, Log-sigmoid, Tan-sigmoid), cấu trúc mạng (mạng truyền thẳng Feedforward, mạng phản hồi Feedback, Perceptron, MLP) và các phương pháp học (học có giám sát, không giám sát, học tăng cường). Tác giả cũng phân tích các yếu tố then chốt khi xây dựng mạng MLP: phân chia tập dữ liệu huấn luyện (2/3) và kiểm tra (1/3), chuẩn hóa dữ liệu, xác định số nơ-ron lớp ẩn theo kinh nghiệm $h > (p-1)/(n+2)$ hoặc cụm mờ, quy tắc khởi tạo trọng số phân bố đều quanh 0 để tránh bão hòa mạng, cùng các mức độ trừu tượng trong ngôn ngữ mô tả phần cứng Verilog HDL (Hành vi, RTL, Cổng).

Chương 3: Thuật toán Backpropagation

Chương 3 đi sâu vào cơ chế hoạt động của thuật toán Backpropagation trên mạng truyền thẳng nhiều lớp. Thuật toán gồm hai pha: pha truyền thẳng tính toán tín hiệu ra và pha lan truyền ngược dựa trên thuật toán giảm độ dốc (Gradient Descent) để tính toán $\delta_k, \delta_h$ và điều chỉnh trọng số nhằm tối thiểu hóa hàm lỗi $E$. Tác giả chỉ ra các hạn chế cố hữu của thuật toán như tốc độ hội tụ chậm, hiện tượng mạng liệt (khi trọng số quá lớn khiến đạo hàm hàm sigmoid tiệm cận 0) và nguy cơ rơi vào cực tiểu địa phương (phân tích phương pháp dò tìm điểm cực tiểu bằng Golden Section search). Chương này cũng trình bày chuẩn số thực dấu phẩy động IEEE 754 đơn chính xác và phương pháp số hóa, tính gần đúng các hàm phi tuyến Sigmoid/Tansig trên Verilog.

Chương 4: Nghiên cứu thuật toán

Chương này tập trung vào sơ đồ thuật toán và thiết kế kiến trúc các module chương trình phục vụ việc hiện thực hóa trên phần cứng. Tác giả xây dựng sơ đồ khối chi tiết cho từng giai đoạn tính toán: khối lan truyền thẳng tính giá trị Net và hàm kích hoạt, khối tính hàm sai số $E$, module tính gradient lỗi ngõ ra $\delta_k$, module tính gradient lỗi lớp ẩn $\delta_{h1}, \delta_{h2}$, và khối cập nhật các bộ trọng số. Đồng thời, thuật toán được khảo sát và chạy kiểm thử đối chứng trên phần mềm MATLAB để làm cơ sở dữ liệu mẫu chuẩn cho quá trình mô phỏng phần cứng.

Chương 5: Kết quả

Chương 5 trình bày toàn bộ kết quả thiết kế RTL và dạng sóng mô phỏng của các khối chức năng được viết bằng Verilog HDL. Các bảng số liệu từ Bảng 5.1 đến Bảng 5.14 thống kê chi tiết mức độ sử dụng tài nguyên phần cứng (số lượng phần tử logic, thanh ghi, bộ nhân) và thời gian trễ thực thi của từng module: khối nhân, khối cộng, khối tính Sigmoid/Tansig, khối Net, khối Error, khối so sánh, khối tính $\delta_k$, khối tính $\delta_h$, khối cập nhật trọng số ($w_1$ đến $w_6$), khối pre_backpropagation, khối backpropagation, khối network_control và khối tổng thể top_layer. Bảng 5.15 tổng hợp kết quả so sánh độ chính xác giữa mô phỏng phần cứng trên FPGA và mô phỏng trên MATLAB, cho thấy sự tương thích chính xác về mặt giải thuật và dữ liệu số thực.

Chương 6: Kết luận

Chương kết luận tổng kết các kết quả đạt được: hoàn thành thiết kế RTL cho mạng nơ-ron $2 \times 2 \times 1$ có khả năng tự huấn luyện bằng thuật toán Backpropagation trên FPGA, xử lý hoàn toàn theo định dạng số thực 32-bit IEEE 754. Tác giả đánh giá khả năng ghép nối mở rộng của kiến trúc module và định hướng tiếp tục nghiên cứu nâng cao quy mô mạng, tăng số nơ-ron và số lớp ẩn, tối ưu diện tích vi mạch để triển khai trên các tiến trình công nghệ bán dẫn ASIC 180nm và 65nm.


Kết quả và đóng góp

Đồ án đã đạt được các kết quả kỹ thuật cụ thể:

  1. Thiết kế hoàn chỉnh tập module phần cứng số học dấu phẩy động: Xây dựng thành công các khối cộng và nhân số thực 32-bit chuẩn IEEE 754 trên nền Verilog HDL, phục vụ trực tiếp cho các phép toán ma trận trong mạng nơ-ron.
  2. Số hóa thành công các hàm kích hoạt phi tuyến: Hiện thực hóa giải pháp tính toán gần đúng cho hai hàm kích hoạt phổ biến là Log-sigmoid và Tan-sigmoid trên phần cứng, đảm bảo độ chính xác giải thuật và hạn chế chiếm dụng tài nguyên logic.
  3. Hiện thực hóa trọn vẹn giải thuật Backpropagation cho mạng $2 \times 2 \times 1$: Xây dựng đầy đủ đường truyền dữ liệu (Datapath) và bộ điều khiển (Control Unit) cho cả pha lan truyền thẳng, tính toán hàm lỗi, tính đạo hàm sai số lớp ra $\delta_k$, lớp ẩn $\delta_h$ và cập nhật đồng thời 6 trọng số liên kết ($w_1, w_2, w_3, w_4, w_5, w_6$).
  4. Kiểm chứng mô phỏng: Kết quả mô phỏng dạng sóng RTL của toàn bộ hệ thống (top_layer) khớp với kết quả khảo sát đối chứng trên phần mềm MATLAB (thể hiện qua Bảng 5.15), chứng minh tính đúng đắn của cấu trúc phần cứng.

Về mặt đóng góp, đề tài chuyển đổi thành công giải thuật huấn luyện mạng nơ-ron từ phần mềm thuần túy sang kiến trúc phần cứng vi mạch có tính module hóa cao. Thiết kế cho phép dễ dàng mở rộng cấu hình mạng (tăng số nơ-ron trên mỗi lớp hoặc tăng số lớp ẩn) thông qua thao tác ghép nối các module con đã được chuẩn hóa.


Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế của đề tài:
    • Kiến trúc phần cứng mới dừng lại ở mức mô phỏng kiểm tra thiết kế RTL cho mạng quy mô nhỏ ($2 \times 2 \times 1$); chưa tiến hành nạp thử nghiệm và đo đạc trực tiếp trên bo mạch phần cứng thực tế (chip FPGA vật lý).
    • Thuật toán Backpropagation vẫn tồn tại các đặc tính hạn chế cố hữu như thời gian huấn luyện kéo dài khi mạng mở rộng, khả năng rơi vào cực tiểu địa phương và hiện tượng mạng liệt khi trọng số tăng quá lớn.
  • Hướng nghiên cứu tiếp theo:
    • Triển khai nạp cấu hình và đo kiểm thực tế trên các dòng kit FPGA thương mại.
    • Mở rộng kiến trúc cho các mạng nơ-ron có quy mô lớn hơn (nhiều ngõ vào/ra và nhiều lớp ẩn).
    • Tối ưu hóa diện tích vi mạch, công suất tiêu tán và thời gian trễ định thời để hướng tới thiết kế, chế tạo vi mạch tích hợp chuyên dụng (ASIC) trên các tiến trình công nghệ 180nm hoặc 65nm.

Giá trị tham khảo

Đồ án là tài liệu tham khảo chuyên ngành cho sinh viên, học viên và kỹ sư thuộc các ngành:

  • Công nghệ Kỹ thuật Điện tử Truyền thông và Kỹ thuật Máy tính: Tham khảo phương pháp mô tả phần cứng bằng Verilog HDL cho các thuật toán xử lý tín hiệu và trí tuệ nhân tạo.
  • Thiết kế vi mạch (IC Design / ASIC / FPGA): Tham khảo kiến trúc thiết kế chi tiết của các khối tính toán số thực IEEE 754 32-bit (bộ cộng, bộ nhân), khối tính toán hàm phi tuyến và phương pháp xây dựng máy trạng thái điều khiển mạng nơ-ron.
  • Nghiên cứu ứng dụng trí tuệ nhân tạo trên phần cứng nhúng (Edge AI / Hardware Acceleration): Cung cấp tài liệu tham khảo về quy trình ánh xạ (mapping) giải thuật học máy từ phần mềm (MATLAB) xuống phần cứng RTL.

Câu hỏi thường gặp

1. Khóa luận triển khai thuật toán Backpropagation cho cấu hình mạng nơ-ron cụ thể nào?
Khóa luận thiết kế phần cứng cho mạng nơ-ron truyền thẳng nhiều tầng (MLP) có cấu hình $2 \times 2 \times 1$, bao gồm 2 nơ-ron ở lớp ngõ vào, 1 lớp ẩn gồm 2 nơ-ron và 1 nơ-ron ở lớp ngõ ra, thực hiện cập nhật cho 6 trọng số liên kết.

2. Các phép tính số học trong hệ thống vi mạch được biểu diễn theo chuẩn định dạng nào?
Toàn bộ các phép toán nhân, cộng, tính giá trị Net, tính sai số và cập nhật trọng số trong thiết kế đều được thực hiện theo chuẩn số thực dấu phẩy động 32-bit IEEE 754 (Single-precision floating-point).

3. Các hàm kích hoạt phi tuyến nào được thiết kế trên phần cứng và vai trò của chúng là gì?
Khóa luận đã mô hình hóa hai hàm kích hoạt là Log-sigmoid (cho ngõ ra trong khoảng $[0, 1]$) và Tan-sigmoid (cho ngõ ra trong khoảng $[-1, 1]$). Hai hàm này được chọn nhờ đặc tính khả vi, đạo hàm có thể biểu diễn trực tiếp qua giá trị hàm số, giúp giảm khối lượng tính toán khi lan truyền ngược sai số.

4. Khóa luận kiểm chứng tính chính xác của thiết kế phần cứng bằng phương pháp nào?
Tính chính xác của thiết kế RTL trên Verilog HDL được kiểm chứng thông qua việc so sánh đối chiếu kết quả mô phỏng dạng sóng của từng module và khối tổng hợp top_layer với kết quả tính toán của cùng tập dữ liệu mẫu chạy trên phần mềm MATLAB (thống kê tại Bảng 5.15).

5. Vì sao tác giả khuyến nghị sử dụng mạng có ít lớp ẩn trong thiết kế vi mạch?
Theo phân tích của tác giả, việc tăng số lớp ẩn sẽ làm tăng các phép tính lan truyền hàm lỗi, khiến vector gradient trở nên không ổn định, số lượng cực trị địa phương tăng vọt và làm chậm đáng kể quá trình huấn luyện của thuật toán lan truyền ngược.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu thuật toán Backpropagation trên FPGA" của nhóm tác giả Thân Thái Thành và Ngô Ngọc Vượng (GVHD: TS. Võ Minh Huân, Đại học Sư phạm Kỹ thuật TP.HCM) đã nghiên cứu và thiết kế hoàn chỉnh cấu trúc vi mạch cho mạng nơ-ron $2 \times 2 \times 1$ bằng ngôn ngữ Verilog HDL. Hệ thống tích hợp thành công các khối số học dấu phẩy động 32-bit chuẩn IEEE 754, các khối tính gần đúng hàm phi tuyến Sigmoid/Tansig và thực hiện đầy đủ chu trình huấn luyện lan truyền ngược. Toàn bộ thiết kế được xây dựng theo cấu trúc module hóa chuẩn, đạt độ chính xác tương đương mô phỏng trên MATLAB và tạo cơ sở cho việc phát triển các kiến trúc tăng tốc phần cứng nơ-ron trên FPGA và ASIC.