天天看点

策略梯度下降过时了,OpenAI 拿出一种新的策略优化算法PPO

雷锋网 ai 科技评论按:美国时间7月20日,openai 刚刚通过自己的研究博客介绍了一种新的优化算法 proximal policy

optimization(近端策略优化,ppo)。据介绍,这种算法用在强化学习中时表现能达到甚至超过现有算法的顶尖水平,同时还更易于实现和调试。所以

openai 已经把ppo作为自己强化学习研究中首选的算法。雷锋网(公众号:雷锋网) ai 科技评论把这篇介绍 ppo 算法的博文编译如下。

策略梯度下降过时了,OpenAI 拿出一种新的策略优化算法PPO

图中就是一个 openai 利用 ppo 训练的机器人。它要学习走、跑、转弯来尝试接近球型的、随机移动的目标;环境中还有一个会撞机器人的小球给它增大难度,所以它还要学会受到撞击以后恢复平衡,甚至被撞倒以后重新站起来。

近期的策略梯度的一类方法让深度神经网络在控制任务中取得了明显进步,电脑游戏、三维运动、围棋都是很好的例子。但是用策略梯度的方法取得好的结果也有一些难度,因为这类方法对迭代步骤数非常敏感:如果选得太小,训练过程就会慢得令人绝望;如果选得太大,反馈信号就会淹没在噪声中,甚至有可能让模型表现雪崩式地下降。这类方法的采样效率也经常很低,学习简单的任务就需要百万级至十亿级的总迭代次数。

efficient actor-critic with experience

replay,能高效采样的带有经验回放的表演者-评论者算法) 这样的方法,对策略更新的大小做出限制或者另外的优化。达到了这样的效果,这些方法也就在别的方面付出了代价:acer

比 ppo复杂得多,需要额外的代码用于策略外的纠正以及一个回放缓冲区,在 atari 测试中的具体表现却只比 ppo 勉强好一点点;trpo

虽然在连续控制任务中很有用,但是对策略函数和价值函数或者辅助损失之间有共享参数的算法较难兼容,比如 atari

和其它一些视觉输入占据主要部分的任务就是这样。

在监督学习中,实现损失函数、在上面做梯度下降都很容易,而且基本上不费什么功夫调节超参数就肯定能够得到很好的结果。但是在强化学习中想要获得好结果就没有这么简单了,算法中有许多变化的部分导致难以

debug,而且需要花很大的精力在调试上才能得到好结果。ppo

则在实现的难易程度、采样复杂度、调试所需精力之间取得了新的平衡,它在每一步迭代中都会尝试计算新的策略,这样可以让损失函数最小化,同时还能保证与上一步迭代的策略间的偏差相对较小。

策略梯度下降过时了,OpenAI 拿出一种新的策略优化算法PPO

信任区域更新的功能就可以通过这种目标函数得到实现,它与随机梯度下降兼容,而且移除了kullback–leibler

惩罚项及它的自适应升级功能差,从而简化了算法。在测试中,ppo 算法在连续控制任务中取得了最好的效果,而且在 atari

游戏测试中的表现几乎与 acer 持平;考虑到 ppo 的简便性,这样的结果真是令人惊喜万分。

策略梯度下降过时了,OpenAI 拿出一种新的策略优化算法PPO

openai 的研究人员们设计了具有互动能力的机器人,然后用 ppo 训练它们的策略。在这些基于 roboschool 环境的实验中,可以用键盘给机器人设定新的目标位置;尽管输入的目标序列与用来训练机器人的序列不同,机器人仍然可以进行泛化。

策略梯度下降过时了,OpenAI 拿出一种新的策略优化算法PPO

除了

roboschool 中这样的简单机器人,他们还用 ppo 教会复杂的仿真机器人走路,比如来自波士顿动力的 atlas

的仿真模型。相比前面的双足机器人的17个独立关节,这个模型中独立关节的数目高达30个。也有一些其它的研究人员已经成功借助 ppo

<a href="https://www.leiphone.com/news/201707/ztfu8enoouexsafp.html">机器人走路未必笨拙,deepmind新方法训练的人工智能走得就很飘逸</a>

继续阅读