c5 + 313 xsirsssrrrssresree 5 Hình 2.2 Mô hình của một nơ-ron nhân tao được gan nhãn k [4]...- --- -- 6 Hình 2.3 Mô hình của một mạng ANN cơ bản...- --- -- SĂ + ssssirsrreree 7 Hình 2.4
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
PHAM CONG THINH
NGUYEN TIEN LUAN
KHOA LUAN TOT NGHIEP
VOI MOI TRUONG MOUNTAINCAR TREN PHAN CUNG
DESIGN AND IMPLEMENTATION OF DEEP Q-NETWORK ARCHITECTURE
WITH MOUNTAINCAR ENVIRONMENT IN HARDWARE
KY SU NGANH KY THUAT MAY TINH
TP HO CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
PHẠM CÔNG THỊNH - 18521449
NGUYEN TIEN LUẬN - 18521065
KHOA LUAN TOT NGHIEP
THIET KE VA HIEN THUC KIEN TRUC DEEP Q-NETWORK
VOI MOI TRUONG MOUNTAINCAR TREN PHAN CUNG
DESIGN AND IMPLEMENTATION OF DEEP Q-NETWORK ARCHITECTURE
WITH MOUNTAINCAR ENVIRONMENT IN HARDWARE
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS LAM DUC KHAI
TP HO CHÍ MINH, 2022
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
526/QD-DHCNTT ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Dai hoc Công nghệ Thông tin.
Trang 4LỜI CÁM ƠN
Đầu tiên, chúng em muốn cảm on các quý thầy/cô và các giảng viên đã va danggiảng dạy tại trường Đại học Công nghệ Thông tin — Dai học Quốc gia Thành phó
Hồ Chí Minh đã góp công xây dựng trường của chúng ta ngày hôm nay
Trong quá trình học tập và rèn luyện tại trường, chúng em nhận được sự chỉ bảo tận
tình, tiếp thu được những kiến thức, kinh nghiệm quý báu của các thay/cé, từ đó đãgiúp chúng em có được những kiến thức chuyên môn, sâu rộng như ngày hôm nay
Ngoài ra, chúng em còn được trang bị kỹ năng mềm trong quá trình theo học tại
trường, giúp chúng em có thé bước vững trong cuộc sống và trong tương lai
Tiếp theo, chúng em xin cảm on các thầy/cô thuộc khoa Kỹ thuật máy tinh đã giúp
đỡ chúng em trong những lúc khó khăn về học vụ, đăng ký học phần và hỗ trợ hếtminh dé chúng em có thê hoàn tất việc làm khoá luận.
Dé có thé hoàn thành dé tài này, chúng em xin cảm ơn thay Lam Đức Khai đã tận
tình hướng dẫn từ lúc chúng em là sinh viên năm ba và đã hỗ trợ chúng em thực
hiện đề tài này
Chúng em cũng muốn gửi lời cảm ơn đến các trang thông tin cung cấp các kiến thứcquan trọng dé em có thé thực hiện được đề tài này, các bài báo về MachineLearning cơ bản và các trang blog khác đã truyền đạt những kinh nghiệm trong họctập, những kiến thức chuyên môn
Thành phó Hô Chí Minh, tháng 07 năm 2022
Sinh viên thực hiện
Phạm Công Thịnh
Nguyễn Tiến Luận
Trang 5MỤC LỤC
Chương 1 GIỚI THIEU TONG QUAN DE TÀI 2-2-2 s+2sz+£z+zszrsez 5
1.1 Đặt vấn đề tt nh nhe 51.2 Mục tiêu đề tài cccccvt 2 th tt Hee 6
1.3 Phương pháp nghiÊn CỨU 2c 3.13211151131181 rrkrre 6
Chương2 CO SỞ LÝ THUYÊT 2 °+E+EE+EE+EE£EEEEEEEEEEEEEEEEEEkrrkrrrrei 4
2.1 Q— L€aTnInBE - SH ng HH HH 4
2.2 Deep Learning — Học hỏi sâu -. << <2 31193111 HH tr 4
2.3 Artificial Neural Network — Mạng Nơron nhân tạo - -+-<<++ 6
2.3.1 Hàm kích hoạt - - 22221323 2111111122231 1111131 kkerszree 7
2.3.2 Các thuộc tính của ANN - -cc ST HH ng ng ve 10
2.4 Experience Replay — Bộ nhớ phát lại trải nghiệm 5< «<2 14
2.5 T-Soft Updif An \1 14
2.6 Pohicy Đ TC ./ŒĨ I ẶƠƠÚQỎẤẨOO E5 0 nọ 43 0 15
2.6.1 Chính sách lựa chọn ngẫu nhiên - 25 2+s+5s+s+£e+x+zxzxecxeẻ 15
2.6.2 _ Chính sách tham lam - - + +2 k1 k*S kg rệt 15
2.6.3 Chính sách Epsilon-reed|y - - sknnnnnHHnHniệt 15
2.7 Thuật tốn chọn ngẫu nhiên trên Verilog ¿2-2 + s+s+s+s£x+£zxczs 16
2.7.1 Thuật tốn FIbOTaCCI - - - - c 5 2 11111111 223111 SE 1 kreerzse 18
2.7.2 Thuật tốn aÏOIS - << E232 1111111122111 EEkeerzee 12
Chuong 3 | TONG QUAN THIẾT KE HE THĨNG - 5 5552552 13
3.1 Mơ tả tong quan hệ thong eeccecccsssesssessessesssesssessssssesssecsussssssessseesessseessees 13
3.2 Quy trình thực hiện hệ thống "¬— 153.3 Mơ tả tổng quan thiết kế DQN IP Core -2¿- 5¿22+2++zx++zxrzreees l6
Trang 63.3.1 Mô tả Interface - - - c << 2311111111111 SS SĐT £ 16
3.3.2 Sơ đồ khối thiết kế -©-¿+c++ESEEEEE22122171 212112111 18
3.4 Mô tả môi trường MOuntaincar G5 3321183118111 EErsrserere 18
Chuong 4 CHI TIẾT THIET KE HE THÓNG - 2-2 2© x£s+£+2 +2 21
4.1 Thiết kế khối Deep Q-NetWOrk - 2 2 St+SE+EE£EEEEEEEEEEEEerkerkerkrree 21
4.1.1 Mô tả 1n{€TAC€ - cG E311 111111 21111111190 1v ng ven 21
41.2 SO AG KHOI thiét š ' 224.1.3 Sơ đồ chuyên trạng thái hoạt động - 2 5c 5z+sz+ze+rxrseee 24
4.2 Thiết kế khối ANN -¿- 2-52 +2<2EEEEEE2122122171711211211 1121121111 E1 cre 25
4.2.1 I8 röš 0777 - 4 25
4.2.2 Sơ đồ khối thiết kế -+©tcx+EvEEeEkrrkrrrrrkerkerreee 274.2.3 Sơ đồ chuyền trạng thái hoạt d6ng cceeccccsssessesstesseesseestesstesseessees 284.3 Thiết kế khối Replay MemOrV - 2-52 2+SE+EE2E££EE+EE£EEtEEEZEEerxerrrrex 30
4.3.1 Mô tả In(€rÍaCe c1 10 11111 111g ng 5511 xe 30
4.3.2 So đồ khối thiết kế - +22 EEEEEEEEEEErkerkerreee 324.3.3 Sơ đồ chuyên trạng thái hoạt động 2-2 2+2 x+cxerxsrszxez 344.4 Thiết kế khối Epsilon Greedy -¿¿©2++2x+2£x+2Ext2Exerktsrkrsrxerresree 35
4.4.1 MO ta interface na (.AlầáỆáA 35
44.2 Sơ đồ khối thiết ke eececccccccsccsesssessessesseessessessessesssssessessessssseeseesess 36
4.5 Thiết kế khối Target Net ¿22-56 t2 E12 1E2121121127171211211 11x cce 37
4.5.2 Sơ đồ khối thiết kế -¿©2++2k+EkcEE2 2 EEEEEEEEEErkrrkerreee 39
4.5.3 Sơ đồ chuyên trạng thái hoạt động - 2 + 5z+cz+xs+rxerseee 40
4.6 Thiết kế khối Main Net c.ccccccccccssccscscsesececececsesesesesvsvsveeseecscacsesesvsvavsveveeeees Al
Trang 74.6.1 Mô tả Interface - - - c << 2311111111111 SS SĐT £ 4I
4.6.2 Sơ đồ khối thiết kế -©-¿+2<+2k+EEcEE2 E122 EEkcrkree 434.6.3 Sơ đồ chuyên trạng thái hoạt động - 2 2+sz+s+zxezxsrxrxee 444.7 Thiết kế khối Feed Forward -s-©++5++2k+EEtEE£EESEEEEEerEkrrkerkerkrree 46
4.7.1 MOO ta interface -:1IIO 46
4.7.2 Sơ đồ khối thiết Ke cececccccccsesssessessessesssesseesecssssessessessessessseeseesess 474.7.3 Thiết kế khối Feed Forward Node c.ccsssesssesssessssssesssessseestsssessseesseens 484.8 Thiết kế khối Back Propagation ¿- 2 s+2++2E++EE+EEeEEtrErrxerxerkeres 49
4.8.1 Mô tả 1nf†€TFaC€ - - - cG 0101111112 2311111 11995311 ng 1 ven 49
4.8.2 So đồ khối thiết Kế - 5c c<2EEEkeEEEErrrrkerkerreee 514.8.3 Thiết kế khối Back Propagation Node - 25c secs+cscsee 524.9 Thiết kế khối Update Weight -2¿ 5s ©522cx+2Ext£xEerkesrxesrxerreeree 53
4.11.1 MÔ tả Inf€rface cc TQ HH HH kg ven 57
A112 So G6 KhOi thiét daắÁÁIỪỒ Ỷ' 58
4.12 _ Thiết kế khối Soft Update cececcecccesessessessessesssessessessessessesseessessessesseens 58
4.12.1 MÔ tả In(€TfÍaCe .- LG ST HS HT ng ven 58
4.12.2, Sơ đồ khối thiết kế -¿-2-©2+22x+2EkEEEEEEEE212E121.21eExcrrreee 60
4.13 Thiết kế khối Random Floating Point 32bit - 2-55 secsscssce2 61
Trang 84.13.1 M6 tả In(€TFAC€ - - G LG E111 S ST 51 1k kkkkkkkEr 61
4.13.2 So đồ khối thiết kế -:-©5¿+2E+EESEEEEEE12E1E71 21211211 xe 61 Chương 5 | KET QUA HIỆN THUC HE THÓNG 2-5-5 +52 552 63
b5 Hàn in ¿nh ©Ồcd 63
5.2 Mô phỏng các thiết kế chỉ tiẾt - 2 ¿5£ ©E+SE+EE+EE£EE2EE£EEEerEerkerkrrerrs 63 5.2.1 _ Mô phỏng thiết kế khối Feed Forward - 2z s+cs+cs+zs+se2 63 5.2.2 Mô phỏng thiết kế khối Back Propagation -s¿s++ 64 5.2.3 Mô phỏng thiết kế khối Update Weighit -2- 2 s+cszcse2 66 5.2.4 Mô phỏng thiết kế khối Target Net -¿-5¿©2s55+2cszecxe2 67 5.2.5 Mô phỏng thiết kế khối Main Net cccccccccccsesssesssesssesseessecssecsseeseeses 68 5.2.6 Mô phỏng thiết kế khối Loss Function - 2 2 52 scs+£sss2 69 5.27 Mô phỏng thiết kế khối Soft Update . : -¿-zcs+5cs++ 69 5.2.8 Mô phỏng thiết kế khối ANN 2-©22©22+s+£E+cEzE+rxerxerree 70 5.3 Mô phỏng thiết kế khối Deep Q-Network ¿ 5¿25¿©5++cx++zxscsees 70 5.4 Tổng hợp kết quả và so sánh với phần mềm - ¿2 s25: 71 5.4.1 _ Kết quả tong hợp tài nguyên :- 5+ s+c2+£e+Ee£kerterxersersrree 71 5.4.2 So sánh kết qua với các nghiên cứu liên quan -: :- 72
5.4.3 Kết quả chạy tương tác giữa hệ thống và môi trường 72
5.4.4 So sánh kết quả khi sử dụng hệ số gamma lớn và nhỏ 76
Chương 6 KÉT LUẬN VA HƯỚNG PHAT TRIEN DE TÀI - 80
TA s‹.s 7a 80
6.2 Những khó khăn và van đề còn t6n tại -2¿cs¿©cs+cx++zxsrxrsreeee 80
6.3 Hướng phát triỂn - 2©+++E2EE+EESEEEEEEEE2E1E717112112717121 21111 81
TAI LIEU THAM KHAO cccccsssscessssccecsesececscsesececsvsucacsrsucecscsreacassusesaraveesasaveeeaeers 82
Trang 10DANH MỤC HÌNH
Hình 2.1 Mô hình Deep Q-Learning cơ bản c5 + 313 xsirsssrrrssresree 5
Hình 2.2 Mô hình của một nơ-ron nhân tao được gan nhãn k [4] - - 6 Hình 2.3 Mô hình của một mạng ANN cơ bản - - SĂ + ssssirsrreree 7
Hình 2.4 Đồ thị hàm Sigmoid c.cccccscsessessesssessecsesssessessessessssssessessesssssessessessesseeeses 8Hình 2.5 Đồ thị hàm ReLU oicecceccsscsscsssessessessesseesesssessessessesssessessessesssssessessesseesseesees 9Hình 2.6 Đồ thị hàm Leaky ReLLU - 2-2: 2+ £2S£2EE+EE+EEE2EE+EEtEEerEEzEkrrkerrrer 10
Hình 2.7 Các ký hiệu sử dụng trong Feed Forward Neural Network 11 Hình 2.8 Thuật toán Feed Forward cccccccccscccccsssssccccceesssscscecesssssseceeesseseeeeeees 11 Hình 2.9 Thuật toán Back PropagafIOI - - 5 5 + s1 ng ng rưệt 12
Hình 2.10 Sơ đồ mô hình LESR ¿¿-©2c+t+2EE+vettEEktrrrtrrktrrrtrrrrrrrrrrrkeg 17Hình 2.11 Sơ đồ mô hình Fibonacci LFSR xẲ + xỔ + l -¿©2©cs+cs+zx=sz 18Hình 2.12 Sơ đồ mô hình Galois LFSR x + xŠ + Ì 2-2- + ++2z£+zz+zxsrxzsz 12Hình 3.1 Mô hình tổng quan thiết kế hệ thống 2 2 2 2+2 £++£++£s+£+2 5+2 13Hình 3.2 Sơ đồ quy trình thực hiện hệ thong ¬——“ Pi risascasesscsssccecsssosescsscesssesenea 15
Hình 3.3 Interface của DQN IP Core eececcececccessseesseeeeeseseeesaecneeesseeeeseensaeenaeeaes 16
Hình 3.4 Sơ đồ khối DQN IP Core seseccssesssssseesssssesessneeessnesessneeesteeesnnesensnesesnnesee 18Hình 3.5 Sơ đồ tọa độ vị trí môi trường Mountaincar + ss+<xs+s++sss+ 19Hình 3.6 Mô hình mang ANN đầu vào dau ra của bài toán Mountaincar 19Hình 4.1 Interface của khối Deep Q-NetwOrk -¿- 2 s+cz+czxezxerkerxerxrrsrree 21Hình 4.2 Sơ đồ khối Deep Q-INetwOrk -¿- ¿5c St tEEEE2EE2EE2E12112121 2121 cree 22Hình 4.3 Sơ đồ chuyên trạng thái hoạt động khối Deep Q-Network 24Hình 4.4 Mô tả interface của khối ANN cv 25Hình 4.5 Sơ đồ khối ANN - 22+ HH re 27Hình 4.6 Sơ đồ chuyền trạng thái hoạt động khối ANN -. -5- sec s2 28Hình 4.7 Mô tả interface của khối Replay Memory -:©¿©2scs+cx>s+ 30Hình 4.8 Sơ đồ khối Replay MeimOrY ¿- ¿5c 5£ ESE‡EE2EE2EE+EZEEEeEEerkerkerkrree 32Hình 4.9 Sơ đồ chuyên trạng thái hoạt động khối Replay Memory 34Hình 4.10 Mô tả interface của khối Epsilon Greedy 2- 2 s2sz+zs+cxsrxczez 35
Trang 11Hình 4.11 Sơ đồ khối Epsilon Greediy - 2 2 x+2E+2E++EE+EEeEEerEkrrkerkerkrex 36Hình 4.12 Mô tả interface của khối Target Net -2-©22©22 ++cxczxczrsrxerxcres 37Hình 4.13 Sơ đồ khối Target Net - ¿5-52 ©5222x 2222312212221 211211221221 cEEecrkv 39Hình 4.14 Sơ đồ chuyền trang thái hoạt động khối Target Net - 40Hình 4.15 Mô tả interface của khối Main Net -2-©2¿©2+2c++cxccxzzezrxerxrres 41Hình 4.16 Sơ đồ khối Main Net ccsesscssssesssseecssseecssssesssnseessnseeesneeesneessneeesnnesee 43Hình 4.17 Sơ đồ chuyền trạng thái hoạt động khối Main Net 44Hình 4.18 Mô tả interface của khối Feed Forward -:-cccxccrrrrrrerrrrrrriee 46Hình 4.19 Sơ đồ khối Feed ForWard -s++ccxrttEkkrtttrtirrrtrirrrrrirerrririie 47Hình 4.20 Sơ đồ khối Feed Forward Node ccccccccxerrrrrrkrrrrrrrrirrrrrrieg 48Hình 4.21 Mô tả interface của khối Back Propagation - 25c + s+cs+cszse2 49Hình 4.22 Sơ đồ khối Back Propagation ¿2-2 x+S++EE+E£+E£E£Eerkerkerxererree 51Hình 4.23 Sơ đồ khối Back Propagation Node dùng cho output layer 52Hình 4.24 Sơ đồ khối Back Propagation Node dùng cho hidden layer 52Hình 4.25 Mô ta interface của khối Update Weighit 2-2: 52sz2cs+csszxczsz 53Hình 4.26 Sơ đồ khối Update Weiglhi - 2c s+SE+EE+EE£EE+EZEEEerkerkerkerkrree 54Hình 4.27 Mô tả interface của khối ANN Memory - 2-2 2£ ++£s+z++£ss+2 55Hình 4.28 Sơ đồ khối ANN MemOrY 2 ¿2£ ©S+E£EE#EE+EE+EE+EE£EEEeEEerkerxrrkrree 56Hình 4.29 Mô ta interface của khối Loss Function -2-2- + s2sz2zs+z++zxzsz 57Hình 4.30 Sơ đồ khối Loss Function c:¿-©c++c5+tttExvvsrrrvrrrrrrrrrrrrrrrre 58Hình 4.31 Mô tả interface của khối Soft Update -2- + s+2sz+zz+zxsrxzez 58Hình 4.32 So đồ khối Soft Update - 2 2 ¿+ +E£EE£EE+EE£EE+EEZEEEEerEerkerxrrkrree 60Hình 4.33 Mô tả interface của khối Random Floating Point 32 bit - 61Hình 4.34 Sơ đồ khối Random Floating Point 32bit -cc::cccccsccxcccr+ 61
Hình 5.1 Dạng sóng tín hiệu data cua Feed Forward Node lớp input 64
Hình 5.2 Dạng sóng tín hiệu data của Feed Forward Node tất cả các lớp 64
Hình 5.3 Dạng sóng tín hiệu data cua Back Propagation Node của lớp output 65
Hình 5.4 Dạng sóng tín hiệu data cua Back Propagation Node của lớp hidden 2 65 Hình 5.5 Dang sóng tín hiệu data của Back Leaky ReLu Funcfion 66
Trang 12Hình 5.6 Dang sóng tín hiệu error của Back Error Calculation - « 66
Hình 5.7 Dang sóng tín hiệu error cua Update WeIghI - 5 «<< cseeee 67 Hình 5.8 Dạng sóng interface của Target ÌNe( sàng ưet 67 Hình 5.9 Dạng sóng tín hiệu Qmax của Target NNet - 555cc +ssvssses 68 Hình 5.10 Dang sóng tín hiệu interface của Main ÌNet - 525cc csse 68 Hình 5.11 Dạng sóng tín hiệu o_main_net_done của Main Net 68
Hình 5.12 Dạng sóng interface của Loss FunctIOI 5 «£+<£+sc+se+sessessee 69 Hình 5.13 Dạng sóng interface của Soft pdate - 5 «se reg 69 Hình 5.14 Dạng sóng interface của ANN HH HH ng tườn 70 Hình 5.15 Dạng sóng interface của Deep Q-NetWOrK se net 71 Hình 5.16 Kết quả số bước khi train 4500 phiên trên phần mềm - 73
Hình 5.17 Kết quả số bước sau 300 phiên tương tác bang phan cứng - 73
Hình 5.18 Kết quả số bước sau 300 phiên tương tác bang phần mềm 74
Hình 5.19 Kết quả phan thưởng khi train 4500 phiên trên phần mềm 75
Hình 5.20 Kết quả phần thưởng sau 300 phiên tương tác bằng phần mềm 75
Hình 5.21 Kết qua phần thưởng sau 300 phiên tương tác bang phần mềm 76
Hình 5.22 Kết quả số bước khi train 4500 phiên trên với gamma là 0.002 78
Hình 5.23 Kết quả phan thưởng khi train 4500 phiên với gamma là 0.002 78
Trang 13DANH MỤC BANG
Bảng 2.1 Thuật toán chính sách Epsilon-reedy - + +- «+ s++sexsseeseeers 16
Bảng 3.1 Mô tả chức năng các thành phan của hệ thống -¿- 5522552 14 Bang 3.2 Các thông số cài đặt của hệ thống -2 2¿©2+¿©2++cx++zxrzrxrrresres 14
Bang 3.3 Mô tả các tín hiệu interface của khối DQN IP Core -: 17
Bang 4.1 Mô tả các tín hiệu interface của khối Deep Q-Network 21
Bang 4.2 Mô tả chức năng các khối trong Deep Q-Network -s- 5552 23 Bang 4.3 Mô tả các tín hiệu interface của khối ANN - ¿5c s+cx+cssrssce2 26 Bảng 4.4 Mô tả chức năng các khối trong ANN -¿-2¿©c+2cscccxrsrxerrecree 28 Bảng 4.5 Mô tả các tín hiệu interface của khối Replay Memory - 30
Bang 4.6 Mô tả chức năng các khối trong Replay Memory -5z5+ 33 Bang 4.7 Mô tả các tín hiệu interface của khối Epsilon Greedy - 35
Bang 4.8 Mô tả các tín hiệu interface của khối Target Net -:-5:5- 38 Bang 4.9 Mô tả chức năng các khối trong Target Net 2 25c 5s5s+cs+zsse2 39 Bang 4.10 Mô tả các tín hiệu interface của khối Main Net -5¿5+ 42 Bang 4.11 Mô tả chức năng các khối trong Main Net -2 5c©52©5s+cs+cx>sz 43 Bảng 4.12 Mô tả các tín hiệu interface của khối Feed Forward - 46
Bang 4.13 Mô tả các tín hiệu interface của khối Back Propagation 50
Bang 4.14 Mô tả các tín hiệu interface của khối Update Weight - 53
Bang 4.15 Mô tả các tin hiệu interface của khối ANN Memory - 55
Bang 4.16 Mô tả các tín hiệu interface của khối Loss Function - 57
Bảng 4.17 Mô tả các tín hiệu interface của khối Soft Update 59
Bảng 4.18 Mô tả các tín hiệu interface của khối Random Floating Point 32bit 61
Bang 5.1 Kết qua tong hợp tài nguyên hệ thống 2 2 252 s£x+£x+zszzszse2 71 Bang 5.2 So sánh kết quả thiết kế với các nghiên cứu liên quan - 72
Trang 14DANH MỤC TỪ VIET TAT
2CE Binary Cross Entropy
ReLU Rectified Linear Unit
Leaky ReLU Leaky Rectified Linear Unit
NNQL Nearest Neighbor Q-Learning
IP Core Intellectual Property Core
Cocotb Coroutine CO Simulation Testbench RTL Register-Transfer Level
VPI Verilog Procedural Interface
FPGA Field Programmable Gate Array
FIFO First-In, First-Out BRAM Block Random Access Memory
Trang 15TOM TAT DE TÀI
Hiện nay, các thiết bị trí tuệ nhân tạo dang là xu hướng của thế giới và ngành côngnghệ 4.0 Việc ra đời các thiết bị như vậy giúp con người thuận tiện hơn rất nhiềutrong sinh hoạt hay đi lại Với mức độ cần thiết như vậy, nhóm chúng tôi đã quyếtđịnh nghiên cứu các thuật toán về trí tuệ nhân tạo Thuật toán mà chúng tôi nghiêncứu là một trong những thuật toán giúp máy móc có thê tự đưa ra quyết định như
con người Đó là thuật toán học tăng cường sâu.
Trong khóa luận này, nhóm đề xuất kiến trúc một mạng Q học tăng cường sâu, đây
là một phương pháp cải tiến hơn sao mới phương pháp Q-learning truyền thống
Trong đó, thiết kế sử dụng neural network thay thế Q table Kiến trúc mạng này có
thé tương tác trực tiếp với môi trường, học hỏi các trạng thái từ môi trường, sau đóđưa ra hành vi dé tương tác với môi trường Cuối cùng nhận được phan thưởngtương ứng với việc tương tác đó Sau đó nó sử dụng phần thưởng tương ứng nhận
được để cập nhật các trọng số bên trong mạng nơ-ron và cải thiện hành vi đưa ra
trước tác nhân từ môi trường.
Bên trong dé tài, nhóm sử dụng thuật toán Deep Q-learning network dé xây dựngmột kiến trúc Deep Q-Network tương tác với môi trường rời rạc Băng cách sử dụnghai mạng nơ-ron, mạng đầu tiên để lay giá trị Q trong khi mang thứ hai chứa tất cả
các cập nhật trong quá trình đảo tạo Sau một số lần cập nhật nhất định mạng mục
tiêu sẽ được đồng bộ với mạng cập nhật, mục đích nhằm dé giữ nguyên cố định cácgiá trị Q mục tiêu tạm thời dé cho qua trình đạo đạo được én định Ngoài ra, nhóm
còn sử dụng kỹ thuật phat lại trải nghiệm thông qua bộ nhớ Experience Replay
Memory để tạo ra một tập dữ liệu đầu vào vừa đủ mức 6n định Và khi lây mẫu
ngẫu nhiên từ bộ nhớ phat lại trải nghiệm này dtr liệu sẽ độc lập với nhau hơn va sẽ
đảm bao tính độc lập và phân bồ như nhau
Trang 16Chương 1 GIỚI THIỆU TONG QUAN DE TAI
1.1 Đặt van đề
Máy học hiện đang đóng vai trò quan trọng trong đời sống con người, được áp dụng
trong hầu hết các tiện ích mà máy móc mang lại cho con người Dé ví dụ cho điều
này, có một câu hỏi đặt ra rằng: Đã bao giờ bạn lên các trang thương mại điện tử démua đồ, sau đó được hệ thống gợi ý cho một số món đồ rất phù hợp với nhu cầu?
Hay bạn vừa xem xong một bộ phim thì được Netflix gợi ý cho 1 danh sách các bộ
phim tiếp theo cũng đúng thể loại mà bạn yêu thích Bạn đã từng đọc và nhìn thấy
sự xuất hiện của những chiếc xe tự hành? Hay bạn nghe ở đâu đó 1 team các cỗ máy
đã đánh bại các game thủ hàng đầu thế giới trong bộ môn Dota 2? Vậy thực sự, thứ
gi ân dang sau công nghệ này dé làm giúp ta tat cả điều đó?
Câu trả lời chính là Reinforcement Learning hay còn gọi là Học tăng cường [1].
Một trong những thành tựu đầu tiên của Reinforcement Learning là việc chinh phục
thành công các trò chơi của con người như cờ vua, cờ vây, Starcraft 2 hay Dota, mở
ra một kỷ nguyên mới cho con đường phát triển Trí tuệ nhân tạo AlphaGo củaGoogle DeepMind là thành quả của việc kết hợp deep ANN, supervised learning,Monte Carlo tree search và reinforcement learning dé đánh bại kỳ thủ cờ vây vĩ đại
nhất lịch sử Lee Sedol với tỉ số 4-1
Xe tự hành cũng là một trong những ứng dụng nỗi bật của reinforcement learning.Các nhà khoa học cho rằng các thuật toán học tăng cường chính là trái tim hay linhhồn của các mang deep learning network - khi máy sẽ tự học nhờ quá trình thựchiện, lặp đi lặp lại và cải tiến liên tục Một số nhiệm vụ mà lái xe tự hành có thé ápdụng phương pháp hoc tăng cường bao gồm tối ưu hóa quỹ đạo, lập kế hoạchchuyển động, dẫn động, tối ưu hóa bộ điều khiển và chính sách học tập dựa trênkịch bản cho đường cao tốc
Các kỹ thuật RL thông thường như Q-learning [2] thường không linh hoạt Nó cần
tạo 1 bảng Q-table là 1 ma trận có chiều là [trạng thái, hành động] Vì vậy không
thé sử dụng table ở các môi trường không có số trạng thái nhất định Ngoài ra
Trang 17Q-table không hiệu quả với không gian nhiều trạng thái và nhiều hành động vì lúc này
cần rất nhiều bộ nhớ đề lưu trữ Q-table
Học tăng cường sâu (Deep Reinforcement Learning) là sự kết hợp của học tăng
cường (RL) và học sâu (Deep Learning) va nó cũng là lĩnh vực học máy thịnh hành
nhất tại thời điểm này bởi vì nó có thể giải quyết một loạt các nhiệm vụ ra quyết
định phức tạp mà trước đây máy móc không có khả năng giải quyết các vấn đềtrong thé giới thực giống như trí thông minh của con người Thuật toán Deep Q-Network (DQN) [3][4] trên thực tế ổn định hơn nhiều bang cách thêm một kỹ thuật
phat lại trải nghiệm (Experience Replay - ER) và mạng nơ-ron (Neural Network).
Nó giải quyết phương trình Bellman bang cách điều chỉnh các tham số của mạngnơ-ron về phía mục tiêu Bellman Mạng noron sâu được thêm vào để có được khảnăng tổng quát hóa cao và kỹ thuật ER để giảm sự phụ thuộc vào chuỗi dữ liệu đầu
được đặt ra cho phần cứng, tần số hoạt động của hệ thong là 190MHZ, sử dung số
floating-point 32 bit Nên hệ thống cần thiết kế Pipeline dé đáp ứng các yêu cầu trên
một cách tôi ưu nhât.
1.3 Phương pháp nghiên cứu
Dựa trên ý tưởng phát triển thuật toán DQN trên phần cứng „nhóm dé xuất một lõi
IP DỌN có thể tương tác với môi trường và tự học dựa trên dữ liệu thu thập được
từ môi trường va xử lý trên số chấm động có độ chính xác đơn theo chuẩn
IEEE-754 Trọng số của mạng sẽ được khởi tạo ngẫu nhiên và nạp vào hệ thống Cuối
cùng, thiết kế sẽ được tổng hợp đánh giá
Trang 18Chương 2 CƠ SỞ LÝ THUYET
2.1 Q- Learning
Q-Learning dựa trên khái nệm về hàm Q [5] Q-function (hàm giá trị trang thái
hành động) của một chính sách 7r, Q”(s, a), các biện pháp lợi nhuận kỳ vọng hoặc
tiền chiết khấu của phần thưởng thu được từ trạng thái s băng cách tham gia hànhđộng a đầu tiên và sau chính sách m sau đó Cần xác định tối ưu hàm Q, Q*(s, a)
như sự trở lại tối đa có thé đạt được bắt đầu từ sự quan sát s, hành động a và theođuổi chính sách tối ưu sau đó Tối ưu hàm Q tuân theo phương trình tối ưu Bellman
sau:
Q*(s,a) = E[r + ymax,’ Q*(s’,a’)] (2.1)
Điều nay có nghĩa rang giá trị hàm tối đa từ trạng thái s và hành động a là tổng các
phần thưởng ngay lập tức r và giá trị hàm tối đa (chiết khấu bởi y) thu được bangcách làm theo các chính sách tối ưu sau đó cho đến khi kết thúc việc thực thi (tức là,
phần thưởng tối đa từ trạng thái tiếp theo s’) Kỳ vọng được tính cả trên việc phânphối các phần thưởng ngay lập tức r và các trạng thái tiếp theo có thê s’
Ý tưởng cơ bản là sử dụng phương trình tối ưu Bellman như một bản cập nhật lặp
Q;,¡(s,a) — E[r + ymax,'Q*(s’,a’)], và nó có thé được hién thị mà hội tụ này để
tôi ưu Q-function, tức là Q; —> Q”, như í > ©.
2.2 Deep Learning — Hoc hỏi sâu
Đối với hau hết các van dé, đó là không thực tế để đại diện cho Q-function như mộtbảng chứa giá trị cho mỗi sự kết hợp của s và a Thay vào đó, chúng tôi đào tạo mộthàm approximator, chăng hạn như một mạng lưới thần kinh với các tham số Ø, déước tính giá trị Q, Q-value, tức là Q(s,a; Ø) ~ Q*(s, a) Điều này có thé thực hiện
băng cách giảm thiêu sự mat mat sau đôi với môi bước i:
L¡(6,) = Esars'~pQlOi — Q(s, a; 6))ˆ], nơi yị = r + ymax„rQ(s, a;6;—¡)(2.2)
Trang 19Ở đây, y¡ được gọi là mục tiêu Transition Delay (TD - chênh lệch thời gian), và
— Q được gọi là lỗi TD đại diện phân phối của hành vi, phân phối qua chuyền
{s, a,r, s”} thu thập từ môi trường.
Lưu ý rang các thông số từ phiên trước Ø,_; là cố định và không được cập nhật
Trong thực tế, chúng tôi sử dụng ảnh chụp nhanh các tham số mạng từ một vài lần
lặp trước thay vì lần lặp cuối cùng Bản sao này được gọi là mạng đích
Q-Learning là một thuật toán off-policy (ngoài chính sách) và có chính sách tham
lam a = max,Q(s, a; Ø8) trong khi sử dụng một chính sách hành vi khác nhau cho
hành động trong môi trường / thu thập dữ liệu Chính sách Hành vi này thường là
một chính sách e-greedy đó chọn hành động tham lam với xác suất 1 — e và một
hành động ngẫu nhiên với xác suất e để đảm bảo vùng phủ sóng tốt của không gian
trạng thái hành động Hình 2.1 là ví dụ cơ bản cho mô hình Deep Q-Learning.
Trang 202.3 Artificial Neural Network — Mạng Nơron nhân tạo
Các nhà nghiên cứu đã tìm cach chuyên đổi những hiểu biết về cách thức hoạt động
của các tế bào thần kinh sinh học thành các mô hình Mạng nơ-ron nhân tạo(Artificial Neural Network) [6] có thé hoạt động được trên máy tính Hình 2.2 bên
dưới cho thấy mô hình của một nơ-ron đơn lẻ, được xem như đơn vị xử lý thông tin
cơ bản của một mạng nơ-ron Các nơ-ron này được sử dụng để xây dựng thành cácmạng nơ-ron có kiến trúc phức tạp hơn sẽ được trình bày trong các phần sau Chúng
ta sẽ xem xét 3 thành phân cơ bản của một mạng nơ-ron:
e - Một tập hợp các khớp thần kinh (synapse) hoặc còn được gọi là connecting
link dùng dé kết nối các nơ-ron lại với nhau Mỗi khớp thần kinh được đặc
trưng bởi cường độ liên kết của nó Cụ thể hơn, một khớp thần kinh dùng để
chuyên tín hiệu từ nơ-ron có nhãn j sang nơ-ron có nhãn k với trọng số làwij Không giống như trong số của một khớp thần kinh trong hệ thần kinh
sinh.
e - Một bộ cộng (adder) dùng dé tông hợp các tín hiệu đầu vào tại mỗi nơ-ron và
gửi kết quả đi tiếp
e - Một hàm kích hoạt (activation function) dùng dé đưa các tín hiệu đầu ra của
nơ-ron vào một miền giá tri nhất định hoặc vào một tập hợp các giá trị cố
Trang 21Artificial Neural Network (ANN) gồm 3 thành phan chính: Input layer và outputlayer chi gồm 1 layer , hidden layer có thé có 1 hay nhiều layer tùy vào bài toán cụ
thé ANN hoat động theo hướng mô ta lại cách hoạt động của hệ thần kinh với các
neuron được kết nối với nhau Trong ANN, trừ input layer thì tất cả các node thuộccác layer khác đều full-connected với các node thuộc layer trước nó Mỗi nodethuộc hidden layer nhận vào ma trận đầu vảo từ layer trước và kết hợp với trọng sỐ
để ra được kết quả Hình 2.3 là một ví dụ cơ bản của cấu trúc mạng ANN này
Hình 2.3 Mô hình của một mang ANN co bản
2.3.1 Ham kích hoạt
Hàm kích hoạt (activation function) [7] mô phỏng tỷ lệ truyền xung qua Soi trục ra
(axon) của một neuron thần kinh Trong một mạng nơ-ron nhân tạo, hàm kích hoạtđóng vai trò là thành phần phi tuyến tại output của các nơ-ron trong tầng ân của mô
hình mạng va được sử dụng làm dữ liệu đầu vào cho tang tiếp theo
Trang 222.3.1.1 Sipmoid
Hàm Sigmoid nhận đầu vào là một số thực và chuyên thành một giá trị trong
khoảng (0;1) Khi giá trị đầu vào lớn hàm sẽ cho ra giá trị gần bằng 1 và ngược lại,
hàm sẽ cho giá tri gan băng 0 nêu giá trị dau vào nhỏ.
1.0 0.9
bão hòa ở các giá trị 0 va 1 — trường hop này còn được gọi với cái tên Vanishing Gradient Problem.
Công thức ham Sigmoid:
(x) = — 2.3
ø(⁄) = Tom (2.3)
Công thức dao ham của ham Sigmoid:
a(x)’ = a(x) * (1 — a(x)) (2.4)
2.3.1.2 ReLU
Ham ReLU, tên day đủ là Rectified Linear Unit, đang được sử dung khá nhiều trong
những năm gần đây khi huấn luyện các mạng neuron vì một mô hình sử dụng nó dễdàng hơn để đào tạo và thường đạt được hiệu suất tốt hơn Hình 2.5 là một ví dụ cụthé cho hàm ReLU ReLU đơn giản lọc các giá trị bé hơn 0, Relu sẽ xuất trực tiếp
Trang 23giá trị đầu vào nếu nó dương, nếu không, nó sẽ xuất giá trị 0 Công thức đầy đủ của
o Chi phí tính toán hiệu qua: khiến thuật toán tính toán và hội tụ rất nhanh.
o Non-linear: dù trông giống một ham linear, ReLU có đạo hàm và có thé áp
dụng Back Propagation.
> Nhược điểm:
o_ Khi đữ liệu đầu vào là 0 hoặc mang giá trị âm, đạo hàm sẽ là 0, mạng nơ
ron không thê triển khai Back Propagation và sẽ không học Hiện tượng
này gọi là “Dying ReLU”.
o Khi learning rate lớn, các trọng số (weights) có thé thay đổi theo cách làm
tât cả neuron dừng việc cập nhật.
Trang 242.3.1.3 Leaky ReLU
Leaky ReLU, tên đầy du Leaky Rectified Linear Unit, là một hàm kích hoạt dựa
trên ReLU Hàm kích hoạt Leaky ReLU là một cố gắng trong việc loại bỏ “dying
Relu Thay vì trả về giá trị 0 với các đầu vào bé hơn 0, thì Leaky ReLU tạo ra một
độ dốc nhỏ Hệ số góc được xác định trước khi đào tạo, tức hệ số này không được
học (không thay đổi) trong quá trình dao tao Hàm kích hoạt này phô biến trong cácnhiệm vụ mà chúng ta có thể gặp phải độ dốc thưa thớt Hình 2.6 là ví dụ hàmLeaky ReLU thông thường và công thức đầy đủ của hàm kích hoạt Leaky ReLU:
_ ƒxWwhenx>0
ƒŒœ) = arene ;Uới <a< 1 (2.7)
Công thức đạo hàm của hàm Leaky ReLU:
_ ƒ1whenx>0
2 la when x < 0 (2.8)
2.3.2 Cac thuộc tính cia ANN
Hai hàm quan trọng khi đào tạo một mang ANN là Forwards Propagation dé tínhgiá trị đầu ra của mạng và Backwards Propagation để giúp cập nhập có trọng số
weight của mạng Dưới đây là lý thuyết cơ bản dé tính toán hai hàm này
10
Trang 252.3.2.1 Feed Forward Neural Network
Feed Forward Neural Network (mang thần kinh truyền thang), hay tên gọi khác là
Multi-layer Perceptrons, là các mạng có một lớp đầu vào, lớp an và lớp ra Thôngtin luôn đi theo một hướng - từ lớp đầu vào cho các lớp đầu ra - và không bao giờ đi
lùi Hình 2.7 là các ký hiệu sử dụng trong Feed Forward Neural Network.
INPUT LAYER HIDDEN LAYER OUTPUT LAYER
Hình 2.7 Các ký hiệu sử dụng trong Feed Forward Neural Network
Mô hình neural network trên gồm 3 layer Input layer có 2 node, hidden layer có 2
node và output layer có 1 node Các lớp input layer và hidden layer đều cần có một
node cho giá trị bias nên trong hai lớp này cần thêm một node để tính bias (nhưngkhông tính vào tổng số node layer đó)
—\ £0) ON
( z }†—> a }—>
Hình 2.8 Thuật toán Feed Forward
lãi
Trang 26Theo Hình 2.8 ta có thể giải thích như sau, giá trị nơ-ron sẽ được tính bởi các giá trị
nơ-ron trước đó với một độ lệch (b — bias) với công thức:
n
z= » w,x, +b (2.9)
i=1
Sau đó, giá trị no-ron sẽ qua một hàm kích hoạt activation f(x) dé cho ra giá tri
với công thức sau:
a= f(z) (2.10)
Với hàm kích hoạt mà tùy vào bai toán và mang ma sử dung Một số hàm activationphô biến là sigmoid, relu, linear
2.3.2.2 Back Propagation
Back Propagation (lan truyén ngược) [8] là một thuật toán được sử dung rộng rãi dé
dao tạo cho Feed Forward Neural Network Back Propagation gồm các output layer
va hidden layer:
Theo Hình 2.9 ta có thé giải thích thuật toán như sau:
Gia sử đầu ra chính xác của mang là y, và y2 , ta có thé tính lỗi đầu ra như sau:
1
Eo, = 501 — 4(04))? (2.11)
Eo2 = 5 (V2 — a(o;))? (2.12)
12
Trang 271 1
Eo_totat = Eoi + Fon = sỚI — a(o,))? + sỚ; — a(o,))? (2.13)
Dé tinh đạo hàm SEo_totqi tại các w, lấy wg làm ví du, áp dung quy tắc chain-rule,
ta có được công thức tính đạo ham tai wg như sau:
SEo-total — ôEo—totai 5a(02) ỗZ(02) (2 14)
We Sa(oz) ðz(o;) Swe ,
Từ công thức (2.14) — (2.17) ta có giá tri đạo hàm tai wg là:
SEo-total — ~(y; a a(o;)) « f'(z(02)) * a(h;) (2.18)
dwg
Dé tính dao hàm của SEp-totq: tại các b, lay b„ làm vi dụ, áp dụng quy tắc
chain-tule, ta có được công thức tính đạo hàm tại b, như sau:
OE o-total _ 5Eo-totar 5a(02) 5z(02)
= ——— 2.19
Ob, da(o,) ðz(o;) Sb, (2.19)
Lá a : k ỗEQo—total ` da(o2) ~ roa A , BS lộ
Trong đó giá trị của Salon) VÀ ggQ) ta đã có ở công thức và với:
Trang 282.4 Experience Replay — Bộ nhớ phat lại trải nghiệm
Mô hình DỌN [4] đã su dụng một kỹ thuật có tên là Experience Replay dé làm chocác bản cập nhật mang ôn định hơn Tại mỗi bước thời gian thu thập dữ liệu, quátrình chuyên đôi được thêm vào một bộ đệm gọi là bộ đệm phát lại Sau đó, trongquá trình dao tạo, thay vì chỉ sử dụng quá trình chuyền đôi mới nhất dé tính toán tôn
thất và độ dốc của nó, chúng tôi tính toán chúng bằng cách sử dụng một loạt nhỏ
các chuyên đổi được lấy mẫu từ bộ đệm phát lại Điều này có hai lợi thế: hiệu quả
dữ liệu tốt hơn bằng cách sử dụng lại mỗi chuyên đôi trong nhiều bản cập nhật vàtính 6n định tốt hơn khi sử dụng các chuyền đổi không tương quan trong một dot
Thông thường sỐ lượng lưu trữ của bộ nhớ có giới hạn nên bộ đệm phát lại chỉ cóthé lưu trữ giới hạn mẫu cho phép và gọi số mẫu lưu trữ được của bộ đệm là N thìchỉ có thể lưu trữ được N trải nghiệm gần nhất khi tương tác với môi trường
Trong bộ đệm phát lại mẫu dữ liệu sẽ được lay ngau nhién ra va su dung cho mucdich là dao tạo lại mang cho mô hình — đây là kỹ thuật chính nhằm làm giảm sựtương quan g1ữa các mẫu dữ liệu Quá trình này được gọi lại phát lại trải nghiệm.
2.5 T-Soft Update.
Việc cập nhập mang Q-Target và Q-current trong DQN thông thường trong sốweights sẽ copy từ Q-current sang Q-Target sau mỗi C bước Điều này có nghĩa Q-target sẽ giữ cố định trong C bước và sau đó trọng số weight nhận cập nhập vàthay đôi đáng kê
Đối với t-soft update giá trị trọng số weight sẽ được cập nhật sau mỗi C bước bằngcách theo dõi từ từ mạng đã học theo biểu thức sau
14
Trang 292.6.1 Chính sách lựa chọn ngẫu nhiên
Lua chọn một hành vi ngẫu nhiên bat kế giá trị của hành vi đó là bao nhiêu, chính
sách lựa chọn này hữu ích trong việc khám phá môi trường tương tác, giảm chi phí
tính toán nhưng sẽ là bat lợi trong việc tương tác vì nó đóng góp như một tín hiệu
nhiễu cho mô hình.
Chính sách Epsilon-Greedy, trong đó epsilon đề cập đến xác suất lựa chọn khám
phá, khai thác hầu hết thời gian với một cơ hội khám phá nhỏ Thuật toán của chính
sách này có thé được mô tả như Bảng 2.1
15
Trang 30Bảng 2.1 Thuật toán chính sách Epsilon-Greedy
Algorithm: select_action(e) — Epsilon-Greedy
Trong đó, e là tham sô xác suât Epsilon giúp lựa chọn giữa hai chính sách là chính
sách tham lam và chính sách ngẫu nhiên Nếu giá trị ngẫu nhiên random_value < e thì thực hiện hành vi ngẫu nhiên random action value, ngược lai sẽ chọn hành vi
có giá trị lớn nhất thông qua thuật toán 01
Giá trị Epsilon có thé cố định hoặc giảm dan sau khi mô hình trải qua những phiên
khám pha môi trường đến một giá trị được gọi là e_min thông qua tham số ¢ decay
Có hai loại giảm dần của e là giảm tuyến tính (sau mỗi phiên hoạt động sẽ bị giảm
đi một lượng ¢ decay) và giảm theo cấp số nhân (sau mỗi phiên hoạt động e sẽ bịgiảm bằng cách nhân với ¢ decay) Thuật toán trên mô tả dạng e giảm theo cấp số
nhân.
2.7 Thuật toán chọn ngẫu nhiên trên Verilog.
Trong vài năm gần đây, một số thuật toán đã sử dụng Linear Feedback Shift register
(LFSR) dé tao ngau nhién gia (pseudo random) LFSR, 1a mét thiết bị điện tử tao ra
16
Trang 31một chuỗi các bits ngẫu nhiên, là một thanh ghi thay đổi lấy hàm tuyến tính của
trạng thái trước đó làm đầu vào Nó bao gồm một số cell, mỗi cell sẽ được biểu diễnbởi một Flip-flop Các bit ảnh hưởng đến trạng thái các bit khác được gọi là taps.Một số taps từ chuỗi shift register được sử dụng làm đầu vào cho cổng XOR hoặccông XNOR Đầu ra của cong này sau đó được sử dụng làm phản hồi cho phan đầu
Hình 2.10 Sơ đồ mô hình LFSRHình 2.10 thể hiện sơ đồ mô hình LESR Khi một LESR chạy, mô hình đang đượctạo bởi các Flip-Flop riêng lẻ, là giả ngẫu nhiên, có nghĩa là nó gần với ngẫu nhiên
Nó không hoàn toàn ngẫu nhiên vì từ bat kỳ trạng thái nào của mẫu LFSR thì cũng
có thé dự đoán được trạng thái tiếp theo và sau một thời gian một trình tự lặp lại sẽ
xuất hiện LESR thật ra là một finite state machine, nó có một vài thuộc tính quan
trọng:
- LESR là gia random.
- Các mẫu đầu ra là xác định Ta có thé tìm ra trạng thái tiếp theo bằng cách
biết giá trị hiện tại cũng như là vi trí của các công XOR hoặc XNOR
- Khi taps sử dụng công XOR thì tất cả các thanh ghi đều có giá trị 0 không
thé xuất hiện Bởi vì 0 XOR với 0 sẽ có giá trị 0, LFSR sẽ dừng lại
- Khi taps sử dụng cổng XNOR thì tất cả các thanh ghi đều có giá trị 1 không
thé xuất hiện Bởi vì 1 XOR với | sẽ có giá trị 1, LFSR sẽ dừng lại
- Giá trị tôi đa số lần lặp của LFSR = 2^bits — 1
17
Trang 32LFSR được đặc trưng bởi tính năng phản hồi của nó, kết nối các cell của nó với
nhau ở hai chê độ khác nhau: Fibonacci va Galois.
2.7.1 Thuật toán Fibonacci
Mô hình Fibonacci LFSR, được đặt theo tên của nhà toán hoc Leonardo
Fibonacci, là mô hình phổ biến nhất của LFSR bởi nó là cách triển khai phan cứngđơn giản và không tốn nhiều tài nguyên Fibonacci LFSR cập nhập vào Flip-Flopđầu tiên của thanh ghi, Flip-Flop này ở bên trái, nó hoạt động theo sự thay đổi củacác Flip-Flop khác Fibonacci LFSR bao gồm một số giai đoạn thay đổi các giátrị với mỗi lần lặp lại và một đa thức phản hồi trả về các giá trị mới cho Flip-Flopđầu tiên như Hình 2.11
Đa thức phản hồi của Fibonacci LFSR được định nghĩa:
ƒ(Œ) =1+ œ_¡x+ -+ yx" + cạx" (2.25)
LFSR Fibonacci là mô hình phô biến nhất của LFSR được sử dụng trong các hệ
thông yêu câu tạo ra một chuỗi giả ngẫu nhiên đơn giản và ít tốn tài nguyên.
18
Trang 33cả các bit trong shift register chuyên sang phải không thay đổi, và khi bit đầu vào
trở thành 0 Khi bit đầu ra là 1, các bit ở các vi trí trên cùng đều lật (nếu chúng là 0,chúng trở thành 1, và nêu chúng là 1, chúng trở thành 0), và sau đó toàn bộ thanhghi được chuyền sang phải và bit đầu vào trở thành 1
Đa thức phản hồi của LFSR Galois được định nghĩa :
Trang 34Chương 3 TONG QUAN THIET KE HE THONG
| I I I I
I I I I
I I I I I I I I
I
' VPI
| I I I I
I I I I
I I I I I I I
I I I I
I I
|
Hệ thống được chia làm các năm phan với các chức năng khác nhau như Hình 3.1va
chức năng của các thành phần được trình bày trong Bảng 3.1
Đề dễ dàng thay đổi các thông số như: số lớp, số node của mạng ANN, các tham sốtối ưu thuật toán, nhóm đề xuất thiết kế một tệp chứa các cấu hình tham số đượcnhập vào mỗi khi khởi chạy hệ thống Các thông số sẽ được đưa vào cả Python Test
và DQN IP Core Lúc này cả hai khối sẽ tự động tạo ra kiến trúc tùy chỉnh tươngứng với các câu hình này Việc thiết kế theo phương pháp này, giúp cho việc tối ưuthuật toán trở nên nhanh chóng và dễ dàng hơn rất nhiều Các cấu hình tham số cần
thiết được trình bày cụ thể tại Bảng 3.2
13
Trang 35Hệ thống sử dụng thư viện Cocotb (Coroutine CO simulation testbench) cho việc
kiểm tra thiết kế Verilog HDL trên Python thông qua giao tiếp VPI (Verilog
Procedural Interface) dùng dé điều khiển RTL Simulator (trình mô phỏng thiết kế
RTL).
Bảng 3.1 Mô tả chức năng các thành phần của hệ thống
Thành phần Chức năng
Python Test Tao ra môi trường tương tác cho DQN IP Core, cũng là
(Mountaincar hương pháp đánh giá hoạt động của DQN IP Core
Environment) P & pnap Š a Gongs ,
Thư viện trên Python giúp giao tiếp giữa DUT va phan mềm
Cocotb được thực hiện kèm theo mô phỏng chức năng của DUT đê
dễ dàng kiểm tra cũng như so sánh kết quả giữa phần cứng
va phân mêm.
Phần mềm mô phỏng dùng cho việc kiêm tra hoạt động của
RTL Simulator thiệt kê Ở triên khai này, chúng tôi sử dụng phân mêm
ModelSim đê mô phỏng các khôi mà chúng tôi thiệt kê.
Khối thiết kế RTL của hệ thống, được thiết kế và hiện thực
DỌN IP Core dựa trên kiến trúc DỌN.
Parameter Dùng để nhập vào các thông số của hệ thống (được trình rõ
Configuration ở Bảng 3.2).
Bảng 3.2 Các thông số cài đặt của hệ thống
Thông số Loại giá trị Ý nghĩa
DATA_WIDTH Int Giá trị độ rộng
LAYER_WIDTH Int Giá trị độ rộng
ACTION_WIDTH Int Giá tri độ rộng
MEMORY_WIDTH Int Gia trị độ sâu
TRAIN_START Int Giá trị
BATCH_SIZE Int Gia tri độ lớn
NUMBER_OF_INPUT_NODE Int Giá trị s é node của
NUMBER_OF_HIDDEN_NODE_LAYER_1 Int timg layer
14
Trang 36NUMBER_OF_HIDDEN_NODE_LAYER_2 Int
NUMBER_OF_OUTPUT_NODE Int
LEARNING_RATE Fp_32b Giá tri tham số
GAMMA Fp_32b Giá trị tham số
UPDATE_RATE Fp_32b Gia tri tham sô tính
Thiết kế và kiêm chứng thuật toán
DQN trên phân mêm bang Python
DỌN IP CORE
Tong hợp thiết kế
Giao tiếp DQN IP CORE với
môi trường thông qua cocoTB
Hình 3.2 Sơ đồ quy trình thực hiện hệ thốngHình 3.2 mô tả sơ đồ về quy trình thực hiện hệ thống DQN Đầu tiên chúng tôi đã
thiết kế và kiểm chứng các thuật toán liên quan đến kiến trúc DQN trên phần mềm
bằng Python sau đó thực hiện hệ thống trên bằng ngôn ngữ thiết kế phần cứng
15
Trang 37Verilog Tiếp đến chúng tôi sẽ mô phỏng chức năng của chúng để xem xét hoàn
thiện của chúng Sau khi chắc chắn tất cả đã hoạt đúng như mong đợi, chúng tôi sẽ
tổng hợp thiết kế trên phần mềm Vivado để xem xét mức độ tiêu thụ tài nguyên
cũng như năng lượng của hệ thống DQN Cuối cùng dé đánh giá chỉ tiết về hệ thốngchúng tôi thiết kế các giao tiếp kết nối giữa DQN và phần mềm thông qua thư việnCocotb trên Python Từ đó thu được các kết quả thực tế về hệ thống mà chúng tôi
Hinh 3.3 Interface cua DQN IP Core
Hình 3.3 Interface của mô ta interface cua DON IP Core Khối DON IP Core được
thiết kế dựa trên kiến trúc hoc tăng cường sâu (Deep Q-Network) Khối này được
nhóm thiết kế và hiện thực băng ngôn ngữ thiết kế phần cứng Verilog và được tối
ưu hóa các tham số dé thích hợp với môi trường Mountaincar (được trình bày tạimục 3.4) Sau khi hoàn thành hiện thực khối DON IP Core, nhóm đã đóng gói thiết
kế thành lõi sở hữu trí tuệ có chức năng ra quyết định tương tác với môi trường cụ
thể với đầu vào là các trạng thái từ môi trường Các trạng thái này được xem như là
các đặc trưng của môi trường mà tác nhân có thé nhận biết được Ví du trong môi
trường Mountaincar các trang thái được đưa vao là thông số về vị trí và vận tốc
hiện tại của chiéc xe đây Dau ra của khôi này là hành động tương tác và tín hiệu
16
Trang 38báo hiệu việc học hỏi kết thúc Bảng 3.3 mô ta chi tiết từng tín hiệu interface của
khối Deep Q-Network
Bảng 3.3 Mô ta các tín hiệu interface của khối DQN IP CoreTín hiệu I/O | Số bit Mô tả
clk I 1 Tin hiệu xung clock hệ thống, kích cạnh lênrst_n I 1 Tin hiéu Reset bat đồng bộ tích cực thấp
1_valid I 1 Tín hiệu cho biết dữ liệu vào đúng
Dữ liệu trạng thái từ môi trường (ở thiết kế
i_state nay su dung hai gia tri trang thai dau vao: vi
trí và van toc hiện tai của xe day)
+ i_state_0 I 32 | Dữ liệu trang thái về vi tri hiện tại
+i_state_1 I 32 | Dữ liệu trang thái về vận tốc hiện tại
+Í reward á 32 | Dữ liệu phân thưởng khi thực hiện tương
tác
+ i_done I 1 | Tin hiệu cho biết kết thúc tương tác
w_intialization Dữ liệu khởi tao trọng số ban đầu+ i_weight_valid I 1 | Tín hiệu cho biết dữ liệu trong số vào đúng+ i_weight_layer I 2 Dữ liệu vị trí lớp trọng số dang đưa vào
+ i_weight_addr I 11 | Dữ liệu vị trí trong số dang đưa vào
+ i_weight I 32 | Dữ liệu trọng số
+ i_load_weight_done 1 | Tín hiệu cho biết kết thúc khởi tạo trong số
parameter I N/A_ | Tệp cau hình các tham số được điều chỉnh
configuration
© train done 0 ¡| Tín hiệu cho biết kết thúc học hỏi và bắt
dau tương tac
o_action_valid O 1 Tín hiệu cho biết hành động dau ra đúng
o_action O 2 Dữ liệu hành động tương tác
17
Trang 39Hình 3.4 Sơ đồ khối DQN IP Core
Hình 3.4 mô ta sơ đồ khối DON IP Core Khôi nay có hai thành phần, một là khối
Deep Q-Network trung tâm xử lý chính của hệ thống và trả về giá trị hành độngđược sử dụng dé tương tác với môi trường, hai là bộ nhớ chứa các cấu hình về tham
số được nạp vào thiết kế dé tạo ra cấu trúc phần cứng phù hợp với từng tham số
được cai đặt Mục đích của việc chia làm hai thành phần như vậy giúp cho thay đổimột số thiết kế phần cứng đơn giản và nhanh chóng hơn, chỉ cần thay đổi tệp chứacác tham số Điều này tạo thuận lợi trong quá trình tối ưu hiệu quả của hệ thống
3.4 Mô tả môi trường Mountaincar
Nhóm chọn ngôn ngữ python dé hiện thực vì python hỗ trợ nhiều trong việc tạo môi
trường mô phỏng Môi trường Mountaincar trong thư viện OpenAi Gym được sử
dụng để tạo môi trường training và kiểm chứng thuật toán DỌN
Môi trường Mouantaincar đặt ra bài toán: Một chiêc ô tô đang trên đường một
chiêu, năm giữa hai ngọn núi Mục tiêu là lái xe lên ngọn núi bên phải Tuy nhiên,
động cơ của xe không đủ mạnh dé vượt qua núi chỉ trong 1 lần đồ đèo Vì vậy, cách
18
Trang 40duy nhất dé lên được đỉnh là lái xe tới lui để xây dựng động lực đủ mạnh đề thành
công Hình 3.5 là mô hình của môi trường Mountaincar.
-1.2 -1 -0.8 -0.6 -04 -02 0 02 04 06
Hình 3.5 Sơ đồ tọa độ vị trí môi trường Mountaincar
VỊ trí của chiếc xe nam trong khoảng [-1.2; 0.6] và vận tốc của xe năm trongkhoảng [-0.07; 0.07] VỊ trí ban đầu được gán ngẫu nhiên trong [-0.6; -0.4] Vận tốc
ban đầu của xe luôn được cho bằng 0 Xe có thể tăng tốc sang trái, phải hoặc khôngtăng tốc dé lên được đỉnh núi Phần thưởng bằng 0 nếu trị trí xe đến cờ (position =0.5) và bằng -1 nếu trị trí của xe chưa đến cờ (position < 0.5)
Tnput Layer Hidden Layer Output Layer