Advertisement

论文阅读15:Massively Parallel Methods for Deep Reinforcement Learning

阅读量:

论文阅读笔记之Massive Parallelism-Based Approaches for Deep Reinforcement Learning Techniques


本文主要创新点在于

架构组成 :用于产生behavior的并行actor组;

从经验池学习的并行learner组;

代表值函数和行为策略的分布式神经网络;

分布式经验池;

实验效果 :训练效果好(进行了49个游戏,在41个游戏上超过了原DQN架构);

减少了训练时间

缺点 :造价高,难搞


分布式架构Gorila

Actors:

该架构有Nact个不同的actor,并分别应用在Nact个相同的环境中

每个actor i 有自己的行为,并产生经验

每个actor的状态空间被划分为若干部分(不同actor之间独立运作时各自执行操作以产生下一个状态并获得奖励值)。经过T步后,这些actor将生成约T乘以Nact数量的经验样本。

每个 actor 的状态空间被划分为若干部分(不同 actor 之间独立运作时各自执行操作以产生下一个状态并获得奖励值)。经过 T 步后, 这些 actor 将生成约 T 乘以 Nact 数量的经验样本。

每个actor拥有一个Q网络用来执行动作该网络的参数会通过参数服务器按周期同步更新

Experience replay memory:

考虑两种形式的经验池:

e_{t}^{i}

= (

s_{t}^{i}

,

a_{t}^{i}

,

r_{t}^{i}

,

s_{t+1}^{i}

第一种:a local replay memory 存储每个actor的经验

D_{t}^{i}

= {

e_{1}^{i}

,...,

e_{t}^{i}

仅限于各自actor machine的使用范围;假设每个actor的经验库容量设定为M;则总共能够存储M×Nact条记录。

第二种:一种全局回放内存将经验整合至分布式数据库中,并不受actor数量的影响。然而其代价是增加了通信开销。能够灵活扩展和调整存储容量

Learners:

由若干个learner组成的系统中包含多个学习者单元体每个单元体都配备有自己的Q网络负责学习该网络中各参数的变化情况(类似于传统的深度强化学习方法)从中提取k个样本实例计算并发送该梯度向量至主节点中心节点同时在定期的时间间隔内同步复制网络权重以实现分布式训练的目的

Parameter server:

Gorila 架构借鉴了 Google 分布式深度学习系统的架构设计,并基于中央参数服务器实现对 Q 网络中状态-动作对 Q(s,a) 的高效更新。

heta^{+}

)的分布式表示。

参数向量

heta^{+}

每个维度的数值均匀分布于各个不同的参数服务器上,在线计算过程中总共采用了N_{\text{param}}个独立的计算节点来进行处理。这些计算节点从学习者那里获取梯度向量\mathbf{g}_i后,在线计算并基于异步随机梯度下降算法更新自身机器上的模型参数集合(即对应的模型参数子集)\mathbf{\theta}_{j})。


Gorila架构并行化的方式上提供了相当大的灵活性:

可以通过多actor同时生成海量数据至全局回放内存中,并由单一learner负责处理这些数据。

不仅可以让单一智能体将生成的数据存储在local replay memory中,并且同时供多个学习者进行并行处理这些数据,从而使其能够在该经验下获得尽可能有效的知识更新。

为了解决潜在的技术瓶颈问题,在Gorila架构设计中,默认情况下支持任意数量的参与者、学习者以及参数服务器协同工作。系统会通过处理大量数据集进行自我优化,并采用分布式训练方法更新模型结构。

我们在随后进行的一系列实验中探讨了最简单的Gorila整体实例


一些细节补充:

1、actor和learner的Q网络更新

该系统通过维护当前版本θ⁺来管理参数状态。其中actor和learner各自拥有基于当前参数θ⁺的Q网络副本,在每个动作步骤开始前,这些Q网络副本会从参数服务器处同步最新版本。此外,learner还拥有一个目标Q网络Q⁻(s, a, θ⁻),每当中央参数服务器完成N次梯度更新时就会进行更新操作。

2、leaner中生成的梯度并不用于自己Q-network更新(不同于DQN)

基于公式2中的DQN模型计算出相应的梯度值。然而,并非将这些梯度直接应用于模型训练中;相反地,在此过程中会将它们传递至参数服务器。随后,在接收所有参与者的反馈后进行整合与优化。

原始DQN通过Q网络生成动作价值估计值;随后通过目标Q网络计算当前状态下的最大动作价值(即所谓的"目标动作价值");随后每隔一定步骤(如N步)同步参数至目标网络;与此同时,在每个训练步骤中都依据公式2直接计算梯度用于优化模型参数。

Greedy DQN通过Q-网络生成相应的估计值;基于目标型Q-网络计算出最大值,并将其称为目标型Q估计;其中,在经过N次不更新后将参数同步至目标型Q-网络中;而每一步开始前从当前状态获取参数并用于更新模型

3、稳定性

尽管DQN训练算法的目标是利用强化学习以确保神经网络训练过程的稳定性,在实际应用中,在运行多个其他任务的大规模计算集群中进行训练会产生额外的技术挑战。尽管存在节点失效的风险,Gorila DQN通过引入额外的安全机制,能够在节点失效的情况下维持系统的稳定运行,具体包括对网络流量实施减缓策略以及对单个计算节点执行速度限制的操作。为了保证系统的可靠性,该方法通过引入一个机制,使得局部参数θ(其中θ用于计算梯度gi)与远程服务器上的参数θ+之间的时间差得到严格控制,从而有效降低了同步过程中的潜在风险

参数服务器将舍弃所有早于阈值的所有梯度。此外,每个actor/learner持续维护着基于其观察到的数据计算得出的绝对DQN损失的整体平均值和标准差,并剔除那些单次计算超出整体平均值若干个标准差之外的具体梯度更新。最后,我们采用了AdaGrad更新规则(???)

全部评论 (0)

还没有任何评论哟~