引言
近年来,深度强化学习取得了巨大的进展,在游戏、机器人控制等领域展现出了惊人的能力。然而,现有的强化学习算法仍然存在一些问题,如数据效率低、实现复杂、鲁棒性差等。本文提出了一种新的策略优化算法族 - 近端策略优化(Proximal Policy Optimization, PPO),旨在解决这些问题。
PPO 算法具有以下特点:
- 实现简单,仅需对 vanilla 策略梯度算法做少量修改
- 样本效率高,能够充分利用已收集的数据
- 鲁棒性好,对超参数不敏感,易于在不同任务间迁移
- 兼容各种网络架构,如循环神经网络、参数共享等
PPO 算法的核心思想是:在每次策略更新时,限制新旧策略的差异,避免过大的策略更新导致训练不稳定。为此,PPO 设计了一个新的目标函数,通过裁剪概率比来实现这一点。
接下来,我们将详细介绍 PPO 算法的原理、实现细节以及在各种任务上的表现。
背景:策略优化方法
在介绍 PPO 之前,我们先简要回顾一下策略优化的基本概念。
策略梯度方法是一类重要的强化学习算法,其核心思想是:直接对策略函数 \pi_\theta(a|s) 进行优化,使得期望回报最大化。最常用的策略梯度估计器形式为:
其中 \hat{A}_t 是优势函数的估计。
实现时,通常构造如下目标函数:
然后使用随机梯度上升算法对其进行优化。
然而,直接优化 L^{PG} 往往会导致过大的策略更新,破坏训练的稳定性。为了解决这个问题,Trust Region Policy Optimization (TRPO)算法引入了一个约束:
这里引入了一个 KL 散度约束,限制新旧策略的差异。
TRPO 取得了很好的效果,但其实现较为复杂。PPO 的目标是设计一种更简单的算法,同时保持 TRPO 的优点。
PPO 算法
裁剪的替代目标函数
PPO 的核心创新在于设计了一个新的目标函数:
其中 r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} 是重要性采样比,epsilon 是一个小常数,如 0.2。
这个目标函数的关键在于 clip 操作,它限制了 r_t(\theta) 的变化范围。具体来说:
- 当 \hat{A}_t > 0 时,clip 操作会阻止 r_t(\theta) 增长超过 $1+\epsilon$
- 当 \hat{A}_t < 0 时,clip 操作会阻止 r_t(\theta) 减小超过 $1-\epsilon$
这样就可以避免过大的策略更新。
下图直观地展示了单个时间步的 L^{CLIP} 函数形状:
可以看到,当概率比 r 偏离 1 太多时,目标函数会被"剪平"。
自适应 KL 惩罚系数
除了裁剪目标函数外,PPO 还提出了另一种方法:自适应 KL 惩罚。其思想是在目标函数中加入 KL 散度项:
然后动态调整 \beta 的值,使得每次更新后的 KL 散度接近某个目标值 d_{target}。
具体来说,在每次策略更新后:
- 计算平均 KL 散度 d = \hat{E}_t[KL[\pi_{\theta_{old}}(\cdot|s_t), \pi_\theta(\cdot|s_t)]]
- 如果 d < d_{target}/1.5,则 \beta \leftarrow \beta/2
- 如果 d > d_{target} \times 1.5,则 \beta \leftarrow \beta \times 2
这种方法可以自动调整惩罚系数,使得策略更新的幅度保持在合理范围内。
完整算法
PPO 算法的完整流程如下:
- 使用当前策略 \pi_{\theta_{old}} 采集一批数据
- 使用这批数据,通过随机梯度上升优化目标函数 L^{CLIP} 或 L^{KLPEN}
- 重复多个 epoch
- 更新 \theta_{old} \leftarrow \theta
- 回到步骤 1
在实际应用中,通常还会同时优化一个值函数 V(s)。完整的目标函数为:
其中 L_t^{VF} 是值函数的均方误差损失,S 是策略的熵,用于鼓励探索。
实验结果
连续控制任务
作者首先在 7 个 MuJoCo 物理仿真环境上比较了不同的目标函数。结果显示,使用裁剪目标函数 L^{CLIP} 的效果最好。
然后,作者将 PPO 与其他几种流行的算法进行了对比,包括 TRPO、A2C 等。结果如下图所示:
可以看到,PPO 在大多数环境中都取得了最好的性能。
为了进一步展示 PPO 在高维连续控制问题上的能力,作者还在三个更复杂的 3D 人形机器人控制任务上进行了测试。下图展示了学习曲线:
可以看到,PPO 能够有效地学习这些复杂的运动控制技能。
Atari 游戏
除了连续控制任务,作者还在 Atari 游戏基准上测试了 PPO 的性能。下图展示了 PPO 与 A2C 和 ACER 在 49 个 Atari 游戏上的对比结果:
统计显示,PPO 在 30 个游戏中取得了最好的性能,远超 A2C(11 个)和 ACER(8 个)。这说明 PPO 不仅适用于连续控制任务,在离散动作空间的问题上也有出色表现。
结论
本文提出的 PPO 算法具有以下优点:
- 实现简单,仅需对 vanilla 策略梯度算法做少量修改
- 性能优异,在大多数任务上都优于现有方法
- 鲁棒性好,对超参数不敏感
- 通用性强,适用于各种任务和网络架构
这些特点使得 PPO 成为一种简单而强大的深度强化学习算法。未来,PPO 有望在更多领域得到广泛应用。
参考文献
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347.
- Schulman, J., Levine, S., Abbeel, P., Jordan, M., & Moritz, P. (2015). Trust region policy optimization. In International conference on machine learning (pp. 1889-1897).
- Mnih, V., Badia, A. P., Mirza, M., Graves, A., Lillicrap, T., Harley, T., ... & Kavukcuoglu, K. (2016). Asynchronous methods for deep reinforcement learning. In International conference on machine learning (pp. 1928-1937).
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于