利用反向传播解决多智能体通信
Learning Multiagent Communication with Backpropagation
介绍
存在的问题
-
在现实世界中,每个参与者的能力和对世界的可见性都有限
-
虽然控制每个代理的模型通常是通过强化学习来学习的,但通信的规范和格式通常是预先确定的(每个时间步交流信息)
本文工作
-
提出了一个模型,在该模型中,合作的智能体在采取动作之前学会在他们之间进行沟通,每个智能体都由深度前馈网络控制
-
模型能够应用于涉及到环境部分可见的问题上
-
模型允许智能体的数量和类型在允许时发生动态变化
通信模型
- :第j个智能体对环境的状态值
- 控制器Φ, a=Φ(s) ,其中 s={,...,} 是所有的状态值, a={,...., } 是所有动作的拼接。 这个单个控制器Φ包含每个代理的单独控制器,以及代理之间的通信
控制器Φ结构
- 主要结构
- 由模块构建 ,其中K为网络中的通信步数
- 为每个智能体j取两个输入向量:隐藏状态和通信,并输出一个向量。由单一线性层+非线性层构成。 整体的输入:;
- 整个模型可视为由多个层次构成: 其中是所有的拼接 而相当于模型系数; T的大小是动态的 通过公式2( J-1)的归一化因子可以实现
- 模型第一层使用编码器函数: ; 输入为每个agent的状态输出为特征向量 ;r是一个单层神经网络 ;对于所有的agent
- 模型的输出端使用解码器函数:;输出所有action空间的分布;q是单层网络的形式,最后有一个softmax;最后为了产生离散的action,会从分布中进行采样 ~
- 智能体变化,N(j)会随之变化,所以模型被解释为动态图,N(j)是当前时刻连接到顶点j的顶点集,图内的边表示agent之间的通信通道,于是公式2变成:
- 其他变化
- 跳过连接:对于某些任务,将输入编码作为第一层以外的通信步骤的输入。因此,对于第i步的智能体j,有:
- 暂时重现:将网络变成一个RNN:每个时间步t使用相同的 同时从中采样动作
- 模型总结
- 最右边的图是模型的整体结构,名为ϕ,代表了整个MAS一次输入状态到获取动作的全过程,一次整个ϕ 模型的前向传播类似于仿真中的一个time step,相当于强化学习中的一次根据状态决策动作的过程,也就是一次执行策略的过程。模型输入的是每个agent的状态,输出是每个智能体的动作action,和策略一样很好理解,J就是agent的个数。整个ϕ 模型包括了2个阶段的通讯过程(2是定义的参数,代表做一次决策MAS系统经历两步交互),每一个交互阶段的过程如中间图所示,其中 代表ϕ 中的第i层模型,也是第i阶段的交互模型层。图中四个灰色方块(一个f)代表了四个智能体。在 到 过程中,的一部分(蓝色)直接输入给每个agent对应的 ,而另一部分(红色)则和其他agent的 一起求和取平均后再无差别的送给每个 。下面看每个小灰方块里的内容,对应最左边的图,实际上这就是一个两层的神经网络,输入是状态向量和交互向量的组合(红色和蓝色向量直接拼接起来),用于迭代每一次的交互过程,输出就是下一个交互交互阶段的状态向量。
总结: