强化学习6——policy gradient的变种State of the Art
policy-base SOTA
學習周博雷老師課程總結
Natural Policy Gradient
????為了改善PG算法的不穩定的缺點(如果更新到一個bad policy,就會采集到的一個壞的數據集,進而惡性循環。)
?
????這樣我們在兩個策略之間限制一個距離(KL-divergence),保證優化不會跑的太偏,優化的方法就變為下面這樣一個等式,就是說我們在上一個策略周圍找一個使得目標函數值最大的方向進行前進,下面就是Natural Policy Gradient的實現方式:
d?=arg?max?J(θ+d),d^{*}=\arg \max J(\theta+d),d?=argmaxJ(θ+d),s.t.KL(πθ∥πθ+d)=cK L\left(\pi_{\theta} \| \pi_{\theta+d}\right)=cKL(πθ?∥πθ+d?)=c
TRPO
????TRPO=Natural Policy Gradient + importance sampling
?
????根據sampling定理:
Ex~p[f(x)]=∫p(x)f(x)dx=∫q(x)p(x)q(x)f(x)dx=Ex~q[p(x)q(x)f(x)]\mathbb{E}_{x \sim p}[f(x)]=\int p(x) f(x) d x=\int q(x) \frac{p(x)}{q(x)} f(x) d x=\mathbb{E}_{x \sim q}\left[\frac{p(x)}{q(x)} f(x)\right]Ex~p?[f(x)]=∫p(x)f(x)dx=∫q(x)q(x)p(x)?f(x)dx=Ex~q?[q(x)p(x)?f(x)]
可以把目標函數寫成:
J(θ)=Ea~πθ[r(s,a)]=Ea~π^[πθ(s,a)π^(s,a)r(s,a)]J(\theta)=\mathbb{E}_{a \sim \pi_{\theta}}[r(s, a)]=\mathbb{E}_{a \sim \hat{\pi}}\left[\frac{\pi_{\theta}(s, a)}{\hat{\pi}(s, a)} r(s, a)\right]J(θ)=Ea~πθ??[r(s,a)]=Ea~π^?[π^(s,a)πθ?(s,a)?r(s,a)]
這樣我們就能用off-policy來進行價值函數的更新,即一個behavior policy,一個training policy,下面就是TRPO的優化公式:
Jθold(θ)=Et[πθ(at∣st)πθold(at∣st)Rt]subject?to?KL(πθold(.∣st)∥πθ(.∣st))≤δ\begin{aligned} J_{\theta_{\text {old}}}(\theta) &=\mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)} R_{t}\right] \\ \text { subject to } & K L\left(\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right) \| \pi_{\theta}\left(. \mid s_{t}\right)\right) \leq \delta \end{aligned}Jθold??(θ)?subject?to??=Et?[πθold??(at?∣st?)πθ?(at?∣st?)?Rt?]KL(πθold??(.∣st?)∥πθ?(.∣st?))≤δ?
KFAC
提升TRPO的計算效率,
PPO
TRPO的簡化版本
TRPO:
maximize?θEt[πθ(at∣st)πθold(at∣st)At]subject?to?Et[KL[πθold(.∣st),πθ(.∣st)]]≤δ\begin{array}{l} \operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)} A_{t}\right] \\ \text { subject to } \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] \leq \delta \end{array} maximizeθ?Et?[πθold??(at?∣st?)πθ?(at?∣st?)?At?]?subject?to?Et?[KL[πθold??(.∣st?),πθ?(.∣st?)]]≤δ?
PPO的優化簡化:
maximize?θEt[πθ(at∣st)πθold(at∣st)At]?βEt[KL[πθold(.∣st),πθ(.∣st)]]\operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{o l d}}\left(a_{t} \mid s_{t}\right)} A_{t}\right]-\beta \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] maximizeθ?Et?[πθold??(at?∣st?)πθ?(at?∣st?)?At?]?βEt?[KL[πθold??(.∣st?),πθ?(.∣st?)]]
簡化后的PPO用一階優化過程SGD,而TRPO用了二階的信息,所以二階的較慢。
帶clipping的PPO
rt(θ)=πθ(at∣st)πθold(at∣st)r_{t}(\theta)=\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)}rt?(θ)=πθold??(at?∣st?)πθ?(at?∣st?)?
就是將價值函數的取值進行一個限制,則帶有clipping的PPO的優化為:
Lt(θ)=min?(rt(θ)A^t,clip?(rt(θ),1??,1+?)A^t)L_{t}(\theta)=\min \left(r_{t}(\theta) \hat{A}_{t}, \operatorname{clip}\left(r_{t}(\theta), 1-\epsilon, 1+\epsilon\right) \hat{A}_{t}\right) Lt?(θ)=min(rt?(θ)A^t?,clip(rt?(θ),1??,1+?)A^t?)
這里用clipping代替了KL-divergence這一項。
總結
以上是生活随笔為你收集整理的强化学习6——policy gradient的变种State of the Art的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多车调度问题(大疆Robot Maste
- 下一篇: MATLAB中将pgm图片二值化