分布式强化学习之IMPALA

参考内容:https://zhuanlan.zhihu.com/p/58226117

参考书籍:《深度强化学习学术前沿与实战应用》

IMPALA全名Importance Weighted Actor-Learner Architecture,也就是重要性加权Actor-learner架构,可以训练高效复杂的任务序列。

框架概述

在实际的问题场景中,我们可以将数百个Actor设置在每一个服务器的每一个线程上,它们可以相互独立,同时处理一个任务,也可以同时训练不同的任务,下面开始运行一个完整的过程。

从每一段训练过程开始,每个Actor将自己的本地策略和中心Learner的最新策略同步,之后于自身所处的环境交互n个时间步。在n步之后,Actor发送自己经历这一段“状态——动作——奖励”的轨迹 “ s 1 , a 1 , r 1 , s 2 , a 2 , r 2 , . . . s n , a n , r n ” “s_1,a_1,r_1,s_2,a_2,r_2,...s_n,a_n,r_n” s1,a1,r1,s2,a2,r2,...sn,an,rn,以及自己本地的策略分布(包括LSTM的初始状态,通过相应的队列等数据结构),发送回给Learner,我们的Learner从训练启动开始就在不断地收到来自Actor的这些序列信息和策略,并且在这些序列信息中不断进行自身更新。在各个线程训练actor的过程中,Learner是在不断学习更新策略的,无需等待actor都训练完毕,因此Learner的策略是在时间上比所有actor超前很多的,每一个Actor和Learner的时间差距有不同,这样的巨大差异是不利于训练质量的,但为了训练速度我们又不能妥协去把异步改为同步,使得服务器相互等待。

V-trace

这里引入了一种off-policy的actor-critic算法——V-trace,它用在像IMPALA这样的分布式任务框架上,改进了原先计算梯度的公式,来适应Actor于Learner在策略上的时间差。

在A3C这样的on-policy场景,值函数的更新可以表示为:
V s = V ( x s ) + ∑ t = s s + n − 1 γ t − s ( r t + γ V ( x t + 1 ) − V ( x t ) ) V_s = V(x_s) + \sum_{t=s}^{s+n-1} \gamma^{t-s}(r_t + \gamma V(x_{t+1}) - V(x_t)) Vs=V(xs)+t=ss+n1γts(rt+γV(xt+1)V(xt))
这时候我们采用off-policy策略来修正时间差,从比较过时和比较新的策略去估计一个最好的策略,这就需要用到重要性采样(Importance Sampling)。这时候我们可以得到在n步下V-trace算法下的目标价值函数:
V s = d e f V ( x s ) + ∑ t = s s + n − 1 γ t −

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值