PPO:近端策略优化

基本概念

PPO

PPO算法和TRPO算法一样,也是一样常用的策略优化方法。与TRPO不同,PPO算法使用自适应KL惩罚系数 β \beta β来约束KL散度,并且在每次策略更新中动态设置惩罚系数 β \beta β;PPO算法还有另一种实现方式,不将KL散度直接放入似然函数中,而是进行一定程度的裁剪。

PPO训练过程的伪代码如下图所示:
在这里插入图片描述

PPO with clip

在TRPO中,使用的目标函数为:
在这里插入图片描述
如果令 r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta)=\frac {\pi_\theta(a_t|s_t)} {\pi_{\theta_{old}}(a_t|s_t)} rt(θ)=πθold(atst)πθ(atst),那么可以得到:
在这里插入图片描述
上标 C P I CPI CPI指的是TRPO中的保守政策迭代,如果没有约束,最大化 L C P L L^{CPL} LCPL将会导致非常大幅度的梯度更新。为了惩罚策略的变化(即 r t ( θ ) r_t(\theta) rt(θ)远离1,即新旧策略的KL散度不能太大),PPO算法提出了如下的目标函数:
在这里插入图片描述
如果新策略和旧策略之间的概率比落在区间 (1- ϵ \epsilon ϵ)和 (1 + ϵ \epsilon ϵ)外面,那么优势函数就会被剪贴。论文中 ϵ = 0.2 \epsilon=0.2 ϵ=0.2,直观示意图如下:

在这里插入图片描述

PPO with clip的算法伪代码如下图所示:
在这里插入图片描述

PPO with penalty

在这种形式下,PPO算法和TRPO算法的优化问题相同:
在这里插入图片描述
TRPO算法与PPO算法之间的区别在于TRPO算法使用了KL散度作为约束条件,而PPO算法在训练时可以采用适应性的KL惩罚因子。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在每次策略更新时,当KL散度过大时,增大 β \beta β的值来增加惩罚力度;当KL散度过小时,减小 β \beta β值来降低惩罚力度。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值