2. ReinforcementLearning
2.1. ReinforcementLearning là gì?
Reinforcement Learning là việc đào tạo các mơ hình Machine Learning để đưa ra một chuỗi các quyết định. Trong Reinforcement Learning, trí tuệ nhân tạo (AI) đối mặt với một tình huống giống như trị chơi. Máy tính sử dụng thử và sai (trial and error) để đưa ra giải pháp cho vấn đề. Để khiến máy làm những gì 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à tối đa hóa tổng phần thưởng.
Hình 1. 6: Quy trình bài tốn Reinforcement learning
• Environment (Mơi trường): là khơng gian mà máy tương tác. • Agent (Máy): là chủ thể tương tác với môi trường qua hành động.
• Policy (Chiến thuật): là chiến thuật mà máy sử dụng để đưa ra hành động. • State (Trạng thái): mơ tả trạng thái hiện tại của máy.
• Reward (Phần thưởng): phần thưởng từ môi trường tương ứng với hành động được thực hiện.
• Action (Hành động): là những gì máy có thể thực hiện.
Chúng ta sẽ bắt đầu từ state S(t), tại trạng thái này, agent sẽ dựa trên policy đã được thiết kế sẵn để đưa ra một action A(t) trong environment. Environment sau khi quan sát hành động sẽ chuyển đổi sang trạng thái tiếp theo S(t+1) đối với agent và đồng thời dựa theo hành động mà agent đã thực hiện, environment sẽ đưa ra phần thưởng R(t) tương ứng. Agent sẽ lặp đi lặp lại qui trình này cho đến khi tìm được chuỗi những hành động tối đa hóa phần thưởng được nhận [4].
Environment Agent State 𝑠𝑡 Reward 𝑅𝑡 𝑅𝑡+1 𝑆𝑡+1 action 𝐴𝑡
Đỗ Minh Toàn - D17CQVT07-B 11 Hình 1. 7: Trị chơi minh họa cách tìm đường cơ bản của RL [4]
Giả sử rằng chúng ta có một trị chơi đơn giản minh họa bởi ảnh phía trên với mục tiêu là lấy được viên kim cương, agent sẽ bắt đầu từ ô s9, vậy một giải pháp đơn giản chúng ta có thể thấy là agent sẽ di chuyển lần lượt qua các ô s5-s1-s2-s3 để tới được viên kim cương với quãng đường là ngắn nhất. Tuy nhiên, nếu agent được đặt tại vị trí s1, khi đó agent sẽ có 2 hướng đi với các giá trị như nhau. Vậy chúng ta làm thế nào để đảm bảo được agent sẽ thực hiện đúng những hành động tối ưu mà chúng ta muốn? Đó là tạo một memory (bộ nhớ) cho agent, sử dụng Bellman Equation. Dưới đây là công thức:
𝑉(𝑠) = 𝑚𝑎𝑥
𝑎 (𝑅(𝑠, 𝑎) + 𝛾𝑉(𝑆′)) (1.1)
Trong đó,
• 𝑠: Một state cụ thể.
• 𝑎: Một action do agent thực hiện.
• 𝑠′: Trạng thái trước đó.
• 𝛾: Discount factor.
• 𝑅(𝑠, 𝑎): Hàm số phần thưởng với biến là trạng thái 𝑠 và hành động 𝑎 và
trả lại kết quả là giá trị của phần thưởng.
• 𝑉(𝑠): giá trị tại một trạng thái cụ thể.
Đồ án tốt nghiệp Đại học Chương 1: Tổng quan về ML và RL
Đỗ Minh Toàn - D17CQVT07-B 12
dưới đây.
Hình 1. 8: Trị chơi khi được áp dụng thuật toán Bellman Equation
Hàm 𝑚𝑎𝑥 giúp 𝑎𝑔𝑒𝑛𝑡 có thể tìm được chuỗi hành động tối ưu trong đó discount factor 𝛾 giúp thơng báo cho 𝑎𝑔𝑒𝑛𝑡 cịn cách đích đến bao xa. Tuy nhiên, trong nhiều trường hợp phải đưa ra quyết định giữa nhiều lựa chọn, Bellman Equation vẫn có một tỉ lệ nhỏ khiến agent bị rối loạn. Vấn đề ở đây là quá trình đưa ra quyết định vừa ngẫu nhiên vừa trong tầm kiểm sốt. Trong tầm kiểm sốt vì 𝑎𝑔𝑒𝑛𝑡 vẫn tuân thủ những chiến lược chúng ta đã đặt ra tuy nhiên lại ngẫu nhiên vì chúng ta khơng biết khi nào thì 𝑎𝑔𝑒𝑛𝑡 sẽ rối loạn. Thế nhưng chúng ta có thể đưa concept này vào trong Bellman Equation với một số chỉnh sửa nhỏ:
𝑉(𝑠) = 𝑚𝑎𝑥
𝑎 (𝑅(𝑠, 𝑎) + 𝛾 ∑ 𝑃(𝑠, 𝑎, 𝑠′)𝑉(𝑠′))𝑠′ (1.2)
• 𝑃(𝑠, 𝑎, 𝑠′): xác suất di chuyển từ trạng thái 𝑠 sang 𝑠′ với hành động 𝑎.
Quá trình này được biết đến với cái tên Markov's Decision Process (MDP).