首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >近端策略优化算法(PPO)

近端策略优化算法(PPO)

作者头像
Steve Wang
发布2020-02-18 16:09:05
发布2020-02-18 16:09:05
1.6K0
举报
文章被收录于专栏:从流域到海域从流域到海域

策略梯度算法(PG)

策略梯度迭代,通过计算策略梯度的估计,并利用随机梯度上升算法进行迭代。其常用的梯度估计形式为: E^t[∇θlogπθ(at∣st)A^t] \hat{\mathbb{E}}_t[\nabla_\theta log \pi_\theta(a_t | s_t)\hat{A}_t] E^t​[∇θ​logπθ​(at​∣st​)A^t​] 其中πθ\pi_\thetaπθ​为随机策略,A^t\hat{A}_tA^t​是优势函数在时间步t的估计,其损失函数为: LPG(θ)=E^t[logπθ(at∣st)A^t] L^{PG}(\theta)=\hat{\mathbb{E}}_t[log_{\pi_\theta}(a_t|s_t)\hat{A}_t] LPG(θ)=E^t​[logπθ​​(at​∣st​)A^t​]

信赖域策略优化(TRPO)

TRPO要优化的目标函数如下: maximizeθE^[π(at∣st)πθold(at∣st)A^t] maximize_\theta \hat{\mathbb{E}}[\frac{\pi(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t] maximizeθ​E^[πθold​​(at​∣st​)π(at​∣st​)​A^t​] subject to Et^[KL[πold(⋅∣st)∣∣πθ(⋅∣st)]]≤U subject\ to \ \hat{\mathbb{E}_t}[KL[\pi_{old}(·|s_t)||\pi_\theta(·|s_t)]] \leq U subject to Et​^​[KL[πold​(⋅∣st​)∣∣πθ​(⋅∣st​)]]≤U

近端策略优化算法(PPO)

截断替代目标(PPO1)

令rt(θ)=πθ(at∣st)πold(at∣st)r_t({\theta})=\frac{\pi_{\theta(a_t|s_t)}}{\pi_{old}(a_t|s_t)}rt​(θ)=πold​(at​∣st​)πθ(at​∣st​)​​,那么r(θold)=1r(\theta_{old})=1r(θold​)=1。TRPO把目标函数替换为: LCPL(θ)=E^[π(at∣st)πθold(at∣st)A^t]=E^t[rt(θ)A^t] L^{CPL}(\theta) =\hat{\mathbb{E}}[\frac{\pi(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t]=\hat{\mathbb{E}}_t[r_t(\theta)\hat{A}_t] LCPL(θ)=E^[πθold​​(at​∣st​)π(at​∣st​)​A^t​]=E^t​[rt​(θ)A^t​]

LCPLL^{CPL}LCPL指的是前述TRPO中的保守策略迭代,如果不加约束,最大化LCPLL^{CPL}LCPL会产生较大幅度的梯度更新。为了惩罚策略的变化(使得rt(θ)r_t(\theta)rt​(θ)远离1,新旧策略的KL散度不能太大),使用了以下的目标函数: LCLIP(θ)=E^[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)] L^{CLIP}(\theta)=\hat{\mathbb{E}}[min(r_t(\theta)\hat{A}_t, clip(r_t({\theta}),1-\epsilon, 1+\epsilon)\hat{A}_t)] LCLIP(θ)=E^[min(rt​(θ)A^t​,clip(rt​(θ),1−ϵ,1+ϵ)A^t​)] 原论文中取ϵ=0.2\epsilon=0.2ϵ=0.2,直观示意图如下:

即:

当A>0时,如果rt(θ)>1+ϵr_t(\theta)>1+\epsilonrt​(θ)>1+ϵ,则LCLIP(θ)=(1+ϵ)A^tL^{CLIP}(\theta)=(1+\epsilon)\hat{A}_tLCLIP(θ)=(1+ϵ)A^t​;如果rt(θ)<1+ϵr_t(\theta)<1+\epsilonrt​(θ)<1+ϵ,则LCLIP(θ)=rt(θ)A^tL^{CLIP}(\theta)=r_t(\theta)\hat{A}_tLCLIP(θ)=rt​(θ)A^t​;

当A<0时,如果rt(θ)>1−ϵr_t(\theta)>1-\epsilonrt​(θ)>1−ϵ,则LCLIP(θ)=rt(θ)A^tL^{CLIP}(\theta)=r_t(\theta)\hat{A}_tLCLIP(θ)=rt​(θ)A^t​;如果rt(θ)<1−ϵr_t(\theta)<1-\epsilonrt​(θ)<1−ϵ,则LCLIP(θ)=(1−ϵ)A^tL^{CLIP}(\theta)=(1-\epsilon)\hat{A}_tLCLIP(θ)=(1−ϵ)A^t​;

自适应KL惩罚系数 (PPO2)

在TRPO中,使用"自适应惩罚系数"β\betaβ来约束KL散度,在该算法的最简单实例中,在每一步策略更新中执行以下步骤:

  • 使用多个minibatch SGD,优化KL惩罚的目标 LKLPEN(θ)=E^t[πθ(at∣st)πθold(at∣st)A^t−βKL[πθold(⋅∣st),π(⋅∣st)]] L^{KLPEN}(\theta)=\hat{\mathbb{E}}_t[\frac{\pi_{\theta(a_t|s_t)}}{\pi_{\theta_{old}}}(a_t|s_t)\hat{A}_t-\beta KL[\pi_{\theta_{old}}(·|s_t), \pi(·|s_t)]] LKLPEN(θ)=E^t​[πθold​​πθ(at​∣st​)​​(at​∣st​)A^t​−βKL[πθold​​(⋅∣st​),π(⋅∣st​)]]
  • 计算d=E^[KL[πθold(⋅∣st),π(⋅∣st)]]d=\hat{\mathbb{E}}[KL[\pi_{\theta_{old}}(·|s_t), \pi(·|s_t)]]d=E^[KL[πθold​​(⋅∣st​),π(⋅∣st​)]]

如果d<dtarg/1.5,β<−β/2d<d_{targ}/1.5, \beta <-\beta/2d<dtarg​/1.5,β<−β/2 如果d>dtarg∗1.5,β<−β∗2d>d_{targ}*1.5, \beta<-\beta*2d>dtarg​∗1.5,β<−β∗2

实验中,PPO2的效果可能没有PPO1的效果好。

更复杂的版本

LtCLIP+VF+S(θ)=E^t[LtCLIP(θ)−c1LtVF(θ)]+c2S[πθ](st)] L_t^{CLIP+VF+S}(\theta) = \hat{E}_t[L_t^{CLIP}(\theta)-c_1L_t^{VF}(\theta)]+c_2 S[\pi_{\theta}](s_t)] LtCLIP+VF+S​(θ)=E^t​[LtCLIP​(θ)−c1​LtVF​(θ)]+c2​S[πθ​](st​)] 其中c1c1c1,c2c2c2是系数,SSS表示熵奖励,LtVF是平方误差损失(Vθ(st)−Vttarg)2L_t^{VF}是平方误差损失(V_\theta(s_t)-V_t^{targ})^2LtVF​是平方误差损失(Vθ​(st​)−Vttarg​)2

优势估计函数为 A^t=−V(st)+rt+γrt+1+...+γT−t+1rT−1+γT−tV(sT) \hat{A}_t = -V(s_t)+r_t+\gamma r_{t+1}+...+\gamma^{T-t+1}r_{T-1}+\gamma^{T-t}V(s^T) A^t​=−V(st​)+rt​+γrt+1​+...+γT−t+1rT−1​+γT−tV(sT)

另外,我们可以使用广义优势函数来扩广A^t\hat{A}_tA^t​,当λ=1\lambda=1λ=1时,它趋近于上面的等式 A^t=δ+(γλ)δt+1+...+...+γλT−t+1δT−1 \hat{A}_t=\delta+(\gamma\lambda)\delta_{t+1}+...+...+{\gamma\lambda^{T-t+1}}\delta_{T-1} A^t​=δ+(γλ)δt+1​+...+...+γλT−t+1δT−1​ where δt=rt+γV(st+1−V(st))where \ \delta_t = r_t+\gamma V(s_{t+1}-V(s_t))where δt​=rt​+γV(st+1​−V(st​))

使用固定长度轨迹的近端策略优化(PPO)算法

如下所示:

Algorithm PPO,Actor−Critic StyleAlgorithm \ PPO, Actor-Critic \ StyleAlgorithm PPO,Actor−Critic Style for iteration=1,2,...,dofor \ iteration=1,2,...,dofor iteration=1,2,...,do for actor=1,2,...,N,do\qquad for \ actor=1,2,...,N, dofor actor=1,2,...,N,do Run policy πθold\qquad \qquad Run \ policy \ \pi_{\theta_{old}}Run policy πθold​​ in environment for T timesteps Compute advantage estimatesA^1,...,A^T\qquad \qquad Compute \ advantage \ estimates \hat{A}_1,...,\hat{A}_{T}Compute advantage estimatesA^1​,...,A^T​ endfor\qquad end forendfor Optimize surrogate L wrt θ,with K epochs and minibatch size M<=NTOptimize \ surrogate \ L \ wrt \ \theta, with \ K \ epochs \ and \ minibatch \ size \ M <= NTOptimize surrogate L wrt θ,with K epochs and minibatch size M<=NT end forend \ forend for

推荐阅读:

李宏毅机器学习系列-强化学习之近端策略优化PPO 该博文从Import Sampling的角度叙述了PPO的演化。

个人认为写得最好的TRPO讲解 该博文从数学方面叙述了PPO的推导。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 策略梯度算法(PG)
  • 信赖域策略优化(TRPO)
  • 近端策略优化算法(PPO)
    • 截断替代目标(PPO1)
    • 自适应KL惩罚系数 (PPO2)
  • 更复杂的版本
  • 使用固定长度轨迹的近端策略优化(PPO)算法
  • 推荐阅读:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档