時序差分學習(Temporal-Difference Learning)結合了動態規劃和蒙特卡洛方法,是強化學習的核心思想。
蒙特卡洛的方法是模擬(或者經歷)一段序列,在序列結束後,根據序列上各個狀態的價值,來估計狀態價值。
時序差分學習是模擬(或者經歷)一段序列,每行動一步(或者幾步),根據新狀態的價值,然後估計執行前的狀態價值。
可以認爲蒙特卡洛的方法是最大步數的時序差分學習。
DP,MC和TD的區別
DP:已知轉移概率
MC:用多個episode的
TD:
本章介紹的是時序差分學習的單步學習方法。多步學習方法在下一章介紹。主要方法包括:
- 策略狀態價值
vπ 的時序差分學習方法(單步\多步) - 策略行動價值
qπ 的on-policy時序差分學習方法: Sarsa(單步\多步) - 策略行動價值
qπ 的off-policy時序差分學習方法: Q-learning(單步) - Double Q-learning(單步)
- 策略行動價值
qπ 的off-policy時序差分學習方法(帶importance sampling): Sarsa(多步) - 策略行動價值
qπ 的off-policy時序差分學習方法(不帶importance sampling): Tree Backup Algorithm(多步) - 策略行動價值
qπ 的off-policy時序差分學習方法:Q(σ) (多步)
策略狀態價值vπ 的時序差分學習方法(單步\多步)
單步時序差分學習方法
該算法就通過當前狀態的估計與未來估計之間差值來更新狀態價值函數的。即
相比DP,TD不需要知道
多步時序差分學習方法
單步的報酬爲:
其中
則更新公式爲:
n-step TD就是利用值函數
策略行動價值qπ 的on-policy(即同策略)時序差分學習方法:
Sarsa(單步\多步)
單步:
Sarsa在選取動作和更新動作狀態值函數時都時利用加探索的形式(
多步:
類似n-step TD,報酬的形式只是從狀態值函數改爲了動作狀態值函數:
則更新形式爲:
整體框架爲:
策略行動價值qπ 的off-policy時序差分學習方法:
Q-learning(單步)
Q-learning 算法可進行off-policy學習。
Q-learning在更新動作狀態值函數時只有利用,沒有探索,更適用於完全貪婪的動作挑選。
Q-learning使用了max,會引起一個最大化偏差(Maximization Bias)問題。可以用Double Q-Learning來解決。
例如圖中從A出發,向右可以直接到達終點,而向B運動,報酬均值爲-0.1,則有可能存在大於0的報酬,這樣會使得算法採取向B運動的結果,期望獲得大於0的報酬,而這不是最佳策略。
Double Q-learning
挑選動作的策略,既可來自於Q1和Q2的組合,例如求和或者均值,又可只來自於Q1或Q2。
策略行動價值qπ 的off-policy時序差分學習方法(帶importance
sampling): Sarsa(多步)
考慮到重要樣本,把
策略行動價值qπ 的off-policy時序差分學習方法(不帶importance
sampling): Tree Backup Algorithm(多步)
Tree Backup Algorithm的思想是每步都求行動價值的期望值.
更新公式與n-step Sarsa相同:
則整體程序框架爲:
策略行動價值qπ 的off-policy時序差分學習方法: Q(σ) (多步)
當σ=1時,使用了重要樣本的Sarsa算法。
當σ=0時,使用了Tree Backup的行動期望值算法。