[RL1] Markov Decision process – Introduction
[RL2a] Markov Decision Process – Discounted Reward
[RL2b] Markov Decision Process – Bellman equation
[RL2c] Markov Decision Process – Solving Bellman equation
[RL2d] Bellman Equations revisited
[RL3a] Reinforcement Learning context
[RL3b] Temporal Difference Learning – intuition
Như đã nói trong bài trước, ta sẽ tập trung vào Model-free RL, trong đó ta muốn học trực tiếp giá trị của các trạng thái từ tập huấn luyện
.
Cụ thể, tập huấn luyện sẽ gồm nhiều episodes, mỗi episode là một chuỗi mà agent thực hiện cho đến khi kết thúc cuộc đời của nó. Chẳng hạn nếu là chơi cờ thì tập huấn luyện sẽ gồm nhiều trận đấu, mỗi trận là một chuỗi các nước đi. Từ tập huấn luyện này, ta tìm cách ước lượng
.
Tại sao lại ước lượng , khi trong bài trước ta nói rằng Model-free RL tìm cách ước lượng giá trị
? Nhắc lại rằng ta có thể tính
từ
,
và
, như đã nói trong bài này, mà
và
có thể ước lượng một cách đơn giản từ tập huấn luyện (chẳng hạn dùng maximum likelihood), nên một khi có
ta hoàn toàn có thể tính
nếu muốn. Tuy nhiên mục tiêu cuối cùng của RL vẫn là tìm ra policy tối ưu, chứ không phải tìm
hay
, mà từ
vẫn có thể dùng
để tìm policy tối ưu, thành ra
hay
cũng không còn quan trọng nữa.
Mọi chuyện sẽ dễ dàng hơn khi ta xem ví dụ sau. Cho một MDP với mô hình chuyển trạng thái T và hàm reward R như sau:
Mô hình này có 6 trạng thái. Khi chuyển từ sang
thì reward nhận được là +1, nghĩa là
. Tương tự như vậy cho các trạng thái khác.
là trạng thái cuối cùng, trò chơi kết thúc khi agent đi đến trạng thái này.
Đặc biệt từ trạng thái , agent có thể tới
với xác suất 0.9, và tới
với xác suất 0.1, nghĩa là
và
. Trong cả hai trường hợp, reward đều là 0.
Giờ ta thả 5 agent vào mô hình này, quan sát được các chuỗi trạng thái như sau:
Giả sử rằng ta không biết mô hình MDP như trong hình, mà chỉ biết 5 episodes như trên. Bài toán RL là ước lượng mô hình MDP từ các episodes (training set) này.
Ở đây có 2 chuyện ta có thể làm:
- Ước lượng mô hình MDP (tức là ước lượng
và
)
- Ước lượng
Ta sẽ xem lần lượt 2 chuyện này.
1. Ước lượng mô hình MDP
Cách dễ nhất để làm chuyện này là dùng maximum likelihood. Chẳng hạn nhìn vào 5 episodes trên ta thấy từ lúc nào cũng đi tới
với reward bằng +1, nên theo maximum likelihood thì
và
.
Một trường hợp thú vị hơn là từ ta có 3 lần đi đến
, và 2 lần đi đến
. Vậy suy ra
và
.
Có bạn sẽ bảo: ủa vậy sai rồi, vì theo mô hình như trong sơ đồ trên, thật ra .
Đương nhiên là sai, vì ta ước lượng tham số chỉ dựa vào 5 episodes. Nếu có nhiều dữ liệu hơn, có thể ước lượng của ta sẽ gần hơn với mô hình MDP đã cho.
Như vậy ta đã thấy việc ước lượng T và R từ chuỗi là rất đơn giản. Nhưng như ta đã nói, ta sẽ tập trung vào model-free RL, nên phần này xem như là làm chơi cho biết. Ta tập trung chủ yếu vào phần sau.
2. Ước lượng ![V(s) V(s)]()
Nhắc lại rằng theo định nghĩa . (1)
Khi áp dụng vào trong mỗi episode trong training set, vì ta quan sát được các trạng thái cho đến cuối cùng, nên không còn hàm nữa. Chẳng hạn với chuỗi đầu tiên
thì ta có:
(giả sử vậy đi)
Nói chung cứ như vậy ta có thể tính được cho mỗi episode, tuỳ vào giá trị của
.
Tuy nhiên để ý rằng trong tính toán ở trên ta đã “cheat” bằng cách dùng kiến thức ta đã biết từ mô hình MDP, rằng . Trong thực tế khi học, ta chưa biết giá trị của T, thành ra một cách “ngây thơ” nhất, ta sẽ giả sử
cho mọi s và s’. Như vậy các phép tính ở trên sẽ thành:
Trở lại với tập huấn luyện:
Để đơn giản hơn nữa, ta sẽ giả sử luôn là . Như vậy có thể thấy trong episode số 1, ta có
, trong episode số 2, ta có
, trong episode số 3, ta có
v.v… Giả sử ta mới chỉ quan sát được 3 episode đầu tiên, thì rõ ràng với maximum likelihood, ta sẽ có
.
Với episode số 4, ta có . Ta dễ dàng ước lượng giá trị mới của
là
Có bạn lại bảo: ủa vậy sai rồi, với , dùng công thức huyền thoại
, ta sẽ tính được
(lưu ý
).
Đương nhiên là sai, vì ta mới chỉ quan sát được 4 episodes.
Một cách tổng quát hơn, gọi là giá trị của
sau khi quan sát episode thứ T,
là reward mà agent nhận được cho trạng thái
trong episode T. Như trong ví dụ trên, khi
thì
,
và
.
Dùng toán phổ thông, ta có thể tính từ
như sau:
(2)
với gọi là learning rate, và rõ ràng là
càng nhỏ khi
càng lớn (càng học nhiều episode thì
càng nhỏ).
Công thức (2) là tinh thần chung của Temporal Difference Learning. Rõ ràng ta cập nhật với mỗi episode, dựa vào “độ lỗi” tính bởi
, được weight bằng learning rate. Độ lỗi này thực chất là sự khác biệt giữa reward trong episode mới và ước lượng hiện tại của
, do đó đây được gọi là Temporal Difference Learning.
Ta sẽ phát biểu Temporal Difference Learning một cách hình thức trong bài sau.
