1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Thiết kế và hiện thực kiến trúc Deep Q-Network với môi trường Mountaincar trên phần cứng

104 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế và Hiện thực Kiến trúc Deep Q-Network với Môi trường Mountaincar trên Phần cứng
Tác giả Phạm Công Thịnh, Nguyễn Tiến Luận
Người hướng dẫn TS. Lâm Đức Khai
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Kỹ thuật Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 104
Dung lượng 57,76 MB

Nội dung

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 3

THONG 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 4

LỜ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 5

MỤ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 6

3.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 7

4.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 8

4.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 10

DANH 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 11

Hì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 12

Hì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 13

DANH 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 14

DANH 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 15

TOM 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 16

Chươ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 17

Q-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 18

Chươ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 20

2.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 21

Artificial 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 22

2.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 23

giá 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 24

2.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 25

2.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 26

Theo 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 27

1 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 28

2.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 29

2.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 30

Bả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 31

mộ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 32

LFSR đượ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 33

cả 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 34

Chươ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 35

Hệ 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 36

NUMBER_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 37

Verilog 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 38

bá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 39

Hì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 40

duy 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

Ngày đăng: 03/11/2024, 19:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w