BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
KHÓA LUẬN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
NGHIÊN CỨU THUẬT TOÁN
BACKPROPAGATION TRÊN FPGA
GVHD: TS. VÕ MINH HUÂN
SVTH: THÂN THÁI THÀNH
MSSV: 11141312
SVTH: NGÔ NGỌC VƯỢNG
MSSV: 11141262
SKL 0 0 3 9 3 1
Tp. Hồ Chí Minh, tháng 7/2015
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐÀ O TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: ĐIỆN TỬ TRUYỀN THÔNG
Đề tài:
NGHIÊN CỨU THUẬT TOÁN
BACKPROPAGATION TRÊN FPGA
GVHD:
T.S VÕ MINH HUÂN
SVTH :
THÂN THÁI THÀNH _ 11141312
NGƠ NGỌC VƯỢNG _ 11141262
Tp. Hồ Chí Minh, tháng 07 năm 2015
ĐỒ ÁN TỐT NGHIỆP | 2015
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập- Tự do- Hạnh phúc
----***----
Tp. Hồ Chí Minh, ngày…tháng…năm…
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên:................................................ MSSV:………………………..
Nghành: .................................................................. Lớp……………………………
Giảng viên hướng dẫn: .......................................... ĐT:…………………………….
Ngày nhận đề tài .................................................... Ngày nộp đề tài:………………
1. Tên đề tài:
..................................................................... …………………………………
……………………………………………………………………………….
2. Các số liệu tài liệu ban đầu
..................................................................... …………………………………
………………………………………………………………………………..
3. Nội dung thực hiện đề tài
..................................................................... …………………………………
………………………………………………………………………………
4. Sản phẩm ..................................................... …………………………………
TRƯỞNG NGÀNH
GIẢNG VIÊN HƯỚNG DẪN
Trangi
ĐỒ ÁN TỐT NGHIỆP | 2015
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập- Tự do- Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày…tháng…năm…
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN
Họ và tên sinh viên:…………………………………..MSSV:………………………
Họ và tên sinh viên:…………………………………..MSSV:………………………
Nghành:………………………………………………………………………………
Tên đề tài:……………………………………………………………………………
……………………………………………………………………………………….
Họ và tên giáo viên hướng dẫn………………………………………………………
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
2. Ưu điểm:
…………………………………………………………………………………
…………………………………………………………………………………
3. Khuyết điểm:
…………………………………………………………………………………
…………………………………………………………………………………
4. Đề nghị bảo vệ hay không ?
…………………………………………………………………………………
5. Đánh giá loại:
…………………………………………………………………………………
6. Điểm:………………(bằng chữ………………………………………………)
Tp Hồ Chí Minh, Ngày…tháng…năm…
Giáo viên hướng dẫn
Trangii
ĐỒ ÁN TỐT NGHIỆP | 2015
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập- Tự do- Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày…tháng…năm…
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên:…………………………………..MSSV:………………………
Họ và tên sinh viên:…………………………………..MSSV:………………………
Nghành:………………………………………………………………………………
Tên đề tài:……………………………………………………………………………
……………………………………………………………………………………….
Họ và tên giáo viên phản biện………………………………………………………
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
2. Ưu điểm:
…………………………………………………………………………………
…………………………………………………………………………………
3. Khuyết điểm:
…………………………………………………………………………………
…………………………………………………………………………………
4. Đề nghị bảo vệ hay không ?
…………………………………………………………………………………
5. Đánh giá loại:
…………………………………………………………………………………
6. Điểm:………………(bằng chữ………………………………………………)
Tp Hồ Chí Minh, Ngày…tháng…năm…
Giáo viên phản biện
Trangiii
ĐỒ ÁN TỐT NGHIỆP | 2015
LỜI CẢM ƠN
Chúng em xin bày tỏ lòng biết ơn sâu sắc tới thầy TS. VÕ MINH HUÂN, thầy
đã hướng dẫn, chỉ dạy tận tình để chúng em có thể hồn thành đồ án này. Đồng thời,
chúng em cũng xin gửi lời cảm ơn đến quý Thầy Cô Khoa Đào Tạo Chất Lượng
Cao – Trường Đại Học Sư Phạm Kỹ Thật TP.Hồ Chí Minh đã cùng với tri thức và
tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt
thời gian học tập tại trường… Nhóm cũng xin cảm ơn bạn bè, gia đình và những
người thân đã cùng chia sẻ, giúp đỡ, động viên, tạo mọi điều kiện thuận lợi để nhóm
hồn thành nhiệm vụ học tập và cuốn đồ án tốt nghiệp này.
Đồ án được thực hiện trong khoảng thời gian gần 3 tháng. Bước đầu đi vào
thực tế , tìm hiểu về lĩnh vực sáng tạo trong nghiên cứu khoa học , kiến thức của
chúng em còn hạn chế và còn nhiều bỡ ngỡ. Do vậy, khơng tránh khỏi những thiếu
sót là điều chắc chắn, chúng em rất mong nhận được những ý kiến đóng góp quý
báu của quý Thầy Cô và các bạn sinh viên để kiến thức của chúng em trong lĩnh vực
này được hồn thiện hơn.
Nhóm Sinh Viên Thực Hiện
Trangiv
ĐỒ ÁN TỐT NGHIỆP | 2015
LỜI NÓI ĐẦU
Với sự phát triển ngày càng mạnh mẽ của công nghệ IC hiện nay và người
tangày càng có khuynh hướng tích hợp nhiều hơn trên một IC. Do đó chip
PLD(Programmable Logic Device) và FPGA (Field Programmable Gate Array)
ngày càng nhỏ gọn nhưng tích hợp vào trong nó nhiều tiện ích mà cơng nghệ trước
đây không thực hiện được. Để sử dụng được các tiện ích mà các chip này mang lại
thì
chúng ta phải lập trình cho chip theo ý tưởng thiết kế của chúng ta. Cùng với sự
rađời của các chip PLD và FPGA là ngôn ngữ mô tả phần cứng
HDL(HardwaveDescription Language) mà những thiết kế mạch số dùng để mô tả
và thiết kế cácmạch số trên các chip này.
Mạng Neural nhân tạo hiện nay được ứng dụng trong rất nhiều lĩnh vực:Xử lý
tín hiệu, xử lý ngơn ngữ, dự báo, nhận dạng, lọc và phân loại dữ liệu, chuẩn đoán
bệnh,…Việc chuyển thểtừ giải thuật, các ngồn ngữ lập trình cấp cao (Matlab ,
C++. . . . ) sang kiến trúc ngôn ngữ phần cứng (Verilog/HDL) là một trong những
nghiên cứu gần đây. Nên việc xây dựng thành công kiến trúc vi mạch cho mạng
Neural là tiền đồ quan trọng cho việc đấy mạnh phát triền các lĩnh vực khác.
Đề tài tiếp cận vấn đề ứng dụng mạng Neural để xây dựng kiến trúc vi mạch
và việc kiểm tra đánh giá ứng dụng được thực hiện qua kiến trúc vi mạch cùa mạng
Neural cho giải thuật Backpropagation. Mạng Neural sau khi xây dựng sẽ có khả
năng phát triền cho các ứng dụng khác một cách dễ dàng.
Trangv
ĐỒ ÁN TỐT NGHIỆP | 2015
MỤC LỤC
Trang phụ bìa
TRANG
Nhiê ̣m vu ̣ Đồ án tố t nghiê ̣p
i
Nhận xét của Giáo viên hướng dẫn
ii
Nhận xét của Giáo viên phản biện
iii
Lời cảm ơn
iv
Lời nói đầu
v
Mục lục
vi
Danh mục các bảng biểu
xi
Danh mục các hình ảnh, biểu đồ
xii
Chƣơng 1. TỔNG QUAN
1
1.1 Giới thiệu tình hình nghiên cứu hiện nay......................................................... 1
1.2Tính cấp thiết của đề tài .................................................................................... 2
1.3 Mục tiêu nghiên cứu ........................................................................................ 3
1.4 Nhiệm vụ nghiên cứu ...................................................................................... 4
1.5 Đối tượng và phạm vi nghiên cứu ................................................................... 4
1.6 Phương pháp nghiên cứu ................................................................................. 4
1.7 Bố cục của Đồ án ............................................................................................. 4
Chƣơng 2. CƠ SỞ LÝ THUYẾT
5
2.1 Giới thiệu mạng Neural nhân tạo ..................................................................... 5
2.2Mơ hình mạng Neural nhân tạo......................................................................... 7
2.2.1Mơ hình Neural chỉ 1 ngõ vào ....................................................................... 7
Trangvi
ĐỒ ÁN TỐT NGHIỆP | 2015
2.2.2Mơ hình Neural tổng qt .............................................................................. 8
2.3Hàm kích hoạt ................................................................................................... 9
2.4Kiến trúc mạng Neural .................................................................................... 12
2.4.1 Perceptron .................................................................................................. 14
2.4.2 Mạng nhiều tầng truyền thẳng ................................................................... 15
2.5 Các luật học cho mạng Neural ...................................................................... 16
2.6 Các vấn đề trong xây dựng mạng MLP ........................................................ 17
2.6.1 Chuẩn bị dữ liệu ......................................................................................... 17
2.6.2 Xác định các tham số cho mạng ................................................................ 20
2.7 Các tính chất của mạng Neural ..................................................................... 22
2.8 So sánh mạng Neural với máy tính truyền thống .......................................... 22
2.9 Ngôn ngữ mô tả phần cứng HDL............................................................... 23
Chƣơng 3. THUẬT TOÁN BACKPROPAGATION
3.1 Mạng Neural truyền thẳng ............................................................................ 26
3.2 Thuật tốn Backpropagation ......................................................................... 28
3.3 Hàm kích hoạt ............................................................................................... 34
3.3.1 Hàm Sigmod .............................................................................................. 34
3.3.2 Hàm Tansig ................................................................................................ 34
3.4 Chuẩ n chuyể n đổ i số thực sang số nhi ̣phân IEEE 754 ................................. 35
3.4.1 Số thực dấu phẩy động ................................................................................ 35
3.4.2 Cộng 2 số thực theo chuẩn IEEE-754 ......................................................... 36
3.4.3 Nhân 2 số thực theo chuẩn IEEE 754 ......................................................... 37
3.4.4 Cách tính hàm Sigmod và Tansig gần đúng trong Verilog ......................... 38
Trangvii
ĐỒ ÁN TỐT NGHIỆP | 2015
Chƣơng 4. NGHIÊN CỨU THUẬT TỐN
4.1 Sơ đồ thực hiện thuật tốn ............................................................................. 40
4.2 Huấn luyện mạng Neural ............................................................................... 41
4.3 Khảo sát thuật toán thực hiện bằng Matlab.................................................... 43
4.4 Các module chương trình ............................................................................... 45
4.4.1 Khối thực hiện mạng ................................................................................... 45
4.4.2 Tính hàm E .................................................................................................. 46
4.4.3 Module hàm lỗi δk ....................................................................................... 48
4.4.4 Module hàm lỗi δh1 , δh2 .............................................................................. 48
4.4.5 Cập nhật bộ trọng số ................................................................................... 50
4.5 Thuật toán huấn luyện mạng .......................................................................... 50
Chƣơng 5. KẾT QUẢ
5.1 Sơ đồ thực hiện các giai đoạn mô phỏng ....................................................... 53
5.2 Khối thực hiện phép nhân số thực.................................................................. 54
5.2.1 Thiết kế RTL cho khối nhân ....................................................................... 54
5.2.2 Kết quả mô phỏng khối nhân ...................................................................... 55
5.3 Khối thực hiện phép cộng số thực.................................................................. 57
5.3.1 Thiết kế RTL cho khối cộng ....................................................................... 57
5.3.2 Kết quả mô phỏng khối cộng ...................................................................... 58
5.4 Khối thực hiện số hóa hàm sigmod-tansig ..................................................... 59
5.4.1 Thiết kế RTL cho khối sigmod ................................................................... 59
5.4.2 Thiết kế RTL cho khối tansig ..................................................................... 60
5.5 Khối thực hiện net .......................................................................................... 61
Trangviii
ĐỒ ÁN TỐT NGHIỆP | 2015
5.5.1 Thiết kế RTL cho khối net .......................................................................... 61
5.5.2 Kết quả mô phỏng khối net ......................................................................... 62
5.6 Khối tình hàm Error ....................................................................................... 64
5.6.1 Thiết kế RTL cho khối hàm Error ............................................................... 64
5.6.2 Kết quả mô phỏng khối Error ..................................................................... 65
5.7 Khối so sánh ................................................................................................... 65
5.7.2 Kết quả mô phỏng khối so sánh .................................................................. 66
5.8 Khối tính hàm lỗi δk ở ngõ ra ........................................................................ 67
5.8.1 Thiết kế RTL cho khối tính hàm lỗi δk ....................................................... 67
5.8.2 Kết quả mơ phỏng khối tính hàm lỗi δk ..................................................... 68
5.9 Khối tính hàm lỗi δh1 , δh2 ............................................................................... 68
5.9.1 Thiết kế RTL cho khối tính hàm lỗi δh1 , δh2 ............................................... 68
5.9.2 Kết quả mơ phỏng khối tính hàm lỗi δh1 , δh2 .............................................. 69
5.10 Khối cập nhật trọng số ................................................................................. 70
5.10.1 Thiết kế RTL cho khối cập nhật trọng số ................................................. 70
5.10.2 Kết quả mô phỏng khối cập nhật trọng số ................................................ 71
5.11 Thiết kế khối Pre_backpropagation ............................................................. 75
5.11.1 Thiết kế RTL cho khối Pre_backpropagation ........................................... 75
5.11.2 Kết quả mô phỏng khối pre_backpropagation .......................................... 77
5.12 Thiết kế khối Backpropagation .................................................................... 78
5.12.1 Thiết kế RTL khối Backpropagation ........................................................ 78
5.12.2 Kết quả mô phỏng khối backpropagation ................................................. 80
5.13 Thiết kế khối network_control ..................................................................... 81
5.13.1 Thiết kế RTL khối network_control ......................................................... 81
5.13.2 Kết quả mô phỏng khối network_control ................................................. 82
Trangix
ĐỒ ÁN TỐT NGHIỆP | 2015
5.14 Tổng hợp các khối thành khối top ............................................................... 83
5.14.1 Thiết kế RTL cho khối top ........................................................................ 83
5.14.2 Kết quả mô phỏng khối top_layer ............................................................. 84
Chƣơng 6. KẾT LUẬN
87
TÀI LIỆU THAM KHẢO
88
Trangx
ĐỒ ÁN TỐT NGHIỆP | 2015
DANH SÁCH CÁC BẢNG
Bảng 5.1: Kết quả sử dụng tài nguyên và thời gian khố i nhân ..................................... 55
Bảng 5.2: Kết quả sử dụng tài nguyên và thời gian khố i cô ̣ng ..................................... 57
Bảng 5.3: Kết quả sử dụng tài nguyên và thời gian khố i tính sigmod .......................... 59
Bảng 5.4: Kết quả sử dụng tài nguyên và thời gian khố i tính tansig ............................ 60
Bảng 5.5: Kết quả sử dụng tài nguyên và thời gian khố i net ........................................ 62
Bảng 5.6: Kết quả sử dụng tài nguyên và thời gian khố i error ..................................... 64
Bảng 5.7: Kết quả sử dụng tài nguyên và thời gian khố i so sánh ................................. 66
Bảng 5.8: Kết quả sử dụng tài nguyên và thời gian khố i tính hàm lỗi δk ở ngõ ra ....... 67
Bảng 5.9: Kết quả sử dụng tài nguyên và thời gian khố i tính hàm δh........................... 69
Bảng 5.10: Kết quả sử dụng tài nguyên và thời gian khố i khối cập nhật trọng số ....... 71
Bảng 5.11: Kết quả sử dụng tài nguyên và thời gian khố i khối pre_backpropagation . 76
Bảng 5.12: Kết quả sử dụng tài nguyên và thời gian khố i khối backpropagation ........ 79
Bảng 5.13: Kết quả sử dụng tài nguyên và thời gian khố i network_control ................ 82
Bảng 5.14: Kết quả sử dụng tài nguyên và thời gian khối top_layer ............................ 84
Bảng 5.15: So sánh kết quả thực hiện thuật toán trên FPGA và trên Matlab ............... 86
Trangxi
ĐỒ ÁN TỐT NGHIỆP | 2015
DANH SÁCH CÁC HÌNH ẢNH
Hình 1.1: Quy trình thiết kế chip .................................................................................... 3
Hình 2.1: Mạng Neural thực ........................................................................................... 5
Hình 2.2: Cấu trúc của một nơron sinh học điển hình .................................................... 6
Hình 2.3: Mơ hình tốn học một Neural nhân tạo .......................................................... 7
Hình 2.4: Mơ hình Neural một ngõ vào khơng có hệ số bias ......................................... 7
Hình 2.5: Mơ hình Neural một ngõ vào có hệ số bias .................................................... 8
Hình 2.6: Mơ hình Neural tổng qt ............................................................................... 8
Hình 2.7: Hàm kích hoạt hardlim loại 1........................................................................ 10
Hình 2.8: Hàm kích hoạt hardlim loại 2........................................................................ 10
Hình 2.9: Hàm kích hoạt purelin ................................................................................... 11
Hình 2.10: Hàm kích hoạt Log-sigmod ........................................................................ 11
Hình 2.11: Hàm kích hoạt Tansig ................................................................................. 12
Hình 2.12: Mạng tự kết hợp .......................................................................................... 12
Hình 2.13: Mạng kết hợp khác kiểu .............................................................................. 13
Hình 2.14: Mạng truyền thẳng ...................................................................................... 13
Hình 2.15: Mạng phản hồi ............................................................................................ 14
Hình 2.16: Perceptron ................................................................................................... 14
Hình 2.17: Mạng MLP tổng quát .................................................................................. 15
Hình 2.18: Mối liên hệ giữa sai số và kích thước mẫu ................................................. 18
Hình 2.19: Verilog Abstraction Level ........................................................................... 24
Hình 3.1: Mơ hình tính tốn một Neural ....................................................................... 26
Hình 3.2: Mơ hình tính tốn mạng Neural tổng quát .................................................... 27
Hình 3.3: Sơ đồ thuật tốn Backpropagation ................................................................ 29
Hình 3.4: Xác định tần số .............................................................................................. 32
Hình 3.5: Giảm kích thước của tần số khơng chắc chắn ............................................... 33
Hình 3.6: Hàm Sigmoi .................................................................................................. 34
Hình 3.7: Hàm Tansig ................................................................................................... 35
Hình 3.8: Định dạng chung của chuẩn số thực dấu phẩy động ..................................... 36
Hình 3.9: Chuẩn số thực 32bit (Float) và 64-bit (Double)............................................ 36
Hình 3.10: Tính hàm Sigmod ........................................................................................ 38
Hình 3.11:Hàm Sigmod gần đúng ................................................................................. 39
Hình 4.1: Sơ đồ thực hiện thuật tốn ............................................................................ 40
Hình 4.2: Sơ đồ giá trị Net ............................................................................................ 45
Hình 4.3: Sơ đồ thực hiện mạng Neural lan truyền thẳng ............................................ 46
Trangxii
ĐỒ ÁN TỐT NGHIỆP | 2015
Hình 4.4: Sơ đồ tính E và so sánh ................................................................................. 47
Hình 4.5: Sơ đồ hàm lỗi δk ............................................................................................ 48
Hình 4.6: Sơ đồ hàm lỗi δhi ........................................................................................... 49
Hình 4.7: Sơ đồ cập nhật bộ trọng số ............................................................................ 50
Hình 4.8: Sơ đồ thuật tốn huấn luyện mạng ................................................................ 51
Hình 5.1: Sơ đồ thực hiện các giai đoạn mơ phỏng ...................................................... 53
Hình 5.2 Sơ đồ khối nhân.............................................................................................. 54
Hình 5.3 Ảnh mơ phỏng kết quả mult 1 ........................................................................ 56
Hình 5.4 Ảnh mơ phỏng kết quả mult 2 ........................................................................ 56
Hình 5.5 Sơ đồ khối cộng.............................................................................................. 57
Hình 5.6 Ảnh mơ phỏng kết quả adder1 ....................................................................... 58
Hình 5.7 Sơ đồ khối tính sigmod .................................................................................. 59
Hình 5.8 Ảnh mơ phỏng khối tansig 1 .......................................................................... 61
Hình 5.9 Ảnh mơ phỏng khối tansig 2 .......................................................................... 61
Hình 5.10 Sơ đồ khối Net.............................................................................................. 62
Hình 5.11 Ảnh mơ phỏng kết quả khối tính Net_O(y3) ............................................... 63
Hình 5.12 Ảnh mơ phỏng kết quả khối tính sigmod từ Net_O(y3) .............................. 63
Hình 5.13 Sơ đồ khối tính hàm error ............................................................................ 64
Hình 5.14 Kết quả mơ phỏng khối tính hàm error ........................................................ 65
Hình 5.15 Sơ đồ khối so sánh error ............................................................................... 65
Hình 5.16 Ảnh kết quả mô phỏng khối so sánh ............................................................ 66
Hình 5.17 Sơ đồ khối tính hàm lỗi δk ở ngõ ra .............................................................. 67
Hình 5.18 Ảnh mơ phỏng khối tính hàm lỗi δk ở ngõ ra ............................................... 68
Hình 5.19 Sơ đồ khối tính hàm lỗi lớp ẩn δh1 , δh2 ........................................................ 69
Hình 5.20 Ảnh mơ phỏng khối tính hàm lỗi lớp ẩn δh1 ................................................. 70
Hình 5.21 Ảnh mơ phỏng khối tính hàm lỗi lớp ẩn δh2 ................................................. 70
Hình 5.22 Sơ đồ khối cập nhật trọng số ........................................................................ 71
Hình 5.23 Ảnh mơ phỏng cập nhật w1 ......................................................................... 72
Hình 5.24 Ảnh mơ phỏng cập nhật w2 ......................................................................... 72
Hình 5.25 Ảnh mơ phỏng cập nhật w3 ......................................................................... 73
Hình 5.26 Ảnh mơ phỏng cập nhật w4 ......................................................................... 73
Hình 5.27 Ảnh mơ phỏng cập nhật w5 ......................................................................... 74
Hình 5.28 Ảnh mơ phỏng cập nhật w6 ......................................................................... 74
Hình 5.29 Sơ đồ khối pre_backpropagation ................................................................. 75
Hình 5.30 Ảnh mơ phỏng khối pre_backpropagation ................................................... 77
Hình 5.31 Sơ đồ khối backpropagation ......................................................................... 79
Hình 5.32 Ảnh mơ phỏng khối backpropagation .......................................................... 80
Hình 5.33 Sơ đồ khối network_control ......................................................................... 81
Hình 5.34 Ảnh mơ phỏng kết quả khối network_control ............................................. 82
Hình 5.35 Sơ đồ khối top_layer .................................................................................... 83
Trangxiii
ĐỒ ÁN TỐT NGHIỆP | 2015
Hình 5.36 Ảnh mơ phỏng khối top_layer ..................................................................... 84
Trangxiv
ĐỒ ÁN TỐT NGHIỆP | 2015
CHƢƠNG 1
TỔNG QUAN
1.1.
Giới thiệu tình hình nghiên cứu hiện nay
Cuối TK 19, đầu TK 20, sự phát triển chủ yếu chỉ là những công việc có sự
tham gia của cả ba ngành Vật lý học, Tâm lý học và Thần kinh học, bởi các nhà
khoa học như Hermann von Hemholtz, Ernst Mach, Ivan Pavlov. Các cơng trình
nghiên cứu của họchủ yếu đi sâu vào các lý thuyết tổng quát về HỌC (Learning),
NHÌN (vision) và LẬP LUẬN (conditioning),... và khơng hề đưa ra những mơ hình
tốn học cụ thể mô tả hoạt động của các nơron.
Mọi chuyện thực sự bắt đầu vào những năm 1940 với cơng trình của Warren
McCulloch và Walter Pitts. Họ chỉ ra rằng về nguyên tắc, mạng của các nơron nhân
tạo có thể tính tốn bất kỳ một hàm số học hay logic nào!
Tiếp theo hai người là Donald Hebb, ông đã phát biểu rằng việc thuyết lập
luận cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thực bởi do các
thuộc tính của từng nơron riêng biệt. Ơng cũng nêu ra một phương pháp học của các
nơron nhân tạo.
Ứng dụng thực nghiệm đầu tiên của các nơron nhân tạo có được vào cuối
những năm 50 cùng với phát minh của mạng nhận thức (perceptron network) và luật
học tương ứngbởi Frank Rosenblatt. Mạng này có khả năng nhận dạng các mẫu.
Điều này đã mở ra rất nhiều hy vọng cho việc nghiên cứu mạng nơron. Tuy nhiên
nó có hạn chế là chỉ có thể giải quyết một số lớp hữu hạn các bài tốn.
Cùng thời gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuật toán học
mới và sử dụng nó để huấn luyện cho các mạng nơron tuyến tính thích nghi, mạng
có cấu trúc và chức năng tương tự như mạng của Rosenblatt. Luật học WidrowHoff vẫn còn được sử dụng cho đến nay.
Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấp phải một vấn đề do
Marvin Minsky và Seymour Papert phát hiện ra, đó là các mạng nhận thức chỉ có
khả năng giải quyết các bài tốn khả phân tuyến tính. Họ cố gắng cải tiến luật học
và mạng để có thể vượt qua được hạn chế này nhưng họ đã không thành công trong
việc cải tiến luật học để có thể huấn luyện được các mạng có cấu trúc phức tạp hơn.
Do những kết quả của Minsky-Papert nên việc nghiên cứu về mạng nơron gần
như bị đình lại trong suốt một thập kỷ do nguyên nhân là khơng có được các máy
tính đủ mạnh để có thể thực nghiệm.
Mặc dù vậy, cũng có một vài phát kiến quan trọng vào những năm 70. Năm
1972, Teuvo Kohonen và James Anderson độc lập nhau phát triển một loại mạng
Trang 1
ĐỒ ÁN TỐT NGHIỆP | 2015
mới có thể hoạt động như một bộ nhớ. Stephen Grossberg cũng rất tích cực trong
việc khảo sát các mạng tự tổ chức (Self organizing networks).
Vào những năm 80, việc nghiên cứu mạng nơron phát triển rất mạnh mẽ cùng
với sự ra đời của PC. Có hai khái niệm mới liên quan đến sự hồi sinh này, đó là:
Việc sử dụng các phương pháp thống kê để giải thích hoạt động của một lớp
các mạng hồi quy (recurrent networks) có thể được dùng như bộ nhớ liên hợp
(associative memory) trong cơng trình của nhà vật lý học Johh Hopfield.
Sự ra đời của thuật toán lan truyền ngược (back-propagation) để luyện các
mạng nhiều lớp được một vài nhà nghiên cứu độc lập tìm ra như: David
Rumelhart, James McCelland,.... Đó cũng là câu trả lời cho Minsky-Papert.
Trong quá trình phát triển, mạng nơron đã được ứng dụng thành công trong rất
nhiều lĩnh vực. Dưới đây liệt kê ra một số ứng dụng chính của mạng nơron:
Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái
máy bay, bộ phát hiện lỗi.
Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phân tích hoạt
động của xe.
Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.
Defense: Định vị - phát hiện vũ khí, dị mục tiêu, phát hiện đối tượng, nhận
dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar,...
Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiến trình, phân
tích ngun nhân hỏng chip, nhận dạng tiếng nói, mơ hình phi tuyến.
Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.
Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá
mức độ hợp tác, phân tích đường tín dụng, chương trình thương mại qua giấy
tờ, phân tích tài chính liên doanh, dự báo tỷ giá tiền tệ.
Insurance: Đánh giá việc áp dụng chính sách, tối ưu hóa sản phẩm.
1.2.
Tính cấp thiết của đề tài
Với những cơng trình nghiên cứu khoa học và những ứng dụng, mạng Neural
thực hiện thuật toán Backpropagation khẳng định giá trị và tính hiệu quả. Tuy nhiên,
Thuật tốn mạng Neural huấn luyện theo giải thuật Backpropagation chủ yếu là phát
triển theo hướng software, do đó mức độ tính tốn của các giải thuật là rất cao. Tuy
có nhiều cấu trúc và giải thuật cho mạng Neural nhưng chưa có nghiên cứu nào xây
dựng cấu trúc vi mạch cho các ứng dụng thực tế. Để có thể thiết kế khả thi kiến trúc
vi mạch và đảm bảo tính chính xác, ổn định của hệ thống thì mạng Neural thực hiện
giải thuật Backpropagation là lựa chọn thích hợp nhất.
Trang 2
ĐỒ ÁN TỐT NGHIỆP | 2015
Việc xây dựng mạng Neural trên cấu trúc vi mạch, thể hiện qua FPGA hay
ASIC với công nghệ 180nm và 65nm là một trong những vấn đề tồn tại trong những
bài báo và nghiên cứu gần đây. Bài tốn thực thi giải thuật bằng ngơn ngữ phân
cứng luôn được đặt ra và thảo luận. Hạn chế của ngơn ngữ mơ tả phần cứng địi hỏi
phải có sự tính tốn và xử lý thích hợp để sai số trong quá trình chuyển tải xuống
phần cứng là thấp nhất.
Do mạng Neural được ứng dụng nhiều trong nhiều lĩnh vực nên xây dựng
thành công kiến trúc vi mạch theo tiêu chuẩn công nghệ (180nm/65nm) sẽ là tiền đề
quan trọng trong việc đẩy mạnh phát triển các lĩnh vực khác, mở rộng các mơ hình
mạng Neural khác. Do đó tính mở rộng được đánh giá cao.
1.3.
Mục tiêu nghiên cứu
Thiết kế hoàn chỉnh và tối ưu cấu trúc vi mạch thực hiện giải thuật cho thuật
tốn học Backpropagation.
Quy trình thiết kế tn theo quy trình thiết kế chuẩn. Ngơn ngữ thiết kế cho
thực hiện mạng Neural và giải thuật cho thuật tốn học Backpropagation là Verilog
HDL-IEEE.
Hình 1.1: Quy trình thiết kế chip
KHẢ NĂNG ỨNG DỤNG:
Khối mạng Neural sau khi xây dựng sẽ có khả năng phát triển cho các ứng
dụng khác một cách dễ dàng nhất có thể, thay thế dễ dàng cấu hình mạng Neural
Trang 3
ĐỒ ÁN TỐT NGHIỆP | 2015
như: việc tăng Neural trên mỗi lớp, việc tăng số lớp cho mạng . . .chỉ bằng vài thao
tác đơn giản ghép nối các module con.
1.4.
Nhiệm vụ nghiên cứu
Nghiên cứu về mạng Neural, giải thuật Backpropagation,…
Xây dựng thuâ ̣t toán Backpropagation trên phầ n cứng FPGA để huấ n luyê ̣n
cho ma ̣ng Neural 2x2x1 (có 2 neural lớp ngõ vào, một lớp ẩn với 2 neural và
lớp ngõ ra với 1 neural).
1.5.
Đối tƣợng và phạm vi nghiên cứu
Nghiên cứu tổng quan về kiến trúc mạng Neural.
Nghiên cứu về thuật toán học Backpropagation.
Nghiên cứu về công nghệ FPGA và ngôn ngữ mô tả phần cứng Verilog.
Nghiên cứu về chuẩn chuyển đổi số thực sang số nhị phân IEEE 754.
1.6. Phƣơng pháp nghiên cứu
Nghiên cứu lý thuyết
Tìm hiểu lý thuyết mạng Neural nhân tạo và một số cơng trình nghiên cứu
mạng Neural trong và ngồi nước.
Phân tích các giải pháp xây dựng kiến trúc mạng neural, sử dụng giải thuật cho
thuật toán học Backpropagation.
Nghiên cứu thực nghiệm
Nghiên cứu kiến trúc vi mạch cho mạng Neural truyền thẳng, sử dụng giải
thuật cho thuật tốn học Backpropagation. Khảo sát theo các cơng trình thực tế sử
dụng mạng Neural và đặc tính của mạng Neural cũng như công nghệ FPGA để xây
dựng cấu trúc vi mạch cho mạng Neural phù hợp.
Viết chương trình thực hiện và tiến hành mô phỏng, đánh giá kiến trúc mạng.
1.7.
Bố cục của Đồ án
Đồ án bao gồm các chương:
Chƣơng 1 – Tổng quan: Giới thiệu đề tài và tính cấp thiết của đề tài.
Chƣơng 2 – Cơ sở lý thuyết: Giới thiệu các khái niệm cơ bản mạng Neural.
Chƣơng 3 – Thuật toán Backpropagation: Giải thuật thực hiện đề tài.
Chƣơng 4 – Nghiên cứu thuật toán: Tìm hiểu các module thực hiện đề tài.
Chƣơng 5 – Kết quả: Kết quả mô phỏng
Chƣơng 6– Kết luận: Đánh giá và mở rộng đề tài.
Trang 4
ĐỒ ÁN TỐT NGHIỆP | 2015
CHƢƠNG 2
CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu mạng Neural nhân tạo
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao
gồm khoảng 1011 nơron tham gia vào khoảng 1015 kết nối trên các đường truyền.
Mỗi đường truyền này dài khoảng hơn một mét. Các nơron 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ịn 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 trên các đường mịn nơron, các con đường này tạo nên hệ thống giao tiếp
của bộ não.
Hình 2.1: Mạng Neural thực
Mỗi tế bào nơron gồm ba phần:
Thân nơ-ron với nhân bên trong (gọi là soma), là nơi tiếp nhận hay phát
ra các xung động thần kinh.
Một hệ thống dạng cây các dây thần kinh vào (gọi là dendrite) để đưa
tín hiệu tới nhân nơ-ron. Các dây thần kinh vào tạo thành một lưới dày
đặc xung quanh thân nơ-ron, chiếm diện tích khoảng 0,25 mm2.
Trang 5
ĐỒ ÁN TỐT NGHIỆP | 2015
Đầu dây thần kinh ra (gọi là sợi trục axon) phân nhánh dạng hình cây,
có thể dài từ một cm đến hàng mét. Chúng nối với các dây thần kinh
vào hoặc trực tiếp với nhân tế bào của các nơ-ron khác thông qua các
khớp nối (gọi là synapse). Thơng thường mỗi nơ-ron có thể có từ vài
chục cho tới hàng trăm ngàn khớp nối để nối với các nơ-ron khác. Có
hai loại khớp nối, khớp nối kích thích (excitatory) sẽ cho tín hiệu qua
nó để tới nơ-ron cịn khớp nối ức chế (inhibitory) có tác dụng làm cản
tín hiệu tới nơ-ron. Người ta ước tính mỗi nơ-ron trong bộ não của con
người có khoảng 104 khớp nối
Hình 2.2: Cấu trúc của một nơron sinh học điển hình
Chức năng cơ bản của các tế bào nơ-ron là liên kết với nhau để tạo nên hệ
thống thần kinh điều khiển hoạt động của cơ thể sống. Các tế bào nơ-ron truyền tín
hiệu cho nhau thơng qua các dây thần kinh vào và ra, các tín hiệu đó có dạng xung
điện và được tạo ra từ các q trình phản ứng hố học phức tạp. Tại nhân tế bào, khi
điệnthế của tín hiệu vào đạt tới một ngưỡng nào đó thì nó sẽ tạo ra một xung điện
dẫn tới trục dây thần kinh ra. Xung này truyền theo trục ra tới các nhánh rẽ và tiếp
tục truyền tới các nơ-ron khác.Q trình lan truyền tín hiệu cứ tiếp tục như vậy cho
đến khi đến đầu ra cuối cùng. Mạng thần kinh nhân tạo là mơ hình tốn học đơn giản
của bộ não người. Bản chất thần kinh nhân tạo là mạng tính tốn phân bố song song.
Các nghiên cứu về mạng thần kinh nhân tạo đã bắt đầu từ thập niên 1940.
Mạng thần kinh nhân tạo có thể xem như là mơ hình tốn học đơn giản của bộ
não con người. Mạng thần kinh nhân tạo gồm các tế bào thần kinh nhân tạo kết nối
với nhau bởi các liên kết. Mỗi liên kết kèm theo m ột trọng số, đă ̣c trưng cho đă ̣c
tính kích thích hay ức chế giữa các tế bào thần kinh nhân tạo.
Trang 6
ĐỒ ÁN TỐT NGHIỆP | 2015
Hình 2.3:Mơ hình tốn học một Neural nhân tạo
So sánh với tế bào thần kinh sinh học, ở tế bào thần kinh nhân tạo, trọng số w
đă ̣c trưng cho m ức liên kết của các khớp (synapse), phần thân (cell body) được
biểu diễn b ởi phép toán c ộng và hàm chuyển đổi f. Với ngõ ra a là tín hiệu ra
trên trục (axon).
2.2. Mơ hình mạng Neural nhân tạo
2.2.1. Mơ hình Neural chỉ 1 ngõ vào
Hình 2.4:Mơ hình Neural một ngõ vào khơng có hệ số bias
Trang 7
ĐỒ ÁN TỐT NGHIỆP | 2015
Hình 2.5:Mơ hình Neural một ngõ vào có hệ số bias
Một mơ hình Neural đơn giản nhất (hình 2.4) chỉ gồm một input x và trọng số
w. Sau khi qua hàm kích hoạt, đầu ra sẽ nhận được là o= f(w.x).Trên hình (2.7),
ngồi input cịn có thêm phân cực . Khi đó o=f(wx+ ), thực chất phân cực
cũng có tác dụng như trọng số, chỉ khác là input của nó bằng 1.
Phân cực sẽ làm dịch chuyển hàm fqua trái một đoạn , flà hàm kích hoạt,
nó nhận tham số Hvào và cho đầu ra là o, thơng thường thì f là hàm nấc (step) hay
hàm sigmoid số. Mấu chốt của mạng là ở chỗ và w có thể điều khiển được thông
qua tự học bắt buộc, để cho hệ có thể thực hiện được một yêu cầu cụ thể nào đó hay
nói cách khác thì và w sẽ được hiệu chỉnh lại thơng qua q trình học.
2.2.2. Mơ hình Neural tổng qt
Hình 2.6:Mơ hình Neural tổng qt
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
Tập các đầu vào: 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 vector 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). Trọng số liên kết giữa tín hiệu vào
thứ j với nơron k thường được kí hiệu là w . Thơng thường, các trọng
kj
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ó.
Trang 8
ĐỒ ÁN TỐT NGHIỆP | 2015
Ngƣỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền.
Hàm truyền (Transfer function) : 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 1 .
Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là
một đầu ra.
Xét về mặt tốn học, cấu trúc của một nơron k, được mơ tả bằng cặp biểu thức
sau:
𝑝
𝑢𝑘 =
𝑤𝑘𝑗 𝑥𝑗
(2.1)
𝑗 =1
𝑝
𝑦𝑘 = 𝑓
𝑤𝑘𝑗 𝑥𝑗 + 𝑏𝑘
(2.2)
𝑗 =1
trong đó: x , x , ..., x : là các tín hiệu vào; (w , w
1
2
p
k1
k2, ...,
w
kp)
là các trọng số liên kết
của nơron thứ k; u là hàm tổng; b là một ngưỡng; f là hàm truyền và y là tín hiệu
k
k
k
đầ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 Hàm kích hoạt
Hàm kích hoạt có nhiệm vụ giới hạn giá trị output của Neural, và tùy theo từng
u cầu mà hàm kích hoạt có thể khác nhau, dưới đây là những hàm thơng dụng
nhất.
Hàm kích hoạt ngưỡng
Trang 9