1. 程式人生 > >TD Learning,SARSA,Q Learning

TD Learning,SARSA,Q Learning

最近在讀一篇增強學習的綜述
DEEP REINFORCEMENT LEARNING : AN OVERVIEW
發現裡邊介紹SARSA時,虛擬碼是錯誤的。
1.TD Learning
這裡寫圖片描述
2.SARSA
這裡寫圖片描述
錯誤就在於,sarsa演算法的下一個動作在這次更新時就已經確定了。所以需要在step迭代之前對action進行初始化。
3.Q Learning
這裡寫圖片描述
TD Learning包含Q Learning和sarsa。
我們說Q Learning是off-policy的,而sarsa是on-policy的。為什麼這麼說呢?
是因為更新Q時,sarsa是確定好下一個狀態和action才進行更新的。但是Q Learning更新時,是選取下一個state的最優動作進行更新,而下一個state實際上採取的action是不能在這次更新時確定的。Q Learning好比是觀察你上一次的情況,這次我在做決定。但是sarsa這次更新之前就已經確定好了下一個state和action。這也是Q Learning和sarsa的區別。
這三種方法在特定條件下收斂。根據最優值函式,我們能得到最優策略。