强化学习中的并行方法:ApeX框架 梯度并行,A3C经验并行 | 分布式异步参数更新, 分布式数据生成

区别:

强化学习收敛速度慢,采用并行计算可以加快计算速度。

强化学习的并行方法通常可以分为两类:

  • 一是经验并行,通过共享的经验池更新参数;
  • 二是梯度并行,依靠自己的经验更新,再将梯度回传到全局网络聚合。

Apex:

比较经典的经验并行是ApeX框架,多个分布式actor与环境进行交互,产生的数据存储在经验回放记忆池中,learner再现经验样本并更新神经网络。该架构依赖于优先记忆重放,只关注actor生成的最重要的数据。
强化学习中的并行方法:ApeX框架 梯度并行,A3C经验并行 | 分布式异步参数更新, 分布式数据生成_第1张图片
Ape-X架构

  • 多个分布式actor, 每个actor有自己的环境,生成经验、将经验添加到共享的经验重放记忆池、计算初始优先级;
  • 单个learner从记忆池中采样数据并更新网络和数据优先级;
  • actor的网络会定期使用learner最新的网络参数进行更新;

A3C

比较经典的梯度并行框架是A3C算法,有一个主网络和很多的worker。A3C把主网络的参数直接赋予worker中的网络,更新时使用各worker中的梯度,对主网络的参数进行更新。
强化学习中的并行方法:ApeX框架 梯度并行,A3C经验并行 | 分布式异步参数更新, 分布式数据生成_第2张图片

相当于开了多个分身,使用了Actor-Critic框架,并且引入了异步训练的思想,在提升性能的同时也大大加快了训练速度。

A3C的创新和厉害之处在于:A3C算法为了提升训练速度采用异步训练的思想,利用多个线程。每个线程相当于一个智能体在随机探索,多个智能体共同探索,并行计算策略梯度,对参数进行更新。或者说同时启动多个训练环境,同时进行采样,并直接使用采集的样本进行训练,这里的异步得到数据,相比DQN算法,A3C算法不需要使用经验池来存储历史样本并随机抽取训练来打乱数据相关性,节约了存储空间,并且采用异步训练,大大加倍了数据的采样速度,也因此提升了训练速度。与此同时,采用多个不同训练环境采集样本,样本的分布更加均匀,更有利于神经网络的训练。强化学习中的并行方法:ApeX框架 梯度并行,A3C经验并行 | 分布式异步参数更新, 分布式数据生成_第3张图片

联想记忆法:

类比联邦学习场景:

  1. 经验并行就是各个客户端可以共享数据,一起训练;
  2. 梯度并行就是各个客户端的数据不能共享,只能自己学习,再将梯度回传。

参考文章:

《DISTRIBUTED PRIORITIZED EXPERIENCE REPLAY》强化学习论文笔记
【强化学习】A3C原理
强化学习AC、A2C、A3C算法原理与实现!
理解强化学习知识之AC,A3C算法

你可能感兴趣的:(学习笔记,强化学习,深度学习,人工智能,计算机视觉)