我们最近出版的一篇文章宣布五深neuroevolution论文,包括发现遗传算法可以解决深层次的强化学习问题以及流行的替代品,如深q学习和政策梯度。这个工作之前Salimans et al . 2017显示,相同的进化策略(ES),另一个neuroevolution算法。我们进一步描述了如何ES可以通过添加探索改进压力对代理的形式新颖,和ES与梯度下降。所有这些研究是计算昂贵的雷竞技是骗人的:它是在720年和3000年之间的cpu上进行分布在一个大的高性能计算集群,看似把深neuroevolution遥不可及对于大多数研究人员来说,学生,公司和爱好者。

今天,我们释放开源代码可以进行这样的研究更快和更便宜。雷竞技是骗人的在这段代码中,深层神经网络训练时间玩雅达利,现在花~ 1小时720 cpu, ~ 4小时单一的现代桌面。这一点很重要,因为它极大地影响我们的认知范围的资源需要进行这样的研究,使其可访问到一个更大的研究小组。雷竞技是骗人的


Neuroevolution技术竞争替代解决具有挑战性的深度强化学习问题,雅达利和人形等运动。展示行为的深层神经网络训练与一个简单的遗传算法。


是什么使它更快,改变了只有一个电脑上工作吗?

事实证明,现代高端台式机,几十个虚拟核,自己像一个温和的计算集群。如果正确评估并行执行,720核上运行,需要1小时可以在48核的cpu运行个人电脑在16小时,慢,但不是特别如此。现代桌面也有gpu,然而,快速的运行深层神经网络(款)。我们的代码最大化使用cpu和gpu的并行执行。它深层神经网络运行在GPU,域(如视频游戏或物理模拟器)在CPU上,和并行执行多个评估在一个批处理,有效地允许使用所有可用的硬件。如下所述,它还包含自定义TensorFlow操作,大大提高训练速度。

支持gpu的训练需要一些修改神经网络操作是如何计算的。在我们的设置中,运行单个神经网络比GPU更快的使用一个CPU,但GPU好处大大当类似的计算(如远期通过神经网络)是并行执行的。利用GPU我们因此聚合多个神经网络通过批次。这样做是很常见的在神经网络的研究中,但通常涉及到雷竞技是骗人的相同神经网络处理一批不同的输入。然而,进化操作的数量不同的神经网络,但即使发生明显变化的网络是不同的(虽然内存需求增加)。我们实现了这个人口配料基本TensorFlow操作和它产生了大约2 x加速,减少培训时间约8小时。然而,我们意识到我们可以做得更好。尽管TensorFlow提供所需的所有操作,这些操作不为这种类型的计算。我们因此增加了两种类型的自定义TensorFlow操作,相互结合,产生另一个2 x加速,减少培训大约4个小时在单个机器上,最初提到的数量。

第一个定制TensorFlow操作大大加快了gpu。它是专门为异构神经网络计算在RL域集是不同的长度,是真的在雅达利和许多模拟机器人学习任务。它只允许GPU尽可能多的网络需要跑,而不需要一个固定的(大)的网络运行每个迭代。

到目前为止所描述的改进了gpu比cpu成本效益。事实上,gpu是如此之快,雅达利模拟(CPU)不能保持,即使多处理库用于并行化计算。为了提高模拟性能,我们增加了第二个组定制TensorFlow操作。这些改变了包装的雅达利模拟Python定制TensorFlow命令(重置,一步,观察),利用快速提供的多线程功能TensorFlow没有典型的减速与Python和TensorFlow相互作用有关。这些变化导致整体约雅达利的3 x加速模拟器。这些创新应该加速强化学习研究领域的多个实例(例如雅达利或物理MuJoCo模拟器)并行运行,这是一个越来越普遍的在强化学习技雷竞技是骗人的术,如分布式深q学习的(DQN)和分布式策略梯度(如。A3C)。

一旦我们有能力在gpu上运行网络人口的迅速和更快的cpu域模拟器,挑战成为保持所有的资源尽可能地在电脑上运行。如果我们做了一个向前传递每一个神经网络,要求其应采取什么行动在当前的状态,然后在每个计算其回答cpu运行游戏模拟器将什么都不做。类似地,如果我们把行动和问域模拟器“州由于这些操作什么?”,然后运行神经网络将闲置的gpu在这个仿真的步骤。这是多线程CPU + GPU选项如下所示。虽然单线程计算的一个进步,但它仍然是低效的。

更好的解决方案是有两个或两个以上的神经网络与模拟器的子集,并保持gpu和cpu同时运行更新网络或模拟不同根据步骤(神经网络或模拟)准备。这种方法是最右边的管线式CPU + GPU”选项如下图所示。,和其他改进上面所提到的,我们可以得到~ 4 m参数神经网络的训练时间到上面提到的数量在一台计算机(约4小时)。
人工智能的CPU和GPU加速优化调度RL的异构网络的数量。蓝色的盒子是域模拟器,比如像MuJoCo雅达利游戏模拟器或物理引擎,可以有不同的长度。天真的方式使用GPU(左)将导致低性能,有两个原因:1)一个用于GPU的批量大小,无法利用的并行计算能力,和2)空闲时间而GPU等待CPU,反之亦然。多线程方法(中心)允许更有效的使用GPU并行模拟器,通过多个cpu一步但时使GPU空闲cpu工作,反之亦然。管线式实现(右)允许GPU和CPU运行效率。这种方法也适用于多个gpu和cpu同时操作,在实践中这是我们做的。

的影响越来越快、越来越便宜的实验

我们的代码使每个人在研究社区,包括学生和自学成才的学习者,快速实验雷竞技是骗人的迭代训练深神经网络雅达利等具有挑战性的问题,迄今为止一直是一个豪华仅限于资金雄厚工业和学术实验室。

更快的代码产生研究进展。雷竞技是骗人的例如,我们的新代码使我们推出一个广泛hyperparameters搜索遗传算法的一小部分成本,导致性能改进在大多数雅达利游戏比我们最初报道。我们已经更新了我们的原创arXiv出版有了这些新的结果。更快的代码也是催化我们所有的当前研究改善深neuroevolution通过缩短我们的迭代次数,让我们尝试每一雷竞技是骗人的个新想法在更多的领域和运行的算法了。

我们的新软件资源库包括深切的实现遗传算法,进化策略算法Salimans et al。和我们的(令人惊讶的是竞争!)随机搜索控制。我们希望其他人能使用我们的代码来加速自己的研究活动。雷竞技是骗人的我们还邀请了社区建设我们的代码来改进它。例如,进一步加速效果可能与分布式GPU与添加其他TensorFlow操作培训和定制为这种类型的计算。

有很多建筑周围深neuroevolution势头。除了我们的工作和,OpenAI上面所提到的,也有使用进化算法从最近的深度学习的进步DeepMind,谷歌大脑,有知觉的。我们希望开源的代码有助于这一势头,使更容易。

最一般的意义上,我们的目标是降低成本这一研究,研究者的背景可以尝试自己的想法改善深neuroevolution并利用它来雷竞技是骗人的完成他们的目标。

通知未来的超级人工智能实验室的博客文章,请报名参加雷竞技到底好不好用我们的邮件列表,或者你可以订阅这个超级人工智能实验室的YouTube频道。如果你有兴趣加入超级人工智能实验室,请在申请Uber.ai

订阅我们的通讯跟上的最新创新超级工程。

评论