1. Giới thiệu
Ắt hẳn các bạn đang đọc đã từng biết đến ít nhất một môn cờ (cờ caro, cờ vua, cờ tướng, cờ vây, ...). Mỗi một môn cờ có những luật chơi, chiến thuật và không gian các nước đi khác nhau, như số nước đi hợp lệ trong cờ vua là với trung bình 30 đến 40 nước đi mỗi ván cờ (CLAUDE E. SHANNON - Programming a Computer for Playing Chess), số lượng vị trí nước đi hợp lệ trên bàn cờ trong cờ vây được ước tính là (Wikipedia). Nếu bạn thấy nó vẫn còn ít thì hãy nhớ rằng số lượng nguyên tử trong vũ trụ chỉ khoảng đến nguyên tử (Universe today). Nếu bạn vẫn chưa hình dung ra nó nhiều như thế nào 😑 thì hãy cứ xem rằng nó rất rất lớn đến mức các siêu máy tính mạnh nhất hiện nay cũng không thể tính toán hết số lượng các nước cờ có thể xảy ra để tìm ra một nước đi tối ưu trong thời gian một đời người.
Với số lượng nước đi lớn như vậy, các thuật toán trong các chương trình máy tính chơi cờ hiện nay mới chỉ xét được một số lượng rất nhỏ không gian các bước đi. Do đó các phần mềm này chưa thắng được các đại kiện tướng, những cờ thủ chuyên nghiệp, cho đến khi AlphaGo ra đời. Theo mô tả trên trang chủ, đây là phần mềm máy tính đầu tiên đánh bại một người chơi cờ vây chuyên nghiệp. Điều đặc biệt làm cho AlphaGo trở nên mạnh mẽ như vậy một phần là do sự phát triển của trí tuệ nhân tạo, và một nhánh trong đó là Học tăng cường (Reinforcement learning). AlphaGo đã tự chơi với chính nó và cải thiện dần dần các mạng neural được sử dụng để đánh giá bàn cờ, đưa ra chiến lược và quyết định các nước đi.
Trong bài viết này mình sẽ trình bày một số khái niệm cơ bản của học tăng cường. Bài viết này nằm trong series mà mình đã lên kế hoạch viết trong quá trình tìm hiểu về học tăng cường, nhằm mục đích tổng hợp lại những điều mình học và chia sẻ kiến thức. Do đó, mình sẽ không thể tránh khỏi những thiếu sót, rất mong nhận được sự góp ý của các bạn.
2. Tổng quan
2.1 Một số định nghĩa
Học tăng cường (Reinforcement learning - RL) là một nhánh của học máy (Machine learning - ML), nghiên cứu cách thức một tác nhân (Agent) trong một môi trường (Environment) đang ở một trạng thái (State) thực hiện một hành động (Action) để tối ưu hóa một phần thưởng (Reward) chung.
Một bài toán học tăng cường thường được mô hình dưới dạng một qui trình đưa ra quyết định Markov (cái này mình không biết dùng từ gì, tiếng anh của nó là Markov decision process - MDP). MDP vẫn được coi là tiêu chuẩn để mô hình hóa các bài toán học tăng cường. Ngoài ra các thuật toán của học tăng cường cũng liên quan nhiều đến kỹ thuật quy hoạch động.
Để đơn giản hơn, ta xét đến bài toán như sau: Ở tại thời điểm , tác nhân có trạng thái là (tập các trạng thái của môi trường), thực hiện hành động (tập các hành động của tác nhân) và có một xác suất chuyển đến trạng thái tiếp theo và nhận được một phần thưởng tức thời . là một phân phối biểu diễn trạng thái tiếp theo của tác nhân khi thực hiện hành động tại trạng thái . Mục tiêu của bài toán là tối đa phần thưởng (lợi tức) chung .
Xét một ví dụ đơn giản, game rắn săn mồi như hình bên dưới:
Tác nhân ở đây chính là con rắn. Trạng thái hiện tại bao gồm: tọa độ của đầu và các phần thân rắn, hướng di chuyển rắn, tọa độ của mồi. Các hành động có thể thực hiện tương ứng với sang trái, đi thẳng, sang phải. Với mỗi hành động đó, khi thực hiện sẽ đưa con rắn vào trạng thái mới và trả về các phần thưởng tức thời:
- Nếu sang trái, ăn được mồi, nhận được 1 điểm, .
- Nếu đi thẳng, cắn vào thân, trò chơi kết thúc, .
- Nếu sang phải, không ăn được mồi nhưng cũng không cắn vào đuôi, .
2.2 Hàm giá trị
Phần thưởng chung là số mồi ăn được, nhìn sơ qua 3 trường hợp trên, nếu chỉ xét đến phần thưởng tức thời lớn nhất là 1 và thực hiện sang trái, con rắn sẽ bị rơi vào trạng thái không thể thoái ra được và sẽ cắn vào đuôi và sống được trong ít nhất 1 bước đi và nhiều nhất là 4 bước đi, cách tốt nhất là đi sang phải và quay lại ăn sau. Như vậy xét đến phần thưởng tức thời là chưa đủ, ta cần xét đến các trạng thái tiếp theo và các phần thưởng có thể đạt được của các trạng thái đó nữa. Ta có hàm lợi tức:
Vì không thể biết trước số bước thực hiện trong tương lai, có thể có vô số bước, nên chuỗi không hội tụ (convergence) được, do đó một hệ số chiết khấu được thêm vào để đảm bảo tính hội tụ, và lúc này gọi là lợi tức chiết khấu:
Chúng ta đang xét đến tác nhân và trạng thái của nó, nên để dễ hình dung hơn, ta chuyển các mốc thời gian thành các trạng thái tại thời điểm tương ứng (giả sử tại thời điểm tác nhân đang ở trạng thái , các trạng thái tiếp theo là :
Với là hệ số chiết khấu và . Với là trường hợp chỉ xét đến phần thưởng tức thời, còn là xét đến lợi tức trong tất cả các trạng thái tiếp theo. Tuy nhiên việc tính toán không hề đơn giản, vì các bước đi tiếp theo và các trạng thái tương ứng là chưa biết trước, do đó một hàm giá trị trạng thái (V-funtion) được sử dụng để ước tính giá trị của một trạng thái hay ước lượng lợi tức mong đợi khi ở trạng thái đó. Nói cách khác hàm V láy trung bình lợi tức chiết khấu để đo mức độ tốt xấu của một trạng thái khi tác nhân thực hiện hành động tuân theo một chiến lược :
= nên có thể viết lại tuân theo phương trình Bellman:
Trong đó là xác suất đến được trạng thái khi thực hiện hành động theo chiến lược khi ở trạng thái . cũng có thể viết theo hành động-trạng thái như sau với xác suất thực hiện hành động tại trạng thái tuân theo chiến lược là và trong một số trường hợp chưa biết trước hành động sẽ dẫn đến trạng thái nào, xác xuất chuyển đến trạng thái khi thực hiện hành động tại trạng thái là :
Từ đó, định nghĩa một hàm giá trị trạng thái tối ưu:
Có thể hiểu đây là giá trị lớn nhất có thể đạt được của tổng các lợi tức chiết khấu. Theo (1) ta có:
Và một chiến lược để đạt được giá trị tại các trạng thái là tối ưu:
2.3 Hàm Q (Q-function)
Trong các công thức của hàm giá trị, ta thấy đều có một đại lượng được xác định bởi thương của số lần thực hiện hành động ở trạng thái chuyển sang trạng thái chia cho số lần thực hiện hành động ở trạng thái . Trong nhiều trường hợp việc xác định chuỗi trạng thái - hành động là không hề dễ dàng, nên hàm giá trị-hành động () thường được sử dụng. là phần thưởng mong đợi nhận được khi thực hiện một hành động .
Từ công thức (1), thực hiện một hành động cụ thể , định nghĩa:
Do , ta có:
Khi đó (1) và (2) trở thành:
Từ (4) và (5), gọi là phần thưởng nhận được khi thực hiện hành động ở trạng thái , ta có:
Khi tuân theo chiến lược tối ưu , trở thành :
và:
Do đó phương trình Bellman với Q là :
3.Một số thuật toán học tăng cường
3.1 Dựa trên MDP
Mục tiêu của bài toán học tăng cường là tìm được chuỗi hành động tối ưu để tối đa phần thưởng. Do đó chúng ta có thể giải bài toán bằng cách tìm được chiến lược hoặc tính được giá trị ,Q^ rồi chọn các hành động một cách "tham lam" dựa vào (3) và (8). Cụ thể có 3 thuật toán cơ bản giựa trên các hàm trên:
-
Dựa trên hàm giá trị:
-
Dựa trên chiến lược:
-
Kết hợp giá trị và chiến lược:
3.2 Q-Learning
Việc tìm ra chuỗi hành động tối ưu dựa vào hàm giá trị - hành động hay tìm ra giá trị cũng có thể thực hiện tượng tự như thuật toán 3. Tuy nhiên, nếu cập nhật theo (9), tại mỗi trạng thái, các hành động khi được thực hiện có phần thưởng khác nhau sẽ làm giá trị của thay đổi liên tục và khó hội tụ. Do đó, một hệ số học quen thuộc được đưa vào để cập nhật chậm hơn, dễ hội tụ hơn:
4. Tổng kết
Trong bài viết này mình đã giới thiệu với các bạn một số tổng quan về học tăng cường, nội dung bài viết là kết quả quá trình tìm hiểu của mình ở nhiều nguồn khánhieeufu nên không thể tránh khỏi có những sai sót, mong các bạn bỏ qua. Nếu thấy hay thì ngần ngại gì mà không cho mình 1 upvote để mình có động lực viết tiếp 😄