利用反向传播解决多智能体通信

190 阅读3分钟

利用反向传播解决多智能体通信

Learning Multiagent Communication with Backpropagation


介绍

存在的问题
  • 在现实世界中,每个参与者的能力和对世界的可见性都有限

  • 虽然控制每个代理的模型通常是通过强化学习来学习的,但通信的规范和格式通常是预先确定的(每个时间步交流信息)

本文工作
  • 提出了一个模型,在该模型中,合作的智能体在采取动作之前学会在他们之间进行沟通,每个智能体都由深度前馈网络控制

  • 模型能够应用于涉及到环境部分可见的问题上

  • 模型允许智能体的数量和类型在允许时发生动态变化


通信模型

  • sjs^j :第j个智能体对环境的状态值
  • 控制器Φ, a=Φ(s) ,其中 s={s1s^1,...,}sjs^j 是所有的状态值, a={a1a^1,...., aj a^j} 是所有动作的拼接。 这个单个控制器Φ包含每个代理的单独控制器,以及代理之间的通信
控制器Φ结构
  • 主要结构
    • 由模块fif^i构建 i{0K}i∈\{0,…, K\},其中K为网络中的通信步数
    • fif^i为每个智能体j取两个输入向量:隐藏状态hjih{^i_j}和通信cjic{^i_j},并输出一个向量hji+1h{^{i+1}_j}。由fif^i单一线性层+非线性层构成。 整体的输入:h0=[h10,h20hj0]h^0 = [h{^0_1}, h{^0_2},…,h{^0_j}]image-20230621163949423
    • 整个模型可视为由多个层次构成: hi+1=σ(Tihi) h^{i+1}=\sigma(T^ih^i) 其中hih^i是所有hjih{^i_j}的拼接 而TiT^i相当于模型系数; T的大小是动态的 通过公式2( J-1)的归一化因子可以实现
    • 模型第一层使用编码器函数: hj0=r(sj)h{^0_j}=r(s_j); 输入为每个agent的状态sjs_j输出为特征向量 hj0h{^0_j} ;r是一个单层神经网络 ;对于所有的agent cj0=0c{^0_j}=0
    • 模型的输出端使用解码器函数:q(hjK)q(h{^K_j});输出所有action空间的分布;q是单层网络的形式,最后有一个softmax;最后为了产生离散的action,会从分布中进行采样 aja_j~q(hjK)q(h{^K_j})
    • 智能体变化,N(j)会随之变化,所以模型被解释为动态图,N(j)是当前时刻连接到顶点j的顶点集,图内的边表示agent之间的通信通道,于是公式2变成:image-20230621194952990
  • 其他变化
    • 跳过连接:对于某些任务,将输入编码hj0h{^0_j}作为第一层以外的通信步骤的输入。因此,对于第i步的智能体j,有:hji+1=fi(hji,cji,hj0)h{^{i+1}_j=f^i(h{^i_j},c{^i_j},h{^0_j})}
    • 暂时重现:将网络变成一个RNN:每个时间步t使用相同的ftf^t 同时从q(hjt)q(h{^t_j})中采样动作
  • 模型总结
    • 最右边的图是模型的整体结构,名为ϕ,代表了整个MAS一次输入状态到获取动作的全过程,一次整个ϕ 模型的前向传播类似于仿真中的一个time step,相当于强化学习中的一次根据状态决策动作的过程,也就是一次执行策略的过程。模型输入的是每个agent的状态,输出是每个智能体的动作action,和策略一样很好理解,J就是agent的个数。整个ϕ 模型包括了2个阶段的通讯过程(2是定义的参数,代表做一次决策MAS系统经历两步交互),每一个交互阶段的过程如中间图所示,其中fif^i 代表ϕ 中的第i层模型,也是第i阶段的交互模型层。图中四个灰色方块(一个f)代表了四个智能体。在fif^ifi+1f^{i+1} 过程中,fif^i的一部分(蓝色)直接输入给每个agent对应的fi+1f^{i+1} ,而另一部分(红色)则和其他agent的fif^i 一起求和取平均后再无差别的送给每个fi+1f^{i+1} 。下面看每个小灰方块里的内容,对应最左边的图,实际上这就是一个两层的神经网络,输入是状态向量和交互向量的组合(红色和蓝色向量直接拼接起来),用于迭代每一次的交互过程,输出就是下一个交互交互阶段的状态向量。

图片

总结:

image-20230622095127551