Monte Carlo與TD算法


RL 博客:http://blog.sciencenet.cn/home.php?mod=space&uid=3189881&do=blog&view=me&from=space&srchtxt=RL&page=1

轉自:http://blog.sciencenet.cn/home.php?mod=space&uid=3189881&do=blog&id=1128648,感謝分享

Monte carlo 和TD 都是model-free 的估值方法, TD 用於online RL 場景

強化學習中的Model-free問題主要的解決思路來源於統計方法。所謂統計方法又可分為Monte Carlo與TD算法。當學習任務可轉化為episode task形式時,Monte Carlo與TD算法在實現上的不同主要體現在如何更新狀態動作值函數。n-step TD算法則是由兩種不同的值函數更新形式相結合所產生的,所以想要理解n-step TD算法,對Monte Carlo與TD進行透徹地的解析是十分有必要的。

 

Backup Diagram的區別

Monte Carlo方法:每個執行一個episode task,更新episode開始時的狀態值函數。假設一個episode開始時的狀態為StartStart,結束時的狀態為EndEnd。如果將一個episode經過的狀態寫為狀態集合StateState,則每個episode可更新的狀態值函數集合可以寫為V(State)V(State),用於更新狀態值函數的Return=R(End)Return=R(End)。所以對Monte Carlo來說,一個episode中狀態集合的值函數更新更像是對多個狀態獨立地更新,在強化學習中,可以稱其為non-bootstrap,這也應證了Monte Carlo方法最為重要的性質:每一個狀態的估計都是獨立的,不依賴於其它狀態的! 所以為了盡可能保證每個狀態都可以被更新到,才有了Exploring Start策略(什么是Exploring Start?可以閱讀【RL系列】從蒙特卡羅方法正式引入強化學習)下面將通過Backup Diagram將MC方法的更新形式更加清晰的表現出來:

Monte Carlo

 

TD方法:在任意一個episode task執行過程中所遇到的每個狀態都會被更新,且每個狀態的更新都依賴於下一個狀態的值函數與到達下一個狀態所獲得的獎勵。因為是邊執行episode邊更新值函數,這種方法又被稱為on-line learning。實際上,類似MC方法將執行好的episode的軌跡(trajectory)保存在下來,再依照TD方法更新也可以達到與on-line learning相同的效果,但很明顯,這個方法是off-line learning,也就是說線下與線上學習並不是區分Monte Carlo與TD算法的依據。TD算法的值函數更新可用下圖表示出來:

TD

由上述示意圖可以發現,TD方法的最后一步,也就是對狀態SnSn的值函數更新與Monte Carlo方法並無任何區別。對狀態SnSn的更新依賴於R(End)R(End)與V(End)V(End),但由於終止狀態實際上不參與值函數更新過程,所以一般情況下都設V(End)=0V(End)=0,這樣一來,這最后一步就與Monte Carlo方法一致了。

 

定步長與不定步長,TD方法

定步長與不定步長的更新方法在Bandit問題里就曾討論過,定步長實際上為Recency-Weighted Average,不定步長則是Incremental形式。通常來說,Monte Carlo Prediction采用的是不定步長的值函數更新,TD方法則采用的是定步長形式,但也不是固定的,可以互換使用。理論上來說,定步長與不定步長的通用形式可以寫為:

 

Vn+1(S)=Vn(S)+α(XVn(S))Vn+1(S)=Vn(S)+α(X−Vn(S))

 

在這個式子中,αα通常小於1,若是常數不變則為定步長,若αα是變量則為不定步長。不論定步長與不定步長,該式皆可表示為對隨機變量XX的均值估計,且該估計為無偏估計,也就是說當迭代次數無窮大時,這個估計的均值與期望E[X]E[X]是相同的。但是,αα越大估計值的方差就越大(特別注意,這是發生在當迭代次數較大進入收斂狀態時),同時也存在着,αα越小收斂速度越慢的情況,所以對於αα的處理總是需要平衡收斂速度與均值方差。

Incremental Implementation作為不定步長的一種形式,可以說是比較好的平衡了收斂速度與均值方差之間的矛盾。對於Incremental形式來說,開始需要收斂速度時,αα很大,進入收斂狀態后需要精確度時,αα又變的很小。但有時為了突出優化收斂速度,就必須要犧牲一定的精確度,最簡單的方法就是提高αα的值,但需要估計的隨機變量XX的方差大小給這種方法帶來了不確定性。若是XX的方差D[X]D[X]較大,則估計均值的方差D[V(S)]D[V(S)]會對αα值的增大非常敏感,這樣一來不但收斂速度未得到很大改善反而精確度下降得厲害。(舉例:均勻分布與0-1分布)

為了解決這個問題,我們可以人為的構造出與原有需要估計的隨機變量XX期望相同的新的隨機變量YY,且希望隨機變量YY的方差可以有所減小。在MC方法中,隨機變量XX就是終態的Reward(除終態外各狀態Reward為0),而人為構造出的隨機變量YY在TD中被描述為:

 

Y=Rew(S)+V(S)Y=Rew(S′)+V(S′)

 

為什么MC方法中的隨機變量XX與TD方法中的隨機變量YY的均值估計是等價的?我們使用一個簡單例子來稍作計算(這里只考慮除終態Reward外其它Reward值為0的這種獎勵設計,這樣比較簡單)。下圖為一個以狀態S1S1為起點的馬爾可夫決策模型,每一條之路可以表示為一個episode。

例子一:

假設共執行了N個episode,其中到達終態的episode個數分別為N1~N7。估計狀態S1S1的均值,先用Monte Carlo方法可以得出V(S1)V(S1)為:

V(S1)=6iNiRi6iNiV(S1)=∑i6NiRi∑i6Ni

 

如果使用TD方法,對狀態S1S1的估計可以寫為如下形式。假設episode經過狀態S2S2的次數為K1K1,經過狀態S3S3的次數為K2K2,其中K1=N1+N2+N3K1=N1+N2+N3與K2=N4+N5+N6K2=N4+N5+N6始終成立。

 

V(S1)=K1V(S2)+K2V(S3)K1+K2=6iNiRi6iNiV(S1)=K1V(S2)+K2V(S3)K1+K2=∑i6NiRi∑i6Ni

 

至於觀察方差的變化,我們首先將通用的值函數更新方程做一個簡單的化簡:

 

Vn+1(S)=Vn(S)+α(XVn(S))=(1α)Vn(S)+αXVn+1(S)=Vn(S)+α(X−Vn(S))=(1−α)Vn(S)+αX

 

值函數V(S)V(S)的不確定性全部來源於后一項αXαX。首先看αα對估計值方差的影響,有公式Var(cX+b)=c2Var(X)Var(cX+b)=c2Var(X)所以當αα擴大cc倍時,方差會變為原先的c2c2倍。讓我們再舉個例子,看一看隨機變量XX本身對估計值方差的影響。

例子二:

如上圖所示,終態只有End1與End2,讓我們假設episode到達End1所獲得的Reward為1,到達End2所獲得的Reward為0。如按照MC方法更新,則值函數通用更新方程中的隨機變量XX即為終態時所獲得的Reward,該隨機變量XX定然服從伯努利分布(0-1分布)。假設每一類episode發生的概率皆為1/6(共有6條支路,6類episode),則隨機變量XX的概率分布可以寫為:

 

P(X=1)=0.5P(X=0)=0.5P(X=1)=0.5P(X=0)=0.5

 

依據方差計算公式,隨機變量XX的方差為:

 

Var(X)=E[X2](E[X])2=0.25Var(X)=E[X2]−(E[X])2=0.25

 

如果我們按照TD方法更新,則可先計算出V(S2)=13V(S2)=13,V(S3)=23V(S3)=23,則TD方法所構造的隨機變量YY的概率分布可以寫為如下形式,並依據方差公式計算Var(Y)Var(Y):

 

P(Y=13)=0.5P(Y=23)=0.5Var(Y)=E[Y2](E[Y])2=0.0278P(Y=13)=0.5P(Y=23)=0.5Var(Y)=E[Y2]−(E[Y])2=0.0278

 

TD方法的估計均值誤差是MC方法的1/10,這也就是TD方法通常可以在保持與MC方法相同的估計均值誤差的前提下會以更快的速度收斂的原因(Random Walk問題就很好的應證了這一點,可以參考Sutton書的Figure 6.2與Figure 6.3)。但實際上這也並非是絕對的,MC方法的表現非常仰賴Reward設計與實際的環境,當終態數量很多時,Reward值之間比較接近時,MC方法的估計均值誤差也不一定差。

 

n-step TD

對於上述的例子二,可將其episode前進的過程分為三個階段或三層(如下圖所示),所構造的待估計隨機變量Y={V(S2),V(S3)}Y={V(S2),V(S3)},可以視為估計第一層而依賴於第二層的估計,這就是1-step TD。若構造的待估計隨機變量為第三層估計的值函數,即Y={V(S4),V(S5),V(S6),V(S7)}Y={V(S4),V(S5),V(S6),V(S7)},也就是對第一層的估計依賴於第三層,而跳過了第二層(第二層的估計直接依賴於終態的Reward),這就是2-step TD。可以證明2-step TD的估計均值與1-step TD和MC方法完全一致,但均值估計誤差卻各不相同。

下面給出2-step TD的Backup Diagram:

2-Step TD

可以寫出n-step TD的構造隨機變量YY的通用表達形式:

 

Y=Rew(Sn)+V(Sn)Y=Rew(Sn)+V(Sn)

 

通常來說,在進入收斂狀態后,n-step TD的均值估計誤差並不會一定優於1-step TD,但卻可以很好的控制收斂的速度與RMSE之間的平衡,並且n-step TD的優勢在於可以很好與eligibility traces相關聯,這里就不再深入討論,只探討n-step TD本身。

 



http://blog.sciencenet.cn/blog-3189881-1128648.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM