Safe Policy Optimization 复现

复现结果

在 PointGoal1、CarGoal1、Velocity-Walker2d 三个任务上测试了 RCPO,CRPO 以及 Safe-Policy-Optimization 中实现的 CPO,PPO-Lag 算法。

CarGoal

在这里插入图片描述

PointGoal

PointGoal1 和 CarGoal1 任务相对比较困难,在探索初期就很容易违反约束。

PPO-Lag 和 TRPO-Lag 都不能得到满足约束的解,故没有在途中画出。

使用 RCPO 将拉格朗日乘子初值设置为 2 之后,可以跑出可行解,但是 reward 不高,且仍然会出现震荡的现象。

使用 CRPO 可以跑出可行解,reward 与 RCPO 持平,后面会对其进行修改。

另外尝试使用 CPO,发现虽然 reward 最高,但是得不到可行解。

Walker2d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6jjGDce1-1689530625453)(results.assets/wk.png)]

在 Velocity-Walker2d 中使用 ppo-lag 会产生周期性的震荡。原因是 KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲ ̲L}{\part\lambda…,而 λ \lambda λ 增大又会使得 EpCosts 减小。如果 λ \lambda λ 更新过快,就会导致这两个过程的时间差较长,从而产生周期较大的波动。

这个任务比较简单,其他的算法差别不大。

对CRPO的改进

在PointGoal1 和 CarGoal1中发现 CRPO 训练过程中不稳定,而且训练到一定程度的时候 reward 难以继续提高。因为这两个任务的约束比较强,即使在没有充分探索的前期就很容易违反约束。CRPO 在违反约束时立即转向,导致很容易被束缚住而探索不到好的策略。同时,cost 负梯度和 reward 梯度的方向一般是相反的,就会导致参数发生震荡。

因此做了两点改进:

  1. 减小学习率。
  2. 在违反约束时参数更新方向不再是单一的减小 cost 的方向,而是 cost 的负梯度 * alpha + reward 的梯度 * (1-alpha)

第 2 点中的 alpha 尝试了固定值(0.7,0.85)以及自适应值(类似 PDO 更新拉格朗日乘子),发现自适应的更新 alpha 效果更好,与改进前相比,前期训练表现提升较快,也能得到满足约束的解,并且 reward 有较大提高。当然,与标准的 CRPO 相比这会导致训练过程中存在违反约束的时间增加。

CarGoal

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zTJMjRj3-1689530625454)(results.assets/cg2.png)]

PointGoal

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJCGPaD4-1689530625454)(results.assets/pg2.png)]

思考

构造拉格朗日函数:
L ( θ , λ ) = J R π θ − λ ⋅ ( J C π θ − d ) L(\theta, \lambda)=J_R^{\pi_\theta} - \lambda\cdot(J_C^{\pi_\theta}-d) L(θ,λ)=JRπθλ(JCπθd)
原问题等价于如下无约束问题:

max ⁡ θ min ⁡ λ ≥ 0 L ( θ , λ ) \max_\theta \min_{\lambda\geq 0} L(\theta, \lambda) θmaxλ0minL(θ,λ)
其拉格朗日对偶问题是原问题的一个上界:

min ⁡ λ ≥ 0 max ⁡ θ L ( θ , λ ) \min_{\lambda\geq 0}\max_\theta L(\theta, \lambda) λ0minθmaxL(θ,λ)
PDO 以及 RCPO 优化的是对偶问题,用较快速度更新 θ \theta θ,较慢速度更新 λ \lambda λ

而 CRPO 可以看作直接优化原问题:给定一个 θ \theta θ,如果约束都被满足,那么最优的 λ \lambda λ 为 0,此时对 θ \theta θ 求梯度就是 J R π θ J_R^{\pi_\theta} JRπθ θ \theta θ 的梯度;如果有一个约束没有满足,那么对应的 λ \lambda λ 会趋向无穷大,这时对 θ \theta θ 求梯度就是 J C π θ J_C^{\pi_\theta} JCπθ θ \theta θ 的梯度。

由此猜测对于多约束问题,除了论文中的随机挑选一个违反的约束进行优化,可能还可以同时优化所有违反的约束。

局限性

PDO,RCPO 也可以看作是 reward shaping 的方法。虽然不再需要手动调节参数,但是 lambda 初值和学习率设置不当会导致训练难以收敛。如果学习率过高,表现也会周期性波动;如果过低,就很难收敛到合法解。同样,如果 lambda 初值距离最优值太远,也会很难收敛到合法解。

而 CRPO 在训练后期震荡还是比较明显。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Proximal Policy OptimizationPPO)是一种目前被广泛应用于强化学习领域的优化算法。它起源于OpenAI公司的研究者们的努力,旨在解决现有的基于策略梯度方法在采样效率和训练稳定性方面的问题。 在过去,基于策略梯度的方法在训练过程中存在一些挑战。首先,传统的策略梯度方法通常需要采样大量的样本来进行训练,导致训练的时间开销较大。其次,在训练过程中,梯度更新的幅度可能过大,导致策略的变化太过剧烈,进而影响训练的稳定性。 为了解决这些问题,OpenAI的研究者提出了PPO算法。PPO算法通过引入“近端”以及“裁剪”机制来控制策略更新的大小,从而保证了训练过程的稳定性。具体来说,PPO算法通过在每一次训练迭代中进行多次策略更新,并使用一种近端优化方法来限制每次更新的大小。这样可以防止梯度的剧烈变化,同时提升采样效率。 PPO算法的提出为强化学习领域带来了重要的突破。它的优势在于训练过程中不仅更加稳定,而且具有较高的采样效率。这使得PPO算法成为了广泛应用于各类强化学习问题的解决方案。同时,PPO算法的思想也为其他相关的优化算法提供了启示,为这一领域的发展做出了重要贡献。 总而言之,PPO算法的起源源于OpenAI公司研究者们对基于策略梯度方法的改进探索,它通过引入近端优化和裁剪机制来提高训练稳定性和采样效率,为强化学习领域带来了重要的突破。 ### 回答2: Proximal Policy Optimization(简称PPO)是由OpenAI于2017年提出的一种强化学习算法。这个算法的灵感来自前人提出的TRPO(Trust Region Policy Optimization)算法。TRPO算法是一种基于策略梯度的算法,它通过限制策略更新的步长,保持原始策略与更新策略的KL散度在可接受范围内,从而确保策略更新的稳定性。 然而,TRPO算法的计算复杂度较高,且在实际应用中存在一些不足之处。鉴于这些问题,OpenAI团队对TRPO进行改进而提出了PPO算法。 PPO算法提出了一个新的目标函数,在保证更新策略不会离原始策略太远的前提下,最大化策略梯度并通过剪切来调节步长。这样,PPO算法在计算效率和稳定性上都比TRPO有所提升。此外,PPO还引入了重要性比率修正项,用于抵消由采样引入的偏差,提高更新的准确性。 PPO算法的起源可以追溯到强化学习的研究和应用需求。在过去几年中,强化学习在各个领域取得了巨大的进展,包括机器人控制、游戏AI等。然而,现有的算法在性能和效率上仍然存在着一些问题。因此,PPO算法的提出是为了解决这些问题,进一步推动强化学习的发展。 总之,PPO算法的起源可以归结为对既有算法的改进和创新。通过提出新的目标函数和修正项,PPO算法在计算效率和稳定性上有了明显的改进,使得强化学习能够更好地应用于各个领域。 ### 回答3: Proximal Policy OptimizationPPO)是一种由OpenAI提出的强化学习算法,其起源可以追溯到自然策略梯度(Natural Policy Gradient)算法和策略梯度定理。 自然策略梯度算法是一种基于策略梯度的方法,其主要思想是对策略进行优化,以最大化预期回报。然而,自然策略梯度算法在实际应用中存在一些问题,例如训练不稳定和采样效率低下。 为了解决这些问题,OpenAI团队在2017年提出了PPO算法。PPO算法的核心观点是尽量改善策略,但同时保持策略的近似保持不变(approximately keeping policy)。 PPO的基本原理是,通过执行多个策略更新步骤,每个更新步骤都在同样的时间内执行多个策略,以最大限度地改善策略,并且通过一种称为"clipping"的技术来约束策略更新的幅度。"clipping"技术可以控制策略改进的幅度,以防止策略更新过大而导致训练不稳定。 通过这样的方式,PPO可以在保持较大的更新幅度的同时,避免过度更新策略,从而提高训练的稳定性和采样效率。 总结起来,Proximal Policy Optimization的起源可以追溯到对自然策略梯度算法的改进和优化。它通过多种策略更新步骤和"clipping"技术,使得训练更加稳定和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值