业界 | OpenAI开源算法ACKTR与A2C:把可扩展的自然梯度应用到强化学习

08-19 15:25 首页 机器之心

选自OpenAI Blog

作者:YUHUAI WU、ELMAN MANSIMOV、SHUN LIAO、ALEC RADFORD、JOHN SCHULMAN


近日,OpenAI 在其官方博客上发布了两个算法实现:ACKTR 和 A2C。A2C 是 A3C(Asynchronous Advantage Actor Critic)的一个同步变体,两者具有相同的性能。而 ACKTR 是一个比 A2C 和 TRPO 样本效率更高的强化学习算法,且每次更新仅比 A2C 略慢。


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

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


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


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


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 高的多。



使用 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 倍。代码地址:https://github.com/openai/baselines。



本文为机器之心编译,转载请联系本公众号获得授权

?------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com


首页 - 机器之心 的更多文章: