一、策略梯度法
1、評估策略
在前面的學習中,我們已經瞭解到了,強化學習的目標是求解下式:
θ∗=argθmaxEτ∼pθ(τ)[t∑r(st,at)](1)
其中:pθ(τ)=p(s1)Πt=1Tπθ(at∣st)p(st+1∣st,at)(2)
要推導出梯度策略法,我們先研究如何評估目標函數:
J(θ)=Eτ∼pθ(τ)[t∑r(st,at)](3)
由於不清楚pθ(τ)的解析式,因此我們沒法直接求解,但是我們能夠使用蒙特卡洛方法抽樣近似,即:
J(θ)=N1i∑t∑r(si,t,ai,t)(4)
其中N表示抽樣的樣本數。si,t,ai,t分別表示第i個樣本在時刻t的狀態和行動。
這裏的抽樣即在橘色框中完成,抽樣的結果可以理解爲下圖右方的多條路徑。
而計算(4)
式的過程即在綠色框中完成。
現在我們利用蒙特卡洛抽樣的方法能夠評估策略的好快,那麼我們如何完成藍色框中的任務,即優化策略呢?
2、優化策略
在優化中,最常見的方法便是根據梯度優化目標函數,在這裏我們仍然採用該方法。令:
r(τ)=t∑r(st,at)(5)
則目標函數(3)
式可寫爲:
J(θ)=∫pθ(τ)r(τ)dτ(6)
其梯度爲:
∇θJ(θ)=∫∇θpθ(τ)r(τ)dτ(7)
同樣,不知道pθ(τ)的表達式,且該處有積分,我們無法直接計算(7)
式。 但是我們有以下的重要恆等式:
pθ(τ)∇θlogpθ(τ)=∇θpθ(τ)(8)
由(7)
和(8)
式,我們得到
∇θJ(θ)=∫pθ(τ)∇θlogpθ(τ)r(τ)dτ(9)
對(9)
式,現在我們可以使用蒙特卡洛方法近似梯度(數學實在神奇), 可寫爲:
∇θJ(θ)=∫pθ(τ)∇θlogpθ(τ)r(τ)dτ=N1i=1∑N∇θlog pθ(τi)r(τi)(10)
現根據(2)
式求出:
logpθ(τ)=logp(s1)+t=1∑T[logπθ(at∣st)+log p(st+1∣at,st)](11)
因此有:
∇θlog pθ(τ)=t=1∑T∇θlog πθ(at∣st)(12)
根據(10)
和(12)
式,並將r(τ)展開,我們可以寫出梯度的最終形式:
∇θJ(θ)=N1i=1∑N[(t=1∑T∇θlog πθ(at∣st))(t=1∑Tr(si,t,ai,t))](13)
可以看到,這個梯度竟然既不依賴初始分佈,也不依賴轉移概率,實在驚喜,這樣,只要我們能夠求出∇θlogπθ(at∣st), 我們便能夠求得梯度,進而實現策略的優化。而這,就是最簡單的梯度策略法:REINFORCE (Williams, 1992)
3、直觀理解
推導到這裏,我們再簡單小結一下算法流程:
(1) 黃色框: 運行策略πθ(a∣s), 抽樣得到{τ}i=1N
(2) 綠色框: 根據(4)
式計算總的獎勵,衡量當前策略的好壞
(3) 藍色框:根據(13)
式計算參數梯度,然後走一個梯度上升步θ←θ+λ∇θJ(θ)
但是,如果我們僅僅使用該算法進行學習,學習的效果往往是不太好的。要分析爲什麼不太好,以及如何改進,我們先進一步理解∇θlog πθ(at∣st)究竟代表什麼。
回顧我們所做的工作,我們使用軌跡樣本近似了目標函數梯度
∇θJ(θ)=N1i=1∑N∇θlog pθ(τi)r(τi)(14)
而我們知道,對於普通的監督學習,如果我們採用極大似然估計學習策略,最終我們的梯度爲:
∇θJML(θ)=N1i=1∑N∇θlog pθ(τi)(15)
觀察(14)
和(15)
式,可以看到策略梯度算法在做和極大似然估計非常相似的事情。只是策略梯度算法多了一個獎勵函數的權重r(τi).
這也很容易理解,對於極大似然問題,我們認爲每一個樣本都是合理的,因此都需要最大化其出現概率。對於策略梯度算法,有的樣本是好的,有的樣本是壞的,是好是壞我們根據獎勵函數決定,當一個樣本對應的獎勵函數的值爲正時,那麼策略梯度算法便會增大其概率,爲負,則減少其概率。
當然,如果我們只有部分觀測信息,即不能得到狀態s而只能得到觀測o, 我們同樣可以使用(13)
式得到基於觀測的梯度
∇θJ(θ)=N1i=1∑N[(t=1∑T∇θlog πθ(at∣ot))(t=1∑Tr(oi,t,ai,t))](16)
這是策略梯度法一個很好的性質,但是在我們以後介紹的基於Q函數之類的學習算法,這個性質往往是不成立的。
瞭解了策略梯度算法和極大似然估計實際在做類似的事情,只是其多了一個權重r(τi)來指導概率分佈的更新,這樣,我們便能夠分析其存在的問題了。
4、高方差問題
由於本質上我們計算(13)
的過程是抽樣,而抽樣可能是不充分的,因此會導致結果不穩定,可以從此方面預感到高方差的問題。
下面從直觀來理解:
如上圖所示,藍色的實曲線是當前概率分佈pθ(τ), 若我們經過一次抽樣得到3個樣本,其獎勵函數值如綠色實線所示,那麼根據(14)
式,由於最左放的綠色實線獎勵函數爲負,因此策略梯度算法會急劇地將概率分佈拉向右邊的兩個獎勵分佈爲正的樣本。 但是, 若我們對三個獎勵函數同時加一個常數得到黃色實線,同樣根據(14)
式,算法卻不會那麼急劇的移動。而且更嚴重的,如果較好的樣本對應的獎勵函數剛好是0,則其對梯度的貢獻也是0,因此是不會產生優化效果的。
就這樣加一個常數,就能夠很大地改變梯度,影響分佈的優化,因此策略梯度算法優化是極不穩定的,也就是說它是高方差的。
再囉嗦一點,觀察(6)
式,其實如果對獎勵函數加一個函數,我們將常數提出來,最後是不會影響梯度的。但是最後實踐卻產生了影響,這本質還是因爲採樣不充分。
二、方差削減