转载

OpenAI研究 近端策略优化


发布
PPO 使我们能够在具有挑战性的环境中训练 AI 策略,如上图所示的Roboschool,代理试图到达目标(粉红色球体),学习行走、跑步、转弯、利用其动量从轻微撞击中恢复,以及如何被打翻时从地上站起来。

策略梯度方法 是最近在使用深度神经网络进行控制方面取得突破的基础,从 视频游戏到 3D 运动,再到 围棋。但是通过策略梯度方法获得好的结果是具有挑战性的,因为它们对步长的选择很敏感——步长太小,进展缓慢得无可救药;太大,信号就会被噪声淹没,或者可能会看到性能的灾难性下降。它们的样本效率通常也很低,需要数百万(或数十亿)个时间步来学习简单的任务。

研究人员试图通过限制或以其他方式优化策略更新的大小,使用 TRPO 和 ACER 等方法来消除这些缺陷。这些方法各有优缺点——ACER 比 PPO 复杂得多,需要添加用于偏离策略校正和重放缓冲区的代码,而在 Atari 基准测试中只比 PPO 好一点点;TRPO——虽然对连续控制任务很有用——但不容易与在策略和价值函数或辅助损失之间共享参数的算法兼容,例如用于解决 Atari 和其他视觉输入重要的领域中的问题的算法。

PPO

通过监督学习,我们可以轻松实现成本函数,对其运行梯度下降,并且非常有信心我们将通过相对较少的超参数调整获得出色的结果。强化学习的成功之路并不那么明显——算法有许多难以调试的移动部分,并且需要大量的调整才能获得良好的结果。PPO 在易实现性、样本复杂性和易调性之间取得平衡,试图在每一步计算更新,使成本函数最小化,同时确保与先前策略的偏差相对较小。

我们 之前 详细介绍了 PPO 的变体,它使用自适应 KL 惩罚来控制每次迭代时策略的变化。新变体使用其他算法中通常不存在的新颖目标函数:

大号大号()=^[(())^,((),1个,1个+)^)]大号剪辑_ _ _( θ )=乙^吨的[分钟( r吨的( θ ))A^吨的,剪辑( r _ _ _吨的( θ ) ,1个−, _1个+ε )A^吨的)]
  • θ是策略参数
  • ^乙^吨的表示对时间步长的经验期望
  • r吨的分别是新老政策下概率的比值
  • ^A^吨的是时间的估计优势
  • ε是超参数,通常为0.1或0.2

该目标实现了一种与随机梯度下降兼容的信赖域更新方法,并通过消除 KL 惩罚和需要进行自适应更新来简化算法。在测试中,该算法在连续控制任务上表现出最佳性能,几乎可以与 ACER 在 Atari 上的性能相媲美,尽管实现起来要简单得多。

可控的复杂机器人

经过 PPO 训练的代理制定灵活的移动策略,让他们在前往目标位置时即兴转弯和倾斜。

我们已经根据 PPO 训练的策略创建了交互式代理——我们可以 使用键盘 为机器人在 Roboschool 的环境中设置新的目标位置;尽管输入序列与代理的训练序列不同,但它设法进行了概括。

基线:PPO、PPO2、ACER 和 TRPO

此版本的 基线 包括 PPO 和 TRPO 的可扩展、并行实现,它们都使用 MPI 进行数据传递。两者都使用 Python3 和 TensorFlow。我们还将用于训练上述机器人的策略的预训练版本添加到 Roboschool  agent zoo中。

更新:我们还发布了支持 GPU 的 PPO 实现,称为 PPO2。这比 Atari 上当前的 PPO 基线快大约 3 倍。此外,我们还发布了 Actor Critic with Experience Replay (ACER) 的实现,这是一种样本高效的策略梯度算法。ACER 利用重放缓冲区,使其能够使用每条采样经验执行多个梯度更新,以及使用 Retrace 算法训练的 Q-Function 近似值。

我们正在寻找帮助构建和优化强化学习算法代码库的人。如果您对 RL、基准测试、全面实验和开源感到兴奋,请 申请,并在您的申请中提及您阅读了基线 PPO 帖子。

详细论文