李宏毅的強化學習視頻用於梳理翻閱(3)值

估計價值的方法MC與TD

MC(Monte-Carlo)的方法,在Sutton的書中有比較權威並詳細的說明。地址:https://rl.qiwihui.com/zh_CN/latest/index.html

下圖是首次訪問型的MC方法,估計狀態的價值V。在初始化後,先根據策略獲取一個完整的序列,然後從底向上,逆向計算得到狀態的價值。

當前的狀態價值,是與當前和可能產生的以後的完整序列價值有關的,所以有逆向計算的過程。與當前狀態距離越遠的地方越不容易到達,所以添加折扣因子,將其價值的累加進行折扣。多次進行,求得平均。

估計其他如策略估計,也是類似的過程。每次訪問型MC方法,沒有Unless部分。Unless部分的意思是,在本次生成的該序列中,每個狀態都應該只出現一次。

 

時序差分的方法TD(Temporal-difference),仍然以Sutton的說明,清楚一點。

初始化後,在每一步,都進行疊加,其中公式裏的中括號部分,表示了TD誤差,優化的目標,就是使得V(s)最終等於R+yV(s')。

 

TD和MC的關係是,TD是MC的一種特殊的修改。

在每次訪問型的MC中,其優化目標爲G。G是馬爾科夫鏈中,狀態s下,所有後續狀態的真實回報r的折扣累加和。

 

 在TD算法中,該G變爲了馬爾科夫鏈中,狀態s下,r與後續一步的價值折扣累加和。該算法認爲是TD(0)。當考慮後續的lambda步時,認爲有TD(lanbda),作爲優化目標。

 

相對於MC算法,TD算法對未來的數據上,產生更小的誤差。MC算法是根據定義得到的,更準確。(Sutton125頁)。

如下圖中,多次執行後,0爲MC計算得到的狀態a的價值,3/4爲TD計算得到的價值。

因爲MC算法考慮的是本次序列中的效果(狀態b的真實影響),即G的值,所以多次執行以後,平均得到狀態a的價值的來源是,第一行的序列的真實回報

而TD算法考慮的是價值,在第一行的序列中,狀態a的價值計算,考慮了所有序列中的狀態b的效果,即狀態b的價值。而不是真實回報。

 

不介紹的V與Q

我認爲V與Q是兩種不同的度量方式,前者代表的是狀態的價值。後者是,該狀態下選擇行爲,a的價值。

先產生了V狀態價值,根據狀態價值,得到關於a的價值,用以選擇行爲a,不是直接相等的關係。

所以,這部分不說明。

 

常見的DQN改進算法

Double DQN,未考證,但是大致是,使用Q',更新Q,在一段時間後,Q'=Q。降低過估計。

 

 Dueling DQN,未考證,大致是,將Q拆分爲V和A。

 

在實際使用中,讓A的總和爲0,當更新V後,則Q表中的所有值,都發生變化。

 

 

Prioritized Replay DQN,優先使用TD-error大的記憶片段。

而 Multi-step,Noisy Net,Distribution Q,不再說了,也不清楚。

最終將多種算法結合,得到Rainbow算法。

 

Double DQN的作用是降低過估計,而其他算法中有降低過估計的作用了(具體仍待查看,)

 

 

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