首页 > 编程语言 > 详细

强化学习 IMPALA算法

时间:2021-04-01 18:11:08      阅读:38      评论:0      收藏:0      [点我收藏+]

论文:https://arxiv.org/pdf/1802.01561.pdf

参考:https://zhuanlan.zhihu.com/p/58226117

以下是论文的选择性翻译QAQ

摘要:

在这篇论文中,我们致力于解决使用单强化学习智能体和一组参数来解决多任务问题。LMPALA(Importance Weighted Actor-Learner Architecture)是为了解决增长的数据量和训练时间而出现的,它不但在单机训练的时候能更有效的利用资源,而且在数千台机器的训练中不牺牲数据效率和资源利用率。通过将acting和learning解耦,并和一种叫V-trace的新矫正方法结合,我们获得了稳定且高的吞吐量。我们在DMLab-30(这是DeepMind Lab的一个有30个任务的环境)和Atari-57中用多任务强化学习证明了IMPALA的有效性,我们的结果表明IMPALA在只需要更少的数据就能比以前的智能体表现更好。

简介:

深度强化学习方法通过试错法已经精通很多领域。虽然围棋和Atari的进步引人注目,但是由于智能体在训练的时候是独立的,所以进步就只在单一领域。我们有兴趣开发一种既能掌握各种任务集也能适应各种环境的新方法。

训练一个智能体处理多个任务的主要挑战是可扩展性。因为现行的方法像A3C或者UNREAL要精通一个领域需要花大量的时间,一次在几十个领域上训练他们太慢了。

我们在表1展示了IMPALA。IMPALA足以胜任数千个机器的学习,并且不牺牲数据效率和资源利用率。

技术分享图片

 

 基于A3C的智能体,worker从中心参数服务器获取参数,IMPALA的actor上传轨迹经历(状态,动作,回报的序列)给一个集中学习的learner。因为在IMPALA中learner能获得完整的轨迹经历,当我们并行且独立执行操作时,我们可以用GPU通过mini-batch去执行更新,这种解耦的结构可以获得很高的吞吐量。然而,由于在几次更新之后产生轨迹的策略会落后于learner的策略,学习变成了off-policy。因此,我们引入V-trace离线actor-critic算法来矫正这个有害差异。

通过结合可拓展结构和V-trace, IMPALA获得了非常高的吞吐量,使得他比单机的A3C快30倍,更关键的是,IMPALA也比A3C数据利用率更高,在超参数和网络结构的健壮性更好,这让我们能构建更深的网络。我们在DIMab-30上用训练一个智能体来验证IMPALA的有效性。

2、关联网络

最早提升DRL规模的尝试依赖于多个worker的分布式异步SGD。例如分布式A3C和Gorila,一种分布式版本的DQN。异步SGDRL的替代方案包括进化算法,分布式BA3C和有分布式存储池但是同步的learner的Ape-X。

还有一种拓宽强化学习的方式是通过使用GPU。最简单的方案之一是Batched A2C。在每一步中,Batched A2C产生一个batch的动作并应用于环境中。因此,每个batch中最慢的环境代表了每一步的时间。换句话说,环境速度的高方差会严重限制性能。Batched A2C在Atari环境中运行的非常好,因为相比于复杂的张量计算,回报和游戏逻辑很容易计算。然而,在更复杂的视觉或物理环境中,模拟的速度可能会变得更慢,而且每一步所需的时间差异也很大。环境或许也会有可变长的episode使得初始化episode的时候变慢。

和IMPALA结构最像的熵GA3C,它也使用了异步数据收集以便更好的利用GPU。它通过使用动态batch将acting和gradient calculation解耦,forward和gradient backward解耦。actor/learner在GA3C是异步的,这导致了学习过程中的不稳定,只通过在动作的概率熵添加小常数来缓解。作为对比,IMPALA使用了更好的V-trace算法。

和之前最接近的算法熵Retrace算法,它介绍了一种对多步RLoff-policy进行修正的方法,它已经被使用很多个智能体结构中。Retrace需要学习状态-动作的Q值以便让off-policy是正确的。然而,很多的actor-critc方法例如A3C学习状态函数V替代状态-动作汗水Q。V-trace是状态价值函数。

3、IMPALA

IMPALA使用了actor-critic架构来学习policy和baseline。产生经验的过程从学习参数中解耦。这个结构包含若干组actor,不断产生轨迹经历,之后一个或者更多的learner使用这些从actor送来的经历进行off-policy学习。

在每个轨迹的开始,一个actor更新自己的本地policy为最新的learner的policy,并在环境中运行n步。在n步之后,actor通过一个队列将状态-动作-回报和策略分布并且初始化LSTM给learner。learner通过一组轨迹持续更新侧拉,每一组都是从很多的actor中收集到的。这个简单的结构使learner可以使用GPU来加速,actor也可以分布在很多机器上。然而,learner的policy是可能比actor的policy更新的,因此在actor和learner之间需要policy-lag。V-treace矫正这个lag获得了极高的吞吐率也保持的数据的有效性。通过使用actor-learner结构,提供了像分布式A3C算法那样的容错率,但是由于actor发送的是观察数据而不是参数/梯度所以通信开销更低。

随着引入非常深的模型结构,单个GPU的速度经常变成训练中的限制因子。IMPALA可以和分布式learner一起有效训练大型神经网络。参数分布在learner中,actor并行的从所有的learner中检索参数而只将观察到的数据送给一个learner。IMPALA使用同步参数更新,这在扩展至很多机器时对保持数据有效性很重要。

3.1. 效率优化

 

强化学习 IMPALA算法

原文:https://www.cnblogs.com/pkgunboat/p/14606260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!