OpenAI研究 近端策略优化
发布
策略梯度方法 是最近在使用深度神经网络进行控制方面取得突破的基础,从 视频游戏到 3D 运动,再到 围棋。但是通过策略梯度方法获得好的结果是具有挑战性的,因为它们对步长的选择很敏感——步长太小,进展缓慢得无可救药;太大,信号就会被噪声淹没,或者可能会看到性能的灾难性下降。它们的样本效率通常也很低,需要数百万(或数十亿)个时间步来学习简单的任务。
研究人员试图通过限制或以其他方式优化策略更新的大小,使用 TRPO 和 ACER 等方法来消除这些缺陷。这些方法各有优缺点——ACER 比 PPO 复杂得多,需要添加用于偏离策略校正和重放缓冲区的代码,而在 Atari 基准测试中只比 PPO 好一点点;TRPO——虽然对连续控制任务很有用——但不容易与在策略和价值函数或辅助损失之间共享参数的算法兼容,例如用于解决 Atari 和其他视觉输入重要的领域中的问题的算法。
PPO
通过监督学习,我们可以轻松实现成本函数,对其运行梯度下降,并且非常有信心我们将通过相对较少的超参数调整获得出色的结果。强化学习的成功之路并不那么明显——算法有许多难以调试的移动部分,并且需要大量的调整才能获得良好的结果。PPO 在易实现性、样本复杂性和易调性之间取得平衡,试图在每一步计算更新,使成本函数最小化,同时确保与先前策略的偏差相对较小。
我们 之前 详细介绍了 PPO 的变体,它使用自适应 KL 惩罚来控制每次迭代时策略的变化。新变体使用其他算法中通常不存在的新颖目标函数:
- θ是策略参数
- 乙^吨的表示对时间步长的经验期望
- r吨的分别是新老政策下概率的比值
- A^吨的是时间的估计优势吨
- ε是超参数,通常为0.1或0.2
该目标实现了一种与随机梯度下降兼容的信赖域更新方法,并通过消除 KL 惩罚和需要进行自适应更新来简化算法。在测试中,该算法在连续控制任务上表现出最佳性能,几乎可以与 ACER 在 Atari 上的性能相媲美,尽管实现起来要简单得多。
可控的复杂机器人
我们已经根据 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 近似值。