查看: 228|回复: 0

[Distributed Training]强化学习并行训练论文合集

[复制链接]
论坛徽章:
7
caffe徽章
日期:2017-03-10 12:02:48Tensorflow徽章
日期:2018-04-20 15:27:10ROS徽章
日期:2018-08-09 16:25:27OpenCV徽章
日期:2018-10-18 14:41:24OpenAI课程徽章
日期:2018-11-09 11:07:07Keras徽章
日期:2019-01-03 15:42:43智慧眼徽章
日期:2019-01-24 16:02:59
发表于 2019-9-1 23:42 | 显示全部楼层 |阅读模式

算法 开源 GPU 强化学习 并行计算

最近组里在讨论接下来在强化学习这块的研究方向,在讨论之前,我们把强化学习各个子方向的论文都粗略过了一下,涉及到model-free/model-based/multi-agent/deep exploration/meta-learning/imitation learning/application/distributed training等方向。我想着当时查找阅读相关文章花费了不少精力,决定开个专栏把我看的论文给整理一遍,主要是为了让别的同学少走点弯路,也方便自己回顾。

本文讨论到的相关论文连接放在了github(点我)上,后续会一直更新。
整体介绍
强化学习需要的数据量其实是相当大的,在15年DQN发布的时候,要复现论文指标得和游戏交互10000000步。这个数量级在持续增长,deepmind 在训练AlphaGo的时候也是使用了上百块GPU来训练数月。去年年底他们还在星际争霸2训练了多智能体的算法(multi-agent),一共有上千个agent,每个agent所学习的数据量相当于人类连续玩了数百年的数据量。整体而言,强化学习领域训练出效果更好的智能体需要更多的数据,这也就对我们算法的训练速度有了极大的要求。
论文整理
Asynchronous Methods for Deep Reinforcement Learning ICML 2016.paper
Volodymyr Mnih, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver, Koray Kavukcuoglu
简述:这篇是RL领域更为经典的并行工作。作者通过多线程的方式来实现并行:每个线程有一份独立的policy参数以及一个游戏环境,这个policy会和环境交互产生数据来计算梯度。在跑每个episode之前,这个policy都会从parameter server上拉取的模型参数,然后在跑完每个episode之后计算梯度后把梯度刷到parameter server上。在当时看来,这个算法不仅能极大提升训练速度,而且效果也比当时的单机DQN版本好很多。作者提到说是由于每个线程的policy探索了不同的状态空间而提升了算法效果。

A2C ---- OpenAI blog
简述: A3C发布之后,OpenAI跟进发表了A2C,主要的工作是把异步版本的A3C改造成A2C。并行计算到底采用同步还是异步的方式是一个存在争议的问题,两者并没有谁比谁地好。但是近些年,并行计算这块在学术界更多研究的是同步计算,因为同步计算的逻辑更加清晰,可复现性有保障(参考Facebook18年发的1小时训练一个image net)。这个工作虽然只是在OpenAI的博客上面发表,没有正式投稿到会议中去,但是已经成为了A3C更为常用的一个分支。

GA3C: GPU-based A3C for Deep Reinforcement Learning NIPS 2016.paper
Iuri Frosio, Stephen Tyree Jason Clemons Jan Kautz
简述:A3C发布之后的另一个重要分支。原版的A3C是主打CPU这种低成本的计算方式的,但是在单个GPU上是不是就没法做并行了呢?不是的,作者通过单GPU + 多CPU的方式实现了并行,效果和原版的持平。

Distributed Prioritized Experience Replay ICLR 2018.paper
Dan Horgan, John Quan, David Budden, Gabriel Barth-Maron, Matteo Hessel, Hado van Hasselt, David Silver
简述:上面提到的A3C算法是Actor-Critic的算法并行,这边文章介绍的是在DQN这类Critic-only的算法上面做的并行工作。Critic-only算法的主要特点是通过一个Experience Replay Memory来持续收集数据以提升算法的稳定性(DQN里面提到的重要trick),这里作者是直接多个启动actor和环境做交互,产生的数据放在一个全局共享的Memory中去。为了提升效率,作者也采用了带优先级的memory。

IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures
ICML 2018.paper
Lasse Espeholt, Hubert Soyer, Remi Munos, Karen Simonyan, Volodymir Mnih, Tom Ward, Yotam Doron, Vlad Firoiu, Tim Harley, Iain Dunning, Shane Legg, Koray Kavukcuoglu
简述:这是并行RL算法领域引用更为高的一篇文章。文章和以往做的工作不同,不仅仅有工程上实验效果的大幅提升,还做了理论的分析解决了on-policy与off-policy的训练差异问题,整体工作是相当solid的。作者同时启动了多个Actor和一个Learner,每个Actor都是包含整个policy参数的,负责和环境交互产生数据,Learner是负责训练参数还有同步参数给Actor的。这就有个问题了,参数同步会有无法避免的延迟,那这个就违背了On-policy算法的更新原则,作者提出了一种很好的方式解决这个问题,对有延迟的数据进行修正使得on-policy的训练方式可以继续进行。
Distributed Distributional Deterministic Policy Gradients ICLR 2018.paper
Gabriel Barth-Maron, Matthew W. Hoffman, David Budden, Will Dabney, Dan Horgan, Dhruva TB, Alistair Muldal, Nicolas Heess, Timothy Lillicrap
简述:前面提到的文章主要是解决离散问题的并行加速,这篇文章是把DDPG改成并行版本的。在DDPG的基础上,作者把Critic里面的建模从一个均值的预估改成了对分布的预估(参考了distributional RL),不同的worker之间share同一个replay buffer,另外在更新的时候也是采用了N-step 的bootstrap方式(原DDPG是单步的bootstrap 更新方式)。
Emergence of Locomotion Behaviours in Rich Environments arXiv. paper
Nicolas Heess, Dhruva TB, Srinivasan Sriram, Jay Lemmon, Josh Merel, Greg Wayne, Yuval Tassa, Tom Erez, Ziyu Wang, S. M. Ali Eslami, Martin Riedmiller, David Silver
简述:介绍完DDPG的并行版本之后,我们来看下PPO的并行版本。首先建议大家看下这个视频,deepmind基于mujoco开发了一些有趣的挑战,看着视觉效果还是挺好的。这篇文章说实话改进不大,文章是采用同步的方式更新参数的(作者提到调研了异步,但是效果不好),然后PPO里面的Advantage计算则改成了N-step的计算,这一个和上一篇文章D4PG类似,另外就没有太多改进了。作者还指出通过并行计算,即便是很简单的reward设定方式也能让agent学习到很复杂的决策方式。
GPU-Accelerated Robotic Simulation for Distributed Reinforcement Learning CoRL 2018. paper
Jacky Liang, Viktor Makoviychuk, Ankur Handa, Nuttapong Chentanez, Miles Macklin, Dieter Fox
简述:英伟达在CoRL2018上发的一篇很有意思的文章。大家都想着用网络通讯增加worker数量的方法来提升整个并行框架的计算速度,Nvidia这时候跑出来呼吁大家直接用GPU做仿真就好,速度更快。论文里面是实现了mujoco版本的一些仿真器,有上万个仿真人同时在视频里面跑,看着是想当好玩的,强烈建议大家去看下这个视频。不过这个文章也是Nvidia用于秀GPU发的,代码并没有开源,仿真环境也没有开源,看看热闹就好。
Recurrent Experience Replay in Distributed Reinforcement Learning ICLR 2019. paper
Steven Kapturowski, Georg Ostrovski, John Quan, Remi Munos, Will Dabney
简述:截止到目前(2019/08/19)在Atari游戏上的STOA效果,相对之前的IMPALA等并行工作提升幅度很大,无论是收敛速度还是最终效果(从图就可以看出来)。简单来说,这个工作就是Apex的RNN版本(Reviewer原话),两者都是有一个共享的RPM来收集不同worker的数据,然后通过off-policy算法来更新参数,不同的是这个文章是通过RNN来建模的。遗憾的是这个文章并没有开源代码,本来RNN的具体实现就有挺多trick,而且是RNN+并行这种实现结构,没有开源的话挺难让别人来follow他们的工作。
最后是一个表格的总结,具体的论文 链接点我

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-11-20 07:55 , Processed in 0.143318 second(s), 29 queries .