针对深度多智能体强化学习的稳定经验回放(Experience replay)
Stabilising Experience Replay for Deep Multi-Agent Reinforcement Learning
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函数 是实时奖励r(s,u)和过渡函数的函数;使用基于样本的近似来迭代改进Q函数;replay memory存储元组;公式2中的 其中是目标网络的参数
-
多智能体强化学习
完全合作的环境:n个智能体被定义为 ;G=<S,U,P,r,Z,O,n,γ> 表示游戏环境,S为状态,U为动作,P为状态转移概率,r为奖励,Z为观察值,O为观察函数,n为智能体数量,γ为折扣率;所有的agent的action形成联合action u∈U= ;状态转移概率定义为 P(s'|s,u);所有agent共享相同的奖励函数r(s,u);每个agent的观察值z∈Z由观察函数O(s,a)得出;表示动作观察历史,每次状态转移后,将动作和新的观察值O(s,a)加入到中,形成;粗体u表示联合量,- a表示除a以外的智能体,即u=[,u];表示智能体a的动作;单引号' 表示下一时间的,ˆ表示放大空间的
-
-
在深度强化学习中一般通过循环神经网络或LSTM对Q函数进行建模,可以通过让每个agent使用基于自己的观察和动作训练的递归神经网络执行DQN来实现;
-
而独立Q-learning(IQL)使用基于样本的T近似来迭代改进q函数,每个agent学习自己的q函数,该函数仅以状态和自己的行为为条件。此外,由于环境是部分可观察的,因此IQL可以在每个agent以它自己的动作观察历史为条件来进行训练,即。
-
方法:(两种方法都解决了nonstationary问题)
-
方法一:多智能体重要性抽样
-
由于IQL将其他智能体的策略视为环境的一部分,因此可以使用非环境重要性采样来稳定经验回放。由于我们知道智能体在每个训练阶段的策略,我们确切地知道环境变化的方式,从而可以通过重要性加权对其进行校正。
-
完全可观察的多智能体环境
-
Q值函数:
损失函数:
转移函数:
Gˆ的Bellman方程:
把rˆ和Pˆ带回的GˆBellman方程:
-
公式3中nonstationary成分为,它随着其他智能体的策略、时间的变化而变化,因此要在replay memory中记录它,于是就replay memory存储元组就变成放大转移元组u;公式4中其中为第i个样品采样时间(存入时刻),为replay时刻,在计算loss时加入重要性权重:
定义放大状态空间,该状态空间既包括原始状态s,也包括其他智能体的动作观察历史τ ;还定义了观察函数Oˆ(sˆ,a)=O(s,a) : 观察值不变 ;新的奖励函数rˆ(sˆ, u) =πuτu);新的转移函数:公式5;Gˆ=<Sˆ,U,Pˆ,rˆ,Z,Oˆ,n,γ>
-
-
-
-
方法二:多智能体指纹
-
将观察值变为 其中训练迭代数e,探索率;以此消除时间上的歧义
训练轮数可以很好地体现数据的新旧,而随训练退火的探索率可以使拟合的结果变得平滑,更好地反映其他agent策略在训练过程中的变化。
-
结论
- 单个使用方法都很好:使用重要性抽样方法(XP+IS)在使用前馈模型时略优于XP。指纹方法(XP+FP)显著提高了前馈模型的性能。
- 两种方法结合没有太大的提高:重要性采样与指纹结合(XP+ IS +FP)没有额外的好处。
- 相比之下指纹更好:指纹可以获得比使用重要性抽样时更大的数据集,可以在不同的历史经验之间进行学习转移,这可以显著提高性能。