深度多智能体强化学习的稳定经验回放

针对深度多智能体强化学习的稳定经验回放(Experience replay)


Experience replay提出的思想就是为了让agent从过去经历的中进行学习,从而提高了data effiency。replay memory 可以稳定学习,防止网络过度拟合最近的经验,提高样本效率。

摘要:

因为独立Q-learing引入的不稳定性(nonstationary)使其与深度Q-learning所依赖的experience replay memory 不兼容,提出两种方法来解决

  • 方法一:使用多智能体采样重要性的变化来衰减过时(obsolete)的数据
  • 方法二:将每个智能体的值函数设置在一个指纹(fingerprint)上,消除从replay memory 中采样数据的时间歧义

介绍:
  • 使用独立Q-learning(IQL)来消除多智能体不同观测值的歧义问题:每个智能体独立学习自己的策略,将其他智能体视为环境的一部分。 但从每个智能体来看,环境变得并不稳定
  • Experience replay:不仅有助于稳定深度神经网络的训练,还可以通过重用Experience tuple来提高采样效率
  • 但是!IQL与Experience replay结合起来有问题:IQL引入的非平稳性意味着:在智能体的replay memory中生成数据的动态不再反映它当前动态。虽然没有replay memory也可以学习 ,但是有replay memory却有问题的,因为他会持续的混淆obsolete experience 因此本文提出两种方法
    • 将replay memory中的experience视为 off-environment data,通过用每个元组中联合动作的概率来放大每个replay memory中的元组,可以根据当时使用的策略,计算元组在后续被采样训练时的重要性采样矫正。由于较旧的数据倾向于生成较低的重要性权重,因此这种方法会在数据obsolete时使其衰减,从而防止nonstationary replay memory可能产生的混乱。
    • 每个智能体学习一种策略来避免IQL的nonstationary ,该策略以其他智能体策略的估计为条件,而其他智能体的策略是由他们行为的观察值推断出来的。虽然在这个更大的空间中学习q函数似乎是不可能的,特别是当每个智能体的策略是一个深度神经网络时,我们表明这样做是可行的,因为每个智能体只需要一个低维指纹的条件,这足以消除中replay memory经验元组的采样的歧义。

基础知识:
  • 单智能体强化学习的贝尔曼方程:在这里插入图片描述

    损失函数:在这里插入图片描述

    策略π的动作价值函数Q表示为 Q π ( s , u ) = E [ R t ∣ s t = s , u t = u ] Q^π(s,u)=E[R_t|s_t=s,u_t=u] Qπ(s,u)=E[Rtst=s,ut=u];递归表示的Q函数 Q ∗ ( s , u ) = m a x π Q π ( s , u ) Q^*(s,u)=max_πQ^π(s,u) Q(s,u)=maxπQπ(s,u)是实时奖励r(s,u)和过渡函数 P ( s ′ ∣ s , u ) P(s'|s,u) P(ss,u)的函数;使用基于样本的 T T T近似来迭代改进Q函数;replay memory存储元组 < s , u , r , s ′ > <s,u,r,s'> <s,u,r,s>;公式2中的 y i D Q N = r i + γ m a x u i ′ Q ( s i ′ ; u i ′ ; θ − ) y{_i^{DQN}=r_i+γmax_{u'_i}Q(s'_i;u'_i;θ^-)} yiDQN=ri+γmaxuiQ(si;ui;θ) 其中 θ − θ^− θ是目标网络的参数

  • 多智能体强化学习

    完全合作的环境:n个智能体被定义为 a ∈ A = { 1 , … , n } a∈A=\{1,…,n\} aA={1,,n} ;G=<S,U,P,r,Z,O,n,γ> 表示游戏环境,S为状态,U为动作,P为状态转移概率,r为奖励,Z为观察值,O为观察函数,n为智能体数量,γ为折扣率;所有的agent的action形成联合action uU= U n U^n Un ;状态转移概率定义为 P(s’|s,u);所有agent共享相同的奖励函数r(s,u);每个agent的观察值z∈Z由观察函数O(s,a)得出; τ a τ_a τa表示动作观察历史,每次状态转移后,将动作 u a u_a ua和新的观察值O(s,a)加入到 τ a τ_a τa中,形成 τ a ’ τ_a’ τa;粗体u表示联合量,- a表示除a以外的智能体,即u=[ u a u_a uau − a _{-a} a]; u a u_a ua表示智能体a的动作;单引号’ 表示下一时间的,ˆ表示放大空间的

    • 在深度强化学习中一般通过循环神经网络或LSTM对Q函数进行建模,可以通过让每个agent使用基于自己的观察和动作训练的递归神经网络执行DQN来实现;

    • 而独立Q-learning(IQL)使用基于样本的T近似来迭代改进q函数,每个agent学习自己的q函数,该函数仅以状态和自己的行为为条件。此外,由于环境是部分可观察的,因此IQL可以在每个agent以它自己的动作观察历史 τ a τ_a τa为条件来进行训练,即 Q a ( τ a , u a ) Q_a(τ_a, u_a) Qa(τa,ua)


方法:(两种方法都解决了nonstationary问题)
  • 方法一:多智能体重要性抽样

    • 由于IQL将其他智能体的策略视为环境的一部分,因此可以使用非环境重要性采样来稳定经验回放。由于我们知道智能体在每个训练阶段的策略,我们确切地知道环境变化的方式,从而可以通过重要性加权对其进行校正。

      • 完全可观察的多智能体环境

        • Q值函数:在这里插入图片描述

          损失函数:在这里插入图片描述

          转移函数:在这里插入图片描述

          Gˆ的Bellman方程:在这里插入图片描述

          把rˆ和Pˆ带回的GˆBellman方程:在这里插入图片描述

        • 公式3中nonstationary成分为 π − a ( u − a ∣ s ) = ∏ i ∈ − a π i ( u i ∣ s ) π_{-a}(u_{-a}|s)=\prod_{i∈-a}π_i(u_i|s) πa(uas)=iaπi(uis),它随着其他智能体的策略、时间的变化而变化,因此要在replay memory中记录它,于是replay memory存储元组就变成放大转移元组 < s , u a , r , π ( <s,u_a,r,π( <s,ua,r,π(u − a ∣ s ) , s ′ > ( t c ) _{-a}|s),s'>^{(t_c)} as),s>(tc);公式4中其中 t i t_i ti为第i个样品采样时间(存入时刻), t r t_r tr为replay时刻,在计算loss时加入重要性权重 π − a t r ( u − a ∣ s ) π − a t i ( u − a ∣ s ) \frac{π{^{t_r}_{-a}}(u_{-a}|s)}{π{^{t_i}_{-a}}(u_{-a}|s)} πati(uas)πatr(uas)

          定义放大状态空间 s ˆ = { s , τ − a } sˆ=\{s,τ_{-a}\} sˆ={s,τa},该状态空间既包括原始状态s,也包括其他智能体的动作观察历史τ − a _{-a} a ;还定义了观察函数Oˆ(sˆ,a)=O(s,a) : 观察值不变 ;新的奖励函数rˆ(sˆ, u) = ∑ u − a \sum_{u_{-a}} uaπ − a ( _{- a}( a(u − a ∣ _{−a}| aτ − a ) r ( s , _{−a})r(s, a)r(s,u);新的转移函数:公式5;Gˆ=<Sˆ,U,Pˆ,rˆ,Z,Oˆ,n,γ>

  • 方法二:多智能体指纹

    • 将观察值变为 O ′ ( s ) = { O ( s ) , ϵ , e } O'(s)=\{O(s),\epsilon,e\} O(s)={O(s),ϵ,e} 其中训练迭代数e,探索率 ϵ \epsilon ϵ;以此消除时间上的歧义

      训练轮数可以很好地体现数据的新旧,而随训练退火的探索率可以使拟合的结果变得平滑,更好地反映其他agent策略在训练过程中的变化。


结论
  • 单个使用方法都很好 :使用重要性抽样方法(XP+IS)在使用前馈模型时略优于XP。指纹方法(XP+FP)显著提高了前馈模型的性能。
  • 两种方法结合没有太大的提高:重要性采样与指纹结合(XP+ IS +FP)没有额外的好处。
  • 相比之下指纹更好:指纹可以获得比使用重要性抽样时更大的数据集,可以在不同的历史经验之间进行学习转移,这可以显著提高性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值