Files
easy-rl/papers/Policy_gradient/Asynchronous Methods for Deep Reinforcement Learning.md
2023-01-15 20:02:24 +08:00

7.7 KiB
Raw Blame History

Asynchronous Methods for Deep Reinforcement Learning深度强化学习的异步方法

作者Volodymyr MnihAdrià Puigdomènech BadiaMehdi MirzaAlex GravesTim HarleyTimothy P. LillicrapDavid SilverKoray Kavukcuoglu

单位Google DeepMindMontreal Institute for Learning Algorithms MILA, University of Montreal

会议International Conference on Machine LearningICML 2016

论文地址:https://arxiv.org/abs/1602.01783

论文贡献:提出一种异步梯度优化框架,在各类型强化学习算法上都有较好效果,其中效果最好的就是异步优势演员-评论员Asynchronous advantage actor-critic A3C

  • Motivation(Why)神经网络与强化学习算法相结合可以让算法更有效但稳定性较差。通常的做法是使用经验回放来去除数据的相关性让训练更加稳定。但这个方法有两个缺点一是需要较多的内存和算力二是只适用于异策略off-policy强化学习算法。
  • Main Idea(What):本文提出使用异步并行的方法来代替经验回放技术,这种方法不仅可以去除数据相关性,所需资源较少,并且可以应用于多种类型强化学习方法。

Asynchronous RL Framework异步强化学习架构

本文将异步架构用于四种强化学习算法上一步Sarsa一步Q学习n 步Q学习以及优势演员-评论员advantage actor-critic A2C。这里可以看到此架构对于同/异策略、基于价值/策略的强化学习算法均适用。

异步框架有两大特点:

  1. 只使用一台带有多核CPU的机器不需要GPU。这种方式可以减少机器间的通信成本并且可以用Hogwild! 的方式进行训练。
  2. 多个行动者actor/worker并行可以采取不同的策略与环境互动让数据关联性减弱从而不需要经验回放技术这使得框架可以用于同策略方法并且训练时间与行动者数量近似线性关系。

先来聊聊Hogwild! ,这是框架的核心,不清楚的可参考知乎讲解,下图来源此文:

image-20221109221145358

这里举个栗子假设网络有100个参数worker $i$传来的梯度更新了40个参数后worker $j$传来的就开始更新了,当$i$更新完后前面的一些参数被$j$被覆盖掉了,但不要紧,$i$更新完了照样把当前更新后参数同步给$i$,这就是异步的意思。

接下来介绍四种异步算法:

Asynchronous one-step Q-learning异步一步Q学习

image-20230113230006360

  • \theta 和 $\theta^-$是共享的,任何线程可以修改
  • 梯度累积是一个增加batch size的技巧并且可以减少覆盖其他线程更新的机会更新频率降低了
  • $I_{target}$是同步两网络参数的间隔
  • $I_{AsyncUpdate}$是线程更新共享参数$\theta$的间隔

Asynchronous one-step Sarsa异步一步Sarsa

与上面的异步一步Q学习相比只有目标价值target value变为了$r+\gamma Q(s^\prime,a^\prime;\theta^\prime)$,其余部分相同。

Asynchronous n-step Q-learning异步n步Q学习

image-20230113231647918

  • 一步法的缺点是 r 只直接影响导致$r$产生的 Q(s,a) 值,其他的$Q$值被间接影响。$n$步法得到的$r$可以影响前面$n$步的$Q$值,这使得通过$r$更新$Q$值更加有效。后文实验有关于两者的比较。
  • 相较与一步法多了个线程专属参数$\theta^{\prime}$,这个参数在选取动作以及计算梯度的时候会使用,不受其他线程的影响,可以让训练更稳定。

Asynchronous advantage actor-criticA3C

image-20221109234156910

  • 共享了演员,评论家两网络参数,每个线程也有自己专属的,其他的与$n$步Q学习基本一样

实验

Atari游戏

在5个Atari游戏上比较算法训练速度

image-20221110000219965

  • DQN用K40GPU异步方法用16核的CPU可以看到异步优于DQN并且$n$步方法是优于一步方法的A3C明显优于其他算法。

在57个Atari游戏上比较算法性能

image-20230114134153685

  • 把A3C与当时在Atari游戏上最好的一些算法进行比较可以看到A3C训练4天的性能强于其他算法训练8天的水平。

TORCS Car Racing SimulatorTORCS赛车模拟器

在比Atari游戏更难的赛车环境里检验异步算法性能

image-20230114134919316

  • 可以看到A3C也是明显优于其他算法。

Continuous Action Control Using the MuJoCo Physics Simulator使用MuJoCo物理模拟器进行连续动作控制

在Mujoco环境里检验A3C对于连续型动作状态任务的性能

image-20230114145118141

  • 在绝大多数任务上A3C在学习率learning rate在大范围变动下都有很好的表现。

Labyrinth迷宫

这是一个3D迷宫环境每一轮episode都会随机生成一个迷宫迷宫里有苹果和门智能体找到一个苹果得1分找到门得10分。找到门后智能体会被随机放到迷宫任意一个地方并且之前被找到的苹果会重新生成。一轮持续60秒结束后新的一轮重新开始。

这个环境需要智能体找到一种通用的策略因为每一轮迷宫都不一样这对智能体挑战较大但作者训练A3C后发现此算法能达到很好的效果。

Scalability and Data Efficiency可扩展性和数据效率

在Atari游戏上检验算法的训练时间和数据效率随着线程数变化会如何改变

image-20230114151851212

  • 作者提出用一个线程达到固定分数的时间除以$n$个线程达到分数的时间,来衡量算法通过增加线程的提速程度。结果表明训练速度会随着线程数的增加而提升,这证明异步框架可以很好地利用训练资源。

Robustness and Stability稳健性和稳定性

在5个Atari游戏中检验异步算法的稳健性和稳定性

A3C:

image-20230114164256003

其他的三种异步算法:

image-20230114164313044

  • 结果表明所有的算法在学习率在大范围变化时都有较好的稳健性和稳定性。

总结

异步框架有几大优点:

  • 效果好的同时所需资源较少
  • 可以应用于同策略、异策略等多种强化学习算法
  • 数据利用率高,稳定性较好
  • 可以广泛结合其他算法的优点提升性能

参考资料

作者:汪聪

单位:武汉工程大学

研究方向:机器博弈,强化学习

联系方式:xyfcw@qq.com