Bối cảnh và vấn đề nghiên cứu
Sự phát triển mạnh mẽ của trí tuệ nhân tạo (AI) và mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) đang tạo ra những thay đổi sâu rộng trong nhiều lĩnh vực kỹ thuật như xử lý dữ liệu, nhận dạng mẫu, xử lý ngôn ngữ tự nhiên, phân loại và dự báo. Phần lớn các mô hình mạng nơ-ron hiện nay được triển khai trên nền tảng phần mềm chạy trên các bộ vi xử lý (CPU) hoặc vi điều khiển (MCU). Mặc dù các bộ vi xử lý hiện đại có tốc độ xung nhịp cao và hỗ trợ đa nhân, bản chất kiến trúc xử lý tuần tự theo tập lệnh khiến chúng gặp nhiều hạn chế khi hệ thống yêu cầu độ chính xác cao, tính toán đa luồng quy mô lớn và khả năng đáp ứng thời gian thực nghiêm ngặt. Việc tính toán mô hình mạng nơ-ron trên các dòng vi mạch chỉ chuyên về điều khiển có thể làm nghẽn tài nguyên và ảnh hưởng đến toàn bộ hệ thống lớn.
Từ thực tiễn đó, nhu cầu xây dựng các kiến trúc vi mạch chuyên dụng phục vụ tính toán mạng nơ-ron trở nên cấp thiết. Hai giải pháp phần cứng chính là vi mạch chuyên dụng ASIC (Application-Specific Integrated Circuit) và vi mạch logic lập trình được FPGA (Field-Programmable Gate Array). Mặc dù ASIC có lợi thế về giá thành khi sản xuất hàng loạt với số lượng rất lớn, công nghệ FPGA lại thể hiện tính ưu việt vượt trội trong giai đoạn nghiên cứu, thử nghiệm và phát triển nhờ khả năng tái cấu hình linh hoạt thông qua ngôn ngữ mô tả phần cứng (HDL), cấu trúc xử lý song song thực sự ở cấp độ phần cứng và chi phí thiết kế thấp hơn.
Đề tài "Thực hiện mạng nơ-ron trên FPGA" được thực hiện nhằm giải quyết các nhiệm vụ và mục tiêu cụ thể:
- Tìm hiểu cơ sở lý thuyết về mạng nơ-ron nhân tạo, thuật toán lan truyền ngược (Backpropagation) và các kiến thức thiết kế hệ thống số trên vi mạch.
- Tìm hiểu ngôn ngữ mô tả phần cứng VHDL để ứng dụng vào việc thiết kế cấu trúc mạng nơ-ron trên vi mạch FPGA.
- Thiết kế hoàn chỉnh và tối ưu hóa cấu trúc phần cứng của mạng nơ-ron, bao gồm việc xây dựng các khối tính toán số thực dấu chấm động theo tiêu chuẩn IEEE-754 và các khối hàm phi tuyến.
- Xây dựng mô hình mạng nơ-ron trên FPGA với cấu hình gồm hai ngõ vào (Input), một lớp ẩn (Hidden Layer) có hai nút và một lớp ngõ ra (Output Layer).
- Thực hiện mô phỏng hoạt động của mạng nơ-ron trên công cụ chuyên dụng và đối chiếu kết quả mô phỏng với các giá trị tính toán lý thuyết từ mô hình toán học.
Đối tượng nghiên cứu của đồ án bao gồm: mô hình toán học của mạng nơ-ron nhân tạo, giải thuật học có giám sát lan truyền ngược, công nghệ FPGA và kit thí nghiệm Altera DE1, tiêu chuẩn biểu diễn số thực dấu chấm động IEEE-754 (định dạng đơn 32-bit), lý thuyết thiết kế máy trạng thái hữu hạn (FSM) và ngôn ngữ VHDL. Phạm vi nghiên cứu giới hạn ở việc thiết kế, mô phỏng và kiểm chứng chức năng của một mạng nơ-ron truyền thẳng đa lớp cấu hình 2-2-1 với sáu trọng số liên kết trên nền tảng phần cứng FPGA.
Cơ sở lý thuyết và phương pháp
Đồ án dựa trên các cơ sở lý thuyết kỹ thuật máy tính và toán học sau:
-
Mô hình toán học nơ-ron nhân tạo và hàm kích hoạt: Một nơ-ron nhân tạo tiếp nhận vector tín hiệu ngõ vào $x_j$, nhân với các trọng số liên kết tương ứng $w_{kj}$, cộng với giá trị độ lệch $b_k$ thông qua bộ tổng và đưa qua hàm kích hoạt $f$:
$$y = f\left(\sum_{j} x_j w_{kj} + b_k\right)$$
Khóa luận khảo sát các hàm kích hoạt phổ biến như hàm tuyến tính (Linear), hàm tuyến tính chỉnh sửa (ReLU), hàm bước nhị phân (Binary Step), hàm Hyperbolic Tangent (TanH) và hàm phi tuyến Sigmoid:
$$f(x) = \frac{1}{1 + e^{-x}}$$
Hàm Sigmoid được lựa chọn làm hàm truyền chính trong thiết kế nhờ tính chất bão hòa trong khoảng $(0, 1)$ và khả năng lấy đạo hàm thuận tiện phục vụ quá trình lan truyền ngược:
$$f'(x) = f(x) \cdot (1 - f(x))$$
-
Thuật toán lan truyền ngược (Backpropagation): Đây là thuật toán tối ưu hóa dựa trên phương pháp hạ độ dốc (Gradient Descent) để tìm cực tiểu của hàm tổn thất. Thuật toán tính toán gradient của hàm lỗi đối với từng trọng số liên kết trong mạng, từ đó cập nhật các trọng số từ lớp ngõ ra ngược về các lớp ẩn nhằm giảm thiểu sai số giữa ngõ ra thực tế và giá trị đích mong muốn (Target).
-
Tiêu chuẩn biểu diễn số thực dấu chấm động IEEE-754 (32-bit): Số thực chính xác đơn 32-bit bao gồm:
- 1 bit dấu (Sign - $S$).
- 8 bit số mũ (Exponent - $E$) với độ lệch (bias) bằng 127.
- 23 bit phân số (Fraction/Mantissa - $F$).
Giá trị được xác định theo công thức: $(-1)^S \times (1.F) \times 2^{E - 127}$.
| Thành phần trường bit |
Độ dài bit |
Ý nghĩa kỹ thuật |
| Bit dấu ($S$) |
1 bit |
Quy định dấu của số thực (0: số dương, 1: số âm) |
| Trường số mũ ($E$) |
8 bit |
Biểu diễn bậc mũ cơ số 2 với độ lệch bias = 127 ($E \in [0, 255]$) |
| Trường phân số ($F$) |
23 bit |
Biểu diễn phần định trị sau dấu phẩy (chưa tính 1 bit ẩn $1.F$) |
- Lý thuyết máy trạng thái hữu hạn (FSM): Hệ thống số được điều khiển thông qua hai mô hình FSM kinh điển:
- Máy trạng thái Moore: Tín hiệu ngõ ra chỉ phụ thuộc duy nhất vào trạng thái hiện tại của hệ thống.
- Máy trạng thái Mealy: Tín hiệu ngõ ra phụ thuộc đồng thời vào trạng thái hiện tại và tín hiệu ngõ vào.
Phương pháp nghiên cứu được áp dụng là phương pháp thiết kế hệ thống số (RTL Design) từ mức thanh ghi, thiết kế phân tầng theo mô hình từ dưới lên (Bottom-Up), kết hợp mô phỏng kiểm tra dạng sóng và đối chiếu dữ liệu tính toán giải tích với dữ liệu mô phỏng dạng số thập lục phân (Hexadecimal) và số thực.
Thiết kế và triển khai
Hệ thống được thiết kế hoàn toàn bằng ngôn ngữ VHDL, hướng tới mục tiêu hiện thực hóa trên chip FPGA Altera Cyclone II EP2C20F484C7N trang bị trên kit lập trình Altera DE1. Cấu trúc vi mạch được chia thành hai tầng chính: tầng các khối tính toán số học/hàm chức năng và tầng các khối cấu trúc mạng nơ-ron.
+-------------------------------------------------+
| MẠNG NƠ-RON HOÀN CHỈNH |
| (Đồng bộ Lan truyền thuận & Lan truyền ngược) |
+------------------------+------------------------+
|
+-----------------------------+-----------------------------+
| |
+--------------v---------------+ +--------------v---------------+
| KHỐI LAN TRUYỀN THUẬN | | KHỐI LAN TRUYỀN NGƯỢC |
| (Forward Propagation Unit) | | (Backward Propagation Unit) |
+--------------+---------------+ +--------------+---------------+
| |
+--------------v---------------+ +--------------v---------------+
| KHỐI NÚT LAN TRUYỀN THUẬN | | KHỐI NÚT LAN TRUYỀN NGƯỢC |
| (Forward Node Unit) | | (Backward Node Unit) |
+--------------+---------------+ +--------------+---------------+
| |
+-----------------------------+-----------------------------+
|
+------------------------v------------------------+
| CÁC KHỐI TOÁN HỌC & HÀM CHỨC NĂNG |
| (IEEE-754 32-bit Floating Point Arithmetic) |
+-------------------------------------------------+
| - Bộ Cộng / Trừ dấu chấm động (FSM 5 trạng thái)|
| - Bộ Nhân dấu chấm động (FSM 4 trạng thái) |
| - Bộ Chia dấu chấm động & Khối FPP_MAN 24-bit |
| - Khối tính hàm Mũ, Hàm e^x, Hàm Sigmoid |
| - Khối tính Đạo hàm Sigmoid: f(x)*(1 - f(x)) |
+-------------------------------------------------+
1. Thiết kế các khối toán học dấu chấm động 32-bit và hàm chức năng
Mỗi khối chức năng đều được trang bị các tín hiệu điều khiển chuẩn gồm CLK (xung đồng hồ), RESET (tái lập trạng thái), GO (tín hiệu cho phép bắt đầu tính toán) và DONE (tín hiệu cờ báo hoàn thành phép toán):
- Khối Cộng và Trừ (Floating-Point Adder/Subtractor): Hoạt động theo FSM gồm 5 trạng thái:
WAITC (chờ kích hoạt), ALIGN (so sánh số mũ và dịch bit phân số để cân bằng bậc mũ), ADDC (thực hiện cộng hoặc trừ phần phân số dựa trên phép XOR của bit dấu), NORMC (chuẩn hóa kết quả, dịch bit và cập nhật số mũ khi xảy ra tràn hoặc thiếu bit), PAUSEC (xuất kết quả và bật cờ DONE).
- Khối Nhân (Floating-Point Multiplier): Hoạt động theo FSM gồm 4 trạng thái:
WAITM (chờ kích hoạt), MAN_EXP (tính bit dấu bằng phép XOR hai bit dấu vào, cộng hai số mũ trừ bias 127, nhân hai phần phân số 24-bit tạo kết quả 48-bit), NORMALIZE (kiểm tra bit thứ 47 để chuẩn hóa, tăng số mũ nếu tràn và lấy 23-bit trọng số cao), PAUSE (bật cờ DONE).
- Khối Chia (Floating-Point Divider): Khối chia là phép toán phức tạp nhất, được FSM chính điều khiển qua 7 trạng thái (
Idle, Align, SetExp, Start, WaitMan, Done, Pause), kết hợp cùng một khối phụ trợ xử lý phân số 24-bit chuyên dụng mang tên FPP_MAN (hoạt động theo chu trình 5 trạng thái: Idle, Test, Chkbo, Norm, Fini) để thực hiện phép chia liên tiếp và căn chỉnh số mũ thông qua tín hiệu Shift.
- Khối hàm toán học phi tuyến:
- Khối hàm mũ và hàm $e^x$: Triển khai giải thuật xấp xỉ chuỗi lũy thừa kết hợp bảng tra giai thừa cố định.
- Khối hàm Sigmoid: Tích hợp bộ đảo dấu, bộ $e^{-x}$, bộ cộng 1 và bộ chia số thực để thực hiện phép tính $1 / (1 + e^{-x})$.
- Khối đạo hàm Sigmoid: Thực hiện biểu thức $f'(x) = f(x) \cdot (1 - f(x))$ bằng cách phối hợp bộ trừ dấu chấm động và bộ nhân dấu chấm động.
| Khối chức năng |
Các trạng thái FSM chính |
Chức năng xử lý phần cứng |
| Cộng / Trừ IEEE-754 |
WAITC, ALIGN, ADDC, NORMC, PAUSEC |
Cân bằng số mũ, cộng/trừ phân số, chuẩn hóa 32-bit |
| Nhân IEEE-754 |
WAITM, MAN_EXP, NORMALIZE, PAUSE |
Tính dấu bằng XOR, cộng số mũ, nhân phân số 24x24-bit |
| Chia IEEE-754 |
Idle, Align, SetExp, Start, WaitMan, Done, Pause |
Tách mũ, phối hợp khối FPP_MAN lặp phân số, căn chỉnh shift |
| Khối FPP_MAN |
Idle, Test, Chkbo, Norm, Fini |
So sánh lặp phần phân số 24-bit, tạo thương và số dịch mũ |
| Hàm Sigmoid |
FSM phối hợp tầng khối số học |
Tính số thực $f(x) = 1 / (1 + e^{-x})$ từ chuỗi khối $e^x$, cộng, chia |
| Đạo hàm Sigmoid |
FSM phối hợp tầng khối số học |
Tính $f'(x) = f(x) \times (1 - f(x))$ từ bộ trừ và bộ nhân số thực |
2. Thiết kế kiến trúc mạng nơ-ron 2-2-1
Mô hình mạng bao gồm:
- Hai tín hiệu ngõ vào dữ liệu: $A$ và $B$.
- Lớp ẩn gồm hai nơ-ron: $Hidden0$ và $Hidden1$.
- Lớp ngõ ra gồm một nơ-ron: $Output$.
- Sáu trọng số liên kết: $w_0, w_2$ (từ ngõ vào đến $Hidden0$), $w_1, w_3$ (từ ngõ vào đến $Hidden1$), $w_4, w_5$ (từ lớp ẩn đến nút $Output$).
Quá trình tính toán phần cứng được cấu trúc thành ba khối chức năng:
- Khối nút và khối lan truyền thuận (Forward Propagation Unit):
- Tính tổng tích lũy: $S_0 = A \cdot w_0 + B \cdot w_2$; $Hidden0 = f(S_0)$.
- Tính tổng tích lũy: $S_1 = A \cdot w_1 + B \cdot w_3$; $Hidden1 = f(S_1)$.
- Tính ngõ ra: $S_{out} = Hidden0 \cdot w_4 + Hidden1 \cdot w_5$; $Output = f(S_{out})$.
- Khối nút và khối lan truyền ngược (Backward Propagation Unit):
- Tính sai số ngõ ra so với giá trị đích
Target: $\gamma_{Out} = (Target - Output) \cdot f'(Output)$.
- Cập nhật trọng số lớp ra: $w_5 = w_5 + \gamma_{Out} \cdot Hidden1$; $w_4 = w_4 + \gamma_{Out} \cdot Hidden0$.
- Tính sai số các nút ẩn: $\gamma_{Hidden0} = f'(Hidden0) \cdot w_4 \cdot \gamma_{Out}$; $\gamma_{Hidden1} = f'(Hidden1) \cdot w_5 \cdot \gamma_{Out}$.
- Cập nhật trọng số lớp vào: $w_0 = w_0 + A \cdot \gamma_{Hidden0}$; $w_2 = w_2 + B \cdot \gamma_{Hidden0}$; $w_1 = w_1 + A \cdot \gamma_{Hidden1}$; $w_3 = w_3 + B \cdot \gamma_{Hidden1}$.
- Khối mạng nơ-ron hoàn chỉnh: Điều phối chu trình chuyển trạng thái giữa quá trình lan truyền thuận, nhận tín hiệu
Target, kích hoạt lan truyền ngược và cập nhật đồng bộ các thanh ghi lưu trữ trọng số cho chu kỳ học tiếp theo.
Nội dung chính theo từng chương
Chương 1: Giới thiệu
Chương 1 thiết lập nền tảng và tính cấp thiết của đề tài. Tác giả chỉ ra sự bùng nổ của trí tuệ nhân tạo và hạn chế của các hệ thống xử lý phần mềm truyền thống trên CPU/MCU. Chương này tổng quan tình hình nghiên cứu vi mạch nơ-ron trong và ngoài nước: các công trình quốc tế về xấp xỉ tuyến tính hàm Sigmoid không dùng dấu chấm động, thuật toán lan truyền ngược tối ưu thời gian trễ trên Virtex-E, mạng tự tổ chức SOFM; các nghiên cứu trong nước về xử lý số thực IEEE-754 và điều khiển mờ - nơ-ron cho động cơ tuyến tính. Từ đó, xác định rõ nhiệm vụ nghiên cứu, đối tượng, phạm vi giới hạn mô hình 2-2-1 và bố cục toàn văn đồ án.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày toàn diện các cơ sở lý thuyết kỹ thuật:
- Cấu tạo nơ-ron sinh học và mô hình toán học của nơ-ron nhân tạo.
- Đặc tính toán học và đồ thị của các hàm kích hoạt (Linear, ReLU, Sigmoid, TanH, Binary Step) cùng bảng đạo hàm tương ứng.
- Kiến trúc mạng đơn lớp, đa lớp, mạng truyền thẳng và mạng hồi quy; nguyên lý học có giám sát và không giám sát.
- Thiết lập tường minh hệ thống phương trình vi phân và đại số cho thuật toán lan truyền ngược trên mạng 2-2-1.
- Tổng quan phần cứng FPGA, sơ đồ khối logic, bảng thông số kỹ thuật chi tiết của kit Altera DE1 (chip Cyclone II 2C20F484C7N với 18.752 LEs, 240K bit RAM, 52 bộ nhân phần cứng).
- Quy chuẩn số thực dấu chấm động IEEE-754 (32-bit và 64-bit), thuật toán chi tiết từng bước cho các phép cộng, trừ, nhân, chia số thực và lý thuyết máy trạng thái hữu hạn Moore, Mealy.
Chương 3: Thiết kế và thi công
Chương 3 là trọng tâm thiết kế kỹ thuật của đồ án. Tác giả mô tả chi tiết sơ đồ chân, bảng chuyển trạng thái FSM và sơ đồ khối vi mạch cho từng thành phần:
- Khối cộng/trừ 32-bit (FSM 5 trạng thái).
- Khối nhân 32-bit (FSM 4 trạng thái).
- Khối chia 32-bit (FSM 7 trạng thái) kết hợp bộ xử lý phân số
FPP_MAN (FSM 5 trạng thái).
- Khối hàm mũ, hàm $e^x$, hàm Sigmoid và đạo hàm Sigmoid.
- Khối nút và khối lan truyền thuận; khối nút và khối lan truyền ngược.
- Khối tích hợp mạng nơ-ron hoàn chỉnh, thiết lập các bảng điều khiển ngõ vào/ngõ ra và phân phối xung nhịp đồng bộ trạng thái.
Chương 4: Kết quả đạt được
Chương 4 cung cấp toàn bộ kết quả kiểm thử và mô phỏng chức năng trên dạng sóng:
- Kiểm tra tính đúng đắn của các phép toán dấu chấm động cơ sở (cộng, trừ, nhân, chia) theo các kịch bản thử nghiệm dữ liệu đầu vào.
- Mô phỏng chức năng của các hàm toán học: hàm mũ, hàm $e^x$, hàm kích hoạt Sigmoid và đạo hàm Sigmoid.
- Mô phỏng hoạt động của khối nút và khối lan truyền thuận với các bộ vector dữ liệu kiểm tra.
- Mô phỏng quá trình lan truyền ngược, kiểm tra kết quả tính toán sai số $\gamma$ và sự cập nhật chính xác của 6 giá trị trọng số.
- Mô phỏng mạng nơ-ron hoàn chỉnh, lập bảng đối chiếu kết quả mô phỏng dạng mã thập lục phân (Hexadecimal) chuyển đổi sang số thập phân (Decimal) so với giá trị tính toán lý thuyết.
- Báo cáo bảng thông tin thiết bị và tổng hợp mức tiêu hao tài nguyên phần cứng (Logic Elements, Registers, Multipliers) trên chip Cyclone II cho từng khối.
Chương 5: Kết luận và hướng phát triển
Chương 5 tổng kết toàn bộ các kết quả đạt được đối chiếu với các mục tiêu đề ra ban đầu. Tác giả đánh giá những ưu điểm về tính độc lập, khả năng xử lý song song phần cứng, đồng thời thẳng thắn chỉ ra các mặt hạn chế về quy mô mạng và mức tiêu tốn tài nguyên vi mạch, từ đó đề xuất các hướng phát triển tiếp theo cho đề tài.
Kết quả và đóng góp
1. Kết quả chính
- Thiết kế thành công toàn bộ thư viện các khối tính toán số học dấu chấm động 32-bit chính xác đơn theo chuẩn IEEE-754 bằng ngôn ngữ VHDL thuần túy (không phụ thuộc vào IP Core có sẵn của hãng sản xuất), bao gồm bộ cộng, trừ, nhân, chia.
- Triển khai thành công các khối hàm phi tuyến phức tạp bao gồm hàm $e^x$, hàm kích hoạt Sigmoid và khối tính đạo hàm Sigmoid trên nền tảng số thực.
- Xây dựng hoàn chỉnh kiến trúc phần cứng cho mạng nơ-ron nhân tạo cấu hình 2-2-1 thực hiện đồng bộ hai chu trình: lan truyền thuận (Forward Propagation) và lan truyền ngược (Backward Propagation).
- Mô phỏng kiểm chứng dạng sóng chứng minh các khối phần cứng hoạt động chính xác theo đúng giải thuật toán học đề ra; dữ liệu trích xuất từ các thanh ghi ngõ ra khớp chính xác với giá trị tính toán giải tích sau khi chuyển đổi từ mã Hexadecimal sang Decimal.
2. Đóng góp của đề tài
- Hiện thực hóa giải thuật học có giám sát lan truyền ngược trực tiếp ở cấp độ phần cứng vi mạch, chứng minh tính khả thi của việc cấu hình FPGA thành một bộ gia tốc phần cứng xử lý nơ-ron độc lập.
- Đóng góp phương pháp thiết kế phân tầng FSM chi tiết cho việc xử lý số thực chuẩn IEEE-754 và các hàm kích hoạt phi tuyến, có thể tái sử dụng cho các nghiên cứu thiết kế hệ thống số phức tạp khác.
Hạn chế và hướng nghiên cứu tiếp
-
Hạn chế:
- Quy mô mạng nơ-ron còn ở mức cơ bản (2 ngõ vào, 1 lớp ẩn 2 nút, 1 ngõ ra), chưa đáp ứng trực tiếp ngay cho các bài toán nhận dạng dữ liệu lớn.
- Việc sử dụng định dạng dấu chấm động IEEE-754 32-bit đầy đủ với các bộ nhân, chia số thực làm tiêu tốn đáng kể tài nguyên phần tử logic (Logic Elements) và tài nguyên tính toán của chip FPGA.
- Nghiên cứu mới dừng lại ở bước mô phỏng kiểm tra dạng sóng và tổng hợp vi mạch, chưa tiến hành đo đạc thực tế công suất tiêu thụ và tần số hoạt động tối đa trên phần cứng vật lý trong điều kiện hoạt động liên tục.
-
Hướng nghiên cứu tiếp:
- Mở rộng quy mô kiến trúc vi mạch: tăng số lượng ngõ vào, số lượng lớp ẩn và số nút trên mỗi lớp để ứng dụng vào các bài toán thực tế như phân loại dữ liệu, nhận diện hình ảnh hoặc xử lý tín hiệu âm thanh.
- Tối ưu hóa tài nguyên phần cứng bằng cách nghiên cứu các kỹ thuật xấp xỉ tuyến tính hàm kích hoạt hoặc sử dụng định dạng số thực dấu phẩy tĩnh (Fixed-point) với độ dài bit tùy biến nhằm giảm thiểu việc sử dụng các bộ chia dấu chấm động phức tạp.
- Thực hiện nạp mạch và đo kiểm trực tiếp trên kit phần cứng thực tế FPGA Altera DE1, kết nối với các ngoại vi I/O để xử lý dữ liệu cảm biến thời gian thực.
Giá trị tham khảo
Đồ án tốt nghiệp là tài liệu tham khảo hữu ích cho sinh viên, học viên cao học và các kỹ sư thuộc các chuyên ngành:
- Ngành Công nghệ Kỹ thuật Máy tính và Kỹ thuật Vi mạch: Cung cấp tài liệu chi tiết về phương pháp thiết kế hệ thống số mức RTL, kỹ thuật xây dựng FSM cho các thuật toán phức tạp và phương pháp xử lý số thực chuẩn IEEE-754 bằng ngôn ngữ VHDL.
- Ngành Điện tử - Viễn thông và Tự động hóa: Tham khảo cấu trúc thiết kế phần cứng cho các bộ điều khiển thông minh, ứng dụng mạng nơ-ron xử lý tín hiệu thời gian thực.
- Phần đáng tham khảo nhất trong văn bản: Chương 3 và Chương 4 với hệ thống các sơ đồ máy trạng thái FSM, bảng chuyển trạng thái chi tiết của khối chia dấu chấm động kết hợp bộ
FPP_MAN và phương pháp xây dựng khối đạo hàm Sigmoid phục vụ lan truyền ngược trên phần cứng.
Câu hỏi thường gặp
1. Đồ án sử dụng chip FPGA và kit phát triển nào để thiết kế phần cứng?
Đồ án sử dụng kit lập trình Altera DE1 được trang bị chip FPGA Altera Cyclone II mang mã hiệu EP2C20F484C7N (chứa 18.752 phần tử logic, 240K bit bộ nhớ RAM, 52 bộ nhân phần cứng tích hợp và 315 chân I/O).
2. Tiêu chuẩn biểu diễn số thực nào được áp dụng trong toàn bộ hệ thống tính toán của mạng nơ-ron?
Toàn bộ các tham số dữ liệu ngõ vào, trọng số liên kết, giá trị tính toán trung gian và ngõ ra đều sử dụng tiêu chuẩn số thực dấu chấm động IEEE-754 định dạng 32-bit (chính xác đơn), gồm 1 bit dấu, 8 bit số mũ (bias 127) và 23 bit phân số.
3. Hàm kích hoạt nào được tác giả lựa chọn để xây dựng trong vi mạch và công thức đạo hàm tương ứng là gì?
Tác giả lựa chọn hàm Sigmoid với công thức $f(x) = 1 / (1 + e^{-x})$. Đạo hàm của hàm Sigmoid phục vụ cho quá trình lan truyền ngược được tính theo công thức $f'(x) = f(x) \cdot (1 - f(x))$.
4. Khối chia dấu chấm động IEEE-754 được giải quyết bằng cấu trúc phần cứng như thế nào?
Khối chia dấu chấm động được thiết kế bằng một máy trạng thái chính gồm 7 trạng thái (Idle, Align, SetExp, Start, WaitMan, Done, Pause), phối hợp cùng một khối phần cứng xử lý phân số 24-bit chuyên biệt mang tên FPP_MAN (hoạt động theo chu trình FSM 5 trạng thái: Idle, Test, Chkbo, Norm, Fini) để lặp phép trừ so sánh và chuẩn hóa số mũ qua tín hiệu Shift.
5. Cấu hình chi tiết của mạng nơ-ron được thực hiện trong đồ án gồm những gì?
Mạng nơ-ron được thiết kế theo mô hình truyền thẳng đa lớp có cấu hình 2-2-1, bao gồm hai ngõ vào dữ liệu ($A, B$), một lớp ẩn gồm hai nút ($Hidden0, Hidden1$), một nút ngõ ra ($Output$) và sáu trọng số liên kết cần cập nhật ($w_0, w_1, w_2, w_3, w_4, w_5$).
Kết luận
Đồ án "Thực hiện mạng nơ-ron trên FPGA" của tác giả Vũ Minh Đức đã giải quyết thành công bài toán thiết kế cấu trúc phần cứng cho mạng nơ-ron nhân tạo cấu hình 2-2-1 bằng ngôn ngữ VHDL. Nghiên cứu đã tự xây dựng hoàn chỉnh thư viện tính toán số thực dấu chấm động 32-bit theo chuẩn IEEE-754 và hiện thực hóa thuật toán huấn luyện lan truyền ngược trực tiếp trên vi mạch logic lập trình được. Kết quả mô phỏng đã chứng minh tính đúng đắn của thiết kế phần cứng so với lý thuyết toán học, tạo cơ sở kỹ thuật giá trị cho việc phát triển các dòng vi mạch chuyên dụng xử lý trí tuệ nhân tạo tốc độ cao.