Trong đó, sử dụng môi trườngCartpole một thư viện của python, mạng Neural Network sử dụng trên phần cứng với 4 inputs đầu vào, 4 nodes hidden layer và 2 outputs và CO-Simualtion dùng dé
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN
KHOA KỸ THUẬT MÁY TÍNH
DƯƠNG MINH TÂM
LÊ TRƯỜNG THỊNH
KHÓA LUẬN TÓT NGHIỆP
HIỆN THỰC GIẢI THUAT DEEP Q-NETWORK (DQN)
TREN PHAN CUNG VOI MOI TRUONG CARTPOLE
Design Hardware for Deep Q-Network
to slove Cartpole environment
KY SƯ NGANH KY THUAT MAY TÍNH
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
DUONG MINH TAM - 18521367
LE TRUONG THINH - 18521438
KHOA LUAN TOT NGHIEP
HIEN THUC GIAI THUAT DEEP Q-NETWORK (DQN)
TREN PHAN CUNG VOI MOI TRUONG CARTPOLE
Design Hardware for Deep Q-Network
to slove Cartpole environment
KY SU NGANH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN
TS NGUYEN MINH SON
TP HO CHi 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ố DHCNTT ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
Trang 4528/QĐ-LỜI CÁM ƠN
Dé hoàn thành đề tài luận văn này, em xin gửi lời cảm ơn chân thành đến quý thay
cô giảng dạy tại Trường Đại học Công nghệ Thông tin — Đại học Quốc gia Thành phố
Hồ Chí Minh đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý báu Đây là nền tảng cho quá trình thực hiện đề tài, cũng như là quá trình làm việc
sau này.
Em xin cảm ơn các thầy cô Khoa Kỹ thuật máy tính, Trường Đại học Công nghệ Thông tin đã tạo môi trường học tập và rèn luyện rất tét, cung cấp cho em những kiến
thức và kỹ năng bồ ích giúp em có thể áp dụng và thuận lợi thực hiện luận văn.
Em xin chân thành cảm ơn thầy — TS Nguyễn Minh Sơn, là người thay tâm huyết,
đã tận tâm hướng dẫn và giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện đề
tài Thay đã có những trao đổi, góp ý và định hướng dé em có thé hoàn thành tốt đề
tài nghiên cứu này Em cũng xin gửi lời cảm ơn đến thầy — TS Lương Ngọc Hoàng, người đã định hướng và hướng dẫn tụi em trong lĩnh vực trí tuệ nhân tạo và cuối cùng
là em xin cảm ơn thầy Trần Đại Dương, thầy là người đã đặt những ý tưởng nền tảng đầu tiên cho dé tài này.
Sau cù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 tinh thần giúp em có thé hoàn thành khoá luận.
Thành phố Hồ Chí Minh, tháng 06 năm 2022
Sinh viên thực hiện
Lê Trường Thịnh Dương Minh Tâm
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU TONG QUAN ĐÈ TÀI -c2¿-2222scseczveccee 1
1.1 Dat vấn đề 22c 2222 2221 2211 re 1 1.2 Hướng nghiên cứu đề tài c¿c2222++c22cSvvretEExvrrtrrkrrrrsrrrrrree 2 1.3 Mục tiêu của để tài 22ccc222 2t 222211221111 cce 2 Chương2 CƠ SỞ LÝ THUYẾT -2¿2222++222SS++ttvvvvrretrrvrcree 3
2.1 Môi trường Carftpole 5555622223 +* S2 3 2.1.1 Cài đặt môi trường cc222vcc 2tr 3 2.1.2 Không gian hành động của môi trường Cartpole (Action Space) 4
2.1.3 Không gian quan sát của môi trường Cartpole (Observation Space) 4
2.2 Reinforcement Learning + ¿+ +5 S+++k£eEeEkErkrkekerrkrkee 4 2.2.1 Deep Q-Learning ¿6-6 St re, 5
2.2.2 Loss Function: Mean Square ETTOT -++©5+s+s+5+5++x++ 6 2.2.3 Thuật toán Gradient descent ¿ ¿c5 2+ ‡*£+cexsxevrrxr+ 6 2.2.4 Activation Function: 'Tanh(X) ¿5 5c + +vxsveeerrserrrrerrrerexre 7
2.3 Neural NetwOrK -Ặ- SH HH0 re 7 2.3.1 Forwardpropagation -cccecsttetrerrrkrrerrreree 9 2.3.2 Backpropagation
2.3.3 Các thông số parametr -+:©2+++22V2+++tSEESvrretrrvrrrrrrrrree 2
2.4 CO-simulation: cocotb.
2.5 Giới thiệu FPGA Xilinx và lý do sử dụng .-. -555+ 6
2.5.1 Giới thiệu board FPGA Xilinx Virtex 7.
2.5.2 Lý do sử dụng kit FPGA Xilinx Virtex 7 để hiện thực 8
Chuong3 THIẾT KE HE THÓNG
Trang 63.1 Mô tả tổng quan hệ thống -:¿:©222++222S+++e2EESvrettvxvrrerrvrrrrrrr 19 3.2 _ Quy trình thiết kế hệ thống
3.3 Mô tả DỌN Core [P Ặ- 22H12 re 2
3.5.1 „ri 2á 32
3.5.2 Mô tảthiết kế ii eeeerrrrsrrrrrrroo.24 Chương4 KET QUẢ -575ccccccc cccc 3Õ 4.1 Mô phỏng các thiết kế chỉ tiẾt -ccccccccscccevvsccrce-rrrc 3Õ
4.1.1 Mô phỏng thiết kế khối Tanh(x) -:z-z+22sc++ccssccz+rx 36 4.1.2 Mô phỏng thiết kế khối Neural Network -: z + 38 4.1.3 Mô phỏng thiết kế khối Updatc -ccccc:z+22cccvvvecrrrrrrrr 39 4.2 Thiết lập môi trường bang Python code ::scz+22cs+cz+ccxe# 40
43 M6 phỏng thiết kế thuật toán DQN xử lí môi trường Cartpole 40
4.3.1 Mô hình luận Íí -22 22tr 40
4.3.2 Kết quả mô phỏng ¿:-222:c222++tttEEvvrrrrrrrvrrrrrrrrrcrrg 45 4.4 Tổng hợp thiết kế trên Virtex 7 -.:c22222cccSCEvvrrrtrrvrrrrrrrrrrerrrev 4 4.5 Hệ thống SOC kết nối IP -:-22++22Vv++22EEv+rtttEEvvrerrrrrrrerrkvv 48
Trang 74.6 So sánh kết quả thiết kế với các nghiên cứu liên quan .- 50
Chương 5 KÉT LUẬN VÀ HƯỚNG PHAT TRIEN DE TÀI
5.1 Kếtluận 222 22222 E22 1 E12 eeerree 54
5.2 Khó khăn gặp phải
5.3 Hướng phát triển
TÀI LIỆU THAM KHẢO
Trang 8DANH MỤC HÌNH
Hình 2.1: Mơ hình CartpỌe - - ¿2-5-5 25252 S*2E2E£E#ESEE#E2EEEEEErkrkerrrrkrkrrerree 3 Hình 2.2: Action space của mơi trường Cartpole [3] - ¿ -+5+55++ 4 Hình 2.3: Observation Space của mơi trường Cartpole [3] - s +-+-++ 4
Hình 2.4: Đỗ thị hàm Tanh() - 22 2ttriiiitrrrrrrrrrree 7 Hình 2.5: Mơ hình Neural Network sử dụng trong đề tài -.-:-5ccsccce¿ 8
Hình 2.6: Layer 1 Neural Network c1 1 th Hư 9
Hình 2.7: Layer 2 Neural Network - ¿+ St HH run 9 Hình 2.8: Mơ hình thu nhỏ của NeuralNetwork sử dụng cho việc cập nhật w00[1] 11 Hình 2.9: Các trường hợp của Learning rate [Š] -¿-¿- + <s+sxsxsvrereeerekexex 13 Hình 2.10: Mơ hình hoạt động của €OCO(b ¿<5 +‡kEEzkzkekekerrkrkeree 14 Hình 2.11: Kit FPGA Virtex 7 V77 5c 5cstct‡terererkererrrterxrrrrrrre 16
Hình 2.12: Sơ đồ khối của Kit VŒ707 -c:-¿2222222vvv+rrrtrEEErrvvrrrrrrrrrrrrer 17 Hình 3.1: Tổng quan thiết kế hệ thống 2¿¿¿£22222v2+++ettEEEEvvvrrrrrrrrrrrer 19 Hình 3.2: Sơ đồ quy trình thiết kẾ -¿ +¿z+2V++++22EE+++ttEEvvrtstrrvrrrrrrrrree 21
Hình 3.3: Interface của DQN Core IP 62:3 c3 St EEvEvxexerrrverrserrrrrrrrrrrree 22
Hình 3.4: Sơ đồ khối DQN Core IP -::+ccccccctetrtrrreeerkrrrrrrrrrrre 24
Hình 3.5: Sơ đồ chuyền trạng thái -.-¿ ¿+2222+++2EEES+ttEEEErrrrrrrrrrrrrrsree 25
Hình 3.6: Interface của khối Neural Network ccccc:¿22222vsccrrscccccvvsecccee 26 Hình 3.7: Sơ đồ khối Neural Network eetttrrrrriiririrrrrrrri 28
Hình 3.8: Interface khối Tanl(X) — 31 Hình 3.9: Interface của khối Update 32
Hình 3.10: Sơ đồ khối Update
Hình 4.1: Kết qua của giá trị Tanh(x) khi mơ phỏng với Icarus Verilog
Hình 4.2: Đánh giá độ chính xác khối Tanh(x) „37
Hình 4.3: Kết quả so sánh đánh giá độ chính xác khối Neural Network 38
Hình 4.4: Mơ phỏng và so sánh kết quả thiết kế khối Update - 3Ð
Hình 4.5: Mơ hình giải thuật DQN -¿ -©222222222++2EEE22212122222221112 41
Hình 4.6: Số điểm đạt được khi train :-©222+++222+++teEEExrretrrrkrrerrkrrrrrrr 44 Hình 4.7: Biều đồ điểm khi thực hiện huấn luyện mơ hình - ° 45
Trang 9Hình 4.8: Gameplay của Cartpole khi chưa sử dụng phần cứng 46
Hình 4.9: Gameplay của Cartpole khi sử dung phần cứng . -: 46 Hình 4.10: Power Resources sau khi generate bitstream với DQN IP 47
Hình 4.11: Mô hình SOC tổng quát ¿:222222222++t222Svzvettvvvrrerrvsrrrrrr 48
Hình 4.12: Power Resources sau khi generate bitstream với mô hình SOC 48
Hình 4.13: Thiết kế SOC cho DQN trên Vivado -ccceccceeerree 49
Hình 4.14: Mô hình nhóm nghiên cứu [8] ¿+ + 2 £++++++++£+£+£zcsxzxz+ 50
Hình 4.15: Mô hình nhóm nghiên cứu [9] ¿-¿- + 2 ++++++x+£+£ezezxzxzxerr+ 51 Hình 4.16: Mô hình nhóm nghiên cứu [ 1Ú] -¿-¿- +52 s5++++++s+se£ez+z+scs> 51
Hình 5.1: Mô hình hệ thông SOC ssssessssccssssssseseseceesssnsesseccecessnneeeeseceesnnneeeeeeesente 55
Trang 10Bảng 2.1:
Bảng 3.1:
Bảng 3.2:
Bảng 3.3:
Bảng 3.4:
Bảng 3.5:
Bảng 3.7:
Bảng 4.1:
Bảng 4.2:
Bảng 4.3:
Bảng 4.4:
DANH MỤC BANG
Các thông số parameter sử dụng trong đề tài - ¿5c s=s+cszss2 12
Bang mô tả chức năng từng khối trong hệ thong -: 20
Bảng mô tả tín hiệu interface DQN Core ÏP - 5 5 c+< << x+se+srs 22 Mô tả các khối trong DQN Core IP -2- 2 2+++£E+£EzEzEE+rxerxeres 24 Bảng mô tả tín hiệu interface Neural NetwOrk -c+-<cssse<e+ 26 Mô tả các khối trong Neural Network ¿- 25s x+£x2xzzzx+rxerxeres 30 Bang mô tả tín hiệu interface khối Update -2- 2 ¿5z s+cs+zs+csz2 33 Giá tri quy đổi các tín hiệu tanhl, tanh2, tanh3, tanh4 37
Bảng thống kê điểm sau khi thực hiện huấn luyện . - 43
Kết quả tổng hợp IP DQN trên Vivado với board Virtex VC707 47
So sánh kết quả thiết kế với các nghiên cứu liên quan - 52
Trang 11DANH MỤC TỪ VIET TAT
FPGA Field Programmable Gate Array
GPU Graphics Processing Unit
HDL Hardware Description Language
IP Intellectual Property
RTL Register-Transfer-Level
SOC System-On Chip
Trang 12TÓM TẮT KHÓA LUẬN
Trong khoá luận này, nhóm đề xuất thực hiện giải thuật Deep Q-Network trênphần cứng để huấn luyện cho mô hình Cartpole Trong đó, sử dụng môi trườngCartpole (một thư viện của python), mạng Neural Network sử dụng trên phần cứng
với 4 inputs đầu vào, 4 nodes hidden layer và 2 outputs và CO-Simualtion dùng dé
thực hiện truyền dữ liệu từ môi trường Cartpole trên phần mềm qua phan cứng déthực hiện huấn luyện và cập nhật trọng SỐ Công việc huấn luyện cập nhật trọng sécủa mạng thông qua khối Update được xây dựng trên phan cứng
Bên trong kiến trúc, nhóm sử dụng kiểu đữ liệu là dấu chấm động độ chính xácđơn Thiết kế của nhóm sau khi được huấn luyện trên phần cứng sẽ cho ra điểm sốtối đa của môi trường Cartpole Kết quả sai số lớn nhất khi update trọng số trong
50.000 lần huấn luyện là là 0.248596977560101 (chiếm 2/50000) Tan số tối đa mà
thiết kế đạt được là 172 MHz
Kết quả sẽ được đánh giá theo hai tiêu chí:
* Tinh 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 Sau khi huấn luyện, môi trường Cartpole có thé thực hiên một
ván chơi với kết quả gần như tuyệt đối (200)
* Tai nguyên phần 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 của Xilinx
Kết quả đạt được trong quá trình nghiên cứu của nhóm là đạt Top 10 cuộc thi LSI
Design Contest lần thứ 25, được tổ chức vào ngày 04/03/2022 tại Okinawa, Nhật Bản
Trang 13MỞ ĐẦU
Hiện nay, sự phố biến của các công nghệ AI ngày càng tăng lên, các nhà phát triểnphải đối mặt với hai thách thức là tìm ra cách xử lý và truyền dữ liệu nhanh hơn cũngnhư cải thiện hiệu suất tổng thé của các ứng dụng dựa trên AI FPGA có thé là giải
pháp cho cả hai thách thức này.
Việc giải quyết các tác vụ phức tap và xử lý dữ liệu được hệ thống FPGA thựchiện nhanh hơn nhiều so với các đơn vị xử lý đồ họa (GPU) Bản chất có thể lập trìnhlại của FPGA đảm bảo tính linh hoạt theo yêu cầu của cấu trúc không ngừng phát
triển của mạng nơ-ron nhân tạo FPGA cũng cung cấp khả năng song song tùy chỉnh,
tiêu thụ điện năng ít hơn và bộ nhớ băng thông cao cần thiết cho việc truyền đữ liệu
theo thời gian thực của một mô hình.
Mục tiêu chính của khóa luận là sẽ tìm hiểu về giải thuật Deep Q-Learning cách
dé có thé đồng mô phỏng giữa phần cứng va phần mềm thông qua việc sử dụng Simulation Từ những thuật toán DỌN đã được nghiên cứu có thé hiện thực được giảithuật bằng phần cứng thông qua ngôn ngữ mô tả phần cứng Verilog Thực hiện huấn
CO-luyện trên phần cứng dé sau đó môi trường Cartpole có thê tự hoạt động và đạt được
số điểm gần như tuyệt đối (200)
Các phan tiếp theo của khóa luận sẽ được tổ chức như sau: Chương | trình bày vềtong quan dé tài, nghiên cứu liên quan đến đề tài của nhóm Chương 2 giới thiệu cơbản về môi trường Cartpole, cơ sở lý thuyết của Reinforcement Learning và các thuậttoán cập nhật trọng số Chương 3 đưa 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 Chương 4 cho biết quá trình hiện thực, kết quả môphỏng, kết quả đánh giá thiết kế và hệ thống Chương 5 tổng kết, đưa ra hướng pháttriển tiếp theo và nêu những khó khăn khi thực hiện đề tải
Il
Trang 14Chương 1 GIỚI THIỆU TONG QUAN DE TAI
1.1 Dat van dé
Trong những năm gan đây, AI hiện diện trong mọi lĩnh vực của đời sống conngười, từ kinh tế, giáo dục, y khoa cho đến những công việc nhà, giải trí hay thậmchí 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ềulĩ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ừ đơn giản đến phức tạp Deep Learning đã giúp máy tính thực thi những việc
tưởng chừng như không thể vào 15 năm trước: phân loại cả ngàn vật thể khác nhautrong 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 conngười, giao tiếp với con người, hay thậm chí cả sáng tac văn, phim, ảnh, âm nhac [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 dé xử lí bài toán trong đề tài
Reinforcement Learning (RL) là việc đào tạo các mô hình Machine Learning déđưa ra một chuỗi các quyét định Trong Reinforcement Learning, trí tuệ nhân tao (AI)đối mặt với một tình huống giống như trò chơi Máy tinh sử dụng thử và sai (trial anderror) dé đưa ra giải pháp cho van dé Dé khiến máy làm những gi lập trình viênmuốn, các máy (agent) sẽ nhận được phần thưởng (reward) hoặc hình phạt (penalty)cho những hành động(action) mà nó thực hiện Mục tiêu của nó là tối đa hóa tongphan thưởng Các thuật toán của Reinforcement Learning ngày càng được sử dung
phô biên đê giải quyêt các bài toán cua Machine Learning.
Hang năm Nhật Bản vẫn thường xuyên tổ chức cuộc thi LSI Design Contest Day
là cuộc thi được tô chức thường niên với sự tham gia của nhiều nước châu Á doTrường Đại học Kỹ thuật Ryukyus và Viện công nghệ Kyushu (KyuTech) đăng cai
tô chức Cuộc thi cũng được bảo trợ bởi Hiệp hội kỹ sư Công nghệ thông tin, Điện tử
và Truyền thông Nhật Bản (IEICE), hãng Synopsys, Báo Công nghiệp thiết bị điện
tử (Electronic Device Industry News), công ty Gigafirm, công ty
AnalogDevices, Hiệp hội công nghiệp Okinawa Trong những năm gần đây, đề
Trang 15tài của cuộc thi luôn xoay quanh việc thiết kế phần cứng sử dụng thuật toán của
Machine Learning.
1.2 Huong nghién ciru dé tai
Hướng nghiên cứu chính của dé tài là sẽ tìm hiểu về giải thuật Deep Q-Network,cách dé có thê đồng mô phỏng giữa phan cứng và phần mềm thông qua việc sử dụng
CO-Simulation Từ những thuật toán DỌN đã được nghiên cứu có thé hiện thực được
giải thuật băng phần cứng thông qua ngôn ngữ mô tả phần cứng Verilog Thực hiệnhuấn luyện trên phần cứng dé sau đó môi trường Cartpole có thể tự hoạt động và đạt
được số điểm gần như tuyệt đối (200)
1.3 Mục tiêu của đề tài
Trong khoá luận nay, đầu tiên, nhóm sẽ nghiên cứu, phân tích và tìm hiểu lý thuyết
về Reinforcement Learning, Deep Learning, Backpropagation, Neural Network Phan
ké tiép nhóm sé nghiên cứu, phân tích va thiết kế IP có thể hiện thực được một mô
hình Deep Q-Network co bản (giới hạn với | lớp hidden layer), sử dụng ngôn ngữ
Verilog và có thê sử dụng CO-Simulation chạy đồng mô phỏng giữa phần cứng và
phần mềm Sau cùng, hiện thực thiết kế, đánh giá tài nguyên phù hợp với board FPGA
Virtex-7 VC707.
Trang 16Chương 2 CƠ SỞ LÝ THUYET
2.1 Môi trường Cartpole
Cartpole - còn được gọi là Con lắc ngược là một con lắc có trọng tâm nằm trên
điểm trục của nó Nó không én định, nhưng có thể được kiểm soát bằng cách dichuyên điểm trục dưới tâm Mục đích là dé giữ cân bang cho cartpole bằng cách tácdụng các lực thích hợp lên một điểm trục [2]
Hình 2.1: Mô hình Cartpole
2.1.1 Cai đặt môi trường
Môi trường Cartpole được hỗ trợ bởi thư viện OpenAI Gym OpenAI Gym là một
bộ công cụ dựa trên Python dé nghiên cứu và phát triển các thuật toán học tăng cường
OpenAI Gym cung cấp hơn 700 môi trường nguồn mở tại thời điểm viết bài Với
OpenAl, người sử dụng cũng có thé tạo môi trường của riêng mình Ưu điểm lớn nhất
là OpenAI cung cấp một giao diện thống nhất dé làm việc với các môi trường này và
đảm nhận việc chạy mô phỏng trong khi tập trung vào các thuật toán học tăng cường.
Mỗi đối tượng env chứa các chức năng chính sau:
e Hàm step () nhận một đối tượng action làm đối số và trả về bốn object:
o observation: Một đối tượng được thực hiện bởi môi trường, đại diện
cho sự quan sát của môi trường.
o reward: Giá trị float có dấu cho biết điểm thưởng từ hành động trước
đó.
Trang 17o done: Một giá tri Boolean báo hiệu kịch bản được hoàn thành.
o info: Là một đối tượng python dictionary đại diện cho thông tin chan
đoán.
e Hàm render () tạo ra một biểu diễn trực quan của môi trường
e Hàm reset () đặt lại môi trường về trạng thái ban dau
se Mỗi đối tượng env di kèm với các hành động va quan sat được xác định rõ
ràng, được đại diện bởi action_space và Obser_space.
2.1.2 Không gian hành động của môi trường Cartpole (Action Space)
Num Action
0 Push cart to the left
1 Push cart to the right
Hình 2.2: Action space của môi trường Cartpole [3]
2.1.3 Khong gian quan sát của môi trường Cartpole (Observation Space)
Num Observation Min Max
0 Cart Position -4.8 48
1 Cart Velocity -Inf Inf
2 Pole Angle ~ -0.418 rad (-24°) ~ 0.418 rad (24°)
3 Pole Angular Velocity -Inf Inf
Hình 2.3: Observation Space của môi trường Cartpole [3]
Trang 18dung sức mạnh của tim kiêm và nhiêu thử nghiệm, Reinforcement Learning hiện là
cách hiệu quả nhât đê gợi ý sự sáng tạo của máy móc.
Trong reinforcement learning có rât nhiêu các thuật ngữ khác nhau, dưới đây là các thuật ngữ thông dụng:
e Agent: may quan sát môi trường và sinh ra hành động tương ứng.
e Environment: là không gian xung quanh cua agent, nơi ma agent tôn tại và
tương tác.
e Action: là phương thức của agent cho phép nó tương tác với môi trường va
thay đổi môi trường Dựa trên State S(t) của environment hiện tại mà agent sẽ
đưa ra action a(t).
¢ Observation: Sau khi nhận được sự tương tac từ agent thi environment có sự
chuyên đổi trang thái đối với agent
¢ Policy: là một ánh xạ từ các trạng thái (state) của môi trường đến các hành
động sẽ được thực hiện khi ở trong các trạng thái đó Policy là cốt lõi của agenttrong việc xác định hành vi Máy sẽ theo chiến thuật như thế nào dé đạt được
mục đích.
« Reward: phần thưởng tương ứng từ môi trường mà máy nhận được khi thực
hiện một hành động.
« State: trạng thái của môi trường ma máy nhận được.
« Episode: một chuỗi các trạng thái và hành động cho đến trang thái kết thúc
2.2.1 Deep Q-Learning
Dé agent biét phai chon action nao dé dat duoc reward lớn nhất sé sử dụng một giátrị gọi là Q-value được tính bằng công thức Gradient Descent
Deep Q-Learning thực hiện các bước sau:
e Enviroment đưa vào mạng một state s, dau ra là các Q-value của các actions
tương ứng.
Trang 19e Agent chon action bang một Policy và thực hiện action đó.
e Environment trả lại state s' va reward r là kết quả của action a và lưu
experience tuple [s, a, r, s'] vào memory
e Thực hiện sample các experience thanh một vai batches va tién hanh train
NeuralNetwork
e Lap lại đến khi kết thúc M episodes
2.2.2 Loss Function: Mean Square Error
Mean Square Error (MSE) hay còn được gọi là L2 Loss là một loss function cũngđược sử dung 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.MSE được tính bằng tổng các bình phương của hiệu giữa giá trị thực (y;: target) vàgiá trị mà mô hình của chúng ra dự đoán (¥;: predicted).
1 Khởi tao giá tri x = xo tùy ý.
2 Gan x = x — learning rate * f(x) (learning rate là một hằng số dương (0
hoac 1)).
3 Tinh lai f(x): Néu f(x) đủ nhỏ thi dừng lại, ngược lai tiếp tục bước 2
Thuật toán sẽ lặp lại bước 2 một số lần đủ lớn (100 hoặc 1000 lần tùy vào bài toán
và hệ số learning rate) cho đến khi f(x) đạt giá tri đủ nhỏ
Việc chọn hệ số learning_ rate cực ki quan trọng, có 3 trường hop:
e Nếu learning rate nhỏ: mỗi lần hàm số giảm rất ít nên cần rất nhiều lần thực
hiện bước 2 để hàm số đạt giá trị nhỏ nhất
e Nếu learning_rate hợp lý: sau một số lần lặp bước 2 vừa phải thì hàm sẽ đạt
giá trị đủ nhỏ.
Trang 20e Nếu learning rate quá lớn: sẽ gây hiện tượng overshoot và không bao giờ
đạt được giá trị nhỏ nhất của hàm
2.2.4 Activation Function: Tanh(x)
Ham tanh nhận đầu vào là một số thực va chuyển thành một giá trị trong khoảng(-1; 1) Cũng như Sigmoid, hàm Tanh bị bão hoà ở 2 dau (gradient thay đôi rat ít ở 2đầu) Tuy nhiên do hàm Tanh đối xứng qua 0 nên khác phục được một nhược điểm
của Sigmoid (Hàm Sigmoid không có trung tâm là 0 gây khó khăn cho việc hội tụ).
1.00
0.75 0.50
ƒŒ):=—————xz—— (2.2)
2.3 Neural Network
Neural network là mang sử dụng các mô hình toán hoc phức tap 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
Trang 21như 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ế
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 4n (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
Mỗi mô hình luôn có 1 input layer, 1 output layer, có thê có hoặc không các hidden
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 Moi node có 1 hệ sô bias riêng.
Xo — a > e@ >
Hinh 2.5: M6 hinh Neural Network sir dung trong dé tai
Trang 22Hinh 2.6: Layer 1 Neural Network
y,=outHywh! + outH, wi) + outHạw2]+ outH;wl2)+bị” (2.3)
Trong đó:
© outHạ, outH¡, outH,, outH; là kết quả từng node ở hidden layer
° wi! là trọng số tương ứng với node Yo:
o x là thứ tự node đầu vào.
o_ y là thứ tự của node dau ra trong tầng tiếp theo
o [2] Số thứ tự tầng
o Ví dụ: wil: Trọng số thứ 1 tương ứng với node thứ 0 của tang tiếp theo.
° bl! la bias tương ứng với node y,
y, được tính toán tương tự như y,
Hình 2.7: Layer 2 Neural Network
Trang 23Hạ= tanh(xạwlh + x¡wltl+ X;Wlnl+ x3wht! +pl!! (2.4)
Trong d6:
@ Xo, XỊ, X2, Xa là dữ liệu đầu vào
° wit! 1a trong số tương ứng với node Ho.
o x là thứ tự node đầu vào
o_ y là thứ tự của node dau ra trong tang tiếp theo
o [1] Số thứ tự tầng
o Ví dụ: wll: Trọng số thứ 1 tương ứng với node thứ 0 của tang tiếp
theo.
° bb! la bias tương ứng với node Họ
e tanh(Q hàm kích hoạt (activation function).
H;,H;,H; được tính toán tương tự như Họ
2.3.2 Backpropagation
Nhu vậy từ những input x đầu vào, ta có thé tinh được giá trị dự đoán 7, tuy nhiênviệc chính cần làm là đi tìm hệ số W (trọng sô) và b (bias) Có thé nghĩ ngay tới thuậttoán gradient descent và việc quan trọng nhất trong thuật toán gradient descent là đitìm đạo hàm của các hệ số đối với loss function Và việc tính đạo hàm của các hệ số
trong Neural Network được thực hiện bởi thuật toán Backpropagation.
Thuật toán tối ưu được áp dụng là Gradient Descent Ham loss dựa trên công thứcMean Square Error nên ta có công thức cập nhật cho các trọng số tương ứng với
output:
Wnew — Wo + @[ r+ y(1 - done) maxQ'(s',a') - Q(s,a)] OH (2.5)
a
Công thức trên được tham khảo và phát triển từ công thức Gradient Descent được
trình bày tại MIT Deep Learning [4].
Với hàm mat mát (loss function) được thé hiện ở công thức (2.6):
10
Trang 24loss = ; ([r + ymaxQ (s,a)| - Q(s,a)) (2.6)
Trong đó:
Wney: Trọng số sau khi cập nhật
Waig: Trọng số trước khi cập nhật
ơ: Hệ số học (Learning rate)
r: điểm thưởng (reward)
y: Hệ số chiết khâu (gamma hay discount factor)
maxQ (s',a`): Giá trị Q lớn nhất của trạng thái tiếp theo
a
Q(s,a): Giá trị Q của hiện tại.
OH: Đạo hàm cua node tiền phong ảnh hưởng đến trong số đang cần cập nhật
Tính đạo hàm của wil theo ham loss dựa theo công thức (2.7), (2.8), (2.9), (2.10).
dloss — dloss dQ doutHo dHọ
will “dQ ' doutHlp ` đHọ ` wil] 2.7)
0 TC =Q-[rtymaxQ(s.a) ] (2.8)
Với Q=(action) ?y, : y,
Hình 2.8: Mô hình thu nhỏ của NeuralNetwork sử dụng cho việc cập nhật wh
dQ _ bl 2]
° doutlly =(¥p> ¥1) ? Woo : Wor (2.9)
e otto —1_ tanh (Hạ)= 1- (outHy) (2.10)
0
lãi
Trang 26Target_update_frequency 1000 Sau 1000 bước mới cập
nhật Target_ net
Max_num_step 50000 Train trong 50000 bước
di (trong 50000 bước di
những siêu tham số quan trọng nhất của mô hình Learning rate được hiểu là một phần
tỷ lệ của một bước dịch chuyên trọng số mô hình được cập nhật theo các mini-batch
truyền vào Độ lớn của learning rate sẽ ảnh hưởng trực tiếp tới tốc độ hội tụ của hàm
loss tới điểm cực trị toàn cục Tầm ảnh hưởng của Learning rate được thể hiện trong
A small learning rate The optimal learning Too lafge of a learning rate
requires many updates rate swiftly reaches the causes drastic updates
before reaching the minimum point
which lead to divergent
* behaviors
minimum point
Hình 2.9: Các trường hop cua Learning rate [5]
Ở hình bên trái, với trường hop Learning rate quá nhỏ dẫn đến các cập nhật đối
với trong sô là nhỏ, điêu này sẽ giúp tìm tới diém cực tiêu được chuân xác hon vì
13
Trang 27bước nhảy là rất nhỏ Tuy nhiên điều này sẽ khiến mắt rất nhiều thời gian để hội tụ,
với learning rate quá nhỏ nay có thể dẫn tới việc bị kẹt trong cực tiểu cục bộ không
mong muôn.
Ngược lại, với hình bên phải với trường hợp Learning rate quá lớn, thuật toán sẽ
học nhanh, nhưng có thê thấy thuật toán bị dao động xung quanh hoặc thậm chí
nhảy qua điêm cực tiêu.
Sau cùng, hình ở giữa là việc chọn Learning rate phù hợp, nó sẽ hài hòa được
giữa toc độ hội tụ của thuật toán cũng như việc tim ra điêm cực tiêu Không quá nhỏ cũng không quá lớn.
Mỗi bài toán cụ thé sẽ có các cách khác nhau dé tìm ra Learning rate phù hợp
Gamma: y là hệ sô chiét khâu, được sử dụng đê xác định tâm quan trọng của
phần thưởng trong tương lai
2.4 CO-simulation: cocotb
Trong dé tai sử dụng cocotb dé đồng mô phỏng python va RTL code [2]
Hình 2.10 mô tả mô hình hoạt động cua cocotb Trong đề tài này, nhóm thực hiện
chạy song song giữa Python (gửi dt liệu từ environment) va RTL code (nhận dữ liệu
từ environment và bắt đầu xử lí với thuật toán DQN)
DUT (Verilog / VHDL)
Hình 2.10: Mô hình hoạt động của cocotb
cocotb là một môi trường Cosimulation TestBench dé xác minh VHDL va SystemVerilog RTL bang Python
14
Trang 28Ké từ giữa năm 2018 cocotb là một dự án độc lập dưới sự bảo trợ của The Free
and Open Source Silicon Foundation FOSSi Foundation cung cấp cho dự án
cocotb hỗ trợ tài chính, pháp lý va hành chính, đồng thời nắm giữ tai san cocotb
cocotb ban đầu được phát triển bởi Stuart Hodgson và Chris Higgs của Potential
Ventures với sự hỗ trợ của Solarflare Communications Ltd và sự đóng góp của
Gordon McGregor va Finn Grimwood.
cocotb yêu cầu trình mô phỏng dé mô phỏng thiết kế HDL và đã được sử dung vớinhiều trình mô phỏng trên Linux, Windows va macOS Có thể kể đến như: Icaris
Verilog, Verilator, Synopsus VCS, Aldec Riviera-PRO, Mentor/Siemens EDA ModelSim,
Tất cả xác minh được thực hiện bang Python có nhiều ưu điểm khác nhau so vớiviệc sử dụng SystemVerilog hoặc VHDL dé xác minh:
« Python là một ngôn ngữ rất hiệu quả
« Dé dàng dé giao tiếp với các ngôn ngữ khác từ Python
« Python có một thư viện mã không lồ hiện có dé sử dụng lại
e Python được thông dịch - các bài test có thể được chỉnh sửa và chạy lại mà
không cần phải biên dịch lại thiết kế hoặc thoát khỏi GUI của trình mô
tiếp từ Python Lưu ý rằng cocotb không thé khởi tạo khối HDL, DUT của bạn phải
hoàn chỉnh.
Tại bất kỳ thời điểm nào hoặc trình mô phỏng đang thực thi Từ khóa await được
sử dụng để chỉ ra thời điểm chuyên quyền kiểm soát thực thi trở lại trình mô
15
Trang 29phỏng Một bài kiểm tra có thé tao ra nhiều quy trình, cho phép các luồng thực thiđộc lập.
2.5 Giới thiệu FPGA Xilinx và lý do sử dụng.
2.5.1 Giới thiệu board FPGA Xilinx Virtex 7.
Đề tài được tối ưu hóa phù hợp với tài nguyên trên Board FPGA Virtex 7 thuộc
Xilinx Trên board Virtex 7, đầy đủ tính năng, độ linh động cao, giao diện nối tiếp
tốc độ cao sử dụng Virtex — 7 XC7VX485T — 2FFG1761C
Dưới đây là một số hỗ trợ của board VC707:
- Cấu hình:
o_ Mạch cau hình JTAG trên board cho phép cau hình qua USB
o Đầu đọc JTAG được cung cấp cho sử dụng với cáp nap tải Xilinx như
Platform Flash USB II
GTX SMA RefClock Power Switch
J25/)26) USB JTAG > User DIP Switch
USB 2.0 ULPI Transcerver,
= USB Mn-B Connector Status LEDs
GTX SMA RX 10/100/1000 MHz
Ethemet PHY
User Push Buttons Active High
HDMI Video Connector (P2) max
HOMI Controller (U48)
PCI Express Config Mode/Upper Linear Flash
Connector Addrnes DIP Switch
Hinh 2.11: Kit FPGA Virtex 7 VC707
- Bộ nhớ:
o 1GB DDR3 SODIMM 800MHz/1600Mbps
16
Trang 30o Khe thẻ SD
- Giao tiếp và mạng:
o SFP+ đầu nối thu phat
o UART tới USB
o Sử dụng xung nhịp hệ thống cho FPGA
o Bộ tạo động lập trình được với 156.250 MHz như một đầu ra mặc
định
o Đầu vào Clock SMA differential
- Điều khiển va I/O:
o Năm nút nhắn
o Tám công tắc DIP
o Rotary Encoder Switch (3 I/O)
1 GB DDR3 Memory FMC Connectors 10/10/1000 Ethernet
(SODIMM) (HPCIHPC) Interface
Differential Clock 128 MB Linear BPI
GTX SMA Clock l } Flash memory
=— ————————
USB 20
XADC Header K ) ULPI PHY
OOO Virtex-7 FPGA E—
=
XC7VX485T-User Switches, Slane PCI Express
Buttons, and LEDs |( 2FFG1761C }_ Edge Connector
= =
HDMI Video LCD Display
Interface (2 line x 16 characters) |
1KB EEPROM (2c) DIP Switch SW11 % JTAG Interface
2c Bus Switch Config and Flash Addr| | USB-o-UART Bridge | Í,rinB USB Connector | | SFP+ Single Cage
Hình 2.12: So đồ khối của Kit VC707
17
Trang 31Với các thành phân câu tạo đã nêu, Hình 2.12 chỉ rõ sự giao tiêp của các khôi
chức năng.
2.5.2 Lý do sử dung kit FPGA Xilinx Virtex 7 dé hiện thực
Với những thông số ở mục 2.5.1, VC707 hỗ trợ đầy đủ những nhu cầu cần cho thựchiện đề tài như công UART để giao tiếp giữa host và FPGA Board có tích hợp nhânmềm Microblaze, tạo điều kiện để thuận lợi cho việc kết nối giữa FPGA va host,
giữa các IP với nhau Ngoài ra, board còn hỗ trợ xung nhịp cao, giúp xử lý đữ liệu
nhanh chóng.
18
Trang 32Chương 3 THIẾT KE HE THONG
Trong chương 2 đã trình bày về các lý thuyết tổng quát và các thuật toán sử dụngtrong đề tài Trong chương 3 sẽ trình bày chỉ tiết hơn về thiết kế hệ thống
Environment sẽ nhận random action, nêu đủ thì Environment sẽ nhận action từ
Neural Network Sau khi có action, Environment trả vé state, nstate, reward,
19
Trang 33action, done Những dt liệu này sẽ được lưu vào bộ Experiences Nhóm sẽ lay ra
ngẫu nhiên số lượng kinh nghiệm bang với batch size (32) từ khối Experiences Sau
đó, sử dụng số kinh nghiệm vừa được lấy ra, trong đó, data nstate sẽ được sử dụng
cho mang Neural Network thứ hai nhăm có được giá trị Q’ lớn nhất ở trạng thái tiếptheo Thực hiện huấn luyện liên tục qua khối Update với giá trị Q’ và những kinhnghiệm khác vừa được lay ra (state, action, done, reward) Sau khi huan luyện, sẽ có
được 32 tập hợp trọng số, 32 tập hợp bias 32 tập hợp trọng số, thực hiện phép tínhtrung bình cộng sẽ có được một tập trọng số cần thiết, thực hiện công việc tương tự
với 32 tap bias cũng sẽ có được tập bias cần thiết, những dữ liệu này sẽ được sử dụng
là đầu vào cho Neural Network ở trạng thái tiếp theo Bảng 3.1 mô tả chức năng từngkhối trong hệ thống được trình bày ở Hình 3.1
Bang 3.1: Bang mô tả chức năng từng khối trong hệ thống
Khối Chức năng
— Cartpole nhận vào một hành động trả về trang thái
Environment tiếp theo và các dữ liệu liên quan giữa trang thái
hiện tại và trạng thai tiếp theo
— Một mang gồm các phần tử là dit liệu từ khối
Trang 343.2 Quy trình thiết kế hệ thống
Nghiên cứu về
thuật toán DON
Hiện thực thuật toán
hành huấn luyện mô hình
Hình 3.2: Sơ đồ quy trình thiết kế
Quy trình hệ thống được thé hiện trong Hình 3.2 Bước đầu tiên nhóm nghiên cứucác khái niệm về Deep Learning thuật toán Deep Q-Network, Loss Function: Mean
Square Error, Tiếp theo, sử dụng ngôn ngữ mô tả phan cứng (Verilog) dé hiện thực
các thuật toán đã nghiên cứu Tiếp tục tìm hiểu về CO-Simulation, nghiên cứu về
cách cài đặt và cầu hình CO-Simulation dùng để đồng mô phỏng giữa phần cứng và
phần mềm Trong đề tài sẽ sử dụng Coroutine based Cosimualtion Testbench
(cocotb).
21
Trang 35Sau khi đã thiết kế các module phần cứng, tiếp tục với việc nghiên cứu và tiến
hành cài đặt môi trường Cartpole bằng Python code, kết hợp sử dụng CO-Simulation
(cocotb) đồng mô phỏng và tiễn hành huấn luyện mô hình Cartpole Sau khi thực hiện
huấn luyện, môi trường Cartpole có thể tự hoạt động và đạt được số điểm gần nhưtuyệt đối (200)
lastAct data_out [31:0]
mode
done
Hình 3.3: Interface của DQN Core IP
DQN Core IP có chức năng là cập nhật trọng số, với đầu vào là trạng thái của môitrường, trọng số, bias nhận từ môi trường Cartpole (Python code) và đầu ra là trọng
số sau khi Update, dự đoán hành động tiếp theo mà môi trường cần thực hiện Hình
3.3 mô tả interface của DQN Core IP và chỉ tiết từng tín hiệu của IP được mô tả trong
Bảng 3.2.
Bang 3.2: Bảng mô tả tín hiệu interface DQN Core IP
Tín hiệu UO_ | Số bit Mô tả
clk I 1 Xung clock hé thống, kích cạnh lên
22