跳到主要内容

10. PPO 算法

(Proximal Policy Optimization)算法是强化学习中最重要的算法之一,由 OpenAI 的 Schulman 等人于 2017 年提出。PPO 是一种基于策略梯度的 Actor-Critic 算法,既适用于连续动作空间,也适用于离散动作空间,正可谓 "遇事不决 PPO"。

PPO 的前身是 TRPO 算法,旨在克服 TRPO 算法中的一些计算上的困难和训练上的不稳定性。TRPO 通过定义策略更新的信赖域来保证每次更新的策略不会太远离当前的策略,但需要解决复杂的约束优化问题。PPO 则通过更简单的方式实现了类似的效果。

具身智能视角:PPO 是目前具身智能领域使用最广泛的 RL 算法。NVIDIA Isaac Gym 默认使用 PPO 训练四足机器人行走、灵巧手操作等任务;OpenAI 用 PPO 训练了灵巧手解魔方。PPO 的优势在于简单、稳定、易调参,是具身智能的首选基线算法。

10.1 重要性采样

在展开 PPO 算法之前,先铺垫重要性采样(importance sampling)。重要性采样是一种估计随机变量的期望或者概率分布的统计方法。假设需要从分布 中采样来计算 的期望值,但从 中采样困难,可以从另一个容易采样的分布 中采样:

对于离散分布:

比例 称为重要性权重。从方差角度分析:

越接近 时方差越小,即重要性权重越接近 1 越好。

重要性采样也是蒙特卡洛估计的一部分,只不过它是一种比较特殊的蒙特卡洛估计,允许我们在复杂问题中利用已知的简单分布进行采样,从而避免了直接采样困难分布的问题。

10.2 PPO 核心思想

PPO 算法的核心就是通过重要性采样优化 Actor-Critic 的策略梯度估计。目标函数:

其中旧策略分布 对应重要性采样中的目标分布 ,目标分布很难采样,所以在计算重要性权重时通常用上一次与环境交互采样中的概率分布来近似。 是提议分布,即通过当前网络输出的 probs 形成的 Categorical 分布(离散动作)或 Gaussian 分布(连续动作)。

本质上 PPO 就是在 Actor-Critic 基础上增加了重要性采样的约束,确保每次的策略梯度估计不会过分偏离当前策略,从而减少方差,提高算法的稳定性和收敛性。

10.2.1 Clip 约束

为了保证重要性权重不偏离 1 太远,PPO 使用 clip 约束:

其中 一般取 左右,将重要性权重裁剪在 的邻域范围内,实现起来非常简单。

10.2.2 KL-Penalty 约束

另一种方式是在损失中加入 KL 散度惩罚项:

其中惩罚系数 一般取 左右。实践中一般用 clip 约束,因为更简单、计算成本低、效果也更好。

10.3 PPO 算法伪代码

PPO 算法流程

10.4 PPO 是 on-policy 的

一个常见误区:有人认为 PPO 使用了旧策略的样本就是 off-policy 的。实际上,虽然这批样本是从旧的策略中采样得到的,但我们并没有直接使用这些样本去更新策略,而是使用重要性采样先将数据分布不同导致的误差进行了修正。换句话说,重要性采样之后的样本虽然由旧策略采样得到,但可以近似为从更新后的策略中得到的,即我们要优化的 Actor 和采样的 Actor 是同一个。因此 PPO 是 on-policy 的

这也意味着 PPO 的样本效率不如 off-policy 的 SAC/TD3,但在具身智能中,仿真环境(如 Isaac Gym)可以大规模并行采样,弥补了这一劣势。

10.5 思考

为什么 PPO 在具身智能中如此流行?

  1. 简单稳定:clip 约束实现简单,训练稳定性好
  2. 通用性强:同时适用于离散和连续动作空间
  3. 并行友好:on-policy 特性天然适合多环境并行采样(Isaac Gym 可同时运行数千个环境)
  4. 调参简单:超参数少且不敏感

为什么 DQN 和 DDPG 算法不使用重要性采样技巧呢?

DQN 和 DDPG 是 off-policy 算法,它们通常不需要重要性采样来处理不同策略下的采样数据。相反,它们使用目标网络和优势估计等技巧来提高训练的稳定性和性能。

PPO 算法原理上是 on-policy 的,但它可以是 off-policy 的吗?

可以,但条件比较严格。可以将经验回放与 PPO 结合,创建 PPO with Experience Replay(PPO-ER)算法。在 PPO-ER 中,智能体使用经验回放缓冲区中的数据来训练策略网络,但通常需要调整损失函数和采样策略以适应 off-policy 训练的要求。

PPO 算法更新过程中将轨迹样本切分成多个小批量时,可以将样本顺序打乱吗?

通常是可以的,这个过程称为样本随机化(sample shuffling),好处有降低样本相关性、减小过拟合风险以及增加训练多样性。