IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures
在这项工作中,我们的目标是使用单个强化学习代理来解决大量任务。 一个关键的挑战是处理增加的数据量和延长的培训时间。 我们开发了一种新的分布式代理IMPALA(Importance Weighted Actor-Learner Architectures),它不仅可以在单机训练中更有效地使用资源,而且可以扩展到数千台机器而不会牺牲数据效率或资源利用率。 通过将解耦的行为学习与一种称为V-trace的校正方法相结合,我们实现了稳定的高吞吐学习。 我们展示了IMPALA在DMLab-30和Atari-57中的多任务强化学习的有效性。 我们的结果表明,IMPALA能够在数据较少的情况下取得比以前的代理更好的性能,并且由于其多任务处理方式,在任务之间表现出了正向的迁移。
方法
IMPALA
如图1,在每个轨迹的开始,actor将自己的本地策略 μ 更新为最新的Leaner的策略 π ,并在其环境中运行在n步之l后,actor通过队列将状态、动作和回报 {x1,a1,r1,…,xn,an,rn} 连同相应的策略分布 μ(at∣xt) 和初始LSTM状态一起发送给leaner。然后,leaner利用样本轨迹更新策略 π 。这种简单的架构使得leaner能够使用GPU加速,并且actor能够轻松地分布在许多机器上。然而,在更新时,leaner的策略 π 可能比actor的策略 μ 提前更新几个版本,因此actor和leaner之间存在一种policy-lag。V-trace校正了这种lag,从而在保持数据效率的同时实现极高的数据吞吐量。使用actor-learner 架构,提供像分布式A3C这样的容错能力,但是由于actor并且没有发送参数/梯度,因此通信开销较低。
V-trace
在解耦的分布式actor-critic架构中,off-policy学习很重要,因为actor生成动作与leaner估计梯度之间存在滞后。 为此,我们为学习者引入了一种新颖的off-policy actor-critic算法,称为V-trace。
off-policy RL算法的目标是使用某个策略 μ 生成的轨迹,称为行为策略,来学习另一个策略 π (可能不同于 μ )的值函数 vπ ,称为目标策略。
V-trace target
考虑行为策略 μ 生成的轨迹 (xt,at,rt)t=st=s+n ,n-steps V-trace的价值函数为
vs=defV(xs)+∑t=ss+n−1γt−s(∏i=st−1ci)δtV
上式中 δtV=defρt(rt+γV(xt+1)−V(xt)) 是时间差分。 ρt=defmin(ρ,μ(at∣xt)π(at∣xt)) 和 ci=defmin(c,μ(ai∣xi)π(ai∣xi)) 是截断的重要性采样权重,其中 ∏i=st−1ci=1for(t=s) ,且假设 ρ≥c 。
注意:对于on-policy的情况,我们假定 c≥1 , ci=1 and ρt=1 ,上式可被写为:
vs=V(xs)+t=s∑s+n−1γt−s(rt+γV(xt+1)−V(xt))=t=s∑s+n−1γt−srt+γnV(xs+n)
所以在on-policy的时候,V-trace退化为on-policy n-steps Bellman update,这个性质允许V-trace同时用于off-policy和on-policy。
注意:截断的重要性采样权重 ci and ρt 的作用是不同的, ρt 出现在时间差分 δtV 中,定义了更新的fixed point。在表格法(强化学习)中,更新的fixed point(即当 V(xs)=vs for all state ),特征为 δtV的期望等于0(在策略 μ 下),是一些策略 πρ (定义如下)的值函数 Vπρ
πρ(a∣x)=def∑b∈Amin(ρμ(b∣x),π(b∣x))min(ρμ(a∣x),π(a∣x))
这意味着,当 ρ<∞ 时,策略 πρ 介于目标策略 π 和行为策略μ之间。而 ρ=∞ 时候,该策略等于目标策略π。
ci 类似于"trace cutting"系数, cs…ct−1 的乘积度量着时间差分δtV在时间 t 出现的频率,影响着 t=s 的值函数更新。目标策略π和行为策略π相差越大,这个乘积的方差越大,这里通过截断来限制方差。
总的来说: ρ 影响收敛到的价值函数的性质, c 影响收敛到这个函数的速度。
Actor-Critic algorithm
策略梯度(Policy Gradient)
在on-policy的情况下,价值函数关于策略 μ 的参数的梯度为
∇Vμ(x0)=Eμ[∑s≥0γs∇logμ(as∣xs)Qμ(xs,as)]
其中: Qμ(xs,as)=defEμ[∑t≥sγt−srt∣xs,as]
现在考虑off-policy的情况,我们可以重要性权重来更新策略参数:
Eas∼μ(⋅∣xs)[μ(as∣xs)πρ(as∣xs)∇logπρ(as∣xs)qs∣xs] (4)
其中: qs=defrs+γvs+1 ,最后为了减少方差,我们减去了一个强化学习中的基数 V(xs)
最后注意(4)估计 πρ 的策略梯度,这是使用截断级别 ρ 的V-trace算法评估的策略。
扩展到Actor-Critic
critic梯度
(vs−Vθ(xs))∇θVθ(xs)
actor梯度
ρs∇ωlogπω(as∣xs)(rs+γvs+1−Vθ(xs))
为了防止过早收敛,我们可能增加一个熵
−∇ω∑πω(a∣xs)logπω(a∣xs)
实验
训练性能
游戏测试