IMPALA(Importance Weighted Actor-Learner Architectures)

IMPALA(Importance Weighted Actor-Learner Architectures
在这里插入图片描述

IMPALA特性

  1. 每个Actor单独定期地从Learner同步参数,然后进行数据收集(s, a, r, s’)。
  2. 所有Actor收集的数据都会即时存储到数据采样队列(queue)里。
  3. 当队列的数据达到mini-batchsize时,Learner开始梯度学习,并更新其参数。
  4. Actor与Learner互不干扰,Actor定期从Learner同步参数,Learner定量学习更新参数。
  5. Learner也可以是分布式集群,这种情况下,Actor需要从集群同步参数
  6. Actor一般使用CPU,Learner使用GPU
  7. 与A2C相比,Actor采集数据无需等待,并由GPU快速统一学习。与A3C相比 ,Actor无需计算梯度,只需收集数据,数据吞吐量更大。与GA3C相比,引入V-trace策略纠错,同时接受更大延迟,方便大规模分布式部署Actors。框架拓展方便,支持多任务学习

缺点:

资源利用率低、无法大规模扩展

当场景包含很多终止条件的Episode,而又对这些终止(Terimal)敏感时,不管是在Actor收集数据时,还是在Learner梯度学习时,分段处理长短不一的Episode,都会大大降低IMPALA的性能,影响其流畅性;所以场景最好是Episode不会终止或者是对终止不敏感。

由于IMPALA中的Actor不等待Learner产生了一个问题,Learner还在计算新的para的时候,actor继续使用旧的para生产数据,导致learner读取数据进行para更新的时候,部分数据是旧数据(actor前向推理的参数滞后问题),因此引入V-trace

V-trace

问题描述:learner和actor都已经应用了新的para,即新的policy,记为π。而读入的数据是由旧的policy,记为μ,产生的。如何修正,使得使用这些数据来计算不会产生太大偏差?核心思想是Important Sampling(IMPALA的Important Weighted就是这个意思)。

算法中需要根据采样到的样本来维护一个状态价值函数 V θ ( x ) V_{\theta} (x) Vθ(x),V-trace的目的是根据采样到的 { x t , a t , r t , μ ( a t ∣ x t ) } \{ x_t, a_t, r_t, \mu(a_t|x_t)\} {xt,at,rt,μ(atxt)} 和 当前状态价值函数网络 来给出 当前状态价值函数的一个更好的估计 v s ( s ) v_s(s) vs(s)下标表示它是其中的一个样本),这样价值神经网络就可以把它作为一个更新的目标来更新权重。

我们直接写出 v s v_s vs 的表达形式。
在这里插入图片描述
它具有如下性质:

  • 状态价值函数 V θ ( x ) V_{\theta} (x) Vθ(x)每次往 v s v_s vs 上更新,最后能够收敛;最后面我们会证明如果有 V-trace 算子 R : V ( x s ) → v s R:{\kern 1pt} {\kern 1pt} {\kern 1pt} V({x_s}) \to {v_s} R:V(xs)vs, 那么该算子是contraction。
    • 状态价值函数 V θ ( x ) V_{\theta}(x) Vθ(x)每次往上 v s v_s vs 更新,收敛到的状态价值函数是介于 V π {V^\pi } Vπ V μ V^\mu Vμ 之间的某个价值函数,我们记该价值函数为 V π ρ ˉ {V^{\pi \bar \rho }} Vπρˉ,该价值函数对应的策略如下所示;最后面我们通过计算V-trace算子的不动点可以得到这个结论。
      在这里插入图片描述
  • 为了避免importance weight发散,我们需要加上相应的上界来避免;参数 ρ ˉ \bar \rho ρˉ 决定了收敛到的不动点位置; c ˉ \bar c cˉ ρ ˉ \bar \rho ρˉ 决定了收敛的速率。
  • 在on-policy的情况下,如果 ρ ˉ \bar \rho ρˉ c ˉ \bar c cˉ≥ 1 ,那么 v s v_s vs就退化为on-policy n-steps Bellman target。
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值