Đặ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ừ đơ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 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ố tất cả các loại mô hình Machine Learning được thê hiện trong hình 1.1, Reinforcement Learning (RL) là mô hình được sử dụng dé xử lí bài toán trong đề tài. Types of Machine Learning Machine Learning | Supervised Unsupervised Reinforcement Learning Learning Learning |~ âak 8-8 ‘S aD Task Driven Data Driven Learning from (Classification/Regression) (Clustering) mistakes (Playing Games) Hinh 1.1 Cac linh vuc may hoc Reinforcement Learning (RL) la 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 tạo (Al) đố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 and error) để đưa ra giải pháp cho vấn dé.
Dé khiến máy làm những gi lập trình viên muố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à kiếm được nhiều phần thưởng nhất có thể. Các thuật toán của Reinforcement Learning ngày càng được sử dụng phổ biến để giải quyết các bài toán của Machine Learning. Hang năm Nhật Ban van thường xuyên tổ chức cuộc thi LSI Design Contest.
Đây là cuộc thi được tổ chức thường niên với sự tham gia của nhiều nước chau A do Trườ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 Analog Devices, Hiệp hội công nghiệp Okinawa. Trong những năm gần đây, đề 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. Qua đó ta thấy được sự quan tâm đặc biệt của khoa học đối với đề tài.
Hướng nghiên cứu đề tài Hướng nghiên cứu chính của đề tài là sẽ tìm hiểu về giải thuật Deep Q-Network, cach đề có thé hoạt động Neural Network trên phần cứng SoC. Từ những thuật toán DQN đã được kế thừa có thé cải tiến được giải thuật bằng phần cứng thông qua ngôn ngữ mô tả phần cứng Verilog. Thiết kế kiến trúc phần cứng và driver FPGA cho IP DQN sử dụng giao thức AXI4. Tiến hành huấn luyện trên phần cứng với số lần nhất định dé môi trường Cartpole có thé tự hoạt động và đạt được số điểm gần như tuyệt đối.
Mục tiêu của đề tài Trong khoá luận này, đầu tiên nhóm sẽ nghiên cứu và tìm hiểu lý thuyết về Reinforcement Learning, Deep Learning, Backpropagation và mô hình Deep Q- Network đã được kế thừa từ nhóm trước. Nhóm thức hiện dé tài trước đó đã nghiên cứu và thiết kế thành công được IP DQN, sau đó mô phỏng trên phần mềm dé đánh giá thiết kế, có thé nạp xuống FPGA để hiện thực như 1 phần cứng hoàn chỉnh, nhưng thời gian huấn luyện mô hình giữa phần mềm và phan cứng mat nhiều thời gian (7 ngày), chưa mang lại tính thực tiễn cho đề tài. Dé giải quyết cho van đề trên, nhóm sẽ nghiên cứu, thiết kế và đóng gói IP DQN theo chuẩn AXI4. Thiết kế kiến trúc phần cứng mới với core ZynQ dé có thé hiện thực được một mô hình Deep Q- Network hoàn toàn trên phần cứng FPGA để rút ngắn thời gian huấn luyện mô hình cartpole.
Sau đó dựa trên kiến trúc xây dựng device, sử dụng ngôn ngữ Verilog và PetaLinux dé mô phỏng hoạt động huấn luyện trên phần cứng. Sau cùng, hiện thực thiết kế, đánh giá tài nguyên phù hợp với board Genesys ZU 5EV. 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 nam trên điểm trục của nó được minh hoa bằng hình 2. Nó không ổn định, nhưng có thé được kiểm soát bằng cách di chuyên điểm trục dưới tâm.
Mục đích là để giữ cân bằng cho Cartpole bằng cách tác dụng các lực thích hợp lên một điểm trục [2]. 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 va 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 năm 2018 [3].
Với OpenAI, người sử dung cũng có thé tạo môi trường của riêng minh. Ư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 trong môi trường Cartpole (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á tri float có dau cho biết điểm thưởng từ hành động trước đó.
o done: Một gia 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 đầu.
© Mỗi đối tượng env đi kèm với các hành động và quan sát được xác định rõ ràng, được đại diện bởi action_space và Obser_space. Không gian hành động của môi trường Cartpole STT Hành động 0 Đây xe sang trái 1 Day xe sang phai Bảng 2.1 Không gian hành động của môi trường Cartpole [2] Môi trường Cartpole có không gian hành động bao gồm 2 hành động là 0 và 1, khi hành động là 0 sẽ đây xe sang trái, khi hành động là 1 sẽ đây xe sang phải, được thê hiện qua bảng 2. Không gian quan sát của môi trường Cartpole STT Gia tri quan sat Min Max 0 Vi trí xe đây -4.8 1 Vận tốc xe day -00 œ 2 Góc rơi -24° 249 3 Tốc độ góc rơi -œ œ Bảng 2.2 Gia tri quan sát của môi trường Cartpole Bảng 2.2 mô tả môi trường quan sát của Cartpole, bao gồm 4 kết quả là vị trí xe xe day, tốc độ xe đây, góc rơi và tốc độ góc rơi. Thuật toán DQN sẽ dựa vào 4 giá trị quan sát trong môi trường dé trả về các hành động trong bảng 2.
Reinforcement Learning Học tăng cường (Reinforcement Learning) là một trong ba dạng của Machine Learning bên cạnh học giám sát (Supervised Learning) va học không giám sát (Unsupervised Learning). Bản chất của Reinforcement Learning là trial-and-error, nghĩa là thử di thử lai và rút ra kinh nghiệm sau mỗi lần thử như vậy. Bang cách tận dụng việc tìm kiếm và thử nghiệm nhiều lần với khả năng vô hạn, Reinforcement Learning hiện là cách hiệu quả nhất dé phát triển máy học. Trong reinforcement learning có các thuật ngữ thông dụng sau đây: 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 của agent, noi ma agent tôn tại va tương tác. e State: trạng thái của môi trường ma agent nhận được. ¢ Action: là phương thức cua agent cho phép nó tương tac với môi trường và thay đổi môi trường. Dựa trên State S(t) của environment hiện tại ma agent sẽ đưa ra Action A(t).
¢ Observation: Sau khi nhận được sự tương tác 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 agent trong việc xác định hành vi. Máy sẽ theo chiến thuật như thế nào đề đạ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. « Episode: một chuỗi các trạng thái và hành động cho đến trạng thái kết thúc. Deep Q-Learning Dé agent biết phải chon action nào dé đạt được 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 vao mạng một state s, đâu ra là các Q-value của các actions tương ứng.
e Agent chon action bang một Policy và thực hiện action đó. e Environment tra lai state s' và reward r là kêt qua cua action a và lưu experience tuple [s, a, r, s'] vao memory e Thực hiện sample các experience thành một vai batches va tiên hành train NeuralNetwork e Lặp lại đến khi kết thúc M episodes. 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 tinh bằng tổng các bình phương của hiệu giữa giá trị thực (y;: target) va giá trị mà mô hình của chúng ra dự đoán (Ÿ;: predicted) qua công thức 2.
Thuat toan Gradient descent Thuat toan: 1. Khởi tao gia tri x = xo tùy ý. Gan x = x — learning rate * f(x) (learning rate là một hằng số đương (0 hoặc 1)). Tính lai f(x): Nếu f(x) đủ nhỏ thì dừng lại, ngược lại 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á trị đủ nhỏ. Việc chọn hệ số learning rate cực kì quan trong, có 3 trường hợp: 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 dé ham số đạt giá tri 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ỏ. 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.
Activation Function: Tanh(x) Hàm tanh nhận đầu vào là một số thực và chuyền thành một giá tri trong khoảng (-1; 1) được thể hiện qua hình 2.