增強學習Reinforcement Learning經典算法梳理3:TD方法

1 前言

在上一篇blog中,我們分析了蒙特卡洛方法,這個方法的一個特點就是需要運行完整個episode從而獲得準確的result。但是往往很多場景下要運行完整個episode是很費時間的,因此,能不能還是沿着bellman方程的路子,估計一下result呢?並且,注意這裏,依然model free。那麼什麼方法可以做到呢?就是TD(temporal-difference時間差分)方法。

有個名詞注意一下:boostraping。所謂boostraping就是有沒有通過估計的方法來引導計算。那麼蒙特卡洛不使用boostraping,而TD使用boostraping。

接下來具體分析一下TD方法

2 TD與MC的不同

這裏寫圖片描述

MC使用準確的return來更新value,而TD則使用Bellman方程中對value的估計方法來估計value,然後將估計值作爲value的目標值進行更新。

也因此,估計的目標值的設定將衍生出各種TD下的算法。

那麼TD方法的優勢有什麼呢?

  • 每一步都可以更新,這是顯然,也就是online learning,學習快
  • 可以面對沒有結果的場景,應用範圍廣

不足之處也是顯而易見的,就是因爲TD target是估計值,估計是有誤差的,這就會導致更新得到value是有偏差的。很難做到無偏估計。但是以此同時,TD target是每一個step進行估計的,僅最近的動作對其有影響,而MC的result則受到整個時間片中動作的影響,因此TD target的方差variance會比較低,也就是波動性小。

還是放一下David Silver的總結吧:
這裏寫圖片描述

那麼David Silver的ppt中有三張圖,很清楚的對比了MC,TD以及DP的不同:
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

從上面可以很清楚的看到三者的不同。DP就是理想化的情況,遍歷所有。MC現實一點,TD最現實,但是TD也最不準確。但是沒關係,反覆迭代之下,還是可以收斂的。

整個增強學習算法也都在上面的範疇裏:
這裏寫圖片描述

3 TD算法

這裏寫圖片描述

這只是TD(0)的估計方式,顯然可以拓展到n-step。就是講TD-target再根據bellman方程展開。

再下來的思想,就是可以把TD(i)和TD(j)合在一起求個平均吧。

再下來就是把能算的TD(i)都算一遍,每一個給個係數,總和爲1,這就是TD(λ)

這裏寫圖片描述

4 SARSA算法

SARSA算法的思想很簡單,就是增加一個A,下一步的A,然後據此來估計Q(s,a)
這裏寫圖片描述

之所以算法稱爲SARSA,就是指一次更新需要用到這5個量。

5 Q-Learning算法

著名的Q-Learning。
這裏寫圖片描述
這裏直接使用最大的Q來更新。

爲什麼說SARSA是on-policy而Q-Learning是off-policy呢?
因爲SARSA只是對policy進行估計,而Q-Learning的Q則是通往最優。

6 Double Q-Learning

Q-Learning可能會出現對Q值過度估計的問題,Double Q-Learning可以解決這個問題:
這裏寫圖片描述

使用兩個Q交替更新。

7 多種方法比較

這裏寫圖片描述

這裏寫圖片描述

由上面兩圖可以理解TD,Sarsa,和Q-Learning的算法來源,本質上都是基於Bellman方程。

可以這麼理解:Bellman方程是一種理想條件的解法,而這些方法則是放棄理想準確度而形成的可實現方法。

小結

本文梳理了TD相關的幾個算法。TD算法特別是TD(λ) 方法引出了eligibility trace(翻譯做資格跡 不知可否),這部分內容留待之後分析。

聲明

本文的圖片截取自:
1 Reinforcement Learning: An Introduction
2 Reinforcement Learning Course by David Silver

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章