DQN笔记:MC TD
1 前言
????????傳統(tǒng)的強化學(xué)習(xí)算法會使用表格的形式存儲狀態(tài)值函數(shù)?V(s)或狀態(tài)動作值函數(shù)?Q(s,a),但是這樣的方法存在很大的局限性。【強化學(xué)習(xí)筆記:Q-learning_UQI-LIUWJ的博客-CSDN博客】
????????現(xiàn)實中的強化學(xué)習(xí)任務(wù)所面臨的狀態(tài)空間往往是連續(xù)的,存在無窮多個狀態(tài),在這種情況下,就不能再使用表格對值函數(shù)進行存儲。
????????在 Q-learning 中,我們使用表格來存儲每個狀態(tài) s 下采取動作 a 獲得的獎勵,即狀態(tài)-動作值函數(shù)?Q(s,a)。然而,這種方法在狀態(tài)量巨大甚至是連續(xù)的任務(wù)中,會遇到維度災(zāi)難問題,往往是不可行的。因此,DQN 采用了價值函數(shù)近似的表示方法。
????????
????????為了在連續(xù)的狀態(tài)和動作空間中計算值函數(shù),我們可以用一個函數(shù)來表示近似計算,稱為價值函數(shù)近似(Value Function Approximation)。
????????????????????????
其中
- 分別是狀態(tài)?s?和動作?a?的向量表示,
- 函數(shù)通常是一個參數(shù)為 ??的函數(shù),比如神經(jīng)網(wǎng)絡(luò),輸出為一個實數(shù),稱為Q 網(wǎng)絡(luò)(Q-network)。
- 模型中,也可以不使用Q(s,a),使用V(s)也可以
2? 衡量價值函數(shù)
????????怎么衡量這個狀態(tài)價值函數(shù)呢?有兩種不同的做法:MC-based 的方法和 TD-based 的方法。
? ? ? ? 整體上和Q-learning 的類似
強化學(xué)習(xí)筆記:Q-learning_UQI-LIUWJ的博客-CSDN博客
強化學(xué)習(xí)筆記:Q-learning :temporal difference 方法_UQI-LIUWJ的博客-CSDN博客
2.1 MC
????????Monte-Carlo(MC)-based的方法就是去跟環(huán)境做互動,估計對于某一個策略,看到各個狀態(tài)的時候的累計獎勵。
????????但是實際上,我們不可能把所有的狀態(tài)通通都掃過,但是沒有關(guān)系。?是一個網(wǎng)絡(luò)。對一個網(wǎng)絡(luò)來說,就算輸入狀態(tài)是從來都沒有看過的,它也可以想辦法估測一個值。
????????
?????????怎么訓(xùn)練這個網(wǎng)絡(luò)呢?因為如果在狀態(tài)sa?,接下來的累積獎勵就是Ga?(采樣中episode出現(xiàn)sa的取平均)。也就是說,對這個價值函數(shù)來說,如果輸入是狀態(tài) sa?,正確的輸出應(yīng)該是Ga?。如果輸入狀態(tài) sb?,正確的輸出應(yīng)該是值Gb?。
????????所以在訓(xùn)練的時候, 它就是一個?回歸問題。網(wǎng)絡(luò)的輸出就是一個值,你希望在輸入sa??的時候,輸出的值跟 Ga??越近越好,輸入sb??的時候,輸出的值跟Gb??越近越好。接下來把網(wǎng)絡(luò)訓(xùn)練下去,就結(jié)束了。這是 MC-based 的方法。
2.2? TD(temporal difference 時序差分)
? ? ? ? ??在 MC-based 的方法中,每次我們都要算累積獎勵,也就是從某一個狀態(tài)sa??一直玩到游戲結(jié)束的時候,得到的所有獎勵的總和。
????????所以要使用 MC-based 的方法,你必須至少把這個游戲玩到結(jié)束。但有些游戲非常長,你要玩到游戲結(jié)束才能夠更新網(wǎng)絡(luò),花的時間太長了,因此我們會采用 TD-based 的方法。
????????TD-based 的方法不需要把游戲玩到底,只要在游戲的某一個情況,某一個狀態(tài)的時候,采取動作得到獎勵,跳到狀態(tài),就可以使用 TD 的方法。
? ? ? ? TD基于以下這個式子:
????????
?????????假設(shè)我們現(xiàn)在用的是某一個策略 π,在狀態(tài),它會采取動作,給我們獎勵,接下來進入。狀態(tài)的值跟狀態(tài)的值,它們的中間差了一項。你把?得到的值加上得到的獎勵就會等于得到的值。
????????有了這個式子以后,你在訓(xùn)練的時候,你并不是直接去估測 V,而是希望你得到的結(jié)果 V 可以滿足這個式子。
?
?????????也就是說我們會是這樣訓(xùn)練的,我們把丟到網(wǎng)絡(luò)里面,因為丟到網(wǎng)絡(luò)里面會得到,把丟到你的值網(wǎng)絡(luò)里面會得到,這個式子告訴我們,?減?的值應(yīng)該是?。
????????然后希望它們兩個相減的 loss 跟越接近,以這個作為目標函數(shù)訓(xùn)練下去,更新 V 的參數(shù),你就可以把 V 函數(shù)學(xué)習(xí)出來。
3 MC和TD的區(qū)別
?????????MC 最大的問題就是方差很大。因為我們在玩游戲的時候,它本身是有隨機性的。所以你可以把 Ga??看成一個隨機變量。因為你每次同樣走到sa??的時候,最后你得到的路徑episode是不一樣的,因而得到的Ga也是不一樣的。(每一次得到?Ga??的差別其實會很大)
????????如果用 TD 的話,你是要去最小化這樣的一個式子:
?
?
?????????在這中間會有隨機性的是 r。因為計算你在?st??采取同一個動作,你得到的獎勵也不一定是一樣的,所以 r 是一個隨機變量。[,同一個狀態(tài)同一個action,有不同概率進圖不同的后續(xù)狀態(tài)]
????????但這個隨機變量的方差會比 Ga??還要小,因為 Ga??是很多 r 合起來,這邊只是某一個 r 而已。????????
????????但是這邊你會遇到的一個問題是你這個 V 不一定估得準。假設(shè)你的這個 V 估得是不準的,那你使用這個式子學(xué)習(xí)出來的結(jié)果,其實也會是不準的。
????????所以 MC 跟 TD 各有優(yōu)劣。今天 TD 的方法是比較常見的,MC 的方法是比較少用的。
?
?
?4 舉例說明MC和TD的區(qū)別
?
?????????有一個策略π?跟環(huán)境互動了8 次,得到了8 次結(jié)果。
????????我們先計算 sb??的值。?狀態(tài) sb??在 8 場游戲里面都有經(jīng)歷過,其中有 6 場得到獎勵 1,有 2 場得到獎勵 0。所以如果你是要算期望值的話,就算看到狀態(tài)sb??以后得到的獎勵,一直到游戲結(jié)束的時候得到的累積獎勵期望值是 3/4,計算過程如下式所示:
????????
? ? ? ? 那Sa的獎勵怎么計算呢??
????????假如用 MC 的話,你會發(fā)現(xiàn)這個sa??就出現(xiàn)一次,看到sa??這個狀態(tài),接下來累積獎勵就是 0,所以 sa??期望獎勵就是 0。
????????但 TD 在計算的時候,它要更新下面這個式子:
????????
?????????因為我們在狀態(tài) a??得到獎勵 r=0 以后,跳到狀態(tài)sb?。
????????所以狀態(tài) sa 的獎勵會等于狀態(tài)sb??的獎勵加上在狀態(tài) sa??跳到狀態(tài) sb??的時候可能得到的獎勵 r。
????????而這個得到的獎勵 r 的值是 0,sb??期望獎勵是 3/4,那 sa??的獎勵應(yīng)該是 3/4。
?????????用 MC 跟 TD 估出來的結(jié)果很有可能是不一樣的。也就是說,就算觀察到一樣的訓(xùn)練數(shù)據(jù),它最后估出來的結(jié)果也不一定是一樣的。為什么會這樣呢?換句話說,哪一個結(jié)果比較對呢?其實就都對。
? ? ? ??在第一個軌跡,?sa??得到獎勵 0 以后,再跳到?sb??也得到獎勵 0。這邊有兩個可能:
-
一個可能是: sa??是一個標志性的狀態(tài),只要看到 sa??以后,sb??就會拿不到獎勵,sa??可能影響了sb?。如果是用 MC 的算法的話,它會把sa??影響 sb??這件事考慮進去。所以看到sa??以后,接下來 sb??就得不到獎勵,所以s_a期望的獎勵是 0。
-
另一個可能是:看到?sa??以后,sb??的獎勵是 0 這件事只是一個巧合,并不是?sa??所造成,而是因為說?sb??有時候就是會得到獎勵 0,這只是單純運氣的問題。其實平常?sb??會得到獎勵期望值是 3/4,跟?sa??是完全沒有關(guān)系的。所以假設(shè)?sa??之后會跳到?s_bsb?,那其實得到的獎勵按照 TD 來算應(yīng)該是 3/4。所以s_a期望的獎勵是 3/4。
所以不同的方法考慮了不同的假設(shè),運算結(jié)果不同。
參考內(nèi)容:? 第六章 DQN (基本概念) (datawhalechina.github.io)
總結(jié)
以上是生活随笔為你收集整理的DQN笔记:MC TD的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: statsmodels 笔记:VAR
- 下一篇: TRMF 辅助论文:最小二乘法复现TRM