©PaperWeekly 原创 · 作者|李文浩
学校|华东师范大学博士生
研究方向|强化学习
最近由于写论文的原因,梳理了一下近几年的多智能体强化学习(MARL)算法,在这里做一个总结。
下面遵循综述 Is multiagent deep reinforcement learning the answer or the question? A brief survey 对多智能体强化学习算法的分类方法,将 MARL 算法分为以下四类:
Analysis of emergent behaviors(行为分析)
Learning communication(通信学习)
Learning cooperation(协作学习)
Agents modeling agents(智能体建模)
下面我将分别按照时间顺序对这四类算法中的一些典型工作进行详细讨论。
行为分析
行为分析类别的算法主要是将单智能体强化学习算法(SARL)直接应用到多智能体环境之中,每个智能体之间相互独立,遵循 Independent Q-Learning [2] 的算法思路。本类别的工作相对来说比较早期,这里主要讨论以下两个工作:
[1] Tampuu, Ardi, et al. "Multiagent cooperation and competition with deep reinforcement learning." PloS one 12.4 (2017): e0172395. [2] Gupta, Jayesh K., Maxim Egorov, and Mykel Kochenderfer. "Cooperative multi-agent control using deep reinforcement learning" International Conference on Autonomous Agents and Multiagent Systems . Springer, Cham, 2017.论文标题:Multiagent Cooperation and Competition with Deep Reinforcement Learning
论文链接:https://arxiv.org/abs/1511.08779
这篇文章首次将 DQN 算法与 IQL 结合起来,并将其应用到 ALE 环境中的 Pong 游戏中(该游戏内部场景如下图所示,图片来源原论文)。
- 完全协作环境:一方失球,则两方均获得 -1 的回报
- 完全竞争环境:一方失球,该方获得 -1 的回报;对方获得 +1 的回报
- 非完全协作/竞争环境:一方失球,该方获得 -1 的回报;对方获得 的回报
- Q 值的收敛与否一定程度上反映了 DQN 算法的收敛与否
- 在训练之前首先随机在环境中采样一些 state 作为测试集,监控这些 state 对应的最大的 Q 值平均值来判断算法收敛与否
论文标题:Cooperative Multi-Agent Control Using Deep Reinforcement Learning
论文链接:https://platformlab.stanford.edu/pdf/ALA2017_Gupta.pdf
本文将基于值函数的算法 DQN、基于策略梯度的算法 TRPO 以及演员-评论家算法 DDPG 与 IQL 算法以及循环神经网络(或前向神经网络)相结合,应用到局部观察的多智能体环境中。 其与前一篇 paper 的区别在于,为了增加算法在大规模场景下的可扩展性,所有的智能体都共享同一套参数。训练时所有智能体采样得到的样本进行汇总,用来更新共享的模型参数。 同时,为了进一步保证不同的智能体即使在共享参数的情况下也能够表现出不同的行为,其模型输入除了局部的观察外,还包括自身的索引。实验用到的仿真环境如下:[1] Foerster, Jakob, et al. "Learning to communicate with deep multi-agent reinforcement learning" Advances in Neural Information Processing Systems. 2016.
[2] Sukhbaatar, Sainbayar, and Rob Fergus. "Learning multiagent communication with backpropagation" Advances in Neural Information Processing Systems. 2016.
[3] Peng, Peng, et al. "Multiagent bidirectionally-coordinated nets for learning to play starcraft combat games" arXiv preprint arXiv:1703.10069 2 (2017).
[4] Jiang, Jiechuan, and Zongqing Lu. "Learning attentional communication for multi-agent cooperation" Advances in Neural Information Processing Systems. 2018.
[5] Kim, Daewoo, et al. "Learning to Schedule Communication in Multi-agent Reinforcement Learning" arXiv preprint arXiv:1902.01554 (2019).
论文标题:Learning to Communicate with Deep Multi-Agent Reinforcement Learning
论文链接:https://arxiv.org/abs/1605.06676
这篇文章最先在深度多智能体强化学习中引入通信学习,其解决的强化学习问题是 Dec-POMDP 问题。 换句话说,在 Dec-POMDP 中,所有智能体共享一个全局的回报函数,所以是一个完全协作环境,每个智能体只拥有自己的局部观察。 文中假设通信信道是离散的,即智能体之间只能能传递离散的信息(即 one-hot 向量)。 本文采用的是 CTDE 框架(即中心化训练去中心化执行,Centralized Training Decentralized Execution),在训练时不对智能体之间的信息传递进行限制(由于是中心化的训练器,所以智能体之间的信息传递完全由这个训练器接管),甚至在训练时可以使用连续的信息。 但是训练完毕之后运行时,智能体之间才进行真正的通信,并且该通信信道是离散(如果训练时是连续的,则在运行时要对信息进行离散化)的。 本文提出了两种算法,后一种是前一种的改进版本,具体名称陈列如下:- Reinforced Inter-Agent Learning (RIAL)
- Differentiable Inter-Agent Learning (DIAL)
论文标题:Learning Multiagent Communication with Backpropagation
论文链接:https://arxiv.org/abs/1605.07736
本文与上文是同时期的不同工作(两者发布到 arXiv 上的时间只相差一天)。本文假设智能体之间传递的消息是连续变量(不像 RIAL 或者 DIAL 是离散的),文章采用的强化学习算法应该是 policy gradient 方法(论文本身没有指明,这个结论是从网络结构上推断而出)。 本文解决的也同样是 Dec-POMDP 问题,遵循的是中心化训练中心化执行 CTCE(Centralized Training Centralized Execution)框架,因而在大规模的多智能体环境下,由于网络输入的数据维度过大,会给强化学习算法的训练带来困难。 算法被命名为 CommNet,其框架如下图所示(图片来源原论文):- 可以对上图中间的结构加上 skip connection,类似于 ResNet。这样可以使得智能体在学习的过程中同时考虑局部信息以及全局信息,类似于计算机视觉领域 multi-scale 的思想
- 可以将灰色模块的网络结构换成 RNN-like,例如 LSTM 或者 GRU 等等,这是为了处理局部观察所带来的 POMDP 问题
论文标题:Multiagent Bidirectionally-Coordinated Nets: Emergence of Human-level Coordination in Learning to Play StarCraft Combat Games
论文链接:https://arxiv.org/abs/1703.10069
本文提出了一个新的算法 BiCNet,同样假设智能体之间传递的信息是离散的,旨在解决 zero-sum Stochastic Game (SG) 问题(具体在后面讨论)。 算法基于演员-评论家算法框架,使用的是 DDPG 算法,并且考虑到算法在大规模多智能体环境下的可扩展性问题,智能体之间共享模型参数,并且算法假设每个智能体都拥有同样的全局观察(全局状态),这也是本文的局限之一。另外,BiCNet 同样遵循 CTCE 框架。 整体模型结构如下图所示(图片来源原论文):- 设计新的回报函数
- 固定智能体在 Bi-RNN 的位置
论文标题:Learning Attentional Communication for Multi-Agent Cooperation
论文链接:https://arxiv.org/abs/1805.07733
前面我们讨论的三种算法,R(D)IAL、CommNet 以及 BiCNet,都是每一个时间步所有智能体之间都要进行通信,或者每个智能体与自己相邻的智能体进行通信,这在本文看来属于一个预定义的通信模式,不够灵活。 本文的出发点正是基于此,希望提出一个算法,能够让智能体在任何时刻,自己决定是否需要与其他智能体进行通信,以及与哪些智能体进行通信。 本文为了达到上述目标,提出了一个基于注意力机制的通信模型 ATOC,该模型基于智能体的局部观察,可同时适用于协作环境(共享一个全局的回报函数或者拥有各自的回报函数)以及竞争环境(实质也是协作环境,因为算法只控制一方)。 其基本思想是,通过其局部观察与动作(其实是策略网络的中间层输出)的编码,来决定其是否需要与其视野范围内的其他智能体进行通信,以及哪些智能体进行通信。 对于决定进行通信的智能体,我们称之为发起者(initiator),这个发起者从其视野范围内选择协作者共同形成一个通信群组,这个通信群组在整个 episode 中动态变化并且只在需要的时候存在。 本文采用一个双向的 LSTM 网络作为通信群组之间的通信信道(类似于 BiCNet),这个 LSTM 以通信群组中各个智能体的局部观察与动作的编码(之前提到的)作为输入,输出的 higher-level 的编码信息作为各智能体策略网络的额外输入,来指导协作策略的生成。 ATOC 算法采用的是演员-评论家框架,DDPG 算法,遵循 CTDE 框架,同时考虑到算法在大规模多智能体环境下的可扩展性,所有智能体共享策略网络、注意力单元以及通信信道的参数(parameter sharing 好像已经是标准设置了)。 整个算法的模型框架如下图所示(图片来源原论文):- 邻近的智能体的局部观察更加相似,因而更容易互相理解
- 邻近的智能体之间更容易协作
- 其他发起者
- 被其他发起者选定的智能体
- 没有被其他发起者选定的智能体
- 为了进一步凸显不同智能体在特定任务中的不同定位,固定其在 LSTM 中的位置
- 将 RNN 通信信道改为 LSTM,从而过滤掉无关信息
论文标题:Learning to Schedule Communication in Multi-agent Reinforcement Learning
论文链接:https://arxiv.org/abs/1902.01554
与 ATOC 相比,这篇工作关注的是另外一个问题。这里同样从 R(D)IAL、CommNet 以及 BiCNet 算法出发,这三种算法在每一个时间步所有的智能体之间都参与通信,或者是类似于 R(D)IAL 这样智能体两两之间相互传递信息,或者是像 CommNet 以及 BiCNet 这样所有的智能体都将自己的信息发送到通信信道中参与高级信息的生成。 但是在现实情况中,通信信道的带宽是有限的,如果所有智能体都往这个有限带宽的信道中发送信息,则容量一旦超出,就会出现信息丢失或者阻塞等等情况。ATOC 是通过限制每个发起者只能选择最多 个智能体加入到通信群组中,但是其选取的方式十分简单。本文将通信领域 MAC (Medium Access Control) 方法引入到多智能体强化学习中,来解决上述问题。 本文提出的 SchedNet 算法,同样是解决 Dec-POMDP 问题,并遵循 CTDE 框架,基于演员-评论家算法。 具体来说,整个算法的框架如下图所示(图片来源原论文):- 信息编码器(message Encoder):
- 动作选择器 (Action Selector):action selector
- 权重生成器(Weight Generator):
- Top(k):顾名思义,选择权重排名靠前的智能体
- Softmax(k):先将权重通过 softmax 函数转化为一个概率分布,再从这个概率分布中进行采样
协作学习
此类工作并不显式地学习智能体之间的通信,而是将 multi-agent learning 领域的一些思想引入到 MARL 中。而这类方案又可以分为以下三个类别:
基于值函数的方法:
Sunehag, Peter, et al. "Value-decomposition networks for cooperative multi-agent learning" arXiv preprint arXiv:1706.05296 (2017). Rashid, Tabish, et al. "QMIX: Monotonic value function factorisation for deep multi-agent reinforcement learning" arXiv preprint arXiv:1803.11485 (2018). Son, Kyunghwan, et al. "QTRAN: Learning to Factorize with Transformation for Cooperative Multi-Agent Reinforcement Learning" arXiv preprint arXiv:1905.05408 (2019).基于演员-评论家的方法:
Lowe, Ryan, et al. "Multi-agent actor-critic for mixed cooperative-competitive environments" Advances in Neural Information Processing Systems. 2017. Foerster, Jakob N., et al. "Counterfactual multi-agent policy gradients" Thirty-Second AAAI Conference on Artificial Intelligence. 2018. Wei, Ermo, et al. "Multiagent soft q-learning" 2018 AAAI Spring Symposium Series. 2018. Iqbal, Shariq, and Fei Sha. "Actor-Attention-Critic for Multi-Agent Reinforcement Learning" arXiv preprint arXiv:1810.02912 (2018).基于经验回放缓存的方法:
Foerster, Jakob, et al. "Stabilising experience replay for deep multi-agent reinforcement learning" Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017. Omidshafiei, Shayegan, et al. "Deep decentralized multi-task multi-agent reinforcement learning under partial observability" Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.下面我们将从这三个方面分别进行讨论。
基于值函数的方法
论文标题:Value-Decomposition Networks For Cooperative Multi-Agent Learning
论文链接:https://arxiv.org/abs/1706.05296
基于值函数的方法可以说是多智能体强化学习算法最开始的尝试(例如 Independent Q-Learning, IQL 算法)。虽然前面也提到将 IQL 算法与 DQN 算法结合能够在多智能体问题上取得比较好的效果,但是对于较为复杂的环境,IQL 还是无法很好地处理由于环境非平稳而带来的问题。
而中心化的方法,即将所有智能体的状态空间以及动作空间合并,当作一个智能体来考虑的方法,虽然能够较好的处理环境非平稳性问题,但是也存在以下缺陷:
在大规模多智能体环境中算法可扩展性较差
由于所有智能体联合训练,一旦某个智能体较早学到一些有用的策略,则其余智能体会选择较为懒惰的策略。这是因为其余智能体由于进度较慢,从而做出的策略会阻碍已经学到一些策略的智能体,从而使得全局汇报下降(来源原论文)
本文提出的 VDN 方法的基本思想是,中心化地训练一个联合的 Q network,但是这个联合的网络是由所有智能体局部的 Q networks 加和得到,这样不仅可以通过中心化训练处理由于环境非平稳带来的问题,而且由于实际是在学习每个智能体的局部模型,因而解耦智能体之间复杂的相互关系。
最后,由于训练完毕后每个智能体拥有只基于自己局部观察的 Q network,可以实现去中心化执行,即 VDN 遵循 CTDE 框架,并且解决的是 Dec-POMDP 问题。
具体来说,本文做出了如下假设:

论文标题:QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning
论文链接:https://arxiv.org/abs/1803.11485
QMIX 算法是 VDN 算法的后续工作,它的出发点是 VDN 做联合 Q-value 分解时只是进行简单的加和,这种做法会使得学到的局部 Q 函数表达能力有限,没有办法捕捉到智能体之间更复杂的相互关系,因而对 VDN 算法进行了修改。 具体来说,本文认为联合 Q 函数以及局部 Q 函数需要满足下述约束:论文标题:QTRAN: Learning to Factorize with Transformation for Cooperative Multi-Agent Reinforcement learning
论文链接:https://arxiv.org/abs/1905.05408
QTRAN 算法是对 VDN 以及 QMIX 算法的进一步改进(所以这三个工作是一条线),本文认为直接根据局部 Q 函数采用神经网络去逼近联合 Q 函数是一件比较困难的事情,因而将整个逼近过程分为两步: 首先采用 VDN 的方式得到加和的局部 Q 函数,作为联合 Q 函数的近似,接着去拟合局部 Q 函数与联合 Q 函数的差值,并证明了以下定理:- 独立 Q 网络:
- 联合 Q 网络:
- 联合 V 网络:
论文标题:Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments
论文链接:https://arxiv.org/abs/1706.02275
本文提出的 MADDPG 算法将 DDPG 算法扩展到多智能体环境中,MADDPG 算法假定每一个智能体拥有自己独立的 critic network 以及 actor network,并且假定每个智能体拥有自己独立的回报函数,这样 MADDPG 算法就可以同时解决协作环境、竞争环境以及混合环境下的多智能体问题。 但是 MADDPG 算法假定每个智能体在训练时都能够获取其余所有智能体的局部观察以及动作,因而即使每个智能体的 critic network 是独立的,训练时也需要中心化训练,因而遵循 CTDE 框架。 MADDPG 算法框架如下图所示(图片来源原论文):
论文标题:Counterfactual Multi-Agent Policy Gradients
论文链接:https://arxiv.org/abs/1705.08926
本文提出的算法 COMA 旨在解决 Dec-POMDP 问题中的 multi-agent credit assignment 问题,即多智能体信用分配问题。这个问题简单概括来说,由于 Dec-POMDP 问题中所有智能体共享同一个全局回报,因而每个智能体不知道自己的行为到底对这个全局回报产生了多大的影响,这就是多智能体信用分配问题。 COMA 算法与 MADDPG 一样,遵循 CTDE 训练框架,但是因为解决的是 Dec-POMDP 问题,所以所有的智能体共享一个联合的 critic network,该 network 与 MADDPG 一样,基于所有智能体的局部观察以及动作,但是 actor network 是独立的并且只基于局部观察。 COMA 与 MADDPG 在 actor network 上的不同之处在于前者使用的是 GRU 网络,为了更好的处理局部观察问题,但是后者使用的则是普通的 DNN。COMA 算法具体框架如下图所示: COMA 使用的是 vanilla 的 actor-critic 方法,其核心之处在于引入了一个 counterfactual 的 baseline 函数。这个思路是受到 difference rewards 方法启发的(具体可参见 [4] [5]),该方法通过比较智能体遵循当前 actor network 进行决策得到的全局回报与遵循某个默认策略进行决策得到的全局回报,来解决多智能体信用分配问题。 但是这种方法包括以下几个问题:由于需要知道遵循某个默认策略得到的全局回报,需要重复访问仿真环境;
该默认策略得到的回报可能并不在仿真器的建模之中,因而需要进行估计;
该默认策略的选取是完全主观的。
由于策略梯度是由根据其余智能体当前策略得到的一个期望联合 Q-value 来进行放缩的,其余智能体的当前策略不一定是最优的回应该智能体的策略,会导致策略梯度估计不准确;
即使我们解决了第一个问题,依旧存在前面提到的 relative overgeneralization 问题。

论文标题:Actor-Attention-Critic for Multi-Agent Reinforcement Learning
论文链接:https://arxiv.org/abs/1810.02912
本文提出的 MAAC 算法是在 MADDPG 上进行了一些修改,将 MADDPG 采用的 DDPG 算法替换为 SAC(soft actor-critic)算法,并将 COMA 提出的 counterfactual baseline 引入进来,因而可以同时处理协作、竞争以及混合环境,遵循 CTDE 框架。 其核心思想体现在,对于 MADDPG 算法,其每个智能体对应的 Q function 都是将其余智能体的局部观察以及动作无差别的作为输入,但是在现实场景中,智能体对于其余智能体的关注度是不一样的。 为此,MAAC 算法将注意力机制引入到 Q function 的构建之中,具体来说,每个智能体的 Q-function 网络结构如下(图片来源原论文):Foerster, Jakob, et al. "Stabilising experience replay for deep multi-agent reinforcement learning" Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.
Omidshafiei, Shayegan, et al. "Deep decentralized multi-task multi-agent reinforcement learning under partial observability" Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.
由于这部分要介绍的两个工作主要聚焦于使用 ER 训练 Q-function 时增加稳定性(CommNet 甚至因为 ER 在 multi-agent 环境下的不稳定性而禁用了 ER),这两个方法前者遵循 CTDE 框架,并且类似 MADDPG 方法一样,均假设每个智能体拥有自己独立的 Q-function;后者则是完全独立的 IQL。这两个方法都是基于 Q-Learning 算法。 Omidshafiei, Shayegan, et al. 的工作致力解决 partial observation 的问题,因而采用的是 DRQN 算法,本文提出采用 ER 训练 DRQN 时应当采用如下方式,并提出了 concurrent experience replay trajectories 的概念(图片来源原论文):
Foerster, Jakob, et al. "Stabilising experience replay for deep multi-agent reinforcement learning" Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.
Rabinowitz, Neil C., et al. "Machine theory of mind" arXiv preprint arXiv:1802.07740 (2018).
论文标题:Stabilising Experience Replay for Deep Multi-Agent Reinforcement Learning
论文链接:https://arxiv.org/abs/1702.08887
这篇文章我们之前已经讨论过,但是本文还提出了一种估计其他智能体策略的方法。这篇文章首先从 hyper Q-Learning 算法 [7] 出发,该算法通过贝叶斯估计的方法来估计其他智能体的策略。但是这种方法会增加 Q function 的输入维度,使得 Q function 更难学习。 上述情况在深度强化学习中更加明显。考虑如下一个简单的 idea,我们把其他智能体策略函数的参数作为额外输入 ,但是在深度强化学习中策略函数一般是 DNN,因而维度太高基本不可行。 那么更进一步,我们不用基于所有可能的 ,只要是在 ER 中出现的就可以,那么每一条轨迹都可以看作是 policy 的表示,但是轨迹数据维度还是太高了,我们需要找到一个低维的 “指纹“ 来代替轨迹,并且这个指纹还不能随着训练过程的进行变化太大,即需要光滑。 本文提出了一个十分简单的指纹表示—— episode 索引号。这样一个听上去过于简单的指纹在性能上确实可以带来提升。但是存在一个比较大的问题在于,当其他智能体的策略收敛之后,索引号还在不断增加。 另外,本文在之前指纹的基础上还增加了一个新的指纹—— exploration rate,这个值也能够一定程度上反应 policy 的特点。 当然,指纹的构建也催生了另外一个方向,叫做轨迹嵌入(trajectory embedding),这个我们留待下次讨论。论文标题:Machine Theory of Mind
论文链接:https://arxiv.org/abs/1802.07740
这篇论文是将行为以及脑科学领域 Theory of Mind(ToM)理论 [8] 引入到多智能体强化学习中,用以根据其他智能体历史行为数据来预测其未来行为等(这里我们只关注行为)。 ToM 理论认为,预测一个智能体的未来行为,我们需要知道其性格(character)、思想(mental)以及当前状态。对于智能体各自的性格表示,我们通过以下方法编码: 对于某个智能体 过去的轨迹数据 ,我们使用一个神经网络编码每一条轨迹 ,最后将这些编码加起来即可,。 不同的智能体在不同时刻其思想会根据已经历过的事件以及性格的不同而不同,因而我们可以通过下面的计算方法来得到智能体当前思想的编码:
