视频 | NIPS 2017线上分享第一期:新型强化学习算法ACKTR

百家 作者:机器之心 2017-11-10 08:50:56

上周我们发布了《攻略 | 虽然票早已被抢光,你可以从机器之心关注 NIPS 2017》,在 NIPS 2017 正式开始前,我们将选出数篇优质论文,邀请论文作者来做线上分享,聊聊理论、技术和研究方法。11 月 8 日,第一期分享已经结束。


周三晚上,多伦多大学三年级博士生 Yuhuai Wu(吴宇怀)为大家分享了 NIPS 2017 论文《Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation》。以下是本期视频回顾:


<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.588235294117647" data-w="432" data-src="http://v.qq.com/iframe/player.html?vid=k05026fl3wa&width=370&height=208.125&auto=0" width="370" height="208.125" data-vh="208.125" data-vw="370" style="display: none; width: 370px !important; height: 208.125px !important;"></iframe>


本期分享 PPT 下载:https://pan.baidu.com/s/1bp4hqFX


ACKTR(音同「actor」,Actor Critic using Kronecker-factored Trust Region)是由多伦多大学和纽约大学的研究者联合开发的新算法。OpenAI 与其合作实现代码开源。作者在论文中展示 ACKTR 算法可以学习模拟机器人(以像素作为输入,连续的动作空间)和 Atari 游戏(以像素作为输入,离散的动作空间)的控制策略。


  • 代码:https://github.com/openai/baselines

  • 论文:https://arxiv.org/abs/1708.05144


ACKTR 可以学习连续性控制任务。比如仅仅根据低像素的输入,把一个机器手臂移动到目标位置(左图)。


ACKTR 融合了三种不同的技术:以 actor-critic 算法为基础,加上 TRPO 来保证稳定性,同时融入了提升样本效率和可扩展性的分布式 Kronecker 因子分解(Kronecker factorization)。


样本与计算复杂度


对于机器学习算法,主要需考虑两个因素:样本复杂度与计算复杂度。样本复杂度指智能体学习任务所需与环境交互的次数,计算复杂度指算法每步更新必需执行操作量。


ACKTR 比一阶方法如 A2C 有更好的样本复杂度,因为其使用自然梯度的方向而不是普通梯度方向来迭代。自然梯度给出了在参数空间中,每个网络的输出分布的单位变化下,改善目标函数的最优方向。通过限制 KL 离散度,我们确保新策略的行为与旧策略差别不大,以防止训练的损毁。


至于 ACKTR 的计算复杂度,因为其使用计算非常高效的 K-FAC 算法来估算自然梯度,所以 ACKTR 的每个更新步仅比标准梯度算法慢 10% 到 25%。之前的自然梯度算法,例如 TRPO(Hessian-free optimization)则需要非常昂贵的共轭梯度计算,致使其每步计算所需时间非常长。


下面两个视频中,你可以看到在 Q-Bert 游戏中使用 ACKTR 训练的智能体与使用 A2C 训练的智能体,在不同训练时段(timesteps)的对比。使用相同数量的训练样本后,ACKTR 训练的智能体的得分比 A2C 高的多。


<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" scrolling="no" data-src="http://v.qq.com/iframe/player.html?vid=w1323mwydoa&width=370&height=208.125&auto=0" width="370" height="208.125" data-vh="208.125" data-vw="370" style="display: none; width: 370px !important; height: 208.125px !important;"></iframe>
使用 ACKTR 训练的智能体(右)在短时间内的得分比 A2C(左)的智能体要高。


OpenAI baselines 代码开源,对比结果发布:


OpenAI Baselines 发布包含了 ACKTR 和 A2C 的代码实现。


我们还评估了 ACKTR 在一系列任务的表现。下文中,我们展示了 ACKTR 在 49 个 Atari 游戏中与 A2C、PPO、ACER 表现的对比。注:ACKTR 的作者只用了 Breakout 游戏对 ACKTR 的进行了超参数的调整。


ACKTR 也适用于大规模分布式训练。因为其不仅利用每个样本来估计梯度(gradient estimate),而且使用该样本信息去估计参数空间的局部曲率(local curvature)。



A2C 和 A3C


《Asynchronous Methods for Deep Reinforcement Learning》发表后,A3C 方法的影响力大大增强。该算法连接了多个关键思想:


  1. 在固定长度(比如,20 个时间步(timesteps))下执行同一个策略获得一长段经验,用来估计目标函数和优势函数(advantage function)。

  2. 策略和价值函数共享基层网络参数。

  3. 异步更新。


读完这篇论文之后,AI 研究人员思考异步是否可以改善性能(如,「或许增加噪声可以提供某种正则化或探索」),或者异步是否是一个允许基于 CPU 的实现的训练过程变得更快的实现细节。


研究人员发现另一种异步实现的替代方案,即一个同步的且非随机的实现。该实现等待每个行为完成自己的经验段的收集再执行更新。这个算法的一大优势是对于大批次数据的处理,它可以更好的利用 GPU 的效率。该算法叫作 A2C(advantage actor critic 的缩写)。


我们的同步 A2C 实现比异步实现表现要好。目前尚未看到任何证据证明异步引入的噪声能够提供任何性能收益。该方法的一个优势就是当使用大型网络时,它在单 GPU 的机器上比 CPU 为主的 A3C 的实现更快。


我们的代码包含了用 A2C 来训练的 CNNs,LSTM 的实现。


论文:Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation




摘要:在该研究中,我们将近期的提出的 Kronecker 因子的近似曲率(K-FAC),和置信域优化,应用到深度强化学习中。我们将该方法命名为「Actor Critic using Kronecker-Factored Trust Region」,(ACKTR)。就我们所知,这是首个可扩展的置信域自然梯度 actor-critic 的方法。同时它也能直接从原始像素输入(raw pixel input)中成功学习连续和离散的控制任务。我们在 Atari 游戏和 MuJoCo 环境中对此方法进行测试。与之前最顶尖的 on-policy actor critic 方法相比,我们提出的方法不仅能够获取更高的奖励,而且平均样本效率提高了 2 到 3 倍。



戳「阅读原文」,查看机器之心NIPS 2017专题策划并参与其中。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接