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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Hiện thực giải thuật Deep Q-Network (DQN) trên phần cứng với môi trường Cartpole

70 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 đề Hiện thực giải thuật Deep Q-Network (DQN) trên phần cứng với môi trường Cartpole
Tác giả Dương Minh Tâm, Lê Trường Thịnh
Người hướng dẫn TS. Nguyễn Minh Sơn
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 70
Dung lượng 31,03 MB

Nội dung

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 3

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

528/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 5

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

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

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

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

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

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

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

TÓ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 13

MỞ ĐẦ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 14

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

tà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 16

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

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

dung 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 19

e 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 20

e 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 21

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ế

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 22

Hinh 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 23

Hạ= 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 24

loss = ; ([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 26

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

bướ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 28

Ké 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 29

phỏ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 30

o 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 31

Vớ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 32

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

action, 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 34

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

Sau 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

Ngày đăng: 03/11/2024, 18:49

w