Trong đó Environment là mối trường thực thi cung cấp trạng thái hiện tạicho Agent cũng như đảm nhận việc thực thi hành động và trả về các giá trị như state,nextstate, reward, isgameon đề
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN DUY THANH TRAN NGUYEN MINH TRIET
KHOA LUAN TOT NGHIEP
MOT HIEN THUC PHAN CUNG CHO BAI TOAN TIM DUONG DI NGAN
NHAT TRONG ME CUNG 10X10 BANG DEEP-Q-LEARNING
A HARDWARE IMPLEMENTATION FOR FINDING THE SHORTEST
PATH IN MAZE 10X10 USING DEEP-Q-LEARNING
KY SU NGANH KY THUAT MAY TÍNH
TP HO CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN DUY THANH - 18521408 TRAN NGUYEN MINH TRIET - 18521534
KHOA LUAN TOT NGHIEP
MOT HIỆN THUC PHAN CỨNG CHO BÀI TOÁN TÌM DUONG DI NGAN
NHAT TRONG ME CUNG 10X10 BANG DEEP-Q-LEARNING
A HARDWARE IMPLEMENTATION FOR FINDING THE SHORTEST
PATH IN MAZE 10X10 USING DEEP-Q-LEARNING
KY SƯ NGÀNH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN
ThS Pham Thanh Hùng
TS Trịnh Lê Huy
TP HO CHÍ MINH, 2022
Trang 3THONG TIN HỘI 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ố
528/QD-ĐHCNTT ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ
"Thông tin.
Trang 4LỜI CẢM ƠN
Đầu tiên, em muốn cảm ơn các quý thầy, cô và các giảng viên đã và đang giảng dạy tại trường Dai 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, nhận được những kiến thức, kinh nghiệm quý báu của các thầy 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ị những kĩ năng mềm trong quá trình theo học tại
trường, những điều đó giúp chúng em có thé vững bước trong cuộc sống và trong
tương lai.
Tiếp theo, nhóm em xin cảm ơn các thầy cô thuộc Khoa Kỹ thuật máy tính đã giúp
đỡ bọn em trong những lúc khó khăn về học vụ, đăng ký học phần và hỗ trợ hết mình
để nhóm em có thé mượn thiết bị trong lúc làm khóa luận.
Để hoàn thành khóa luận này, nhóm em xin được cảm ơn thầy Phạm Thanh Hùng,
thầy Trịnh Lê Huy đã tận tình hướng dẫn tụi em thực hiện khóa luận và thầy Trần Đại Dương từ lúc khởi đầu của đề tài này cũng như bạn Nguyễn Trung Hiếu đã giúp đỡ chúng em bồ sung những kiến thức cần thiết cho khóa luận.
Sau cùng, chúng em muốn gửi lời cảm ơn đến gia đình và bạn bè đã luôn là hậu phương vững chắc, là chỗ dựa tỉnh thần giúp chúng em có thể hoàn thành khóa luận.
Thành phố Hô Chí Minh, tháng 8 năm 2022
Sinh viên thực hiện
Nguyễn Duy Thanh Trần Nguyễn Minh Triết
Trang 52.1.2 Thuật toán Gradient descent MOMENtUM «+ ++s++s>+> 4
2.1.3 Activation Function: ReLU
2.2 Mê cung ÍŨX( tàn HT TH HH nghe 7
2.3 Quy trình ra quyết định Markov
2.4 Neural NetWOFK - 55 ST n* 112111 TH HH HH TH tren 0
2.5 Deep Q Learning - Sàn HH 1 2.6 Backpropagation -c-S St H121 01101 3
Chương 3 THIẾT KE TONG QUAN -¿¿+222++ct2vvvvversrrrscee 6
3.1 Mô tả tổng quan hệ thống 2¿¿222++++22EE+++tEEEEEEtErEEvrrrrrrkrerrrr 6
3.2 Quy trình thiết kế hệ thống :2 ©22+++22EE+2+tEEEEEEtEEEExrrrrrkrrrrrer § Chương4 THIET KE CHITIẾT ccc:z-2s2cc+zz222czsss+ 9
4.1 Khối Environment -2¿2++2++t2E++t2EEE+EEEEEEEEEECEEEErErEkrrrrkrrrrkrrer 9
4.2 Khối Agent 2c:22222222222112222211112222111 2.12111121111111 cv 26
4.2.1 Khối Fully Connected . -2c++222vvz+eevcvvrrerrrsrrcrrr 30
4.2.2 Khối Policy Generator ¿-52222cvvvcrrtrrrrrrrrrerrrrrrer 32
4.3 Khối Backprop -22-c2c2+cc222222 1212222111111 c.rrrree 35
Trang 64.3.1 Khối TDERROR .:¿c22252ccc2cvvrerrrrrrrrrrrrrrcrrg 40
4.3.2 Khối TDUPDATE
4.3.3 Khối Update Parameter ssccccsssssesssssssesssssseeccsssseesssssecesssuseesssseee 47
4.4 Khối shortest action.
Chuong5 | HIEN THỰC THIET KE, MO PHONG VÀ NAP UNG DUNG CUA THIET KE VAO FPGA 0767 ố.Ắ ẽ 53
5.1 Mô phỏng trên phan mềm
5.1.1 Mô phỏng thuật toán bằng phần mềm Python - 53
5.1.2 So sánh với kết quả trên giải thuật Lee-Algorithm.
5.2 Mô phỏng các thiết kế chỉ tiẾt -cc::z-522222v2cc++ccvvvvvrrrrrrrrrrvsee 57
5.2.1 Khối Environment
5.2.2 Khối Agen( - :c2222vcreECErrrrtrrkrrrrrrrtrrrrrrrrve 58
5.2.3 Khối Backprop cccccccccverrrerrktrrrrrrrrrrrrrrrvee 58
5.3 Giới thiệu FPGA Xilinx và mục đích sử dung -5-«-c+ces«++ 61
5.3.1 Giới thiệu Xilinx S222 2222EEErrrrrrrveg 61
5.3.2 Mục đích sử dụng cty 63
5.4 Tổng hợp thiết kế trên Virtex 7 -22¿222++zettEEEverrrrrrxererrrrrrrr 64
5.5 Hệ thống SOC kết nối IP 22+++222VEE2++++rttttvvrvvrrrrrrrrrrrrre 65
5.6 So sánh kết quả thiết kế với các nghiên cứu liên quan : 66
Chương 6 KÉT LUẬN VÀ HƯỚNG PHÁT TRIEN CUA DE TÀI 68
6.1 Kết luận 2222c 2222 2222221122222 0.1 eerrii 68
6.2 Khó khăn gặp phải +5: tt He 68
6.3 Hướng phát triền 2¿++22E++++22EE2E+2E2211212221122122111 E221 ccrrkeg 69
TÀI LIEU THAM KHẢO 22222-2222222222+2222E2222222tSEEEEEEEvrrrrrrrrrrrrrrrree 70
Trang 7Hình 2.6 : Công thức Q value -¿-¿- - + +52 E2 111111101 1111 1 run 9
Hình 2.7 : Công thức Temporal Difference -¿- ¿+ 65t s*£vxsxevevevrerereree 9
Hình 2.8 : Q value sau khi cập nhật Temporal Difference -¿ «+ - + 9 Hình 2.9 : Mô hình mạng no-0N - - - St 112121 E3 Y2 1 tư 10
Hình 2.10 : Lookup table của Q — Learning ¿- - 5< + 5++++x+£+£crszxzveesr 12
Hình 2.11 : Mạng nơ-ron của Deep-Q-Learning 5+5 s+cecsxexex 12
Hình 2.12 : Các bước thực hiện của Deep-Q-Learning -.- ¿ 5+©++c+c++ 13
Hình 2.13 : Mô phỏng cách tinh backpropagatiOn - + +55 sc++zx+cs> 15 Hình 3.1 : Tổng quan thiết kế
Hình 3.2 : Sơ đồ quy trình thiết kỀ -¿ -22222222++22222ESEE2+rrrtrtEEErxrrrrrrrrrrrrrer 18 Hình 4.1 : Sơ đồ khối của Environmeni - 2: +2222++++2222+++222++zzczxscee 20 Hình 4.2 : Sơ đồ chỉ tiết của khối EnvironmeI ¿©22c++22++z+czvscee 21
Hình 4.3 : Sơ dé khối của Total_check_step - -525255+cccsrcczksesrersreree 24
Hình 4.4 : Sơ đồ chỉ tiết của khối Total_check_step -72ccccccccccccrrcee 25 Hình 4.5 : Sơ đồ khối của AgenI -¿©222++++222+++t2EEEEErttEEEvrrrrrrkrrrrrrrrree 27
Hình 4.6 : Sơ đồ chỉ tiết của khối Agent -: 2222222ccrvcvvvvvvvrrrrrrrrrrrree 28 Hình 4.7 : Sơ đồ khối của Fully Connected -: scc+ccsscevcssccecccse. +30) Hình 4.8 : Sơ đồ chỉ tiết của khối Fully Connected -c::+:222ccvvecccez 31
Hình 4.9 : Sơ đồ khối của Policy ŒeneratOr :z£©sz++222v+z++tcvseveerz 33
Hình 4.10 : Sơ đồ chỉ tiết của khối Policy Generator - - 34
Hình 4.11 : Sơ đồ khối của Backprop .-.-:-¿ 22222cv2ccetcEEEEkrvrrrrrrrrrrrrrrrree 36 Hình 4.12 : Sơ đồ chỉ tiết của khối Backprop :¿£©25z++222vvcceccvserecrr 38 Hình 4.13 : Sơ đồ khối của TDERROR
Trang 8Hình 4.14 : Sơ đồ chỉ tiết của khối TDERROR cc¿-ccccccccvvvcsrrreerre 42 Hình 4.15 : Sơ đồ khối của TDUPDATE -22c¿222+vcrrttrkterrtrrrkrrrrrrrkee 44 Hình 4.16 : Sơ đồ chỉ tiết của khối TDUPDA TE -cc:555ccsccxvvsrxversre 45
Hình 4.17 : Sơ đồ khối của Update param€r - 2-2-2522 £+x+£xezEzEsrxerxezex 41 Hình 4.18 : Sơ đồ chi tiết của khối Update paramter 2 25c scx+zs+zszs+2 48
Hình 4.19 : Sơ đồ khối của khối Shortest action -:-cccccxecsrrxvererrreerre 50
Hình 5.1 : Mê cung khởi tạO cành HH TH TH HT HH HH ng ngư 54
Hình 5.2 : Đường đi ngắn nhất sau khi train 2-2 + z+sz+x+xerxerxerxersree 54
Hình 5.3 : Mê cung sử dung trong Lee Algorithm - - 5+5 s++sscsssesssrs 55
Hình 5.4 : Các vi tri mà đối tượng đã đi qua ceccecccccecessessessessessssseseesssessessessesseseeeee 56
Hình 5.5 : Các hành động mà đối tượng thực hiện giữa hai giải thuật 56
Hình 5.6 : Dang sóng khi mô phỏng khối Environment .2 ¿- 5z ©522=5+ 57 Hình 5.7 : Dang sóng khi mô phỏng khối Environment .2 ¿- 552 =5+ 57 Hình 5.8 : Dạng sóng khi mô phỏng Forward và kết quả trên trên phần mềm 58
Hình 5.9 : Dang sóng newweightOP và kết quả trên trên phần mềm 59
Hình 5.10 : Dang sóng newbiasOP va kết quả trên trên phần mềm 59
Hình 5.11 : Dang sóng newweightIP và kết quả trên trên phần mém 60
Hình 5.12 : Dạng sóng newbiasIP và kết quả trên trên phần mềm 60
Hình 5.13 : Kit FPGA Virtex 7 V77 S S- ST TH HH HH HH Hiệp 61 Hình 5.14: Sơ đồ khối của Kit VC707 ccccccccvverrrtrktrrrrrrtrrrtrtrirrrrrrieg 63 Hình 5.15 : Power Resources sau khi generate bitstream với IP - 64
Hình 5.16 : Mô hình SOC tổng quất ceccecceccccccccsesesesessessessessessessesscsesessesseesessease 65 Hình 5.17 : Thiết kế SOC cho IP trên Vivado ccc¿c5vvcsccxvrrrrrrrrrrrrrrre 65
Trang 9DANH MỤC BẢNG
Bảng 4.1 : Điểm nhận được sau khi thực hiện hành động cccccssesreees 19
Bảng 4.4 : Mô tả tín hiệu của khối Total_ check _ step - - «5s cssscsssessses 24
Bảng 4.5 : Chức năng của các khối trong Total_check_step -5z5+ 25
Bảng 4.7 : Chức năng của các khối trong Agent c.cccccecsessessessesseesesseesessesssesseeseess 29Bảng 4.8 : Mô tả tín hiệu của khối Fully Connected -¿-s¿5sz5s++cs+ 3l
Bảng 4.11 : Chức năng của các khối trong Policy GeneratOr : : 34
Bang 4.13 : Chức năng của các khối trong Backprop -s¿©5z2ss+cs+zxzsz 39
Bang 4.15 : Chức năng của các khối trong TDERROR 2- ¿©5552 s52 552 42
Bảng 4.18 : Mô tả tín hiệu của Update paramter 5 555 + + *++seesseeesers 47
Bang 4.19 : Chức năng của các khối trong Update paramter -:- 49Bảng 4.20 : Mô tả tín hiệu của khối Shortest action -:-2¿©5¿2csz+cs+cx+sc+z 51Bảng 4.21 : Chức năng của các khối trong Shortest action -.: -: -s: 52
Bang 5.2 : Kết qua tong hop IP trên Vivado với board Virtex VC707 - 64Bang 5.3 : So sánh kết quả thiết kế với các nghiên cứu liên quan -. 66
Trang 10DANH MỤC TỪ VIET TAT
BFS Breadth First Search
GDM Gradient Descent Momentum
Trang 11TÓM TẮT KHÓA LUẬN
Trong khoá luận này, nhóm đề xuất giải pháp sử dụng Deep-Q-Learning kết hợp với
Học tăng cường (Reinforcement Learning) dé giải quyết bài toán tìm đường đi ngắn
nhất trong mê cung có kích thước 10x10 Trong đó việc sử dụng Deep-Q-Learning là
đề thay thế cho giải thuật Dyna-Q-Learning vì Dyna-Q-Learning chỉ có thể áp dụng
cho việc giải các mê cung có kích thước nhỏ.
Bên trong kiến trúc, nhóm xây kiến trúc gồm 4 khối chính Environment, Agent,Backprop Trong đó Environment là mối trường thực thi cung cấp trạng thái hiện tạicho Agent cũng như đảm nhận việc thực thi hành động và trả về các giá trị như state,nextstate, reward, isgameon đề Backrpop có thé đi sample Agent dùng dé tính actionthực thi ở trang thái hiện tại Backprop dùng dé cập nhật trong số cho mang nơ-ron
trong Backprop và Agent bằng cách đi sample các giá trị đã được lưu Cuối cùng là
khối Shortest action có nhiệm vụ thực hiện so sánh và lưu trữ các action ít nhất dé cóthể đi từ vị trí bắt đầu đến vị trí đích
Kết quả sẽ được đánh giá theo hai tiêu chí :
e Tính chính xác của thuật toán trên phần cứng: So sánh với kết quả mô hình
trên phần mềm của giải thuật Lee Algorithm để kiểm tra độ chính xác củađường di ngăn nhất
e Tài nguyên phan cứng: Việc đánh giá các thông số này sẽ được thực hiện trên
các phân mêm cua Xilinx.
Trang 12MỞ ĐẦU
Việc giải mê cung (Maze solving) đang phát triển rất nhanh và nhận được sự quantâm ở lĩnh vực robot cũng như các cuộc thi quốc tế về robot Thuật toán giải mê cung
được ứng dụng trong việc định vị vệ tinh, tìm đường di trên các con đường hay việc
tim đường đi cho việc chuyền hàng hoá giữa 2 điểm trong kho hàng
Với dé tài nghiên cứu “DESIGN HARWARE ACCELERATOR FOR DYNA-Q
ALGORITHM TO SOLVE 5x5 MAZE PROBLEM” của tac giả Hiéu, Thién, Phuc
sử dung giải thuật Dyna-Q-Learning để thực hiện việc tim đường đi ngắn nhất trong
ma trận Tuy nhiên giải thuật đó sẽ bị hạn chế đối với những ma trận có kích thướclớn hơn Dựa vào đó nhóm đề xuất giải pháp sử dụng Deep-Q-Learning dé thay thécho Dyna-Q-Learning và kết hợp với Học tăng cường (Reinforcement Learning) dégiải quyết vẫn đề kích thước ma trận
Trong đề tài, đối tượng (Agent) chỉ tiếp xúc với môi trường mê cung và chỉ nhậnthông tin của ô mà nó đang đứng (không cần nhìn các ô phía trước) Với ít thông tin
vê môi trường, đôi tượng của nhóm có thê tìm ra con đường tôi ưu đên kho bau.
Các phân tiép theo của khóa luận sẽ được tô chức như sau:
e Chương 1: Trình bày về tong quan đề tài, các nghiên cứu liên quan đến đề tài
của nhóm, hướng nghiên cứu đề tài và mục tiêu của đề tài
e Chương 2: Giới thiệu về học tăng cường, activation Relu, Gradient Descent
Momentum, quy trình ra quyết định Markov, giới thiệu mạng nơ-ron,
Q-Learning cũng như giải thuật Deep-Q-Q-Learning.
e_ Chương 3: Dua ra thiết kế tổng quan của hệ thống, mô tả cơ bản về cách hệ
thống hoạt động và quy trình thiết kế hệ thống
e Chương 4: Chi tiết các thiết kế, các thành phan trong hệ thống cần hiện thực
e Chương 5: Cho biết quá trình hiện thực thuật toán trên phần mềm cũng như
kết quả mô phỏng, kết quả đánh giá thiết kế và hệ thống
e_ Chương 6: Tổng kết, đưa ra hướng phát triển tiếp theo và nêu những khó khăn
khi thực hiện đề tài
Trang 13Chương 1 GIỚI THIỆU TONG QUAN DE TÀI
1.1 Đặt vấn đề
Trong những năm gần đây, AI hiện diện trong mọi lĩnh vực của đời sống con người,
từ kinh tế, giáo dục, y khoa cho đến những công việc nhà, giải trí hay thậm chí là
trong quân sự Những ứng dụng nổi bật trong việc phát trién AI đến từ nhiều lĩnh vực
để giải quyết nhiều vấn đề khác nhau Nhưng những đột phá phần nhiều đến từ Deep
Learning (học sâu) - một mảng nhỏ đang mở rộng dần đến từng loại công việc, từ đơngiản đến phức tạp Deep Learning đã giúp máy tính thực thi những việc tưởng chừngnhư không thê vào 15 năm trước: phân loại cả ngàn vật thê khác nhau trong các bứcảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao
tiếp với con người, hay thậm chí cả sáng tác văn, phim, ảnh, âm nhạc [1]
Trong số tat cả các loại mô hình Machine Learning, Reinforcement Learning (RL) là
mô hình được sử dụng đề xử lí bài toán trong đề tài Học tăng cường (Reinforcement
Learning) là một trong ba kiéu hoc máy chính bên cạnh hoc giám sat (Supervised
Learning) và học không giám sát (Unsupervised Learning) Phương pháp này được
học theo cách tự nó huấn luyện và học tập dựa vào những mức điểm thưởng và mứcphạt khi nó thực hiện một hành động trong môi trường Bản chất là tác nhan(Agent)tương tac với môi trường(Environment) thông qua hành động(Action) Kiểu học này
được ứng dụng trong Makerting, Robotics, Gaming, Image Processing,
Shao và cộng sự thiết kế tăng tốc phần cứng dựa trên FPGA cho Trust Region Policy
Optimization (TRPO), một thuật toán nâng cao trong Deep Reinforcement Learning
và chuyền hóa quá trình huấn luyện của họ dé điều khiển một cánh tay robot thực sự
[2I.
Việc giải mê cung (Maze solving) đang phát triển rất nhanh và nhận được sự quantâm ở lĩnh vực robot cũng như các cuộc thi quốc tế về robot Thuật toán giải mê cung
được ứng dụng trong việc định vi vệ tinh, tìm đường đi trên các con đường hay việc
tìm đường đi cho việc chuyền hàng hoá giữa 2 điểm trong kho hàng
Trang 141.2 Hướng nghiên cứu đề tài
Trong đề tài nghiên cứu “DESIGN HARWARE ACCELERATOR FOR DYNA-Q
ALGORITHM TO SOLVE 5x5 MAZE PROBLEM” của tác giả Hiếu, Thiện, Phúc
sử dụng giải thuật Dyna-Q-Learning dé thực hiện việc tìm đường đi ngắn nhất trong
ma trận Tuy nhiên giải thuật đó sẽ bị hạn chế đối với những ma trận có kích thướclớn hơn Dựa vào đó nhóm đề xuất giải pháp sử dụng Deep-Q-Learning dé thay thécho Dyna-Q-Learning và kết hợp với Học tăng cường (Reinforcement Learning) dégiải quyết vấn đề kích thước ma trận
Trong đề tài, đối tượng (Agent) chỉ tiếp xúc với môi trường mê cung và chỉ nhậnthông tin của ô mà nó đang đứng (không cần nhìn các ô phía trước) Với ít thông tin
về môi trường, đôi tượng của nhóm có thê tìm ra con đường tôi ưu đên kho báu
1.3 Mục tiêu đề tài
Trong khoá luận luận này, nhóm sẽ nghiên cứu, phân tích và tìm hiểu lý thuyết về
Reinforcement Learning, Deep Q Learning, Backpropagation, Neural Network Phan
kế tiếp nhóm sẽ nghiên cứu, phân tích và thiết kế, hiện thực việc giải quyết bài toántìm đường đi ngắn nhất trong mê cung 10x10 bằng ngôn ngữ phần cứng Verilog và
hiện thực việc giải bài toán trên board FPGA Virtex-7 VC707.
Trang 15Chương2 CƠ SỞ LÝ THUYET
2.1 Học tăng cường
Bản chất của Reinforcement Learning là trial-and-error, nghĩa là thử đi thử lại và rút
ra kinh nghiệm sau mỗi lần thử như vậy Bằng cách tận dụng sức mạnh của tìm kiếm
và nhiều thử nghiệm, Reinforcement Learning hiện là cách hiệu quả nhất dé gợi ý sự
sáng tạo của máy móc [3].
State Action
Reward
gent
Hinh 2.1 : Agent va Environment
Dưới đây là một số thuật ngữ quan trong liên quan đến học tăng cường :
e Tác nhân (Agent) : nó là một thực thể giả định thực hiện các hành động trong
một môi trường đề đạt được một số phần thưởng
e Hanh động (Action) : là phương thức của tác nhân cho phép nó tương tác với
môi trường và thay đôi môi trường
e Môi trường (Environment) : một tinh huống mà một tác nhân phải đối mặt
e Phan Thuong (Reward) : ngay lập tức được trao cho tác nhân khi nó thực hiện
một hành động cụ thê
e Trạng thái (State) : tình trạng hiện tai của tác nhân do môi trường trả lại.
e_ Chính sách (Policy) : Là một chiến lược được thực hiện bởi tác nhân dé quyết
định hành động tiếp theo dựa trên trạng thái hiện tại
e Tập (Episode) : loạt tương tác giữa tác nhân và môi trường từ lúc bắt đầu đến
kết thúc
Trang 162.1.1 Loss Function: Mean Square Error
Mean Square Error (MSE) hay còn được gọi là L2 Loss là ham loss function đơn giản
nhất và phô biến nhất MSE được sử dụng cho các mô hình hồi quy, đặc biệt là các
mô hình hồi quy tuyến tính Dé tính toán MSE, ta sẽ lay độ chênh lệch của mô hình
dự đoán và mô hình thực tế MSE không bao giờ âm bởi vì nó luôn bình phương các
sai số Công thức MSE được tính bằng tổng các bình phương của hiệu giữa giá trị
thực (yi: target) và giá trị mà mô hình của chúng ra dự đoán (¥;: predicted).
Công thức của MSE:
2.1.2 Thuật toán Gradient descent momentum
Thuật toán Gradient descent (GD) thường được so sánh với tác dụng của trọng lực lên
một hòn bi đặt trên một mặt có dạng như hình một thung lũng giống như hình 2.2 (a)
dưới đây Bat kế ta đặt hòn bi ở A hay B thì cuối cùng hòn bi cũng sẽ lăn xuống và kết
thúc ở vị trí C.
a) GD b) GD c) GD with momentum
Hình 2.2 : So sánh Gradient Descent với các hiện tượng vật lý
Trang 17Tuy nhiên, nếu như bề mặt có hai đáy thung lũng như Hình 2.2 (b) thì tùy vào việcđặt bi ở A hay B, vị trí cuối cùng của bi sẽ ở C hoặc D Điểm D là một điểm local
minimum chúng ta không mong muôn.
Nếu suy nghĩ một cách vật lý hơn, vẫn trong Hình 2.2 (b), nếu vận tốc ban đầu của bikhi ở điểm B đủ lớn, khi bi lăn đến điểm D, theo đà, bi có thể tiếp tục di chuyên lêndốc phía bên trái của D Và nếu giả sử vận tốc ban đầu lớn hơn nữa, bi có thé vượtdốc tới điểm E rồi lăn xuống C như trong Hình 2.2 (c)
Dựa trên hiện tượng này, một thuật toán được ra đời nhăm khắc phục việc nghiệm
cua GD rơi vào một diém local minimum không mong muôn Thuật toán đó có tên là
e gradient : đạo hàm của hàm f
Ưu điểm : Thuật toán tối ưu giải quyết được van dé Gradient Descent không tiến được
tới điểm global minimum mà chỉ dừng lại ở local minimum.
Nhược điểm : Tuy momentum giúp hòn bi vượt dốc tiến tới điểm đích, nhưng khi tớigần đích, nó vẫn mat khá nhiều thời gian giao động qua lại trước khi dừng han, điều
này được giải thích vì viên bi có da.
Trang 182.1.3 Activation Function: ReLU
dàng hiểu được cách hoạt động của nó Một số ưu điểm khá vượt trội của nó so với
Sigmoid và Tanh [4] :
« Tốc độ hội tụ nhanh hơn hắn ReLU có tốc độ hội tụ nhanh gấp 6 lần Tanh
Điều này có thê do ReLU không bị bão hoà ở 2 đầu như Sigmoid và Tanh
e Tinh toán nhanh hơn Tanh và Sigmoid sử dụng hàm exp và công thức phức
tạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi phí hơn dé tính toán
Tuy nhiên ReLU cũng có một nhược điểm:
e - Với các node có giá trị nhỏ hơn 0, qua ReLU activation sẽ thành 0, hiện tượng
day gọi là “Dying ReLU“ Nếu các node bị chuyền thành 0 thì sẽ không có ýnghĩa với bước linear activation ở lớp tiếp theo và các hệ số tương ứng từ node
day cũng không được cập nhật với gradient descent => Leaky ReLU ra đời
« Khi learning rate lớn, các trọng số (weights) có thé thay đổi theo cach làm tat
cả neuron dừng việc cập nhật.
Trang 192.2 Mê cung 10x10
Môi trường : Mê cung 10x10 với các quỷ (ô tường) và kho báu (ô đích)
Mục tiêu : Tìm đường đi ngắn nhất trong mê cung
Luật :
e Nếu đi vào 6 quỷ hoặc ra khỏi mê cung thi sẽ quay lại ô trước đó
e Tác nhân (Agent) chỉ có thé biết về kích thước mê cung và thông tin của 6
hiện tại của nó Không thé nhìn thấy được thông tin của ô phía trước
e Khi đến được kho báu trò chơi sẽ kết thúc
Hình 2.4 : Mê cung 10x10
2.3 Quy trình ra quyết định Markov
Quy trình ra quyết định Markov (Markov Decision Process -MDP) là một framework
giúp agent dua ra quyết định tại một state nào đó Dé áp dụng được framework nay,
ta giả sử các states có thuộc tính Markov (Markov Property): mỗi state chỉ phụ thuộc
vào state trước nó vào xác suất chuyển đổi giữa 2 states này Trong một "thế giớihoàn hảo", nếu ta lặp lại một hành động thì sẽ cho ra 2 kết quả giống hệt nhau Nhưng
Trang 20mọi việc không đơn giản như vậy vì hau hét mọi sự việc đêu là các tiên trình ngẫu nhiên (stochastic process) [5].
Giả sử agent đang ở vị trí như hình đưới, việc nó đến đó bằng cách nào không quan
trọng, nó có thể vòng từ trên bức tường xuống hoặc chui từ dưới lên hoặc thậm chíchạy sang trái sang phải 1000 lần trước khi đến nơi Dù là cách nào thì khi agent đã
ở đó, xác suất đi lên, sang trái/phải vẫn giống nhau Có thé hiểu đơn giản Markov
property là tính "không nhớ" (memoryless).
Với Markov property, chúng ta có thé áp dung MDP dé biéu diễn bài toán dưới
e R là reward nhận được khi chuyền state
e P là phân bồ xác suất chuyên đổi
Việc biểu diễn này rat quan trọng, khi mà ta không phải lưu một chuỗi các states trước
đó dé biéu diễn state hiện tại khiến cho việc tính toán trở nên phức tạp và tiêu tốn bộ
z
nhớ.
Trang 21Vậy là chúng ta đã biết được MDP, nhưng áp dụng vào RL như thế nào Làm thế nào
mà agent biết phải chon action nào dé đạt được reward lớn nhất Câu trả lời là sửdụng một giá trị gọi là Q-value được tính bằng công thức:
O(s, a) = r(s,a) + ymax QO(s’, a)
a
Hình 2.6 : Công thức Q value Trong đó:
e Q(s, a) là Q-value khi thực hiện action a tai state s.
e r(s, a) là reward nhận được.
e s' la state kế tiếp
e gamma (y) là hệ số discount, đảm bao càng "xa" dich Q-value càng nhỏ
Công thức này cho thay Q-value của action a tai state s bang reward r(s,a) cộng với
Q-value lớn nhất của các states s' tiếp theo khi thực hiện các action a Vậy đó, chỉ vớicông thức đơn giản kia chúng ta có thê tạo ra một ma trận state-action như một lookuptable Từ đó với mỗi state, agent chỉ cần tìm action nào có Q-value lớn nhất là xong.Tuy nhiên, như đã nói ở trên thì RL là một stochastic process nên Q-value ở thời điểm
trước và sau khi thực hiện action sẽ khác nhau Khác biệt này gọi là Temporal
Difference:
TD(a,s) = R(s,a) + y max Q(s,a') — Qr-1(5, 4)
Hình 2.7 : Công thức Temporal Difference
Như vậy, ma trận Q(s, a) cần phải cập nhật trọng số dựa trên Temporal Difference:
Qr(s,a) = Qt-1(s, a) + aTD;(a,5)
Hình 2.8 : Q value sau khi cập nhật Temporal Difference
9
Trang 22Trong đó alpha ơ là learning rate Qua các lần agent thực hiện actions, Q(s, a) sẽ
dan hội tụ Quá trình này chính là Q-Learning
2.4 Neural Network
Neural network là mang sử dung các mô hình toán học phức tạp dé xử ly thông tin.Neural network kết nối các nút đơn giản, còn được gọi là tế bào thần kinh Và một
tập hợp các nút như vậy tạo thành một mạng lưới các nút, do đó có tên là Neural
network Neural network được sử dụng trên nhiều công nghệ và ứng dụng khác nhau
như trò chơi điện tử, thị giác máy tính, nhận dạng giọng nói, lọc mạng xã hội, dịch tự động và chân đoán y tê.
Ww) W2) W(3)
lnput Hidden 1 Hidden 2 Output
Hình 2.9 : Mô hình mạng nơ-ron
3 thành phần chủ yếu của neural network bao gồm:
e Lớp đầu vào (Input layer): đại diện cho các dữ liệu đầu vào
e Lớp ấn (Hidden layer): đại điện cho các nút trung gian phân chia không gian
đầu vào thành các vùng có ranh giới Nó nhận vào một tập hợp các đầu vào cótrọng số và tạo ra kết quả đầu ra thông qua một hàm kích hoạt (activation
function).
e Lớp đầu ra (Output layer): đại diện cho đầu ra của mạng nơ-ron
10
Trang 23Mỗi mô hình luôn có 1 input layer, 1 output layer, có thé có hoặc không các hiddenlayer Tổng số layer trong mô hình được quy ước là số layer - 1 (không tính input
layer).
Mỗi node trong hidden layer và output layer :
e Liên kêt với tat cả các node ở layer trước đó với các trọng sô riêng.
e Môi node có 1 hệ sô bias riêng.
2.5 Deep Q Learning
Q-learning là một thuật toán đơn giản nhưng khá mạnh mẽ dé tạo lookup table cho
agent Điều này giúp agent tìm ra chính xác hành động nào cần thực hiện
Nhưng điều gì sẽ xảy ra nếu lookup table này quá dài Hãy tưởng tượng một môi
trường có 10.000 trạng thái và 1.000 hành động cho mỗi trạng thái Điều này sẽ tạo
ra một bảng gồm 10 triệu 6 Mọi thứ sẽ nhanh chóng vượt ra khỏi tam kiểm soát
Rõ ràng là chúng ta không thê suy ra giá trị Q của các trạng thái mới từ các trạng thái
đã được khám phá Điều này đưa ra hai van đề: [5]
e = Thứ nhất, dung lượng bộ nhớ cần thiết dé lưu và cập nhật bảng đó sẽ tăng lên
khi số lượng trạng thái tăng lêne_ Thứ hai, lượng thời gian cần thiết để khám phá từng trang thái dé tạo bảng Q
cần thiết sẽ không thực tế
Vì thế chúng ta cần ước tính giá trị Q băng mô hình máy học như mạng Nơ-ron
(Neural Network) và đó là giải thuật Deep-Q-Learning.
Trong Deep-Q-Learning, chúng tôi sử dụng mạng nơ-ron dé tính gần đúng hàm giátrị Q State được dùng làm đầu vào và giá trị Q của tất cả các hành động có thể thựchiện làm dau ra Sự so sánh giữa Q-learning va deep Q-learning được minh họa bằng
hình 2.10 và hình 2.11.
11
Trang 24Hình 2.10 : Lookup table của Q — Learning
Hình 2.11 : Mạng nơ-ron của Deep-Q-Learning
Phan trên ta đã định nghĩa một mạng nơ-ron lấy input là state hiện tại va output cácQ-value Thế nhưng nếu mạng nơ-ron cứ liên tục bị đây vào từng state một sẽ rất dễ
bị overfitting vì các states liên tục thường giống nhau hoặc có tính tuyến tính (ví dụ:liên tục đi thăng/sang trái/phải) Kỹ thuật Experience Replay được sử dụng dé loại bỏ
vân dé này.
Thay vì mỗi state mạng update một lần, ta lưu lại các states vào bộ nhớ (memory)
Sau đó thực hiện sampling thành các batch nhỏ đưa vào mạng nơ-ron học Việc này
giúp đa dang hóa input và tránh mạng nơ-ron bi overfitting.
12
Trang 25mới ” Tìm - KHE —¬
i ee 2
Hình 2.12 : Cac bước thực hiện cua Deep-Q-Learning
Tóm lại, Deep Q-Learning thực hiện các bước sau:
tương ứng.
Agent chon action bang một Policy va thực hiện action đó
Environment trả lai state s' va reward r là kết quả của action a và lưu experience
tuple [s, a, r, s'] vao memory
Thực hiện sample các experience thành một vai batches va tién hanh train
mang no-ron
Lap lai dén khi két thtic M episodes
2.6 Backpropagation
Phương pháp phổ biến nhất dé tối ưu mang no-ron là Gradient Descent Momentum
(GDM) Đề áp dụng GDM, chúng ta cần tính được gradient của hàm mat mát theo
từng ma trận trọng số W và vector bias b [6]
Trước hết, chúng ta cần tinh predicted output y với một input x:
a =x 2) = wal) + 09 2) = WTalF9 + p09, 1=1,2, ,La = f(a), 1= 1,3, ,1ÿ =a
13
Trang 26Bước này được gói là feedforward vì cach tính toán được thực hiện từ dau đên cuôi của network
Gia sử J(W,b,X,Y) là một ham mat mát của bai toán, trong đó W,b là tập hợp tat ca
các ma trận trọng số giữa các layers và biases của mỗi layer X,Y là cặp dit liệu huấnluyện với mỗi cột tương ứng với một điểm dữ liệu Dé có thé áp dụng các gradient-based methods (mà Gradient Descent Momentum là một ví dụ), chúng ta cần tính
được:
oJ oJ
; [—=1,2
aw)” ap’ , pee
Một ví du của ham mất mát là ham Mean Square Error (MSE) tức trung bình của bình
phương lỗi :
J(W,b,X, Y) = Ty È ` ll¥n — Falls = 7 Dilly — an Ilo
n=1 n=1
Với NN là số cặp dữ liệu (x,y) trong tap training
Theo những công thức ở trên, việc tính toán trực tiếp giá trị này là cực kỳ phức tạp vìhàm mất mát không phụ thuộc trực tiếp vào các hệ số Phương pháp phô biến nhất
được dùng có tên là Backpropagation giúp tinh gradient ngược từ layer cuối cùng đếnlayer đầu tiên Layer cuối cùng được tính toán trước vì nó gần gũi hơn với predicted
outputs và hàm mat mát
Việc tính toán gradient của các layer trước được thực hiện dựa trên một quy tắc quen
thuộc có tên là chain rule, tức đạo ham của ham hợp.
Stochastic Gradient Descent Momentum có thé được sử dụng dé tính gradient chocác ma trận trọng số va biases dựa trên một cặp điểm training x,y Dé cho đơn giản,
ta coi J là ham mat mát nếu chỉ xét cặp điểm này, ở đây J là hàm mất mát bat ky,
không chỉ hàm MSE như ở trên.
14
Trang 27Đạo hàm của hàm mât mát theo chỉ một thành phân của ma trận trọng sô của lớp cuôi
Trong đó : 7 thường là một đại lượng dê tính toán
Tương tự như thế, đạo hàm của hàm mắt mát theo bias của layer cuối cùng là:
Trang 28Chương 3 THIẾT KE TONG QUAN
mạch bắt đầu chạy Environment sẽ truyền state sang Agent đề tìm xem sẽ thực hiện
action nào ở state hiện tại Sau khi nhận action và thực thi action đó thi Environment
sé trả về transition (state, action, nextstate, reward và isgameon) cho Backprop dé lưu
trữ và thực hiện sample, đồng thời cũng gửi state cho Agent để Agent tìm action sẽthực hiện ở state sau Kể từ khi Backprop lưu trữ đủ 32 transition thì mỗi khi lưutransition vào Backprop sẽ thực hiện sample dé tính
nhật trọng số cho mạng nơ-ron ở trong Backprop và
weight va bias mới Sau đó cập trong Agent Sau khi thực hiện
xong mỗi espisode (từ khi bắt đầu đến khi đến được đích) Mạch sẽ reset Environment
và tiến hành gửi state sang cho Agent tính toán action, action sẽ được gửi sang cho
Environment thực thi đồng thời cũng lưu vào Shortest action và sẽ không gửi
16
Trang 29Transition dé lưu vào Backprop mà chỉ gửi state sang cho Agent tính toán action Quá
trình đó gọi là run_espisode, chỉ chạy tương tác giữa Agent và Environment để tìm
ra đường di ngắn nhất đề đi đến đích Thực thi như vậy đến khi đến được đích hoặc
sỐ lượng action đã thực thi là 100 thì việc thực thi giữa Agent va Environment sédùng lại và khối Shortest action sẽ thực thi việc so sánh số lượng action từ lúcEnvironment reset đến hiện tại với số lượng action ngắn nhất cần thiết dé đi đến đích
đang được lưu trữ Nếu số lượng action phải thực thi để đến đích nhỏ hơn thì sẽ lưucác action đó trở thành action ngắn nhất Sau đó lặp lại đến khi đủ 50 espisode
Bảng 3.1 : Chức năng của các khối chính
»
Khôi Chức năng
Khối thê hiện môi trường của một mê cung 10x10 là một mảng
Environment | 100 trạng thái tương ứng.
Khối sẽ xuất ra 100 dữ liệu trạng thái tương ứng với hành động
mà nó nhận vào khi nó tương tác với khôi Agent.
Khối thực hiện xuất ra một hành động khi nó nhận vào 100 dữ
liệu trạng thái.
Agent
Mạng nơ ron bên trong khối này là các lớp Fully Connected
Bên trong khối là các bộ tính toán cập nhật các trong số choBackprop mạng nơ ron của khối Agent dựa trên thuật toán Gradient
Descend momentum và Chain rule.
Shortest Các hành động cần thực hiện ngắn nhất dé đến dich của mê cungAction sẽ được tính toán sau khi kết thúc một episode
17
Trang 30Q-Learning, Reinforcement Learning, Backpropagation, Gradient Decent
Momentum Tiếp nhóm mô phỏng thuật toán dé giải bài toán bang ngôn ngữ Python
dé kiểm tra tính đúng đắn của thuật toán Sau đó nhóm phân tích và vẽ sơ đồ khối củacác khối cần thiết nếu thực thi bằng ngôn ngữ RTL Tiếp tục nhóm tiến hành hiệnthực các khối chính là Environment, Agent và Backprop Tiếp theo, nhóm kết nối các
khối đó lại, viết control để điều khiển hoạt động của các khối đó và thêm khối
Shortest_action dé tìm đường đi ngắn nhất trong mê cung Sau cùng mô phỏng trênphần mềm Model-sim và post-Implement trên phan mềm Vivado dé kiểm tra việcthực thi của thuật toán được viết bởi ngôn ngữ RTL
18
Trang 31Chương 4 THIẾT KE CHI TIẾT
4.1 Khối Environment
s* Sơ đồ tổng quát
Khôi environment sẽ nhận action và thực thi nó trên môi trường (mê cung) đê trả về
kêt quả là vi trí tiêp theo của tác nhân trong mê cung, diém sô nhận được (reward) va
trò chơi đã kết thúc chưa (isgameon)
e Hành động (action) sẽ có 4 loại là 00, 01, 10, 11 tương ứng với phải, trái,
xuống, lên đề tác nhân thực thi hành động trong mê cung
e Phần thưởng (reward) trả về dựa trên việc tác nhân đi vào 6 quỷ (6 tường), đi
ra khỏi mê cung, di vào 6 đã từng đi vào hay đi vào 6 kho bau thì sẽ được tra
VỀ action tương ứng.
e Trò chơi đã kết thúc chưa (isgameon) sẽ trả về giá trị 0 khi tác nhân đi đến 6
kho báu (ô đích).
Mê cung 10x10 với các 6 vị trí hiện tại thê hiện bang số 4, ô bình thường thé hiện
bang số 0, 6 quỷ (ô tường) được thê hiện bằng số 1 và 6 đích được thé hiện bang số
2 Mê cung sẽ được đọc từ khối ram_state_map vào state_ map mỗi khi có tín hiệu
reset của khôi Environment.
Bảng 4.1 : Điểm nhận được sau khi thực hiện hành động
Trường hợp Điểm nhận được
Phí tôi thiêu cho mỗi lần di chuyền (đi từ ô trăng qua ô trăng) - 50
Di vào 6 đã từng di vào -200
Di vao ô vào quỷ hoặc ra khỏi mê cung -1000
Đi vào ô có kho báu +1000
19
Trang 32Hình 4.1 : Sơ đồ khối của Environment
Bảng 4.2: Mô tả tín hiệu của khối Environment
Tín hiệu VO |Sốbit | Mô tả
clk I 1 | Xung clock
Reset Environment dé đưa mê cung về trang
reset_ctrlenv I 1 | thái ban đầu
enable_ctrlenv I 1 | Tín hiệu báo có giá tri action di vào
action I 2 | Hành động để cho tác nhân thực thi
write_ram_env I 1 | Ghi mé cung vao environment
datain_ram_env I 32 | Gia tri mé cung ghi vao environment
addr_ram_env I 7 | Số thứ tự của mê cung ghi vào environment
OUT_STATE O 32 | Trang thai cua mé cung
REWARD O 32 | Phần thưởng nhận được
IS_GAME_ON O 1 | Đôi tượng đã đi đến kho báu hay chưa
VALID OUT O 1 | Tín hiệu báo có OUT_STATE đi ra
20
Trang 33+» Thiết kế chỉ tiết
L—+l L
ACTION
—————— torAL ————> MEM.VISITED DATAIN_RAM_ENV CHECK
| RAM_STATE_MAP [>| STEP —————————— REWARD,I§_GAME_ON
statemap và đọc ra cho total_check_ step thực thi Khối Total_check_ step có nhiệm
vụ thực thi action với state hiện tại và trả về các kết quả next_state, reward, isgameon
va position_state Khéi mem_visited sẽ nhận các position_state từ total_check_step
và kiểm tra xem giá trị đó đã nằm trong mem_ visited hay chưa, nếu chưa giá trị đó
sẽ được lưu vào mem visited Mỗi khi có action trả về Environment từ Agent thì các
vị trí đã từng đi qua trong mem visited sẽ được đọc ra để ghi vào cho khối
Total_check_step thực thi Khối Mux41 dùng dé chon state nào sẽ gửi sang cho Agent
va Backprop, khi khi reset khối Environment out_state được chọn là giá tri được đọc
ra từ khối state_map, sau mỗi lần thực hiện action thì out_state là giá tri đọc ra tử
khối total_check_step (hay còn gọi là nextstate), khi đối tượng đi đến được ô kho báuthì giá trị out state đọc ra sẽ là số không có ý nghĩa đối với state là giá trị -1 Cuối
cùng là khôi control có nhiệm vụ điêu khiên hoạt động cho cả khôi Environment.
21
Trang 34Bảng 4.3 : Chức năng của các khối trong Environment
control_env Diéu khién hoat động của khối Environment
ram_state_map
Nhận giá tri mê cung và đọc giá trị đó cho statemap mỗi khi
có tín hiệu reset từ control tông.
Lưu các vi trí mà tác nhân đã từng di qua va đọc ra cho
total check step dé kiểm tra visited
không (isgameon)
Mỗi khi bắt đầu việc đi trong mê cung hoặc là khi di dé tìm đường đi ngắn nhất thì
phải reset lai environment dé cho các giá tri trong environment được trả về trạng thái
ban đầu như là load lại giá trị của mê cung trong state_map, reset lại bộ nhớ trong
mem_ visited hay các control vê giá tri ban đâu Khi có reset environment sẽ đọc các
giá tri của mê cung ra lại như là lúc ban đầu truyền vào ra cho Agent dé thực hiệnviệc chọn action Sau khi có action trả về thì total_check_step sẽ thực thi và tra về
các kết quả next_state, reward, isgameon Giá trị state sẽ truyền qua Agent dé thực
hiện việc thực hiện chon action tiép theo và cũng truyện các giá trị next_state, reward,
isgameon dé lưu vào Backprop Đồng thời next_state từ total_check_step cũng được
lưu vao trong state map đê phục vu cho việc ở lân action về kê tiép sẽ load lên đê
22
Trang 35cho total_check_step thực hiện VỊ trí hiện tại của đối tượng cũng được lưu vào
mem visited và các 6 đã từng đi qua này sẽ được load lên total check_step dé phục
vụ cho việc kiểm tra ô đó đối tượng đã từng đi qua hay chưa khi có action từ Agent
trả về Thực hiện lặp lại cho đến khi đối tượng đi đến được ô kho báu thì sẽ dừng lại
và next state của trạng thái đó sẽ là 100 số không có ý nghĩa (hay còn gọi làterminal_state) Ở đây nhóm sử dụng số floating point 32 bít
10111 111100000000000000000000000 tương ứng với -1 dé biểu thi
action Next_state sẽ là vị trí của đối tượng sau khi thực hiện action phải, trái, xuống
hoặc lên Nếu đối tượng đi vào ô tường (ô quái) hoặc đi ra ngoài mê cung thìnext_state sẽ bằng với state, nêu không vào hai trường hợp kể trên next_state sẽ là vịtrí của đối tượng sau khi thực hiện hành động tương ứng Reward nhận vé sẽ tươngứng với việc thực hiện hành động như thế nào nếu đi vào ô tường (6 quái) hoặc đi rakhỏi mê cung thì reward sẽ là -1000, nếu đi vào ô đã từng đi qua rồi thì reward sẽ là
-200, nếu đi vào ô kho báu thì reward là +1000, nếu không rơi vào các trường hợp
trước đó thì reward sẽ là -50 Isgameon thê hiện việc đi đã kết thúc hay chưa ( đốitượng đi đến được ô kho báu) Vị trí hiện tại của đối tượng sẽ được đưa vào cho
mem visited lưu trữ Khi vi trí hiện tại được đưa vào thì ham control cua
total_check_step sẽ điều khiển dé so sánh giá trị đưa vào đó đã có trong mem_visited
hay chưa Nếu chưa thì vị trí hiện tại đó mới được lưu vào trong mem_ visited Canthực hiện bước so sánh trước khi lưu vào dé tránh trường hop vi trí hiện tại lưu vào
đã tôn tai va làm tràn bộ nhớ của mem_visited.
23
Trang 36Bảng 4.4 : Mô tả tín hiệu của khối Total_check_step
Tín hiệu I/O | Số bit | Mô tả
clk I 1 | Tín hiệu xung clock
write I 1 | Tin hiệu ghi vào total_check_step
read I 1 | Tin hiệu đọc ra từ total_check_step
reset I 1 | Tin hiệu khởi tao
in_ state I 32 | Dữ liệu state đầu vào
count_read I 7 | Dùng dé đếm khi đọc ra từ total check_stepcount_write I 7 | Dùng dé đếm khi ghi vào total check step
in_visitedstate I 7 | Vị trí các 6 đối tượng đã từng đi qua
action I 2 | Hanh động thực hiện
Dữ liệu next_state sau khi thực hiện hành nextstate_checkstep | O 32 | động
Điểm thưởng nhận được sau khi thực hiện
reward O 32 | hành đồng
is_game_on O 1 | Đối tuong da di dén vi tri kho bau chua
24
Trang 37Vị trớ hiện tại của đối tượng trước khi thực
position_state O 7 | hiện hành động
Thực hiện xong việc thực thị hành động và
done_check_step O 1 | cho ra kết qua
4đằ Thiết kế chi tiết
hiện tại và vị trớ kho bỏu, in mem visited dộ kiểm tra 6 đó từng đi qua hay chưa,
check_step dộ thực hiện hành động và tra về kết quả nextstate,reward,isgameon vacontrol dung dộ điều khiển việc thực thi của cả khối
Bảng 4.5 : Chức năng của cỏc khối trong Total_check_step
Khối Chức năng
control_check_step | Điều khiển hoạt động của cỏc khối trong total check step
Dộ kiờm tra vi trớ hiện tai của đụi tượng và vi trớ kho bỏu ở
in_state_map state hiộn tai va giti kột qua qua cho check_step
25
Trang 38Kiểm tra vị trí hiện tại của đối tượng có nằm trong các ô màin_mem_visited đối tượng đã từng đi qua hay không Trả về kết qua là đã
từng di qua hay chưa
Kiểm tra sau khi thực hiện hành động vị trí tiếp theo, điểmcheck_step thưởng trả về và isgameon nam trong các trường hợp di vào
tường(ô quỷ), đi ra khỏi mê cung, di vào 6 đã từng di qua,
đi vào ô kho báu hay bước đi bình thường
Mỗi khi reset environment thì cũng đồng thời reset total check_step khi đó khốicontrol trong total_check_step sẽ được trả về trạng thái ban đầu và các giá trị trong
check_ step như reward được gan chi phí là -50 và isgameon được gan là 1 Khi có tín
hiệu của action từ agent về thì control của environment sẽ đọc state map và các vi trí
đã từng đi qua vào total check_step Sau đó in state map sẽ kiểm tra và xuất vị trí
hiện tại của đối tượng và vị trí kho báu qua cho khối check_step kiém tra Khéi
in_mem_visited kiêm tra 6 đã từng đi qua hay chưa và xuất kết qua cho check_step
Khối check_step sẽ thực hiện hành động và trả về các kết quả next_state, reward,
isgameon va position state cdc két qua next_state, reward, isgameon sé truyén qua
để lưu vào khối Backprop Position state đi vào khối mem_visited của khối
environment Nextstate cũng đi vào khối Agent đề tính xem sẽ thực hiện hành động
nào tiếp theo
4.2 Khối Agent
s* Sơ đồ tổng quát
Khối Agent tương tác trực tiếp với khối Environment trong bài toán có nhiệm vụ nhận
vào sfate (trạng thái) từ Environment sau đó state sẽ được đi qua khối forward Sau
đó sẽ nhận được 4 giá trị Q tương ứng với 4 hành động có thể thực thi Sau đó khối
random_lfsr sẽ thực hiện random 1 số trong khoảng 0 đến 99 nếu số đó lớn hon số
lượng espisode ở hiện tại thì sẽ thực hiện action random (random Ì trong 4 action), nêu sô random nhỏ hơn hoặc băng sô lượng espisode thì sẽ thực thi action max (sau
26
Trang 39khi so sánh 4 giá trị Q nhận được sau khi forward thì Q lớn nhất đó sẽ tương ứng với
1 action) Các Q có thứ tự 1, 2, 3, 4 sẽ tương ứng với action 00, 01, 10, 11 khi giá trị
đó là Q lớn nhất Hành động sau đó sẽ đi vào Environment đề thực thi, đồng thời hành
động đó cũng được lưu vào khối Backprop dé tiến hành sample và cập nhật lại các
trọng sô weight,bias cho mạng nơ-ron.
Hình 4.5 : Sơ đồ khối của Agent
Bảng 4.6 : Mô tả tín hiệu khối Agent
Tin hiệu chạy episode
Dữ liệu trạng thái đầu vào là số floating
point 32 bit 27
Trang 40bias FC2 Dữ liệu bias lớp 2
+» Thiết kế chỉ tiết
Khối Agent gồm có 2 khối thành phan chính, một là khối Forward dùng dé tính toán
các giá trị Q tương ứng với 4 hành động, hai là khối Policy Generator dùng dé đưa ra
một hành động cụ thê trong 4 hành động phải, trái, xuống, lên sau khi nhận được 4
giá trị Q từ khối Forward Hình 4.6 mô tả sơ đồ khối thiết kế của khối Agent, các tinhiệu được sử dụng trong thiết kế và bảng 4.7 mô tả chỉ tiết chức năng từng khối trongthiết kế khối Agent
POILICIMAX STATE ACTION