[RL series] Dạo quanh Reinforcement Learning - BeeLab

Sunday, November 21, 2021

[RL series] Dạo quanh Reinforcement Learning

Reinforcement Learning là gì?

Illustration of a reinforcement learning problem

Fig. 1. An agent interacts with the environment, trying to take smart actions to maximize cumulative rewards.

Giả sử, chúng tôi có một đại lý trong một môi trường không xác định và đại lý này có thể nhận được một số phần thưởng bằng cách tương tác với môi trường. Người đại diện phải thực hiện các hành động để tối đa hóa phần thưởng tích lũy. Trong thực tế, kịch bản có thể là một bot chơi trò chơi để đạt được điểm số cao, hoặc một robot cố gắng hoàn thành các nhiệm vụ vật lý với các vật phẩm vật lý; và không chỉ giới hạn ở những thứ này.

Bạn đã bao giờ trách móc hoặc đánh đập con chó của mình một cách nghiêm khắc vì những hành động sai trái sau khi nó làm chưa? Hay bạn đã bao giờ huấn luyện một con vật cưng và thưởng nó cho mỗi lệnh đúng mà bạn yêu cầu chưa? Nếu bạn là chủ sở hữu vật nuôi, có lẽ câu trả lời của bạn sẽ là ‘Có’. Bạn có thể nhận thấy một khi bạn làm như vậy thường xuyên từ khi nó còn nhỏ, những việc làm sai trái của nó giảm dần từng ngày. Và cũng giống như nó sẽ học hỏi từ những sai lầm và rèn luyện bản thân thật tốt.

Là con người, chúng ta cũng đã từng trải qua điều tương tự. Bạn có nhớ không, ở trường tiểu học của chúng tôi, các giáo viên của trường chúng tôi đã thưởng cho chúng tôi những ngôi sao khi chúng tôi đã hoàn thành tốt các công việc của trường. Đây chính xác là những gì đang xảy ra trong "Học tăng cường" (RL).

Reinforcement Learning is one of the most beautiful branches in Artificial Intelligence

Mục tiêu của RL là tìm kiếm một chiến lược tốt cho "chủ thể" từ các "trải nghiệm" và nhận được phản hồi từ những tương tác với môi trường. Với chiến lược tối ưu, chủ thể có khả năng chủ động thích ứng với môi trường để tối đa hóa phần thưởng trong tương lai.

Các khái niệm chính trong RL

Chủ thể (agent) đang hoạt động trong môi trường (environment). Cách môi trường phản ứng với các hành động nhất định được xác định bởi một mô hình (model) mà chúng ta có thể biết hoặc có thể không biết. Chủ thể (agent) là người đưa ra quyết định (make a decision), có thể ở một trong nhiều trạng thái (states) (sS) của môi trường, và chọn thực hiện một trong nhiều hành động (actions) (a ∈ A) để chuyển từ trạng thái này sang trạng thái khác. Trạng thái nào mà chủ thể sẽ có được quyết định bởi xác suất (probabilities) chuyển đổi giữa các trạng thái (P). Khi một hành động được thực hiện, môi trường mang lại phần thưởng (reward) (r ∈ R) dưới dạng phản hồi.


RL là khoa học về việc đưa ra các quyết định tối ưu bằng cách sử dụng kinh nghiệm. Chi tiết hơn, quá trình RL bao gồm các bước đơn giản sau:

1. Quan sát môi trường (Observation)
2. Quyết định cách hành động bằng một số chiến lược (Decision)
3. Hành động phù hợp (Action)
4. Nhận phần thưởng hoặc hình phạt (reward/penalty)
5. Học hỏi kinh nghiệm và hoàn thiện chiến lược của chúng tôi (Learn)
6. Lặp lại cho đến khi tìm được chiến lược tối ưu
Mô hình hóa toán học của RL

1. Đây là một ví dụ trực quan về Agent:

2. Enviroment xung quang của Agent, nơi mà agent tồn tại và tương tác:

3. Dựa trên State S(t) của enviroment hiện tại mà agent sẽ đưa ra action a(t):

4. Sau khi nhận được sự tương tác từ agent thì enviroment có sự chuyển đổi trạng thái đối với agent:

5. State lúc này của enviroment là S(t+1), tức ở thời điểm t+1:

6. Lúc này, agent nhận được reward r(t)Reward này phụ thuộc vào action a(t) của agent và State S(t) của enviroment ở thời điểm trước đó, tức là ở thời điểm t:

7. Vì ta không biết thời điểm kết thúc của sự lặp đi lặp lại này nên tổng reward sẽ là một chuỗi vô hạn của các reward thành phần tại các thời điểm khác nhau kể từ thời điểm t (lúc đầu):

8. Chúng ta có thể khai triển chuỗi vô hạn này như sau:

9. Vì chuỗi này không thể nào hội tụ (convergence) được nên trên thực tế các nhà nghiên cứu có thể dùng một cái trick để chuỗi này có thể hội tụ được. Như hình dưới đây, họ đưa vào thêm một term thường được gọi là discount factor (discount rate) để làm cho chuỗi này hội tụ. 

Lưu ý việc hội tụ là bắt buộc nếu bạn muốn train thành công một agent nói riêng hay một mạng Neural Network nào đó nói chung.

Tất cả những thứ trên nó dựa trên một framework được gọi là Markov Decision Processes (MDPs). Về cơ bản thì một MDP cung cấp một framework toán học cho việc modelling các tình huống decision-making. Ở đây, các kết quả (outcomes) xảy ra một cách ngẫu nhiên một phần và phần còn lại thì phụ thuộc trên các action của agent (hoặc decision maker) đã tạo ra trước đó. reward thu được bởi decision maker phụ thuộc trên action mà decision maker chọn và dựa trên cả hai State mới (S(t+1)) và cũ (S(t)) của enviroment.

Để có thể train được agent thì mục tiêu của chúng ta là phải tìm được policy \pi sao cho:
 là discount factor và  < 1

Về cơ bản thì chúng ta đang cố gắng để maximize tổng của tất cả các reward (có tính đến discount factor như đã đề cập ở trên) ở mỗi state cụ thể từ lúc bắt đầu đến khi kết thúc (dẫu cho T tiến về vô cùng, vì chúng ta chưa biết khi nào thì quá trình này kết thúc nên nó vẫn luôn là một chuỗi vô hạn), và đương nhiên là phải dựa trên policy   agent của chúng ta base trên nó để chọn reward tốt nhất mà. Bản chất thì đây là một bài toán tối ưu (optimazation problem).

Ở trên là một tiêu chí mà chúng ta có thể dùng để optimize cho việc tìm ra nghiệm (optimal policy). Cụ thể chúng ta gọi tiêu chí này là infinite horizon sum reward criteriaPhụ thuộc vào các criteria khác nhau mà chúng ta sẽ có các algorithm khác nhau để tìm ra optimal policy. Với infinite horizon sum reward criteria thì chúng ta có thể sử dụng một thuật toán RL cũng khá kinh điển đó là Q-Learning để giải quyết, tôi sẽ giới thiệu trong bài viết tiếp theo.

Phân loại các phương án trên RL

Để phân loại rõ ràng các thuật toán trên RL khá phức tạp, chúng ta có thể nhìn hình bên dưới và tạm thời chia theo vài trường hợp chính: 

Categorization of RL Algorithms

Fig. 2. Summary of approaches in RL based on whether we want to model the value, policy, or the environment. (Image source: reproduced from David Silver’s RL course lecture 1.)

  • Model-free: thuật toán ước tính chính sách tối ưu mà không cần sử dụng hoặc ước tính động lực học (chức năng chuyển đổi và phần thưởng) của môi trường. 
  • Model-based là một thuật toán sử dụng hàm chuyển tiếp (và hàm phần thưởng) để ước tính chính sách tối ưu.
  • On-policy: Sử dụng kết quả xác định hoặc mẫu từ chính sách mục tiêu (target policy) để đào tạo (train) thuật toán.
  • Off-policy: Đào tạo về cách phân phối các chuyển đổi (transitions) hoặc các tập (episodes) được tạo ra bởi một chính sách (policy) hành vi khác chứ không phải do chính sách mục tiêu tạo ra.
Ngoài ra, nếu nhìn tổng quát hơn ta có thể phân loại Rl thành những nhóm như hình bên dưới

Tiếp theo, để tạo nền tảng kiến thức vững vàng trước khi đi vào phân tích cũng như phát triển thuật toán trên RL các bạn nên tìm đọc và hiểu về cách khái niệm như Trasition, Reward, Policy, Value Function,... đặc biệt là 
Markov Decision Processes và Bellman Equations (có thời gian mình sẽ phân tích thêm về phần này) từ sách. 

Ví dụ

Reinforcement Learning: An introduction (link) 

Hoặc tổng hợp khác của tôi ở đây

P/s: từ tài liệu tiếng anh có nhiều từ rất khó để dịch sát nghĩa sang tiếng việt nên khó tránh khỏi sai sót, nhưng vì mong muốn các bạn ở VN có nhiều nguồn tài liệu để tiếp cận hơn. Các bạn có khả năng đọc hiểu tiếng anh thì nên đọc sách góc sẽ tốt hơn. Các phần tiếp theo mình đã xử lý dưới xong rồi, mình có thời gian sẽ tiếp tục, kết hợp với code mô phỏng. Hy vọng các bạn tìm thấy được sự thú vị từ đây! have fun 😏