reinforcement learning
TD-learning (Temporal-Difference Learning) 是強化學習中很重要的方法類
旗下延伸包含了許多不同的演算法,像 Q-learning、 Sarsa 等。
此方法結合了 [蒙地卡羅方法] 和 [動態規劃] 兩種想法誕生,
因為動態規劃通常會需要一個規律模型,但在強化學習中有太多不確定情況,無法直接取得模型
所以使用了蒙地卡羅方法來做不停地嘗試尋找規律來得出模型。
動態規劃可以將一個問題分解成許多子問題,並找出其解決規律模型
ex : 解階層問題 可以寫成
如果將它進行動態規劃可以發現
最後可以得到
所以要解決階層問題就不用重算一遍,把之前的 值拿出來用就好了
蒙地卡羅方法在這邊也可以理解為[試誤學習]
也就是大量的嘗試,在錯誤中學習規律
TD learning 是由以下元素組成 :
TD learning 又分成兩類型
Sarsa 是 on-Policy 的 TD learning 經典演算法,使用當前回報和下一時刻的估計來計算目標
動作價值函數 Q 反映了 [ 動作,狀態對 ] 的價值,TD target 就是要估計下一時刻的 Q
並讓現在的 Q 近似預測的 Q,找出預測的 Q 叫做 Target
TD target :
解釋 : TD target 就是之後要學習近似的目標
數學推導 :
因為要計算未來 Q ,先整理一下 (Return)
計算動作價值函數
後方的 雖然做過期望了,但是 是對 執行,
剩下的 還是未知所以還可放進 中求期望
但要直接求出此期望太過困難(能直接求就不用近似啦!),所以使用蒙地卡羅近似求期望
TD error 其實只是 Q 與 TD target 的差距
TD Error :
這個步驟會更新 ,用當前 減去 error 做更動
通常演算法會直接用此式表示
整個 Sarsa 可以下圖結構表示 (利用未來預測 Q 來影響更新當前 Q)
當 Q 更新越來越大,回饋也就提升。
Q-learning 與 Sarsa 的原理非常相似,只差在未來選擇動作 時
Sarsa 只有一種選擇策略並做出一動作,
而 Q learning 會選出多個動作,並挑出其中 Q 值最大的動作
TD target :
數學推導 :
前面步驟都與 Sarsa 相同,得到此式
因為要求多個 action 下的 max 值
動作 會取得最大回饋,可以寫成以下公式
接著代換 公式
使用蒙地卡羅近似求期望
TD Error :
下圖為 Q-learning 結構,可以看到每使用策略()找出多個 action 後
再用貪婪策略選出有最大 Q 的動作,利用此期望回饋影響當前 Q
Reference