Tải bản đầy đủ (.pdf) (76 trang)

Nghiên cứu và thực hiện 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 trên FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.22 MB, 76 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

HUỲNH MINH VŨ

NGHIÊN CỨU VÀ THỰC HIỆN 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 TRÊN FPGA

Chuyên ngành: Kỹ thuật điện tử
Mã số:

60.52.02.03

LUẬN VĂN THẠC SĨ

Người hướng dẫn khoa học: TS. HUỲNH VIỆT THẮNG

Đà Nẵng - Năm 2017


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác.

Tác giả luận văn

Huỳnh Minh Vũ



NGHIÊN CỨU VÀ THỰC HIỆN 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 TRÊN FPGA
Học viên: Huỳnh Minh Vũ. Chuyên ngành: Kỹ thuật Điện tử.
Mã số: 60.52.02.03 Khóa: K31. Trường Đại học Bách khoa - ĐHĐN
Tóm tắt – Trong những năm gần đây, mạng nơ-ron nhân tạo (ANN) được sử dụng nhiều trong
các ứng dụng và triển khai thực tế trong lĩnh vực nhận dạng mẫu. Luận văn nghiên cứu một kiến
trúc phần cứng tùy biến được để thực thi mạng nơ-ron nhân tạo trên FPGA. Kiến trúc chỉ sử dụng
một lớp phần cứng tính toán (được đặt tên là SHL_ANN) để thực hiện tính toán cho toàn bộ mạng
nơ-ron nhân tạo lan truyền thẳng nhiều lớp. Bộ trọng số của mạng nơ-ron sử dụng định dạng số
thực dấu phẩy động bán chính xác 16 bits. Tác giả phân tích hoạt động của kiến trúc SHL_ANN,
đồng thời khảo sát khả năng mở rộng cũng như độ chiếm dụng tài nguyên phần cứng của kiến
trúc đối với các board mạch FPGA của hãng Xilinx là Virtex-5 XC5VLX-110T and ZynQ-7
7Z045. Để đánh giá hiệu năng của kiến trúc tác giả sử dụng bài toán nhận dạng chữ số viết tay
dựa vào cơ sở dữ liệu MNIST, kết quả cho tỉ lệ nhận dạng MNIST tốt nhất là 97,20% khi sử dụng
mạng nơ-ron nhân tạo có kích cỡ 784-40-40-10 có 2 lớp ẩn chiếm 91,8% tài nguyên phần cứng
board mạch Virtex-5 XC5VLX-110T và tỉ lệ nhận dạng MNIST tốt nhất là 98,16% khi sử dụng
mạng nơ-ron nhân tạo có kích cỡ 784-126-126-10 có 2 lớp ẩn chiếm 98,1% tài nguyên phần cứng
board mạch ZynQ-7 7Z045. Kết quả thực nghiệm cho thấy kiến trúc SHL_ANN là một lựa chọn
rất hứa hẹn để triển khai các ứng dụng nhận dạng nhúng hiệu năng cao.
Từ khóa - mạng nơ-ron lan truyền thẳng nhiều lớp, kiến trúc tùy biến, FPGA, thực hiện, đánh giá
STUDY AND IMPLEMENT A CUSTOMIZABLE ARCHITECTURE OF MULTILAYER FEED-FORWARD ARTIFICIAL NEURAL NETWORK ON FPGA
Abstract – Artificial Neural Networks (ANNs) have attracted many applications and practical
implementations in pattern recognition areas in recent years. In this thesis, we study a customized
hardware architecture for realization of multilayer ANNs on reconfigurable computing platforms
like FPGAs. The architecture employs only one single hardware-computing layer (namely
SHL_ANN) to perform the whole computing fabric of multi-layer feed-forward neural networks.
The 16-bit half-precision floating-point number format is used to represent the weights of the
designed network. We analyse the operation of proposed architecture and investigate the
scalability and hardware resource utilization of the SHL_ANN architecture on the Xilinx Virtex-5
XC5VLX-110T FPGA and ZynQ-7 7Z045 FPGA. The handwritten digit recognition application

with MNIST database is performed for performance evaluation, which reported the best
recognition rate of 97,20% when using a neural network architecture of size 784-40-40-10 with
two hidden layers, occupying 91,8% Virtex-5 XC5VLX-110T FPGA hardware resource and the
best recognition rate of 98,16% when using a neural network architecture of size 784-126-126-10
with two hidden layers, occupying 98,1% ZynQ-7 7Z045 FPGA hardware resource. Experimental
results show that the SHL_ANN architecture is a very promising design choice for high
performance embedded recognition applications.
Key words - multi-layer feed-forward neural network, customized architecture, FPGA,
implementation, evaluation.


MỤC LỤC
MỞ ĐẦU ......................................................................................................................... 1
1. Tính cấp thiết của đề tài............................................................................................... 1
2. Mục tiêu nghiên cứu ................................................................................................... 2
3. Đối tượng và phạm vi nghiên cứu ............................................................................... 2
3.1. Đối tượng nghiên cứu .......................................................................................2
3.2. Phạm vi nghiên cứu ........................................................................................... 2
4. Phương pháp nghiên cứu và nội dung nghiên cứu ...................................................... 2
4.1. Phương pháp nghiên cứu...................................................................................2
4.2. Nội dung nghiên cứu .........................................................................................3
5. Ý nghĩa khoa học và thực tiễn của đề tài..................................................................... 3
6. Kết cấu của luận văn .................................................................................................... 3
CHƯƠNG 1-TỔNG QUAN .......................................................................................... 5
1.1. Mạng nơ-ron sinh học............................................................................................... 5
1.2. Mạng nơ-ron nhân tạo .............................................................................................. 6
1.3. Thực hiện mạng nơ-ron nhân tạo trên phần cứng .................................................... 7
1.4. Phạm vi và nhiệm vụ của luận văn ........................................................................... 9
CHƯƠNG 2 - CƠ SỞ HIỆN THỰC HÓA MẠNG NƠ-RON NHÂN TẠO TRÊN
FPGA ............................................................................................................................ 10

2.1. Mở đầu chương ....................................................................................................... 10
2.2. Hệ thống nhận dạng mẫu dựa trên mạng nơ-ron nhân tạo ..................................... 10
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 .......... 11
2.3.1. Nơ-ron nhân tạo ........................................................................................... 11
2.3.2. Mô hình tính toán mạng nơ-ron nhân tạo [10] .............................................12
2.3.3. Hàm truyền ...................................................................................................14
2.4. Huấn luyện mạng nơ-ron nhân tạo nhiều lớp [12, 16] ........................................... 14
2.4.1. Mô hình một nơ-ron .....................................................................................15
2.4.2. Mô hình mạng nơ-ron ..................................................................................17
2.5. Công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL [1] ................................. 20
2.5.1. Công nghệ FPGA ......................................................................................... 20
2.5.2. Ngôn ngữ mô tả phần cứng VHDL .............................................................. 22
2.6. Thực hiện các phép toán số thực dấu phẩy động trên FPGA ................................. 24
2.6.1. Thư viện mã nguồn mở FloPoCo [13] ......................................................... 24


2.6.2. Các phép toán số thực dấu phẩy động trên FPGA .......................................25
2.7. Thực hiện các phép toán cơ sở cho mạng nơ-ron [2, 6] ......................................... 29
2.7.1. Bộ nhân cộng tích lũy MAC ........................................................................29
2.7.2. Bộ thực hiện hàm truyền Logsigmoid .......................................................... 31
2.8. Kết luận chương ..................................................................................................... 32
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 ................................... 33
3.1. Mở đầu chương ....................................................................................................... 33
3.2. Kiến trúc của một nơ-ron [6] .................................................................................. 33
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 ..................... 35
3.4. 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 ........................ 36
3.4.1. Khối nơ-ron tính toán Hardware_Layer .......................................................36
3.4.2. Khối điều khiển Control Unit.......................................................................40
3.4.3. Kết quả mô phỏng ........................................................................................ 42

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................................................................................................................ 44
3.6. Kết luận chương ..................................................................................................... 46
CHƯƠNG 4 - THỰC HIỆN VÀ ĐÁNH GIÁ ........................................................... 47
4.1. Mở đầu chương ....................................................................................................... 47
4.2. Quy trình thiết kế và thực hiện mạng nơ-ron nhân tạo trên FPGA ........................ 47
4.2.1. Huấn luyện các mạng nơ-ron trên MatLab ..................................................48
4.2.2. Tạo mã chương trình mô tả phần cứng VHDL cho các mạng ANN ...........48
4.2.3. Tổng hợp và mô phỏng ................................................................................49
4.2.4. Thực thi trên phần cứng ...............................................................................49
4.3. Các thông số (tiêu chí) đánh giá và các trường hợp đánh giá ................................ 49
4.4. Kết quả thực nghiệm............................................................................................... 50
4.4.1. Kết quả huấn luyện các mạng nơ-ron nhân tạo trên MatLab .......................50
4.4.2. Kết quả tổng hợp và mô phỏng ....................................................................52
4.4.3. Kết quả thực thi trên phần cứng ...................................................................54
4.4.4. So sánh với một số kết quả nghiên cứu khác ...............................................59
4.5. Kết luận chương ..................................................................................................... 60
KẾT LUẬN VÀ ĐỀ XUẤT ......................................................................................... 61


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Tiếng Anh

Dịch nghĩa Tiếng Việt

ALUs

Arithmetic Logic Units


Các đơn vị logic số học

ANN

Artifical Neural Network

Mạng nơ-ron nhân tạo

ASIC

Application Specific Intergrated Circuit

Mạch tích hợp chuyên dụng

BSB

Base System Builder

Bộ xây dựng hệ thống cơ sở

CLB

Configurable Logic Blocks

Các khối logic cấu hình
được

CNN


Convolutional Neural Network

Mạng nơ-ron nhân tạo tích
chập

DSP

Digital Signal Processing

Xử lý tín hiệu số

Erasable Programmable Read Only
Memory

Bộ nhớ chỉ đọc có thể lập
trình và xóa được

FPGA

Field Programmable Gate Array

Mảng cổng lập trình được

FSM

Finite State Machine

Máy trạng thái hữu hạn

HDL


Hardware Description Language

Ngôn ngữ mô tả phần cứng

Input/Output

Đầu vào/Đầu ra

Institute of Electrical and Electronics
Engineers

Viện kỹ nghệ Điện – Điện
tử

IP

Intellectual Property

Sở hữu trí tuệ

LMS

Least Means Square

Trung bình bình phương tối
thiểu

MAC


Multiply Accumulator

Bộ nhân cộng tích lũy

Multi Hardware Layer Artifical Neural
Network

Mạng nơ-ron nhân tạo nhiều
lớp tính toán phần cứng

PCA

Principal Component Analysis

Phân tích thành phần chính

PLB

Processor Local Bus

Bus nội bộ vi xử lý

RAM

Random Access Memory

Bộ nhớ truy xuất ngẫu nhiên

RTL


Register Transfer Level

Mức chuyển thanh ghi

EPROM

I/O
IEEE

MHL_ANN


Single Hardware Layer Artifical Neural
Network

Mạng nơ-ron nhân tạo một
lớp tính toán phần cứng

UART

Universal Asychronous Receiver
Transmitter

Bộ truyền nhận nối tiếp
không đồng bộ vạn năng

VHDL

VHSIC (very high speed integrated
circuit) Hardware Description Language


Ngôn ngữ mô tả phần cứng
cho mạch tích hợp tốc độ
cao

VLSI

Very Large Scale Integration

Tích hợp mật độ rất cao

SHL_ANN


DANH MỤC CÁC BẢNG
Số hiệu
bảng

Tên Bảng

Trang

2.1

Một số hàm truyền thông dụng

15

3.1


Các tín hiệu vào ra khối Hardware Layer

37

3.2

Các tín hiệu vào ra khối Control Unit

40

3.3

Các tín hiệu vào ra kiến trúc SHL_ANN

42

4.1

Tài nguyên board mạch FPGA Virtex-5 XC5VLX-110T

49

4.2

Chi tiết độ sử dụng tài nguyên của FPGA

52

4.3


Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng và tỉ lệ nhận dạng trên
board mạch Virtex-5 XC5VLX-110T

53

4.4

Tỉ lệ sử dụng tài nguyên, tốc độ nhận dạng và tỉ lệ nhận dạng trên
board mạch ZynQ-7 7Z045

53

4.5

Tỉ lệ sử dụng tài nguyên, tần số hoạt động và tỉ lệ nhận dạng của
các hệ thống nhúng trên FPGA Virtex-5

57

4.6

So sánh kết quả đạt được với một số nghiên cứu khác

59


DANH MỤC CÁC HÌNH
Số hiệu
hình


Tên hình

Trang

1.1

Cấu trúc minh họa của một nơ-ron sinh học [20]

5

1.2

Chip SyNAPSE của IBM (2014) [17]

8

1.3

Deep Neural Network Processor của KAIST (2017) và các
ứng dụng [19]

8

2.1

Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN

10

2.2


Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN
không có khối trích chọn đặc trưng

11

2.3

Cấu trúc của một nơ-ron nhân tạo

11

2.4

Mạng nơ-ron một lớp gồm N đầu vào và M nơ-ron [10]

12

2.5

Mô hình mạng nơ-ron 3 lớp [10]

13

2.6

Mô hình mạng nơ-ron 2 lớp

18


2.7

Kiến trúc tổng quát của FPGA

21

2.8

Sơ đồ khối bộ cộng

25

2.9

Dạng sóng bộ cộng

26

2.10

Sơ đồ khối bộ nhân

26

2.11

Dạng sóng bộ nhân

27


2.12

Sơ đồ khối bộ chia

27

2.13

Dạng sóng của bộ chia

28

2.14

Sơ đồ khối bộ thực hiện hàm mũ

28

2.15

Dạng sóng của bộ thực hiện hàm mũ

29

2.16

Sơ đồ khối bộ nhân cộng tích lũy MAC

29


2.17

Sơ đồ khối mức thanh ghi RTL bộ nhân cộng tích lũy MAC

30

2.18

Dạng sóng bộ nhân cộng tích lũy MAC

30

2.19

Sơ đồ khối hàm truyền Logsigmoid

31

2.20

Sơ đồ khối mức thanh ghi RTL hàm Logsigmoid

31

2.21

Dạng sóng bộ thực hiện hàm truyền Logsigmoid

32


3.1

Sơ đồ khối kiến trúc của nơ-ron [6]

33

3.2

Sơ đồ khối mức chuyển thanh ghi RTL một nơ-ron

34

3.3

Dạng sóng thực hiện một nơ-ron

35

3.4

Sơ đồ khối chức năng của kiến trúc MHL-ANN

35


3.5

Sơ đồ khối chức năng của kiến trúc SHL-ANN

36


3.6

Sơ đồ khối RTL của khối nơ-ron tính toán Hardware Layer

37

3.7

Sơ đồ khối RTL chi tiết của khối Hardware_Layer

39

3.8

Sơ đồ khối RTL của khối điều khiển Control Unit

40

3.9

Sơ đồ máy trạng thái FSM của khối điều khiển

41

3.10

Sơ đồ khối RTL của kiến trúc SHL_ANN

43


3.11

Dạng sóng thực hiện mạng nơ-ron

44

3.12

Sơ đồ khối quá trình tạo mã VHDL

45

4.1

Qui trình thiết kế và thực hiện mạng ANN trên FPGA

47

4.2

Sơ đồ khối quá trình huấn luyện trên Matlab

48

4.3

Kết quả huấn luyện trên Matlab các mạng có 12 nơ-ron
trong lớp ẩn


51

4.4

Kết quả huấn luyện trên Matlab các mạng có 40 nơ-ron
trong lớp ẩn

51

4.5

Kết quả huấn luyện trên Matlab các mạng có 126 nơ-ron
trong lớp ẩn

52

4.6

So sánh tỉ lệ sử dụng tài nguyên FPGA Virtex-5 và tỉ lệ
nhận dạng của các kiến trúc MHL_ANN và SHL_ANN

54

4.7

Sơ đồ khối RTL lõi IP DNN_IP_TOPMODULE

55

4.8


Hệ thống kiểm tra và đánh giá sự thực hiện của lõi IP trên
FPGA Virtex-5 trong bài toán nhận dạng chữ số viết tay

56

4.9

Mô hình thực thi kiến trúc SHL_ANN trên board FPGA

57

4.10

Kết quả nhận dạng của IP core 785-12-12-10 thu được trên
phần mềm Hercules

58

4.11

Kết quả nhận dạng của IP core 785-40-40-10 thu được trên
phần mềm Hercules

58


1

MỞ ĐẦU

1. Tính cấp thiết của đề tài
Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) được nghiên cứu từ
rất sớm vào đầu thế kỷ 20 với sự đóng góp của rất nhiều nhà khoa học nhằm mô phỏng
mạng nơ-ron sinh học của con người. Từ những năm 1980s, cùng với những phát kiến
mới quan trọng như thuật toán lan truyền ngược dùng để huấn luyện mạng nơ-ron đa
lớp và sự phát triển mạng mẽ của khoa học máy tính, công cụ phần cứng để thực hiện
tính toán, mạng nơ-ron nhân tạo đã phát triển bùng nổ và được ứng dụng trong nhiều
lĩnh vực khác nhau trong cuộc sống. Mạng nơ-ron nhân tạo không cung cấp tất cả giải
pháp cho mọi vấn đề, nhưng trong những tình huống thích hợp nó là công cụ rất hữu
hiệu để giải quyết vấn đề hiệu quả hơn so với khi sử dụng các phương pháp khác.
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ệ
như: ngành hàng không (chế độ lái tự động, mô phỏng đường bay,…), y tế (phân tích
điện não đồ và điện tâm đồ, phân tích tế bào ung thư,,…), tài chính (tư vấn cho vay,
phân tích tài chính doanh nghiệp), nhận dạng mẫu (nhận dạng tiếng nói, nhận dạng
khuôn mặt, nhận dạng chữ số viết tay,…).
Mạng nơ-ron nhân tạo được thực hiện chủ yếu trên phần mềm. Điều này có lợi
thế là người thiết kế không cần phải biết chi tiết các hoạt động bên trong các phần tử
mạng nơ-ron mà chỉ tập trung vào các ứng dụng của mạng nơ-ron. Tuy nhiên, các ứng
dụng yêu cầu thời gian đáp ứng nhanh hoặc thời gian thực của ANNs dựa trên phần
mềm thực hiện chậm hơn so với các ANNs dựa trên phần cứng. Kiến trúc mạng 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ắc khe về tốc độ trong ứng dụng thời gian thực và tính toán hiệu năng cao, kiến
trúc ANN cần được thực thi trên phần cứng song song.
Mạng nơ-ron nhân tạo có thể được thực hiện theo công nghệ ASIC/VLSI nhưng
thường rất đắt đỏ và tiêu tốn thời gian thiết kế chip rất lớn. Một nền tảng phần cứng
khác hiện đang được khai thác là FPGA (Field Programmable Gate Array). FPGA là
các vi mạch tích hợp chuyên dụng được thiết kế với tính năng cơ bản là khả năng cấu
hình lại và khả năng thực hiện các phép tính toán số học và logic với tốc độ cao. Ngoài
khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗ trợ tái cấu trúc
cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi vẫn đảm bảo hoạt

động bình thường cho các bộ phận khác. Các vi mạch này được sử dụng một cách rộng
rãi trong các thiết bị công nghiệp cũng như dân dụng hiện nay như các bộ vi điều
khiển, các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng
nói, mô hình phần cứng máy tính, máy đánh cờ,... Do đó, khi 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.


2

Hiện nay, những mạng nơ-ron sâu (Deep Neural Network - DNN) với từ 2 lớp
ẩn trở lên cho phép mô hình hóa các bài toán và dữ liệu phức tạp hơn so với những
mạng nơ-ron nông (shallow neural network) truyền thống với chỉ 1 lớp ẩn. Mạng nơron sâu - cùng với mạng nơ-ron tích chập (Convolutional Neural Network - CNN) do
vậy hứa hẹn khả năng ứng dụng mạnh mẽ trong nhận dạng mẫu cũng như trong lĩnh
vực thị giác máy tính (Computer Vision) và học sâu (Deep Learning) trong những năm
gần đây. Tuy nhiên, 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 (số lượng trọng số) dẫn đến kích cỡ mạng có thể có từ hàng trăm đến
hàng nghìn nơ-ron với hàng triệu trọng số, 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.
- 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,


3

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ó.
- Huấn luyện mạng nơ-ron nhân tạo nhiều lớp trong bài toán nhậ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: Trong chương này sẽ giới thiệu tổng quan về mạng nơron nhân tạo, ứng dụng mạng nơ-ron nhân tạo trong nhận dạng mẫu cũng như
việc triển khai mạng nơ-ron nhân tạo trên phần cứng và giới thiệu các nghiên cứu
đã thực hiện trên thế giới. Chương này cũng xác định mục tiêu, phạm vi và
nhiệm vụ cụ thể của đề tài.
 Chương 2 - Cơ sở hiện thực hóa mạng nơ-ron nhân tạo trên FPGA: Trong
chương này sẽ trình bày những vấn đề cần quan tâm khi triển khai mạng nơ-ron
nhân tạo trên FPGA bao gồm: hệ thống nhận dạng mẫu trên mạng nơ-ron nhân
tạo, 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,
huấn luyện mạng nơ-ron nhân tạo nhiều lớp sử dụng thuật toán lan truyền ngược
BP với SGD, công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL cũng như


4

giới thiệu thư viện nguồn mở FLoPoCo và các phép toán số thực dấu phẩy động
trên FPGA, các phép toán cơ sở để thực hiện mạng nơ-ron nhân tạo. Đây là

những cơ sở lý thuyết quan trọng làm tiền đề cho việc xây dựng kiến trúc mạng
nơ-ron nhân tạo trong chương 3.
 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 này mở đầu bằng việc trình bày kiến
trúc một nơ-ron nhân tạo, sau đó giới thiệu và mô tả hoạt động của hai kiến trúc
mạng nơ-ron nhân tạo, đó là: i) 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) và ii) kiến trúc mạng nơ-ron nhân tạo với chỉ một
lớp tính toán phần cứng (SHL_ANN). Một công cụ tự động dựa trên Matlab để
tự động tạo mã mô tả phần cứng VHDL cho 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 được cũng sẽ được giới thiệu trong chương này.
 Chương 4 - Thực hiện và đánh giá: Nội dung chương trình bày qui trình thiết
kế và thực hiện mạng nơ-ron nhân tạo trên FPGA, xây dựng các thông số đánh
giá hiệu năng của kiến trúc mạng và các kết quả thực nghiệm thông qua tổng
hợp, mô phỏng và thực thi trên phần cứng, đồng thời so sánh kết quả đạt được
với một số kết quả nghiên cứu khác.


5

CHƯƠNG 1-TỔNG QUAN
1.1. Mạng nơ-ron sinh học
Bộ não con người và hoạt động của hệ thần kinh nói chung đã được quan tâm
nghiên cứu từ rất lâu nhưng cho đến nay các nhà khoa học vẫn chưa thực sự hiểu rõ
chi tiết về hoạt động của bộ não và hệ thần kinh, đặc biệt là trong các hoạt động liên
quan đến trí óc như suy nghĩ, học tập, tư duy, trí nhớ, sáng tạo… Tuy nhiên, các nhà
khoa học cũng có một số thông tin căn bản về bộ não con người. Theo đó, một bộ não
con người trung bình cân nặng khoảng 1,5 kg và có thể tích là 235 cm3, cấu tạo bộ não
được chia ra làm nhiều vùng khác nhau, mỗi vùng kiểm soát một hay nhiều hoạt động
của con người. Hoạt động của cả hệ thống thần kinh bao gồm não bộ và các giác quan
như sau: đầu tiên con người nhận được kích thích bởi các giác quan từ bên ngoài hoặc

trong cơ thể. Các kích thích này được biến thành các xung điện bởi chính các giác
quan tiếp nhận kích thích. Những tín hiệu này được chuyển về trung ương thần kinh là
bộ não để xử lý. Tại bộ não các thông tin sẽ được xử lý, đánh giá và so sánh với các
thông tin đã được lưu trữ để đưa ra các quyết định dưới dạng các xung điện. Từ những
quyết định từ bộ não sẽ sinh ra các mệnh lệnh cần thiết và gửi đến những bộ phận thi
hành thích hợp như các cơ tay, chân, giác quan…. [20]
Khi xem xét ở mức độ tế bào thì bộ não được hình thành từ 1011 phần tử gọi là
nơ-ron. Mỗi nơ-ron được liên kết chặt chẽ với 104 nơ-ron. Các nơ-ron này có nhiều
đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng có những khả năng
mà các tế bào khác không có được đó là khả năng nhận, xử lý và truyền các tín hiệu
điện hóa làm cơ sở hình cách thức xử lý thông tin của bộ não. Hình 1.1 mô tả cấu tạo
và cách thức hoạt động của nơ-ron sinh học, trong đó nơ-ron sinh học có 4 thành phần
cơ bản: Thân nơ-ron (cell body) chứa nhân (nucleus) hay một số tài liệu gọi là soma có
nhiệm vụ chính là tổng hợp và xử lý các tín hiệu điện nhận vào từ các đầu vào. Bản
chất của quá trình này chính là việc lấy tổng tất cả các tín hiệu nơ-ron nhận được.

Hình 1.1. Cấu trúc minh họa của một nơ-ron sinh học [20]


6



Các nhánh tín hiệu vào (denrites) đây chính là các mạng dạng cây của các dây
thần kinh truyền tín hiệu vào đến thân nơ-ron.



Sợi trục ra (axon) có chức năng truyền tín hiệu từ thân tế bào này sang nơ-ron
khác. Phần cuối của axon được chia thành nhiều nhánh nhỏ (cả của denrites và

axon) kết thúc tại khớp nối (Synapse).



Khớp nối (Synapse) là điểm liên kết giữa sợi trục ra của nơ-ron này với các
nhánh denrites của nơ-ron khác. Liên kết giữa các nơ-ron và độ nhạy của mỗi
synapse được xác định bởi quá trình học phức tạp. Khi điện thế của synapses
tăng lên do xung điện phát ra từ axon thì synapses sẽ tiết ra một loại hóa chất để
kết nối mở ra cho các ion đi qua nó. Các ion này làm thay đổi tín hiệu điện thế
trên các điểm tiếp xúc tạo ra các xung điện lan truyền tới các nơ-ron khác.

Một cách tổng quát nơ-ron sinh học hoạt động theo cách thức sau: nơ-ron nhận
tín hiệu đầu vào từ các denrites sau đó xử lý các tín hiệu này tại nhân nơ-ron mà cụ thể
hơn là lấy tổng tất cả các tín hiệu đầu vào mà nó nhận được sau đó phát ra một tín hiệu
điện thế; nếu tổng tất cả các tín hiệu điện lớn hơn một ngưỡng cho phép nào đó thì xử
lý và cho ra một tín hiệu đầu ra. Tín hiệu đầu ra này được truyền qua axon và chính là
tín hiệu đầu vào của một nơ-ron khác.
1.2. Mạng nơ-ron nhân tạo
Dựa trên cấu trúc và cách thức hoạt động của nơ-ron sinh học, các nhà nghiên
cứu đã đề xuất mô hình nơ-ron nhân tạo và mạng nơ-ron nhân tạo. Mạng nơ-ron nhân
tạo (Artificial Neural Network - ANN) là một mô hình toán học hay mô hình tính toán
được phỏng theo cách thức xử lý thông tin của các nơ-ron sinh học cụ thể hơn ở đây là
bộ não con người. Thành phần cơ bản của ANN là nơ-ron nhân tạo có cách thức hoạt
động và xử lý tương tự nơ-ron sinh học. ANN được hình thành từ số lượng lớn các nơron nhân tạo được liên kết với nhau theo cấu trúc từng lớp với các nơ-ron kết nối với
nhau giữa các lớp thông qua các liên kết có trọng số.
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)

trong đó: 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; xk+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. Quá trình học


7

(thông thường với thuật toán lan truyền ngược) trong mạng nơ-ron phức tạp hơn nhiều
so với quá trình lan truyền. Mô hình tính toán chi tiết của ANN sẽ được trình bày trong
chương tiếp theo.
Mạng nơ-ron nhân tạo đã và đang được ứng dụng rộng khắp trong nhiều lĩnh vực
khác nhau trong khoa học tự nhiên và kỹ thuật, đến các ứng dụng trong khoa học kinh
tế và khoa học xã hội. Thông thường, ANN được sử dụng như một cơ chế xấp xỉ hàm
tùy ý có thể đạt được thông qua việc “học” các dữ liệu quan sát đã biết. Bên cạnh đó,
ANN cũng là công cụ mô hình hóa dữ liệu thống kê phi tuyến và có thể được dùng để
mô hình hóa các mối quan hệ phức tạp giữa dữ liệu vào và ra. Một lĩnh vực ứng dụng
phổ biến là sử dụng ANN trong nhận dạng mẫu (Pattern Recognition) và đây hiện
đang là một trong những hướng nghiên cứu và ứng dụng dành được nhiều sự quan tâm
của giới khoa học, cũng chính là hướng nghiên cứu mà luận văn tập trung vào.
1.3. Thực hiện mạng nơ-ron nhân tạo trên phần cứng
Rất phổ biến, mạng nơ-ron nhân tạo thông thường được thực thi bằng các chương
trình phần mềm từ đơn giản đến các phần mềm chuyên nghiệp trên các máy tính đa
mục đích (general-purpose computers) trong nhiều ứng dụng trong thực tế, cho phép

người thiết kế chỉ cần tập trung vào các thuật toán huấn luyện cũng như ứng dụng của
mạng mà chưa quan tâm nhiều đến yếu tố thời gian xử lý hay thời gian huấn luyện
mạng. Ngày nay, xu thế sử dụng các thiết bị nhúng thông minh có tích hợp chức năng
nhận dạng và phân loại đang gia tăng, đòi hỏi sự tích hợp của các chip thông minh
thực hiện chức năng nhận dạng vào các thiết bị này, ví dụ kiến trúc mạng nơ-ron nhân
tạo trên phần cứng nhúng và hệ thống nhúng để đạt được những yêu cầu khắt khe về
tốc độ xử lý, hiệu năng, tối thiểu công suất tiêu thụ. Hơn thế nữa, mạng nơ-ron yêu cầu
một khối lượng tính toán song song khổng lồ, để đáp ứng những yêu cầu khắt khe về
tốc độ, mạng nơ-ron cần được thực thi trên những nền tảng phần cứng song song.
Cùng với sự phát triển mạnh mẽ của công nghiệp bán dẫn, các thực hiện mạng nơ-ron
nhân tạo trên phần cứng đã và đang được nghiên cứu và phát triển trong suốt vài thập
kỷ qua. Các công trình nghiên cứu trên thế giới nhằm thiết kế, thử nghiệm và triển
khai kiến trúc mạng nơ-ron trên chip phần cứng đã được tiến hành. Các công nghệ
được lựa chọn để nghiên cứu và thực thi kiến trúc mạng nơ-ron nhân tạo ANN là công
nghệ FPGA (Field Programmable Gate Array) và công nghệ ASIC (ApplicationSpecific Integrated Circuit).
Các nghiên cứu liên quan trong lĩnh vực này được tổng hợp trong [8, 9]. Các kết
quả nghiên cứu trên thế giới đã được công bố, và cũng như thương mại hóa gần đây.
Tháng 8/2014, hãng IBM giới thiệu SyNAPSE Chip [17] với kiến trúc gồm một triệu
nơ-ron, lĩnh vực ứng dụng của chip mới này là các ứng dụng tính toán thông minh hiệu
năng cao liên quan đến học máy (xem Hình 1.2). Bên cạnh đó, các vi mạch chuyên
dụng thực thi chức năng của mạng nơ-ron nhân tạo hiện vẫn đang tiếp tục được nghiên


8

cứu và phát triển trên thế giới, chẳng hạn Neural Network Chip của General Vision
[18], vi mạch ASIC thực hiện mạng nơ-ron tích chập của viện KAIST - Hàn Quốc [19]
vừa được công bố đầu năm 2017 (xem Hình 1.3), hay các công trình nghiên cứu và
thực hiện mạng nơ-ron trên nền tảng FPGA được công bố gần đây như trong [3, 4, 5].


Hình 1.2 Chip SyNAPSE của IBM (2014) [17]

Hình 1.3 Deep Neural Network Processor của KAIST (2017) và các ứng dụng [19]


9

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 offline 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 (fixedpoint 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 dữ 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
Tại Việt Nam, việc ứng dụng mạng nơ-ron nhân tạo trong các bài toán nhận dạng
mẫu đã được nghiên cứu, ứng dụng và thực thi phổ biến trên các máy tính đa mục
đích. Tuy nhiên, theo tìm hiểu của tác giả thì các đề tài và công trình nghiên cứu phát
triển kiến trúc chip mạng nơ-ron nhân tạo ánh xạ trên nền tảng phần cứng FPGA hoặc
hướng đến công nghệ ASIC ở trong nước hiện đang còn khá mới mẻ.
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ế.


10

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
Chương này sẽ trình bày những vấn đề cơ bản về mạng nơ-ron nhân tạo trên
FPGA trong bài toán nhận dạng mẫu, bao gồm hệ thống nhận dạng mẫu trên mạng nơron nhân tạo, 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, huấn luyện mạng nơ-ron nhân tạo nhiều lớp sử dụng thuật toán lan truyền ngược
BP (Back Propagation) với SGD (stochastic gradient descent), công nghệ FPGA và
ngôn ngữ mô tả phần cứng VHDL cũng như giới thiệu thư viện nguồn mở FLoPoCo
và các phép toán số thực dấu phẩy động trên FPGA. Phần cuối chương sẽ giới thiệu
các phép toán cơ sở để thực hiện mạng nơ-ron nhân tạo trên FPGA. Đây là những cơ
sở lý thuyết quan trọng làm tiền đề cho việc xây dựng kiến trúc mạng nơ-ron nhân tạo
trong chương 3.
2.2. Hệ thống nhận dạng mẫu dựa trên mạng nơ-ron nhân tạo
Sơ đồ khối chức năng của một hệ thống phần cứng nhận dạng mẫu trên mạng nơron nhân tạo ANN điển hình được hiển thị trong hình 2.1, bao gồm hai khối: khối trích
chọn đặc trưng với kỹ thuật phân tích thành phần chính (PCA) và khối nhận dạng sử
dụng mạng nơ-ron nhân tạo ANN. Mục tiêu của PCA là giảm số chiều của một tập
vec-tơ sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất. PCA tìm ra tập các
thành phần trực giao để tối thiểu hóa các lỗi trong dữ liệu được xây dựng lại. Khối
trích chọn đặc trưng là không bắt buộc và thường được sử dụng khi tài nguyên máy
tính và lưu trữ phần cứng của ANN có phần hạn chế, như được trình bày trong [6].

Dữ liệu
đầu vào


Trích chọn
đặc trưng sử
dụng PCA

thành phần
cơ bản

Nhận dạng sử
dụng mạng
nơ-ron nhân
tạo ANN

Kết quả
nhận dạng

Hình 2.1. Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN [3]
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 hiệ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 không có khối trích chọn đặc trưng như hình 2.2.


11

Dữ liệu
đầu vào

Nhận dạng sử
dụng mạng

nơ-ron nhân
tạo ANN

Kết quả
nhận dạng

Hình 2.2. Sơ đồ khối chức năng hệ thống nhận dạng sử dụng ANN
không có khối trích chọn đặc trưng
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.
x1
x2

xN

w1
w2



t

f

r

wN


b
Hình 2.3. Cấu trúc của một nơ-ron nhân tạo
Một nơ-ron nhân tạo gồm có các thành phần cơ bản sau:
 Tập các đầu vào x1, x2,..., xN: Là các tín hiệu vào (input signals) của nơ-ron, các
tín hiệu này thường được đưa vào dưới dạng một vec-tơ N chiều.
 Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số liên
kết – Synaptic weight). Thông thường các trọng số này được khởi tạo một cách
ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình
học mạng.
 Bộ tổng (Summing function-): Thường dùng để tính tổng của tích các đầu vào
với trọng số liên kết của nó.
 Ngưỡng (còn gọi là độ lệch - b): Ngưỡng này thường được đưa vào bộ tổng.


12

 Hàm truyền (Transfer function - f): Hàm này được dùng để giới hạn phạm vi đầu
ra của mỗi nơ-ron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho.
Thông thường, phạm vi đầu ra của mỗi nơ-ron được giới hạn trong đoạn [0,1] hoặc
[-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến.
Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của
người thiết kế mạng. Một số hàm truyền thường sử dụng trong các mô hình mạng
nơ-ron được đưa ra trong Bảng 2.1.
 Đầu ra r: Là tín hiệu đầu ra của một nơ-ron, với mỗi nơ-ron sẽ có một đầu ra.
Xét về 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:
𝑡 = ∑𝑁
𝑗=1 𝑤𝑗 ∗ 𝑥𝑗 + 𝑏

(2.1)


r = 𝑓 (t )

(2.2)

Trong đó:
- x1, x2, ..., xN: là các tín hiệu vào;
- w1, w2 ,..., wN là các trọng số liên kết của nơ-ron;
- b là ngưỡng; f là hàm truyền; r là tín hiệu đầu ra của nơ-ron;
Như vậy tương tự như nơ-ron sinh học, nơ-ron nhân tạo cũng nhận các tín hiệu đầu
vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi
gửi kết quả tới hàm truyền) và cho một tín hiệu đầu ra (là kết quả của hàm truyền).
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
w1,1



x1

t1

f

r1

t2

f


r2

tM

f

rM

b1

x2

1


x3

b2
1

xN
wM,N


bM
1

Hình 2.4. Mạng nơ-ron một lớp gồm N đầu vào và M nơ-ron [10]



13

Hình 2.4 là mô hình mạng nơ-ron nhân tạo một lớp gồm N đầu vào và M nơ-ron.
Các thông số đầu vào của mạng gồm có ma trận trọng số W, các bộ tổng, vec-tơ
ngưỡng b, các hàm truyền f và một vec-tơ đầu ra là r.
Các vec-tơ đầu vào đưa vào mạng qua ma trận trọng số W có dạng:
𝑤1,1 𝑤1,2 … 𝑤1,𝑁
𝑤2,2 … 𝑤2,𝑁 ]
2,1
𝑾 = [ 𝑤…



𝑤𝑀,1 𝑤𝑀.2 … 𝑤𝑀,𝑁
Đầu ra của bộ tổng:
𝑡1
𝑤1,1
𝑡2
2,1
[ … ] = [ 𝑤…
𝑤𝑀,1
𝑡𝑀

… 𝑤1,𝑁 𝑥1
… 𝑤2,𝑁 𝑥2
… ][…] +

… 𝑤𝑀,𝑁 𝑥𝑁

𝑤1,2

𝑤2,2

𝑤𝑀.2

𝑏1
𝑏2
[ ]

𝑏𝑀

Và lúc này đầu ra của mạng nơ-ron
𝑟1
𝑡1
𝑤1,1
𝑟1
𝑡
2,1
[ … ] = 𝑓([ …1 ]) = 𝑓([ 𝑤…
𝑤𝑀,1
𝑟𝑀
𝑡𝑀

𝑤1,2
𝑤2,2

𝑤𝑀.2

… 𝑤1,𝑁 𝑥1
𝑏1
𝑥

… 𝑤2,𝑁
𝑏2
1
… ] [ … ] + [ … ])

… 𝑤𝑀,𝑁 𝑥𝑀
𝑏𝑀

Vector đầu ra của mạng nơ-ron ở dạng ma trận:
r = f(Wx + b)

(2.3)

2.3.2.2. Mạng nơ-ron nhiều lớp
w11,1

t11



x1

f1

r11 w21,1



b11


t12

f1

r1 2



b1M1
1

f1

r1M1
w2M2,M1



f3

r3 1

b31

t22

f2

r2 2


t32



f3

r3 2

b32

1
t1M1

t31



b2 2

1
w1M1,N

w31,1

1



b12


xN

r2 1

1


x3

f2

b2 1

1

x2

t21

1
t2M2

b2M2

f2

r2M2
w2M3,M2

1


Hình 2.5. Mô hình mạng nơ-ron 3 lớp [10]



t3M3

b3M3
1

f3

r3M3


14

Một mạng nơ-ron nhiều lớp gồm các đầu vào, các lớp ẩn và một lớp ra. Hình 2.5
là mô hình của mạng nơ-ron gồm N đầu vào, 2 lớp ẩn và 1 lớp ra với số nơ-ron trong
các lớp lần lượt là M1, M2 và M3. Các đầu vào của mạng là vec-tơ x, các ma trận trọng
số W1, W2 và W3 và các vector ngưỡng b1, b2 và b3.
Công thức tính toán đầu ra cho mạng nơ-ron theo qui tắc lan truyền tới. Đầu ra
của lớp thứ nhất là vector r1 được xác định như công thức (2.4) và trở thành đầu vào
của lớp thứ hai, đầu ra của lớp thứ 2 là vector r2 trở thành đầu vào của lớp thứ 3 và
cuối cùng tính toán được vector đầu ra r3 của mạng nơ-ron.
Từ kết quả đầu ra của từng lớp:
r1 = f1(W1x + b1)
r2 = f2(W2r1 + b2)
r3 = f3(W3r2 + b3)
Ta có kết quả đầu ra của cả mạng nơ-ron:

r3 = f3(W3 f2(W2f1(W1x + b1) + b2) + b3)
Một mạng nơ-ron nhiều lớp có thể gồm một hoặc nhiều lớp ẩn. Số lượng nơ-ron
trong lớp ẩn tùy thuộc vào mỗi bài toán và yêu cầu về chức năng của mạng.
2.3.3. Hàm truyền
Các hàm truyền hay còn gọi là hàm kích hoạt f trong ANN chủ yếu là các hàm
phi tuyến. Mạng ANN lan truyền thẳng nhiều lớp thường sử dụng hàm phi tuyến để
làm hàm truyền tại mỗi đầu ra của nơ-ron. Một vài hàm truyền hay sử dụng được trình
bày trong Bảng 2.1 [10].
2.4. Huấn luyện mạng nơ-ron nhân tạo nhiều lớp [12, 16]
Một mạng nơ-ron được huyấn luyện sao cho với một tập các vec-tơ đầu vào x,
mạng có khả năng tạo ra tập các vec-tơ đầu ra mong muốn r của nó. Tập x được sử
dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set). Các phần tử x
thuộc x được gọi là các mẫu huấn luyện (training example). Quá trình huấn luyện bản
chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng số
của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vec-tơ đầu vào x từ tập huấn
luyện, mạng sẽ cho ra vec-tơ đầu ra r như mong muốn.
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).


15

Hàm truyền

Symmetrical Hard Limit
(hardlims)

Đồ thị


Định nghĩa

y = - 1 khi x < 0
y = +1 khi x ≥ 0

Linear (purelin)

y=x

y = 0 khi x < 0
Saturating Linear (satlin)

y=x

0≤x≤1

y=1

Log-Sigmoid (logsig)

y=

x>1

1
1+e−x

Bảng 2.1. Một số hàm truyền thông dụng
Về cơ bản, thuật toán lan truyền ngược là dạng tổng quát của thuật toán trung

bình bình phương tối thiểu (Least Means Square - LMS). Thuật toán này thuộc dạng
thuật toán xấp xỉ để tìm các điểm mà tại đó hiệu năng của mạng là tối ưu. Chỉ số tối ưu
thường được xác định bởi một hàm số của ma trận trọng số và các đầu vào nào đó mà
trong quá trình tìm hiểu bài toán đặt ra.
2.4.1. Mô hình một nơ-ron
Một nơ-ron nhân tạo (hình 2.3) là một hàm ánh xạ vector đầu vào {x1, x2...,xK}
thành đầu ra vô hướng r thông qua vector trọng số {w1,w2, ...,wK}, ngưỡng b và hàm
phi tuyến f. Một phần tử có giá trị x0= 1 được thêm vào vector đầu vào tương ứng với
phần tử trọng số w0 = b thêm vào vector trọng số. Các công thức (2.1), (2.2) được viết
lại thành:


×