【论文笔记】GAIL + SIL For Multi-agent

论文全称:Independent Generative Adversarial Self-Imitation Learning in Cooperative Multiagent Systems (X Hao, W Wang, J Hao, Y Yang) AAMAS 2019

原文传送门

简介

也是一篇做Self-Imitation Learning(SIL)的文章,但是用于多智能体环境。上篇文章提到Self-Imitation Learning是用于探索-利用困境。而在multi-agent的设定下,探索问题将更复杂。不仅要探索环境,也要探索其他agent的策略。而在合作环境中,agent的协同合作是获得更高奖励的重要因素,因此多个agent的coordination也可以算作是一种exploration,以取得更高的学习效率。

本篇文章提出了用GAIL做SIL(有模仿学习怎么能不试试gail),并在fully cooperative的多智能体环境用于多智能体的coordination。因此暂将其看作是multi-agent的exploration。

核心笔记

一、背景

在合作的多智能体场景中如果直接使用单智能体算法会表现的很差,因此需要coordination。MARL算法有两种,一种是Joint Action Learners(JALs),一种是Idependent Learners(ILs)。前者即是像MADDPG那种在更新策略时需要观测其他agent的动作,而后者的决策则是只关心自己的observation。

JAL有些问题:1. MADDPG没有针对特殊合作场景(稀疏奖励、不协同惩罚以及探索利用困境)设计特殊机制;2. 在实际中会遇到不可观测到其他agent信息的情况;3. 这种算法的复杂度会随着agent的数目增加而呈指数增加。因此ILs更实用,例如Distributed Q Learning,Hysteretic Q Learning,Laninent Learners等。但ILs面对的问题是环境不稳定(non stationary)的情况而导致难以学习,并且上面基于Q学习的方法难以用于连续控制领域。

本文提出的Independent Generative Adversarial Self-Imitation Learning(IGASIL)就是为了解决ILs中的协调同步问题,利用Self-Imitation Learning提供协同信息。本文提出的框架利用两种replay buffer,normal以及positive buffer,每次交互的信息都存两次,positive buffer设计为sub-curriculum experience replay,用来选择更好的经验进行学习。两个buffer的数据拿来训练GAIL的discriminator,以获取额外的奖励来学习过去的经验和加强探索。

本文的主要贡献:

  1. 第一个用GAIL做SIL
  2. 提出sub-curriculum experience replay来加速SIL
  3. IGASIL对离散和连续动作空间都实用,并可结合PG和AC算法
  4. decentralized training,不需要communication
  5. 在纯合作环境上的实验结果在收敛速度和最终效果都超过SoTA

二、相关知识

  1. MDP
  2. GAIL
  3. Sample Efficient GAIL,指的是《DISCRIMINATOR-ACTOR-CRITIC: ADDRESSING SAMPLE INEFFICIENCY AND REWARD BIAS IN ADVERSARIAL IMITATION LEARNING》这篇文章,提出的是一种off-policy的GAIL。核心公式如下:

和GAIL的不同之处在于使用replay buffer的数据更新D而不是当前policy采的,而这个importance sampling项也直接忽略掉了。

4. SIL,前面的笔记写过。

三、方法论

方法比较简单易懂。直接上图和算法流程应该就可以。

  1. 就是用D来提供一个额外奖励,这招在单智能体的探索领域经常见到。额外奖励来判断当前状态的好坏。
  2. 此外,本文也使用了前面的sample-efficient GAIL,即用buffer的数据off-policy的更新D。也使用off-policy的学习算法(DDPG and off-policy A2C) 。

3. 采用的reward形式也和sample-efficient GAIL相同。其实gail的奖励往往有两种形式,一种是 log(D(s,a)) ,一种是 -log(1-D(s,a)) 。前者通常为负,每步都有惩罚,适合让agent尽量少待的环境;而后者一般为正,适合让agent尽量存活的环境。而这两个文章为了generalizable,采用了统一的形式,即:

4. 此外,本文设计了一个课程学习的经验池。文章这么解释:如果不作coordination智能体可能在相同的state随机决策来进行探索,而在这种情况下要达到最好的合作状态,即在所有状态,agent都选择合适的动作,这样的轨迹是很难采取的。因此先从容易的状态学习合作,再逐步学习。这样的课程学习采用sub-trajectory的思想,即不学习完整的trajectory,而是挑选其中的一部分来学习,比如[0, 1, 3, 1, 0, 0, -20]和[0, 0, 0, 0, 0, 0, -15]两个轨迹的收益一样,但前者的部分轨迹[1, 3, 1]同样值得学习,此外对于稀疏的奖励[0, 0, 0, ..., 0, 0, 1]这种轨迹,从接近terminal的部分开始学习是比较容易学到东西的。这个思想还是挺值得借鉴的。来看看依照这个思想设计的SCER replay buffer,一句话就是随机采样sub trajectory并计算预期回报,并按照大小存到priority buffer。但感觉这个采样可能还挺重要,可能要研究下具体实现。

四、实验

两个合作场景:1. cooperative endangered wildlife rescue,有稀疏奖励和高的不同步惩罚;2。 星际争霸的微操,具有multi types of units,而且随机性和不确定性较大。

  1. 在第一个实验中,对比了DDPG和MADDPG的效果,结果是最好。

2. 在第二个实验中,对比了IAC(就是Independet AC)、IAC+PER(priority experience buffer)以及IGAISL(等同于IAC+SCER)的训练曲线(胜率),体现出更高和更快的效果。还比较了和COMA的测试的胜率,结果都是最好。

3. 为了展示off-policy IGASIL的采样效率,和on-policy AC+SCER在第一个环境对比,体现出更快收敛的特点。

4. 为了体现SCER的优势,首先2中写了,IAC+SCER(ISGASIL)> IAC+PER > IAC;其次,记录了buffer中轨迹的maximum return和average return,如下图,愈来愈高,因此确实帮助智能体学到了更好的合作。

其他图就不放了,有兴趣的看下论文。

番外:

注:其实SIL的原作者也写了一篇GASIL的论文,就叫《Generative Adversarial Self-Imitation Learning》。只不过解决的是single agent下问题,方式与本文类似,也是提供额外的reward的形式:

然后,adventage用修改的reward function进行估计,即 r^\alpha(s, a)\triangleq r(s, a) − α log D_\phi(s, a) ,然后更新PPO即可。实验对比了PPO,PPO+BC(BC to top-K trajectories),PPO+SIL,PPO+GASIL,结果竟然比PPO+SIL还要好出很多。
因为没有其他结合点,创新性不太大。因此就不单独列出了。

笔记结束。

编辑于 2019-08-25 01:41