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

Thiết kế bộ vi xử lý nhúng trên FPGA ứng dụng trong kỹ thuật mạng neurol

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 (1.67 MB, 112 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN THẾ ĐẠI DƯƠNG

THIẾT KẾ BỘ VI XỬ LÝ NHÚNG TRÊN
FPGA ỨNG DỤNG TRONG KỸ THUẬT
MẠNG NEURON

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

LUẬN VĂN THẠC SĨ

Tp. Hồ Chí Minh, tháng 7 năm 2007


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học

: PGS.TS Lê Tiến Thường
PGS.TS Nguyễn Đức Phong

Cán bộ chấm nhận xét 1

: ……………………………..

Cán bộ chấm nhận xét 2


: ……………………………..

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 07 tháng 07 năm 2007


TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

PHÒNG ĐÀO TẠO SĐH

ĐỘC LẬP – TỰ DO – HẠNH PHÚC
Tp. HCM, ngày . . . . tháng . . . . năm 2007

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên

: Nguyễn Thế Đại Dương

Phái: Nam

Ngày, tháng, năm sinh : 05/12/1982

Nơi sinh: Biên Hòa

Chuyên ngành

MSHV:01405302


: Kỹ thuật điện tử

I- TÊN ĐỀ TÀI: Thiết kế bộ vi xử lý nhúng trên FPGA ứng dụng trong kỹ thuật mạng
neuron
II- NHIỆM VỤ VÀ NỘI DUNG:



Tìm hiểu cơ sở lý thuyết mạng neuron, thuật tốn huấn luyện, tìm hiểu kiến
trúc của vi xử lý và phương pháp thiết kế một bộ vi xử lý nhúng.



Xây dựng giải pháp thiết kế bộ vi xử lý phù hợp với cấu trúc mạng neuron.
Cài đặt thiết kế theo giải pháp trên bằng ngôn ngữ VHDL hoặc VeriLog. Mơ
phỏng trên máy tính. Tổng hợp mã nguồn và cài đặt trên FPGA Virtex II Pro.



Thiết kế ứng dụng và chương trình thử nghiệm, đánh giá kết quả, nhận xét và
tổng hợp báo cáo.

III- NGÀY GIAO NHIỆM VỤ: 22/02/2007
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 28/06/2007
V- CÁN BỘ HƯỚNG DẪN : PGS.TS LÊ TIẾN THƯỜNG
PGS.TS NGUYỄN ĐỨC PHONG
CÁN BỘ HƯỚNG DẪN

CN BỘ MÔN

QL CHUYÊN NGÀNH

Nội dung và đề cương luận văn thạc sĩ đã được Hội đồng chuyên ngành thơng qua.

Ngày…...tháng…..năm 2007
TRƯỞNG PHỊNG ĐT – SĐH

TRƯỞNG KHOA QL NGÀNH


LỜI CẢM ƠN

Tơi xin chân thành bày tỏ lịng biết ơn và kính trọng sâu sắc đến Thầy PGSTS Lê Tiến Thường và thầy PGS-TS Nguyễn Đức Phong. Các Thầy đã tận
tình hướng dẫn, tạo mọi điều kiện thuận lợi về tài liệu cũng như thiết bị để tơi
hồn thành luận văn thạc sĩ này.
Tôi cũng xin chân thành cảm ơn quý thầy cô ở khoa Điện-Điện tử trường Đại
học Bách khoa, là những người đã truyền đạt kiến thức, định hướng cho tơi
trong suốt q trình học tập và nghiên cứu sau đại học.
Con xin cảm ơn ba, mẹ và gia đình đã tạo mọi điều kiện, ủng hộ và động viên
con trong suốt quá trình học tập.
Cuối cùng tôi xin cảm ơn tất cả bạn bè đã giúp đỡ trong suốt khóa học và
trong q trình thực hiện luận văn.
Xin trân trọng ghi nhớ
Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường

PGS.TS. Nguyễn Đức Phong

ABSTRACT
The neural network technology is useful for many field of sciences, but it is hard to
implement a neural network to the hardware because it consume much resources. In this
thesis, we came up with an ideal to design a powerful 16-bit micro processor (mP)
which can be programmed to become any neural network. The structure of the network
is stored in ROM in a special format which make it is easier to access. The mP have to
include a floating point unit (FPU), an integer processing unit (IPU) and a control unit
(CU). The FPU was design specially to consume 1 clock-circle to calculate. The IPU
was given the flexible ability to access the memory. Some peripheral were also support
by the mP such as Interrupt handling, UART…
The design was made by VHDL and was optimized to simulation and synthesize on
Xilinx ISE, implement on FPGA Virtex II Pro. The kit use to test the chip is XUPV2P.
To make the test is more clearly, a special program which is running on the computer
was made to communicate with the mP through RS232 interface, two small application
to test the operate was “linear function f = ax + by” and “circle recognition”. The
function result and timing was used to evaluate the design.
Keywords: neural networks, micro-processor, digital design, VHDL, FPGA

Abstract

i

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron


PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

TĨM TẮT LUẬN VĂN
Kỹ thuật mạng neuron có nhiều ứng dụng trong lĩnh vực nghiên cứu khoa học, nhưng
việc triển khai phần cứng của mạng neuron gặp nhiều khó khăn vì địi hỏi nhiều tài
ngun. Ý tưởng của luận văn này là thiết kế một bộ vi xử lý 16-bit có khả năng lập
trình thành các loại mạng neuron có kiến trúc khác nhau. Cấu trúc của mạng neuron với
một định dạng đặt biệt để có thể dễ dàng truy cập. Bộ xử lý bao gồm một bộ xử lý số
thực (FPU), một bộ xữ lý số integer (IPU) và một bộ điều khiển (CU). Bộ FPU được
thiết kế đặt biệt để tính tốn trong 1 xung clock. Bộ IPU được cung cấp khả năng linh
động trong việc truy cập bộ nhớ. Một số ngoại vi cũng được hỗ trợ như bộ quản lý ngắt,
bộ UART…
Thiết kế được viết bằng ngôn ngữ mô tả phần cứng VHDL, mô phỏng và tổng hợp trên
phần mềm Xillinx ISE, cài đặt trên FPGA Virtex II Pro. Kit sử dụng để kiểm tra chip
thiết kế là XUPV2P. Để hỗ trợ việc thử nghiệm, luận văn cũng bao gồm thiết kế một
chương trình chạy trên máy tính thực hiện việc giao tiếp với bộ vi xử lý qua giao diện
RS-232. Hai ứng dụng để thử nghiệm hoạt động của bộ vi xử lý là “hàm tuyến tính f =
ax + by” và “nhận dạng đường tròn”. Kết quả logic và định thời được dùng để đánh giá
thiết kế.
Từ khóa : mạng neuron, vi xử lý, thiết kế mạch số, VHDL, FPGA

Abstract

ii

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA

ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

DANH SÁCH CÁC HÌNH
Hình 3-1 : Cấu trúc vật lý của MOSFET : (a) kênh n, (b) kênh p ..................................14
Hình 3-2 : NMOS transistor............................................................................................14
Hình 3-3 : PMOS transistor ............................................................................................14
Hình 3-4 : Cổng NOT : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo..........................15
Hình 3-5 : Cổng NAND : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo ......................15
Hình 3-6 : Cổng AND : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo .........................16
Hình 3-7 : Bộ MUX 2-to-1 : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo..................17
Hình 3-8 : Bộ shifter/rotator 4-bit : (a) ký hiệu logic, (b) bảng hoạt động, (c) cấu tạo ..17
Hình 3-9 : Bộ D-Latch : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo ........................18
Hình 3-10 : Bộ D flip-flop : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo...................19
Hình 3-11 : Thanh ghi 4-bit : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo.................19
Hình 3-12 :Bộ nhớ 4x4 : (a) memory cell, (b) cấu tạo bộ nhớ 4x4 từ MC.....................20
Hình 3-13 : Khối chức năng cơ bản của một bộ vi xử lý................................................21
Hình 3-14 : định địa chỉ trực tiếp....................................................................................23
Hình 3-15 : định địa chỉ gián tiếp ...................................................................................23
Hình 3-16 : định địa chỉ theo chỉ số................................................................................24
Hình 3-17 : định địa chỉ tương đối..................................................................................24
Hình 3-18 : giao tiếp với bộ nhớ.....................................................................................25
Hình 3-19 : kiến trúc one-bus .........................................................................................26
Hình 3-20 : kiến trúc two-bus .........................................................................................26
Hình 3-21 : control unit...................................................................................................28
Hình 3-22 : FSM control unit..........................................................................................28
Hình 4-1: Kiến trúc tổng quát của một FPGA ................................................................31


Danh sách các hình

iii

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

Hình 4-2: Cấu trúc một khối CLB của hãng Xilinx........................................................32
Hình 4-3: Kiến trúc khối I/O trên FPGA của hãng Xilinx..............................................32
Hình 4-4: Quá trình thực thi FPGA ................................................................................33
Hình 4-5: Quá trình tổng hợp trong thiết kế phần cứng bằng VHDL.............................34
Hình 4-6: Mơ tả mức chuyển thanh ghi ..........................................................................34
Hình 4-7: Các bước tổng hợp mơ tả VHDL RTL...........................................................35
Hình 4-8: Kiến trúc tổng quát của Virtex-II Pro.............................................................36
Hình 4-9: Sơ đồ khối board XUP Virtex II Pro Development System...........................37
Hình 5-1 : Ý tưởng thiết kế .............................................................................................39
Hình 5-2 : tiến trình thiết kế............................................................................................40
Hình 5-3 : Tổ chức ROM................................................................................................41
Hình 5-4 : tổ chức của NNA ..........................................................................................41
Hình 5-5 : frame LA........................................................................................................41
Hình 5-6 : mơ hình hệ thống (Top - Level) ....................................................................43
Hình 5-7 : Định dạng mã lệnh.........................................................................................45
Hình 5-8 : Khối mP.........................................................................................................50
Hình 5-9 : Sơ đồ chức năng khối mP..............................................................................50

Hình 5-10 : cấu trúc thiết kế mP .....................................................................................51
Hình 5-11: cấu trúc cây thiết kế ......................................................................................52
Hình 5-12 : Bộ IPU .........................................................................................................54
Hình 5-13 : cấu trúc của thiết kế IPU .............................................................................56
Hình 5-14 : Kết quả mơ phỏng IPU ................................................................................59
Hình 5-15 : Kết quả mơ phỏng IPU ................................................................................59
Hình 5-16 : Kết quả mơ phỏng IPU ................................................................................60
Hình 5-17 : Kết quả mơ phỏng IPU ................................................................................61
Hình 5-18 : Kết quả mơ phỏng IPU ................................................................................61
Danh sách các hình

iv

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

Hình 5-19 : Bộ FPU ........................................................................................................62
Hình 5-20 : cấu trúc thiết kế bộ FPU ..............................................................................63
Hình 5-21 : kết quả mơ phỏng FPU ................................................................................65
Hình 5-22: kết quả mơ phỏng FPU .................................................................................65
Hình 5-23: kết quả mơ phỏng FPU .................................................................................66
Hình 5-24 : Bộ CU ..........................................................................................................66
Hình 5-25 : sơ đồ khối control unit được thiết kế...........................................................67
Hình 5-26 : sơ đồ trạng thái control unit.........................................................................68

Hình 5-27 : Sơ đồ trạng thái bộ UART thu.....................................................................70
Hình 5-28 : Sơ đồ trạng thái bộ UART phát...................................................................70
Hình 5-29 : Sơ đồ khối kết nối của bộ điều khiển với bộ UART thu và UART phát ....71
Hình 6-1 : mơ hình thử nghiệm.......................................................................................72
Hình 6-2 : Sơ đồ mạch khối tạo ngắt từ switch ..............................................................73
Hình 6-3 : giao thức bắt tay giữa NNmP Tester và FPGA. ............................................74
Hình 6-4 : mạng neuron thử nghiệm...............................................................................75
Hình 6-5 : giải thuật chương trình phục vụ ngắt huấn luyện ..........................................75
Hình 6-6 : Giải thuật huấn luyện.....................................................................................76
Hình 6-7 : Giải thuật vận hành........................................................................................77
Hình 6-8 : Giao diện chương trình NNmP Tester...........................................................78
Hình 6-9 : tiến trình hoạt động của NNmP Tester ..........................................................79
Hình 6-10: kết quả thử nghiệm với ứng dụng line recognition ......................................84
Hình 6-11: kết quả thử nghiệm với ứng dụng line recognition ......................................85
Hình 6-12: kết quả thử nghiệm với ứng dụng line recognition ......................................86
Hình 6-13: kết quả thử nghiệm với ứng dụng circle recognition....................................87
Hình 6-14: kết quả thử nghiệm với ứng dụng circle recognition....................................88
Hình 6-15: kết quả thử nghiệm với ứng dụng circle recognition....................................89
Danh sách các hình

v

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong


DANH SÁCH CÁC BẢNG
Bảng 4-1: Các thông số cho họ Virtex-II Pro XC2VP30-FF896....................................37
Bảng 5-1 : Các thành phần của cây thiết kế....................................................................53
Bảng 5-2: Từ điều khiển của IPU có độ dài 32 bit : .......................................................57
Bảng 5-3: Từ điều khiển của bộ FPU dài 17 bit .............................................................64
Bảng 5-4: Bảng địa chỉ vector ngắt ngoài.......................................................................69

Danh sách các bảng

vi

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

MỤC LỤC
DANH SÁCH CÁC HÌNH ...................................................................................III
DANH SÁCH CÁC BẢNG ................................................................................ VI
MỤC LỤC......................................................................................................... VII
PHẦN A
CƠ SỞ LÝ THUYẾT
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI ......................................................................1
1.1


KHÁI QUÁT VẤN ĐỀ .........................................................................................1

1.2

MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU .................................1
1.2.1 Mục tiêu đề tài ............................................................................................1
1.2.2 Đối tượng và phạm vi nghiên cứu ..............................................................2

1.3

NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU..............................................2
1.3.1 Nội dung nghiên cứu...................................................................................2
1.3.2 Phương pháp nghiên cứu ............................................................................2

1.4

Ý NGHĨA ĐỀ TÀI.................................................................................................3

CHƯƠNG 2: MẠNG NEURON...........................................................................4
2.1

GIỚI THIỆU CHUNG...........................................................................................4

2.2

MƠ HÌNH NHÂN TẠO CƠ BẢN ........................................................................4
2.2.1 Một số hàm truyền ......................................................................................5

2.3


PERCEPTRON ĐƠN ............................................................................................7
2.3.1 Giải thuật học perceptron Mays..................................................................8
2.3.2 Perceptron với hàm truyền Sigmoid ...........................................................9
2.3.3 Perceptron đa lớp (MLP) ............................................................................9

2.4

BACKPROPAGATION ........................................................................................9
2.4.1 Giải thuật backpropagation cơ bản cho perceptron đa lớp feedforward.....9
2.4.2 Các giải thuật học Backpropagation tăng tốc ...........................................11

CHƯƠNG 3: MẠCH SỐ VÀ VI XỬ LÝ .............................................................13
3.1

MẠCH LOGIC TỔ HỢP .....................................................................................13
3.1.1 Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET) ...........13
3.1.2 Cổng đảo ...................................................................................................15

Mục lục

vii

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong


3.1.3 Cổng NAND .............................................................................................15
3.1.4 Cổng AND ................................................................................................16
3.1.5 Cổng NOR và OR .....................................................................................16
3.1.6 Bộ dồn kênh (Mux)...................................................................................16
3.1.7 Bộ dịch/xoay (shifter/rotator) ...................................................................16
3.2

MẠCH LOGIC TUẦN TỰ..................................................................................18
3.2.1 Bộ Latch....................................................................................................18
3.2.2 Flip-Flop ...................................................................................................19
3.2.3 Thanh ghi ..................................................................................................19

3.3

BỘ NHỚ ..............................................................................................................20
3.3.1 Bộ nhớ RAM.............................................................................................20
3.3.2 Bộ nhớ ROM.............................................................................................20

3.4

KIẾN TRÚC VI XỬ LÝ......................................................................................21
3.4.1 Kiến trúc cơ bản........................................................................................21
3.4.2 Tập lệnh ....................................................................................................21
3.4.3 Các cơ chế định địa chỉ.............................................................................22
3.4.4 Giao tiếp với bộ nhớ .................................................................................24
3.4.5 Excution Unit............................................................................................25
3.4.6 Control Unit ..............................................................................................27
3.4.7 Mô tả hoạt động của vi xử lý ....................................................................29


CHƯƠNG 4: KỸ THUẬT THIẾT KẾ PHẦN CỨNG TRÊN FPGA....................30
4.1

GIỚI THIỆU ........................................................................................................30

4.2

KIẾN TRÚC FPGA .............................................................................................30

4.3

QUÁ TRÌNH THỰC THI FPGA.........................................................................32

4.4

TỔNG HỢP THIẾT KẾ.......................................................................................33

4.5

BOARD XUP VIRTEX II PRO DEVELOPMENT SYSTEM...........................35
PHẦN B
THIẾT KẾ BỘ VI XỬ LÝ

CHƯƠNG 5: THIẾT KẾ ....................................................................................39
5.1

Ý TƯỞNG THIẾT KẾ.........................................................................................39

5.2


TIẾN TRÌNH CỦA THIẾT KẾ...........................................................................40

5.3

THIẾT KẾ PHƯƠNG THỨC TỔ CHỨC DỮ LIỆU TRONG ROM.................41

Mục lục

viii

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

5.3.1 ISA ( Initate Services Area)......................................................................41
5.3.2 NNS (Neural Network Services) ..............................................................41
5.3.3 NNA (Neural Network Architechture) .....................................................41
5.3.4 NNP (Neural Network Program) ..............................................................42
5.4

THIẾT KẾ MƠ HÌNH HỆ THỐNG (TOP-LEVEL) ..........................................42

5.5

THIẾT KẾ HỆ THỐNG CÁC THANH GHI......................................................43

5.5.1 Các thanh ghi Neuron (Nreg) ...................................................................43
5.5.2 Tập thanh ghi hệ thống .............................................................................44
5.5.3 Thanh ghi đện dữ liệu nối tiếp ..................................................................44
5.5.4 Tập thanh ghi hỗ trợ tính toán ..................................................................44

5.6

THIẾT KẾ TẬP LỆNH .......................................................................................45
5.6.1 Định dạng mã lệnh....................................................................................45
5.6.2 Mã hóa thanh ghi ......................................................................................45

5.7

THIẾT KẾ KHỐI mP ..........................................................................................50
5.7.1 Cấu trúc thiết kế khối mP .........................................................................51
5.7.2 Cấu trúc cây thiết kế .................................................................................52

5.8

THIẾT KẾ BỘ XỬ LÝ SỐ INTEGER (IPU) .....................................................54
5.8.1 Chức năng .................................................................................................54
5.8.2 Cấu trúc thiết kế........................................................................................55
5.8.3 Từ điều khiển ............................................................................................57
5.8.4 Kết quả mô phỏng thử nghiệm IPU ..........................................................58

5.9

THIẾT KẾ BỘ XỬ LÝ SỐ DẤU CHẤM ĐỘNG (FPU) ...................................62
5.9.1 Chức năng .................................................................................................62
5.9.2 Cấu trúc thiết kế........................................................................................62

5.9.3 Từ điều khiển ............................................................................................64
5.9.4 Kết quả mô phỏng thử nghiệm FPU .........................................................64

5.10

THIẾT KẾ CONTROL UNIT (CU)....................................................................66
5.10.1 Sơ đồ chức năng........................................................................................66
5.10.2 Sơ đồ trạng thái.........................................................................................68

5.11

THIẾT KẾ NGẮT................................................................................................69
5.11.1 Ngắt ngoài.................................................................................................69
5.11.2 Ngắt nối tiếp..............................................................................................69

5.12

THIẾT KẾ BỘ (UART).......................................................................................70

Mục lục

ix

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường

PGS.TS. Nguyễn Đức Phong

5.12.1 Bộ UART thu............................................................................................70
5.12.2 Bộ UART phát ..........................................................................................70
5.12.3 Bộ điều khiển UART ................................................................................71
CHƯƠNG 6: TỔNG HỢP THIẾT KẾ, THỬ NGHIỆM VÀ KẾT QUẢ ...............72
6.1

THIẾT KẾ MƠ HÌNH THỬ NGHIỆM...............................................................72
6.1.1 Mơ hình kết nối.........................................................................................72
6.1.2 Quy trình thử nghiệm................................................................................73

6.2

MẠNG NEURON THỬ NGHIỆM .....................................................................74

6.3

CHƯƠNG TRÌNH HUẤN LUYỆN....................................................................75

6.4

CHƯƠNG TRÌNH VẬN HÀNH.........................................................................76

6.5

ỨNG DỤNG THỬ NGHIỆM 1...........................................................................76

6.6


ỨNG DỤNG THỬ NGHIỆM 2...........................................................................78

6.7

CHƯƠNG TRÌNH HỖ TRỢ THỬ NGHIỆM NNmP TESTER.........................78

6.8

TỔNG HỢP THIẾT KẾ VÀ KẾT QUẢ .............................................................79
6.8.1 Tổng hợp thiết kế ......................................................................................79
6.8.2 Mạch thiết kế ............................................................................................80
6.8.3 Kết quả thử nghiệm...................................................................................84

CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG MỞ RỘNG ..........................................90
7.1

KẾT LUẬN..........................................................................................................90

7.2

HƯỚNG MỞ RỘNG ...........................................................................................90

TÀI LIỆU THAM KHẢO ....................................................................................91
PHẦN C
PHỤ LỤC
PHỤ LỤC A.................................................................................................... - 1 PHỤ LỤC B.................................................................................................... - 3 -

Mục lục

x


HVTH : KS. Nguyễn Thế Đại Dương


PHẦN A
LÝ THUYẾT CƠ SỞ


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

CHƯƠNG 1
GIỚI THIỆU ĐỀ TÀI
1.1

KHÁI QUÁT VẤN ĐỀ
Kỹ thuật vi xử lý ngày nay đóng một vai trị quan trọng trong nhiều lĩnh vực
khoa học kỹ thuật. Đặc biệt là trong lĩnh vực robot thơng minh và trí thơng minh
nhân tạo. Để các robot và các hệ thống có thể mơ phỏng được cách cư xử của
chúng ta thì cần thiết phải cung cấp cho các robot, hệ thống đó bộ xử lý có khả
năng xử lý dữ liệu tương tự theo cách thức của chúng ta. Kỹ thuật mạng neuron
có thể đáp ứng yêu cầu đó.
Kỹ thuật mạng neuron mô phỏng lại mạng neuron sinh học của con người. Kỹ
thuật này dựa trên những dữ liệu mẫu (với dữ liệu vào và dữ liệu ra tương ứng)
để huấn luyện mạng neuron nhằm mục đích thực hiện một cơng việc cụ thể. Việc
huấn luyện thực chất là làm thay đổi trọng số (weight) giữa các kết nối của các
nút neuron. Do vậy, nếu yêu cầu về công việc thay đổi, các mạng neuron cần

phải được huấn luyện lại hoặc thay đổi cả cấu trúc các nút mạng. Đối với các
mạng neuron được cài đặt bằng phần mềm trên máy tính, việc này có thể thực
hiện dễ dàng. Nhưng với các mạng neuron cài đặt bằng bằng phần cứng có cấu
trúc khơng thể thay đổi thì việc trên là khơng thể.
Với kiến trúc linh động và đặc biệt là khả năng lập trình được của vi xử lý, vấn
đề có thể được giải quyết bằng cách cài đặt mạng neuron vào vi xử lý (hoặc vi
điều khiển) đa dụng. Tuy nhiên, việc cài đặt một mạng neuron lên một bộ vi xử
lý (hoặc vi điều khiển) rất phức tạp và khó bảo trì mã cũng như nâng cấp. Mặt
khác, các mạng neuron thường chiếm nhiều tài nguyên dẫn đến việc các bộ vi xử
lý (hoặc vi điều khiển) đa dụng này không đáp ứng được. Giải pháp cho vấn đề
trên được đề nghị ở đây là thiết kế một bộ vi xử lý chuyên dụng cho mạng
neuron, có kiến trúc phần cứng hỗ trợ riêng cho việc tổ chức một mạng neuron.
Bộ vi xử lý này cũng phải có khả năng tổ chức thành bất kỳ một dạng mạng
neuron nào thông qua việc lập trình.

1.2

MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
1.2.1 Mục tiêu đề tài
Mục tiêu của đề tài là nghiên cứu và thiết kế một bộ vi xử lý có kiến trúc
hỗ trợ cho việc cài đặt các mạng neuron bất kỳ (trong khuôn khổ đề tài, vi
xử lý này được gọi tắt là vi xử lý neuron). Thiết kế được mô tả bằng ngôn
ngữ phần cứng VHDL hoặc VeriLog và được cài đặt trên FPGA.

Chương 1 : Tổng quan

1

HVTH : KS. Nguyễn Thế Đại Dương



Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

1.2.2 Đối tượng và phạm vi nghiên cứu
Đề tài tập trung vào việc nghiên cứu các mạng neuron và kiến trúc vi xử
lý. Xây dựng phương án để giải quyết bài tốn mơ hình lại kiến trúc của
mạng neuron trên kiến trúc của một bộ vi xử lý. Kiến trúc của bộ vi xử lý
này (tập thanh ghi, tập lệnh,…) phải được thiết kế để thực hiện phương án
đã đề ra.
Việc thiết kế sẽ giới hạn cấu trúc phần cứng lại để tiết kiệm chi phí. Tuy
nhiên, bản thiết kế vẫn phải đảm bảo được chức năng cơ bản là lập trình
được thành các mạng neural.
Thiết kế bao gồm cả tập lệnh cơ bản cho bộ vi xử lý.
Thiết kế được cài đặt và thử nghiệm trên FPGA.

1.3

NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1.3.1 Nội dung nghiên cứu
Đề tài bao gồm các nội dung nghiên cứu :
-

Tìm hiểu cơ sở lý thuyết các lọai mạng neuron và các thuật toán
huấn luyện.

-


Tìm hiểu kiến trúc của vi xử lý và phương pháp thiết kế một bộ vi
xử lý.

-

Xây dựng giải pháp thiết kế bộ vi xử lý phù hợp với cấu trúc mạng
neuron.

-

Cài đặt thiết kế theo giải pháp trên bằng ngôn ngữ VHDL hoặc
VeriLog.

-

Tổng hợp mã nguồn và mô phỏng trên máy tính.

-

Tổng hợp mã nguồn và cài đặt trên FPGA.

-

Đánh giá kết quả, nhận xét và tổng hợp báo cáo.

1.3.2 Phương pháp nghiên cứu
Đề tài tiếp cận các phương pháp nghiên cứu sau đây :
-


Tiếp cận lý thuyết mạng neuron, các loại mạng và thuật toán huấn
luyện.

-

Tiếp cận kiến trúc của vi xử lý và phương pháp thiết kế một bộ vi xử
lý.

Chương 1 : Tổng quan

2

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

1.4

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

-

Tiếp cận ngôn ngữ VHDL (hoặc VeriLog) và kỹ thuật thiết kế mạch
logic.

-


Thực hiện thiết kế theo phương pháp Top-Down design.

-

Đánh giá kết quả qua Test bench trên máy tính.

-

Tiếp cận các kỹ thuật tối ưu mã nguồn cho việc cài đặt trên FPGA.

-

Đánh giá kết quả trên việc chạy giả lập trên FPGA.

Ý NGHĨA ĐỀ TÀI
Đề tài có ý nghĩa thực tiễn trong việc mở rộng ứng dụng mạng neuron. Các chip
vi xử lý có thể lập trình thành bất kỳ một mạng neuron nào và đặc biệt có khả
năng lập trình lại giúp giảm chi phí khi cần thay thế hệ thống. Mặt khác, với kiến
trúc của vi xử lý, các chíp này có thể dễ dàng tích hợp vào các ứng dụng và thiết
kế khác, phù hợp cho công tác học tập, nghiên cứu mạng neuron cũng như thuận
tiện và nhanh chóng cho việc triển khai các mạng neuron.
Về mặt kinh tế, các chip vi xử lý neuron nếu được sản xuất hàng loạt sẽ có giá
thành rẻ hơn nhiều so với việc thiết kế một bộ neuron riêng cho ứng dụng. Việc
nâng cấp mới mạng neuron cũng không cần phải thay thế lại bộ neuron mà chỉ
đơn giản là lập trình lại.
Đề tài mở ra một hướng trong việc làm mềm hóa các kiến trúc phức tạp. Bằng
cách xây dựng một bộ vi xử lý chuyên dụng cho một số ứng dụng. Giúp làm
giảm giá thành và thêm khả năng linh động cho hệ thống.

Chương 1 : Tổng quan


3

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

CHƯƠNG 2
MẠNG NEURON
2.1

GIỚI THIỆU CHUNG
Neural Networks trong một vài năm trở lại đây đã được nhiều người quan tâm và
đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa
chất và vật lý. Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều
khiển, Neural Networks đều có thể ứng dụng được. Sự thành cơng nhanh chóng
của mạng Neural Networks có thể là do một số nhân tố chính sau:
Năng lực : Neural Networks là những kỹ thuật mô phỏng rất tinh vi, có khả năng
mơ phỏng các hàm cực kỳ phức tạp. Đặc biệt, Neural Networks hoạt động phi
tuyến. Trong nhiều năm, mơ hình tuyến tính là kỹ thuật được sử dụng rộng rãi
trong hầu hết các lĩnh vực, vì thế mơ hình tuyến tính có tính chiến lược tối ưu
hóa được biết nhiều nhất.
Dễ sử dụng : Neural Networks có tính học theo các ví dụ. Người sử dụng Neural
Networks thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật tốn huấn luyện
để có thể tự học cấu trúc của dữ liệu. Mặc dù người sử dụng làm tất cả những

điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và
có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách áp dụng
thành công Neural Networks vẫn thấp hơn nhiều những người sử dụng các
phương pháp thống kê truyền thống…
Neural Networks dựa trên việc mô phỏng cấp thấp hệ thống neuron sinh học.
Trong tương lai với sự phát triển mô phỏng neuron sinh học, chúng ta có thể có
loại máy tính thơng minh thật sự.

2.2

MƠ HÌNH NHÂN TẠO CƠ BẢN
Neuron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các
neuron khác trong mạng). Mỗi kết nối đến ngõ vào có một cường độ (hay trọng
số), những trọng số này tương ứng với tác dụng synapse trong neuron sinh học.
Mỗi neuron cũng có một giá trị ngưỡng.
Tín hiệu được truyền qua hàm kích hoạt (hay cịn gọi là hàm truyền) tạo giá trị
ngõ ra neuron.
Nếu sử dụng hàm truyền nấc (nghĩa là ngõ ra neuron là 0 nếu ngõ vào nhỏ hơn 0,
và là 1 nếu ngõ vào lớn hơn hay bằng 0) thì neuron hoạt động giống như neuron
sinh học. Thực tế, hàm nấc ít khi sử dụng trong mạng trí tuệ nhân tạo. Lưu ý
rằng trọng số có thể âm, nghĩa là synapse có tác dụng kiềm chế hơn là kích hoạt
neuron, các neuron kiềm chế có thể tìm thấy trong bộ não.

Chương 2 : Mạng Neuron

4

HVTH : KS. Nguyễn Thế Đại Dương



Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

Input
i1

w1

i3
.
.
.

n



i2

.
.
.

wR

iR


F

a = F(WI)

b
1

Hình 2-1: một neuron cơ bản
Neuron có một ngưỡng bias b được giả sử như là một input với trọng số (weight
= b). n (net) là tổng của các tích giữa input (i) và trọng số (w) : [2]
n = w1i1 + w2i2 + …. + wRiR + b

(2.1)

Ngõ ra của neuron (a) là kết quả của hàm truyền F :
a = F(n)

(2.2)

2.2.1 Một số hàm truyền
Hàm hoạt động (hàm truyền) có thể là hàm tuyến tính hay phi tuyến. Có
nhiều dạng hàm khác nhau, và việc lựa chọn phụ thuộc vào bài toán cụ
thể mà neural phân giải.
2.2.1.1 Hàm tuyến tính
Hàm này cho giá trị liên tục. Về mặt toán học, ngõ ra của hàm
này tại neural thứ q được biển diễn như sau :

y q = f lin (v q )= v q

(2.3)


với a q là ngõ ra của bộ kết hợp tuyến tính và là ngõ vào của hàm
hoạt động f(.). Ngõ ra của neural a q đơn giản sẽ là n q
2.2.1.2 Hàm Hard Limiter
Đây là hàm nhị phân (binary) hay lưỡng cực (bipolar), giới hạn
ngõ vào trong khoảng 0 hay 1 (đối với dạng binary), -1 hay 1
(đối với dạng bipolar). Đối với dạng Hard Limiter nhị phân còn
được xem là hàm ngưỡng (threshold function), và hàm Hard
Limiter lưỡng cực chính là hàm Hard Limiter đối xứng.
Chương 2 : Mạng Neuron

5

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

Ngõ ra của hàm Hard Limiter nhị phân :

0 vq < 0

y q = f hl (v q )= {

1 vq > 0


(2.4)

Đối với hàm Hard Limiter đối xứng (lưỡng cực) (kí hiệu là shl),
ngõ ra của neural thứ q là :

- 1 vq < 0

y q = f shl (v q )= { 0

vq = 0

1

vq > 0

(2.5)

2.2.1.3 Hàm Sigmoid
Hàm sigmoid phi tuyến là dạng phổ biến để xây dựng mạng
neural nhân tạo gồm có hai dạng : binary và bipolar.
Đối với dạng binary (hình 4.2.3a), giá trị bão hoà ngõ ra của hàm
này nằm trong khoảng nhị phân, ngõ ra neural q được biểu diễn

y q = fbs (v q )=

1
1+ e

- av q


(2.6)

với α là thông số độ dốc của hàm sigmoid nhị phân. Thay đổi
thông số này hình dạng của hàm truyền cũng thay đổi như trên
hình (2.3.3b)
Đối với dạng lưỡng cực, ngõ ra của neural thứ q sẽ là :

y q = f hts (v q )= tanh (av q )=

1- e

- 2 av q

1+ e

- 2 av q

(2.7)

Ở trên mô tả các neuron đơn lẻ. Trong thực tế các neuron được kết nối với nhau.
Khi mạng hoạt động, chúng phải có ngõ vào (mang giá trị hoặc biến của thế giới
thực) và ngõ ra (dùng để dự báo hoặc điều khiển). Ngõ vào và ngõ ra tương ứng
với các neuron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển
cánh tay. Tuy nhiên chúng cịn có các neuron ẩn đóng vai trò ẩn trong mạng.
Ngõ vào, neuron ẩn và ngõ ra cần được kết nối với nhau.
Vấn đề chính ở đây là hồi tiếp. Một mạng đơn giản có cấu trúc tiến : tín hiệu đi
vào ở ngõ vào, qua các neuron ẩn và cuối cùng đến các neuron ngõ ra. Cấu trúc
như thế chạy ổn định. Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược
trở về các neuron trước đó) mạng có thể chạy khơng ổn định và dao động rất


Chương 2 : Mạng Neuron

6

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

phức tạp. Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc
tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế
Mạng Neural Networks tiến cho như hình dưới. Các neuron được sắp xếp theo
cấu trúc liên kết lớp riêng biệt. Lớp ngõ vào không phải là neuron thực : các
neuron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào. Các
neuron lớp ẩn và lớp ngõ ra được kết nối với tất cả các neuron lớp trước đó.
Cũng như vậy chúng ta có thể định nghĩa mạng có các kết nối một phần với một
vài neuron trong lớp trước đó; tuy nhiên, trong hầu hết các ứng dụng mạng có
kết nối đầy đủ vẫn tốt hơn.

Hình 2-2 : Cấu trúc Neural Networks tiến
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các neuron ngõ vào,
và sau đó các neuron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt. Mỗi neuron
tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các
neuron lớp trước đó, và trừ cho ngưỡng. Giá trị kích hoạt truyền qua hàm kích
hoạt tạo ra giá trị ngõ ra của neuron. Khi toàn bộ mạng đã hoạt động, các ngõ ra
của lớp ngõ ra hoạt động như ngõ ra của tồn mạng.


2.3

PERCEPTRON ĐƠN
Perceptron đơn là thành phần có ảnh hưởng nhiều nhất đối với mạng neural.
Mạng neuron perceptron đơn cho trên hình 2.1. Phần lớn các perceptron được
huấn luyện theo giải thuật giám sát, tuy nhiên cũng có một số sử dụng giải thuật
self-organizing.
Ngõ vào của Perceptron mang giá trị nhị phân và không thêm vào giá trị ngưỡng.
Ngõ ra của neural trong khoảng [-1 1]. Đây là ngõ ra của hàm Hard limiter đối
xứng( hay tansig), chính là bộ lượng tử, và ngõ ra này được trừ với ngõ ra mong
muốn d (trong khoảng [-1 1]) tạo nên lỗi lượng tử e. Lỗi lượng tử này dùng để
điều chỉnh trọng số của neural (giải thuật học perceptron) được cho như sau:
e(k )
w(k+1)=w(k) + α 2 x(k)

Chương 2 : Mạng Neuron

(2.8)

7

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong


với lỗi lượng tử được xác định từ:
T

e(k)=d(k) + sgn[w (k)x(k)] = d(k)-y(k)

(2.9)

Sự lựa chọn thông số học α không ảnh hưởng đến sự ổn định của giải thuật học
Perceptron. Tuy nhiên α ảnh hưởng đến tốc độ hội tụ. Giải thuật học Perceptron
được xem là giải thuật phi tuyến vì lỗi lượng tử được sử dụng thay vì là lỗi tuyến
tính.
Giải thuật Perceptron thực hiện cập nhật trọng số cho đến khi tất cả các mẫu ngõ
vào được phân loại đúng. Khi đó, lỗi lượng tử sẽ bằng 0 đối với tất cả các mẫu
ngõ vào huấn luyện và không điều chỉnh trọng số.
2.3.1 Giải thuật học perceptron Mays
Mays đưa ra hai sửa đổi đối với giải thuật học Perceptron cơ bản :
Giải thuật thích nghi trọng số tăng dần do Mays đưa ra như sau:
x(k )

2
⎪w(k ) + αe(k )
x(k ) 2 * 2


x( k )
⎪ w(k ) + αd (k )
2
⎪⎩
x(k ) 2

w(k+1)=

v(k ) ≥ γ
v(k ) < γ

(2.10)

với e(k) là lỗi lượng tử, x(k) là ngõ vào thứ k, d(k) là ngõ ra mong muốn
và v(k) là ngõ ra của bộ cộng và là ngõ vào của hàm truyền.
Mays đưa ra một định nghĩa deadzone là khoảng giá trị ngõ ra thỏa
|v(k)< γ . Nếu deadzone bằng 0 thì giải thuật Mays sẽ trỡ thành dạng
chuẩn hóa của giải thuật (5-1). Nếu các mẫu huấn luyện cách đều thì giải
thuật Mays ln hội tụ và có thể phân chia các mẫu với một số bước hữu
hạn.
Giải thuật giản bổ sung ( modified relaxation algorithm)
⎧w(k)
v( k) ≥ γ
va e ( k ) = 0

x(k)

noi khac
2
⎪ w(k) + α e(k)
x
(
k
)
2
w(k+1)= ⎩


(2.11)

Đối với vùng deadzone 0< γ <1 và tốc độ học 0 < α ≤ 2 , giải thuật này
đảm bảo hội tụ và có thể tách bất kỳ tập các mẫu ngõ vào cách nhau tuyến
tính nào với một số hữu hạn các bước.

Chương 2 : Mạng Neuron

8

HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong

2.3.2 Perceptron với hàm truyền Sigmoid
Xét perceptron đơn giản với hàm hoạt động sigmoid như hình vẽ bên
dưới. Hình (2.7.1) minh họa cho n ngõ vào với neural thứ q. Trong trường
hợp này giải thuật học dựa vào phương pháp steepest. Giải thuật này như
sau:
wq(k+1) = wq(k) + μα e(k)[1-y2q(k)]x(k)

(2.12)

với eq(k) = dq(k)-yq(k)




⎡R

⎢∑ x j (k ) wqj (k ) + θ q ⎥

yq(k) = f[vq(k)] = f ⎣ j =1

(2.13)

2.3.3 Perceptron đa lớp (MLP)
Cấu trúc của mutililayer perceptron là một bộ phận của một tập hợp các
mạng neural feedforward với các neural được sắp xếp trong các lớp nối
tiếp nhau (hình 2.3.1) . Các cấu trúc mạng neural này có chung đặc điểm
là tất cả các neural trong một lớp liên kết với tất cả các neural ở lờp kế
cận qua các nhánh, và qua các nhánh này chỉ truyến thông tin theo một
hướng gọi là “feedorward direction”. Các nhánh này cùng với các trọng
số synapse có thể được thay đổi theo các quy luật học đã được định nghĩa.

2.4

BACKPROPAGATION
Backpropagation là thuật giải học được sử dụng phổ biến nhất trọng các mạng
neural hiện nay. Ứng với hại tập dữ liệu vào/ra cho trước, giải thuật sẽ điều
chỉnh trọng số synapes của mạng để làm tối thiểu hóa sự khác biệt giữa ngõ ra
thực sự và ngõ ra mong muốn.
2.4.1 Giải thuật backpropagation cơ bản cho perceptron đa lớp
feedforward
Để đơn giản, trong phần này ta sẽ trình bày quy luật học của mạng

perceptron đa lớp (MLP: multilayer perceptron) có ba lớp ẩn và một lớp
ngõ ra.
Giải thuật backpropagation chuẩn cho huống luyện MLP dựa vào phương
pháp steeppest descent gradient nhằm tối thiểu hoá hàm năng lượng đặc
trưng cho lỗi tức thời:
ns

Eq=1/2(dq-x

Chương 2 : Mạng Neuron

( 3)
out

( 3)
out

∑ (d

)T(dq-x )=1/2 h =1

9

qh

( 3) 2
− xout
)

(2.14)


HVTH : KS. Nguyễn Thế Đại Dương


Thiết kế bộ vi xử lý nhúng trên FPGA
ứng dụng trong kỹ thuật mạng neuron

PGS.TS. Lê Tiến Thường
PGS.TS. Nguyễn Đức Phong
( 3)

với dq là ngõ ra mong muốn của mạng ứng với mẫu vào thứ q và x out =yq
là ngõ ra thực sự của mạng.
Input
i1

w1,1

n1,1



i2

.
.
.

w1,R


i3
.
.
.

.
.
.

wN,1

n1,N



nN,1

F

.
.
.

.
.
.

.
.
.


iR


wN,R

nN,1



a1 = F(W1I)

F

aN = F(WNI)

Hình 2-3 : mạng perceptron đa lớp
Quy luật học cho bật kỳ lớp nào trong mạng được cho phép như sau:
Δw (ys ) = − μ ( s )

δE q
δwn( s )

(2.15)

với s=1,2,3...là chỉ số của lớp tưong ứng và μ (s)>0 là thơng số tốc độ học
tương ứng.
Phương trình quy luật học cho các trọng số ở lớp ngõ ra của mạng được
cho như sau :
( 3)

Δwij( 3) = μ (3)δ (j 3) xout
.i

(2.16)

hoặc
( 3)

( 3)

w ij (k+1)=w ij (k)+

( 3)
μ (3)δ (j 3) xout
.i

(2.17)

Phương trình cập nhật trọng số cho các lớp ẩn
wij( 2)

(k+1)=

Δwij( 2)

(k)+

( 2)
μ ( 2 )δ (j 2 ) xout
.i


(2.18)

Ta nhận thấy hai phương trình cập nhật trọng số cho lớp ngõ ra và lớp ẩn
có dạng giống nhau. Chúng chỉ khác nhau ở cách tính toán lỗi cục bộ(
local error). Đố với lớp ngõ ra , lỗi này chính là sự sai biệt giữa ngõ ra

Chương 2 : Mạng Neuron

10

HVTH : KS. Nguyễn Thế Đại Dương


×