日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

强化学习的学习之路(四十八)2021-02-17 GAE(Generalized Advantage Estimation)

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 强化学习的学习之路(四十八)2021-02-17 GAE(Generalized Advantage Estimation) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為一個新手,寫這個強化學習-基礎知識專欄是想和大家分享一下自己學習強化學習的學習歷程,希望對大家能有所幫助。這個系列后面會不斷更新,希望自己在2021年能保證平均每日一更的更新速度,主要是介紹強化學習的基礎知識,后面也會更新強化學習的論文閱讀專欄。本來是想每一篇多更新一點內容的,后面發現大家上CSDN主要是來提問的,就把很多拆分開來了(而且這樣每天任務量也小一點哈哈哈哈偷懶大法)。但是我還是希望知識點能成系統,所以我在目錄里面都好按章節系統地寫的,而且在github上寫成了書籍的形式,如果大家覺得有幫助,希望從頭看的話歡迎關注我的github啊,謝謝大家!另外我還會分享深度學習-基礎知識專欄以及深度學習-論文閱讀專欄,很早以前就和小伙伴們花了很多精力寫的,如果有對深度學習感興趣的小伙伴也歡迎大家關注啊。大家一起互相學習啊!可能會有很多錯漏,希望大家批評指正!不要高估一年的努力,也不要低估十年的積累,與君共勉!

GAE

GAE全稱是generalized advantage estimator,幾乎所有最先進的policy gradient算法實現里面都使用了該技術。

我們已經知道在策略梯度法中,如果直接使用 On-Policy 的方法交互采樣,并用 每一時刻的回報作為梯度中的長期回報估計 ∑t′=tTγt′?trt′,\sum_{t^{\prime}=t}^{T} \gamma^{t^{\prime}-t} \boldsymbol{r}_{t^{\prime}},t=tT?γt?trt?, 會使算法產生較大的波動,換句話說,梯度的方差會比較大。如果采用 Actor-Critic 的方法,通過模型估計狀態的價值,那么模型優化的方差會減小,但是由于函數擬合的問題,這個方法會產生一定偏差。因此問題的關鍵就在于如何平衡偏差和方差帶來的影響。
Actor Critic 的價值梯度可以表示為
?θJ(θ)=Es,a~τ[∑t=0∞Aπ,γ(st,at)?θlog?πθ(at∣st)]\nabla_{\theta} J(\theta)=E_{\boldsymbol{s}, a \sim \boldsymbol{\tau}}\left[\sum_{t=0}^{\infty} A^{\pi, \gamma}\left(\boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \nabla_{\theta} \log \pi_{\theta}\left(\boldsymbol{a}_{t} \mid \boldsymbol{s}_{t}\right)\right] ?θ?J(θ)=Es,aτ?[t=0?Aπ,γ(st?,at?)?θ?logπθ?(at?st?)]
其中
Aπ,γ(st,at)=Qπ,γ(st,at)?Vπ,γ(st)Qπ,γ(st,at)=Est+1,at+1~τ[∑l=0∞γlrt+l]Vπ,γ(st)=Est+1,at~τ[∑l=0∞γlrt+l]\begin{aligned} A^{\pi, \gamma}\left(s_{t}, a_{t}\right) &=Q^{\pi, \gamma}\left(s_{t}, a_{t}\right)-V^{\pi, \gamma}\left(s_{t}\right) \\ Q^{\pi, \gamma}\left(s_{t}, a_{t}\right) &=E_{s_{t+1}, a_{t+1} \sim \tau}\left[\sum_{l=0}^{\infty} \gamma^{l} r_{t+l}\right] \\ V^{\pi, \gamma}\left(s_{t}\right) &=E_{s_{t+1}, a_{t} \sim \tau}\left[\sum_{l=0}^{\infty} \gamma^{l} r_{t+l}\right] \end{aligned} Aπ,γ(st?,at?)Qπ,γ(st?,at?)Vπ,γ(st?)?=Qπ,γ(st?,at?)?Vπ,γ(st?)=Est+1?,at+1?τ?[l=0?γlrt+l?]=Est+1?,at?τ?[l=0?γlrt+l?]?
總的來說, Aπ,γ(st,at)A^{\pi, \gamma}\left(s_{t}, a_{t}\right)Aπ,γ(st?,at?) 已經可以做到在保持無偏差的情況下,盡可能地降低方差值。如果我們能通過學習得到一個完美的優勢函數,模型就可以得到很好的表現。但實際中直接學習優勢函數比較困難,我們往往需要組合其他函數得到優勢函數,同時還需要考慮偏差和方差對模型的影響,為此我們給出了一個定義: γ\gammaγ -just。當一個函數 A^t\hat{A}_{t}A^t? 滿足 γ\gammaγ -just 條件時,它就滿足下面的公式:
Es0,a0,…~τ[A^t(s0:∞,a0:∞)?θlog?πθ(at∣st)]=Es0,a0,…~τ[Aπ,γ(st,at)?θlog?πθ(at∣st)]E_{s_{0}, a_{0}, \ldots \sim \tau}\left[\hat{A}_{t}\left(s_{0: \infty}, a_{0: \infty}\right) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right]=E_{s_{0}, a_{0}, \ldots \sim \tau}\left[A^{\pi, \gamma}\left(s_{t}, a_{t}\right) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right]Es0?,a0?,τ?[A^t?(s0:?,a0:?)?θ?logπθ?(at?st?)]=Es0?,a0?,τ?[Aπ,γ(st?,at?)?θ?logπθ?(at?st?)]
如果我們找到的估計函數能夠滿足上面的公式,它就可以用來替換優勢函數。經過推導分析我們發現, rt+γVπ,γ(st+1)?Vπ,γ(st)r_{t}+\gamma V^{\pi, \gamma}\left(s_{t+1}\right)-V^{\pi, \gamma}\left(s_{t}\right)rt?+γVπ,γ(st+1?)?Vπ,γ(st?) 滿足上述條件,是一個合格的替換 項,于是后面的工作將圍繞它替換進行。

VVV 為一個近似的值函數,我們定義 δtV=rt+γV(st+1)?V(st),\delta_{t}^{V}=r_{t}+\gamma V\left(s_{t+1}\right)-V\left(s_{t}\right),δtV?=rt?+γV(st+1?)?V(st?), 這里的 δtV\delta_{t}^{V}δtV? 可 以作為 ata_{t}at? 的一個優勢價值估計。如果上面的公式中 V=Vπ,γ,V=V^{\pi, \gamma},V=Vπ,γ, 那么 δtV\delta_{t}^{V}δtV? 就是一個 γ\gammaγ -just 的估計函數,它可以得到 Aπ,γA^{\pi, \gamma}Aπ,γ 的一個無偏估計:
Est+1[δtVπ,γ]=Est+1[rt+γVπ,γ(st+1)?Vπ,γ(st)]=Est+1[Qπ,γ(st,at)?Vπ,γ(st)]=Aπ,γ(st,at)\begin{aligned} E_{\boldsymbol{s}_{t+1}}\left[\boldsymbol{\delta}_{t}^{V^{\pi, \gamma}}\right] &=E_{\boldsymbol{s}_{t+1}}\left[\boldsymbol{r}_{t}+\gamma V^{\pi, \gamma}\left(s_{t+1}\right)-V^{\pi, \gamma}\left(s_{t}\right)\right] \\ &=E_{s_{t+1}}\left[Q^{\pi, \gamma}\left(s_{t}, \boldsymbol{a}_{t}\right)-V^{\pi, \gamma}\left(s_{t}\right)\right]=A^{\pi, \gamma}\left(\boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \end{aligned} Est+1??[δtVπ,γ?]?=Est+1??[rt?+γVπ,γ(st+1?)?Vπ,γ(st?)]=Est+1??[Qπ,γ(st?,at?)?Vπ,γ(st?)]=Aπ,γ(st?,at?)?
接下來我們考慮 nnn 步的優勢函數估計,并用 A^t(k)\hat{A}_{t}^{(k)}A^t(k)? 表示,可以得到
A^t(1)=δtV=?V(st)+rt+γV(st+1)A^t(2)=δtV+γδt+1V=?V(st)+rt+γV(st+1)+γ(?V(st+1)+rt+1+γV(st+2))=?V(st)+rt+γrt+1+γ2V(st+2)\begin{array}{l} \hat{A}_{t}^{(1)}=\delta_{t}^{V}=-V\left(s_{t}\right)+r_{t}+\gamma V\left(s_{t+1}\right) \\ \hat{A}_{t}^{(2)}=\delta_{t}^{V}+\gamma \delta_{t+1}^{V} \\ =-V\left(s_{t}\right)+r_{t}+\gamma V\left(s_{t+1}\right)+\gamma\left(-V\left(s_{t+1}\right)+r_{t+1}+\gamma V\left(s_{t+2}\right)\right) \\ =-V\left(s_{t}\right)+r_{t}+\gamma r_{t+1}+\gamma^{2} V\left(s_{t+2}\right) \end{array} A^t(1)?=δtV?=?V(st?)+rt?+γV(st+1?)A^t(2)?=δtV?+γδt+1V?=?V(st?)+rt?+γV(st+1?)+γ(?V(st+1?)+rt+1?+γV(st+2?))=?V(st?)+rt?+γrt+1?+γ2V(st+2?)?
依此類推,可以得到
A^t(∞)=∑l=0∞γlδt+lV=?V(st)+rt+γrt+1+?+γkrt+k+?\hat{A}_{t}^{(\infty)}=\sum_{l=0}^{\infty} \gamma^{l} \delta_{t+l}^{V}=-V\left(s_{t}\right)+r_{t}+\gamma \boldsymbol{r}_{t+1}+\cdots+\gamma^{k} \boldsymbol{r}_{t+k}+\cdots A^t()?=l=0?γlδt+lV?=?V(st?)+rt?+γrt+1?+?+γkrt+k?+?
我們知道 γ\gammaγ 是一個小于 1 的數,隨著 kkk 趨近于無窮大,最終 γ∞V(st+∞)→0\gamma^{\infty} V\left(s_{t+\infty}\right) \rightarrow 0γV(st+?)0, 所 以 A^t(∞)\hat{A}_{t}^{(\infty)}A^t()? 這一項相當于用蒙特卡羅法對優勢函數進行估計。此時我們看到,隨著估計步數的增加,估計值的偏差逐漸變小,方差逐漸變大。如果我們能將這些估計值同時考慮在內,是就可以在偏差和方差之間找到更好的平衡。
A^tGAE(γ,λ)=(1?λ)(A^t(1)+λA^t(2)+λ2A^t(3)+?)=(1?λ)(δtV+λ(δtV+δt+1V)+λ2(δtV+γδt+1V+γ2δt+2V)+?)=(1?λ)(δtV(1+λ+λ2+?)+γδt+1V(λ+λ2+λ3+?)+γ2δt+2V(λ2+λ3+λ4+?)+?)=(1?λ)(δtV(11?λ)+γδt+1V(λ1?λ)+γ2δt+2V(λ21?λ)+?)=∑l=0∞(γλ)lδt+lV\begin{aligned} \hat{A}_{t}^{\mathrm{GAE}(\gamma, \lambda)} &=(1-\lambda)\left(\hat{A}_{t}^{(1)}+\lambda \hat{A}_{t}^{(2)}+\lambda^{2} \hat{A}_{t}^{(3)}+\cdots\right) \\ &=(1-\lambda)\left(\delta_{t}^{V}+\lambda\left(\delta_{t}^{V}+\delta_{t+1}^{V}\right)+\lambda^{2}\left(\delta_{t}^{V}+\gamma \delta_{t+1}^{V}+\gamma^{2} \delta_{t+2}^{V}\right)+\cdots\right) \\ &=(1-\lambda)\left(\delta_{t}^{V}\left(1+\lambda+\lambda^{2}+\cdots\right)+\gamma \delta_{t+1}^{V}\left(\lambda+\lambda^{2}+\lambda^{3}+\cdots\right)\right.\\ &\left.+\gamma^{2} \delta_{t+2}^{V}\left(\lambda^{2}+\lambda^{3}+\lambda^{4}+\cdots\right)+\cdots\right) \\ &=(1-\lambda)\left(\delta_{t}^{V}\left(\frac{1}{1-\lambda}\right)+\gamma \delta_{t+1}^{V}\left(\frac{\lambda}{1-\lambda}\right)+\gamma^{2} \delta_{t+2}^{V}\left(\frac{\lambda^{2}}{1-\lambda}\right)+\cdots\right) \\ &=\sum_{l=0}^{\infty}(\gamma \lambda)^{l} \delta_{t+l}^{V} \end{aligned} A^tGAE(γ,λ)??=(1?λ)(A^t(1)?+λA^t(2)?+λ2A^t(3)?+?)=(1?λ)(δtV?+λ(δtV?+δt+1V?)+λ2(δtV?+γδt+1V?+γ2δt+2V?)+?)=(1?λ)(δtV?(1+λ+λ2+?)+γδt+1V?(λ+λ2+λ3+?)+γ2δt+2V?(λ2+λ3+λ4+?)+?)=(1?λ)(δtV?(1?λ1?)+γδt+1V?(1?λλ?)+γ2δt+2V?(1?λλ2?)+?)=l=0?(γλ)lδt+lV??
我們發現這個公式的最終形式比較簡潔,雖然我們引人了一個新的超參數,但是公式并沒有復雜太多。此時我們的估計值在偏差和方差方面得到了更好的平衡,我們可以分別計算 λ\lambdaλ 等于 0 和 1 時的值
GAE?(γ,0):A^t:=δt=rt+γv(st+1)?v(st)GAE?(γ,1):A^t:=∑l=0∞γlδt+l=sum?t=0∞γlrt+l?v(st)\begin{array}{lrl} \operatorname{GAE}(\gamma, 0): & \hat{A}_{t}:=\delta_{t} & =r_{t}+\gamma v\left(s_{t+1}\right)-v\left(s_{t}\right) \\ \operatorname{GAE}(\gamma, 1): & \hat{A}_{t}:=\sum_{l=0}^{\infty} \gamma^{l} \delta_{t+l} & =\operatorname{sum}_{t=0}^{\infty} \gamma^{l} r_{t+l}-v\left(s_{t}\right) \end{array} GAE(γ,0):GAE(γ,1):?A^t?:=δt?A^t?:=l=0?γlδt+l??=rt?+γv(st+1?)?v(st?)=sumt=0?γlrt+l??v(st?)?
可以看出,當 λ=0\lambda=0λ=0 時,算法等同于計算 TD-Error,這是一個方差較低但偏差較高的算法;

λ=1\lambda=1λ=1 時,算法變成蒙特卡羅目標值和價值估計的差,這是一個偏差較低但方差較高的算法。我們可以通過調整 λ\lambdaλ 值使模型在兩者之間得到更好的平衡。因此,
我們可以用它代替前面公式中的優勢函數,此時計算的公式就變為
?θJ(θ)=Es,a~τ[∑t=0∞A^tGAE(γ,λ)?θlog?πθ(at∣st)]\nabla_{\theta} J(\theta)=E_{s, a \sim \tau}\left[\sum_{t=0}^{\infty} \hat{A}_{t}^{\mathrm{GAE}(\gamma, \lambda)} \nabla_{\theta} \log \pi_{\theta}\left(\boldsymbol{a}_{t} \mid s_{t}\right)\right] ?θ?J(θ)=Es,aτ?[t=0?A^tGAE(γ,λ)??θ?logπθ?(at?st?)]
當時第一次看GAE的時候很不理解為什么GAE選定了 δtV=rt+γV(st+1)?V(st)\delta_{t}^{V}=r_{t}+\gamma V\left(s_{t+1}\right)-V\left(s_{t}\right)δtV?=rt?+γV(st+1?)?V(st?)這種形式,后面看到吳恩達老師1998年reward shaping的論文,在做reward shaping的時候將reward加上一個勢能函數的差值就保障了加入reward shaping之后策略沒有變壞:
r~(s,a,s′)=r(s,a,s′)+γΦ(s′)?Φ(s)\tilde{r}\left(s, a, s^{\prime}\right)=r\left(s, a, s^{\prime}\right)+\gamma \Phi\left(s^{\prime}\right)-\Phi(s) r~(s,a,s)=r(s,a,s)+γΦ(s)?Φ(s)
感覺GAE就是將V函數替代r函數的一種操作,也就是說GAE是一種更加“長視”的reward shaping的方法?不知道這么理解對不對,歡迎大家討論。

上一篇:強化學習的學習之路(四十七)2021-02-16 TRPO實現策略上的單調提升(Monotonic Improvement with TRPO )
下一篇:強化學習的學習之路(四十九)2021-02-18基于GAE和TRPO的值函數優化

總結

以上是生活随笔為你收集整理的强化学习的学习之路(四十八)2021-02-17 GAE(Generalized Advantage Estimation)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。