Learning Multiagent Communication with Backpropagation

Introduction

在任何部分可见的环境中,智能体之间的通信对于合作至关重要。虽然模型控制每个智能体实际上是通过强化学习得到的,但是通信的信息和格式通常是预定义的。比如在机器足球中,机器人在每个时间步通信它们的位置以及到球的距离。

本文提出的智能体之间学习通信的模型。每个智能体由一个DNN控制,这个网络接入了一个communication channel获得一个连续向量。通过这个channel,智能体收到了其他智能体传递信息的综合。然而,每个智能体在channel中传递的信息不是预先指定的,而是学习出来的。因为communication是连续的,因此模型可以通过反向传播训练得到。这样就可以结合标准的单智能体RL算法或者监督学习。

我们研究的场景如下: J J J个智能体,合作来最大化收益 R R R。我们对智能体之间的合作进行了简化的假设,每个智能体获得的收益都是 R R R,不管它们贡献如何。在这种情况下,每个智能体有各自的策略网络或者将它们视作一个大的策略网络没有区别。考虑后者,我们的模型是一个大的前向神经网络,将每个智能体的输入映射到动作,每个智能体占领单元的一个子集。在层与层之间有一个特别的连通性结构(1)实例化代理之间的广播通信通道。(2)反向传播智能体状态。

Communication Model

网络的输入是将各个智能体观测的信息concate起来: s = s 1 , . . . , s j s = {s_1,...,s_j} s=s1,...,sj
输出是各个智能体会做出的动作: a = a 1 , . . . , a j a = {a_1,...,a_j} a=a1,...,aj

controller Structure

整体来看,整个模型架构由一个个灰色块 f i f^i fi组成。每一层中的灰色块由智能体的个数决定,并且同一层的灰色块的参数一样。

  • i ∈ ( 0 , . . , K ) i\in (0,..,K) i(0,..,K): K代表网络中communication steps的数量,上图中的K=2。
  • f i f^i fi的输入分别是hidden state h j i h_j^i hji和communication c j i c_j^i cji,输出是 h j i + 1 h_j^{i+1} hji+1
    h j i + 1 = f i ( h j i , c j i ) = σ ( H i h j i + C i c j i ) h_j^{i+1} = f^i(h_j^i, c_j^i)=\sigma(H^ih_j^i + C^ic_j^i) hji+1=fi(hji,cji)=σ(Hihji+Cicji) c j i + 1 = 1 J − 1 ∑ j ′ ≠ j h j ′ i + 1 c_j^{i+1} = \frac{1}{J-1}\sum_{j' \neq j}h_{j'}^{i+1} cji+1=J11j̸=jhji+1
  • 进一步简化上面的式子: h i + 1 = σ ( T i h i ) h^{i+1} = \sigma(T^ih^i) hi+1=σ(Tihi) C ^ i = C i / ( J − 1 ) \hat C^i = C^i/(J - 1) C^i=Ci/(J1)
  • 随着智能体数量的改变, T T T是可以动态变化。
  • 模型的第一层是将状态进行编码 h j 0 = r ( s j ) h_j^0 = r(s_j) hj0=r(sj),这一层不需要计算communication信息。
  • 模型的输出层是一层神经网络 q ( h j K ) q(h_j^K) q(hjK),跟着softmax操作,来产生离散动作的概率分布。

Local Connectivity

上面的框架的另一个方案是,允许智能体与在自己通信范围内的其他智能体通信。用 N ( j ) N(j) N(j)表示位于智能体j通信范围内的智能体集合。那么通信消息式子变为:
c j i + 1 = 1 ∣ N ( j ) ∣ ∑ j ′ ∈ N ( j ) h j ′ i + 1 c_j^{i+1} = \frac{1}{|N(j)|}\sum_{j' \in N(j)}h_{j'}^{i+1} cji+1=N(j)1jN(j)hji+1
随着智能体移动, N ( j ) N(j) N(j)一直发生变化。在这种情况下,我们的模型就变成了一个动态图。这使得我们的模型挺像GGSNN1

Skip Connections

在其他的任务中,我们可以用

Temporal Recurrence

我们也尝试RNN网络。这个实现是通过将上式中的communication step i i i用时间步 t t t替代。然后对于所有的时间步 t t t,用相同的模块 f t f^t ft。如果 f t f^t ft是单层网络,那么我们获得平坦的RNN,可以互相communicate。

实验

Baselines

Independent controller:训练一个大的shared parameter的网络,但是不包括任何的通信。这个模型的好处是智能体可以自由加入或者离开队伍,但是很难将智能体学会合作。

Fully-connected:整个模型是多层全连接网络,输出是多个softmax heads。这个模型运行智能体之间互相通信,但是这个模型不够灵活,也就是说智能体的数目必须固定。

Discrete communication:另一种通信的方式是discrete symbols,这些symbols的含义在训练的过程中学习到。这样的话模型包含了discrete operations并且不可微了,在这种情况使用强化学习来训练。

Simple Demonstration with a Lever Pulling Task

一共有 m m m个杆子, N N N个智能体。在每个回合, m m m个智能体从N个智能体中随机取出,然后他们要选择拉动的杆子。他们的目标是尽可能的拉动不同的杆子,他们的奖励正比于拉动的不同杆子的数量。

Multi-turn Games

  1. Traffic Junction
    控制车辆通过交通枢纽,使得流量最大,但是不会发生碰撞。
  2. Combat Task
    多个智能体对打其他的多个敌方机器人。

reviewer给出的意见

Reviewer 1
优点:不同智能体间学习到通信的语言这一点很有意思。这个工作和之前工作的不同在于将deep nets并入了多智能体强化学习框架。
concern:这个方法需要通信过程中的同步。也就是说为了计算出下一层的hidden activations,这需要所有智能体都收到了其他智能体发来的信号。这个在实际中可能是一个很大的限制。

Reviewer 2
优点:本文探讨了如果训练一系列智能体合作完成任务?从本文结果看来引入连续communication channel和反向传播对于这个结果非常重要。

concern:除了bAbI这个实验,其他实验作者都没有给出除了自己算法的其他baseline效果,这很奇怪。reviewer建议加入一个中心话控制器,它可以输入所有智能体的信息,然后为每个人做出action。这是否会更好?如果这个中心化的控制器更好,那么为什么我们还要设计这么多的智能体?这可能有许多原因,但是似乎它们依赖于新的智能体(随机初始化)—然后加入到当前的队伍中,然后和队伍中的其他人一起训练。这个操作在现有的框架中能否做到?(智能体以及加入了,但是他们可以重新训练吗?)在所有情况下,中心化控制器应该作为一个baseline加入到合作任务中。

Reviewer 4
通过sharing parameter来减少需要学习的参数数量,同时引入其他模块的输出来建造一个communication channel,似乎达到了这个结果。但是这个想法不够创新,因为本身是一个很经典的神经网络架构。实验应该将这个想法和经典的参数共享比较来突出,communication channel的作用。同时,中心化的控制器(获得所有观测信息)应该会获得更好的结果。相反如果中心化的控制器没有获得更好的结果,我反而会差异为什么没有获得更好的结果。因为获得了所有信息以后,这个baseline应该比只能沟通部分信息的communication方法要好。
文中主要陈述了包括一个动态结构的好处,所以应该给出一些应该例子来说明这个的好处。
实验的背景描述不够。非常重要的一点是每个智能体的输入放在了supplementary material中。这位分析结果带来了困难。
没有足够的解释,在不同的任务中,智能体communicate了什么消息。应该给出一个小例子来说明沟通过程中,交换的消息是什么。

思考

如何定义通信的损失函数。


  1. Y. Li, D. Tarlow, M. Brockschmidt, and R. Zemel. Gated graph sequence neural networks. In ICLR, 2015. ↩︎

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Autogen multiagent是一种自动生成多智能体系统的方法。 在传统的多智能体系统中,需要手动设计和编写每个智能体的行为规则和决策策略。这样做的问题是,当系统需要扩展或修改时,需要手动调整每个智能体的规则和策略,非常耗时和困难。而autogen multiagent方法则通过自动生成智能体系统的规则和策略,极大地简化了系统的设计和维护过程。 具体实现autogen multiagent的方法有多种。一种常用的方法是基于机器学习和优化算法。系统首先采用机器学习算法对智能体的行为规则进行训练,让系统能够从大量的实例中学习合适的决策策略。然后,使用优化算法对系统中的智能体进行优化,并自动调整它们的规则和策略,以实现更高的性能和效率。 另一种实现autogen multiagent的方法是基于进化算法。系统首先通过随机生成一组智能体的规则和策略作为初始种群,然后使用进化算法对这些智能体进行迭代优化。在每一代中,系统通过评估智能体的性能选择出适应度高的个体,并通过交叉和变异等遗传操作生成新的智能体。通过不断迭代优化,系统可以自动生成合适的智能体规则和策略。 总的来说,autogen multiagent实现是一种通过机器学习、优化算法或进化算法等方法自动生成多智能体系统的规则和策略的方法。它可以大大简化多智能体系统的设计和维护过程,并且能够在系统性能和效率方面取得更好的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值