python PPO单智能体区域覆盖 代码_注意力机制


Multi-Agent Game Abstraction via Graph Attention Neural Network

一、 概要及创新点

在多智能体环境中,大量智能体之间复杂的博弈关系导致策略学习非常困难。并且在决策过程中,每个智能体并不需要一直与所有智能体保持交互,只需要与邻居智能体交互,传统的方法只能通过先验知识来确定哪些智能体之间有交互,但当系统十分复杂时,基于规则定义交互十分困难。这篇文章主要想通过对两个智能体之间的交互关系进行建模,即判断两个智能体是否存在交互,如果存在,判断该交互对智能体策略影响的重要性。

这篇文章主要采用两种注意力机制(two-stage attention network,G2ANet)来进行处理。

  • 将多智能体系统建模为图网络,即拓扑图,每个节点表示一个智能体,节点之间的边表示两个智能体之间的交互关系。
  • Hard-attention:断开多智能体拓扑图中的边,只保留有交互的边,即一个判断是否存在交互的过程,建立一个有交互的拓扑图。通常的hard-attention是通过采样得到的,并且不可微,即不能学习,这篇文章对hard-attention做了改进,使其能够端到端地学习。
  • Soft-attention:对经过Hard-attention保留下的交互,判断交互关系的重要性。通常的soft-attention机制会对每个邻居智能体分配一个权重,即使对无关邻居智能体分配的权重非常小,也造成了计算量过大和削弱对重要交互关系的关注。
  • 并且将上述两种注意力机制与值函数强化学习和AC强化学习算法相结合应用于多智能体策略的学习。

总的来说hard-attention断开了无关交互边,soft-attention确定交互边的重要性权重,如下图所示。


python PPO单智能体区域覆盖 代码_强化学习_02


二、 方法

2.1 hard-attention

文章attention逻辑如下图所示


python PPO单智能体区域覆盖 代码_强化学习_03


先用hard attention确定断开哪些边,hard attention输出为


表示是否有交互(是否存在边)。采用LSTM作为可学习得核,如下式



其中


为gumbel-softmax函数,


表示一个全连接层,


表示节点


的特征。由于LSTM的输出与网络输入顺序有关,并且


只与


有关,与之后的


无关,为了避免这种情况,文章采用Bi-LSTM函数,两个LSTM函数分别从头尾两端开始计算,每次将正LSTM与反LSTM输出叠加进行hard-attention计算。


2.2 soft-attention

soft-attention就是对hard-attention保留的边确定重要性权重,采用最基础的attention机制处理如下



表示第


个智能体的特征,


分别为key线性映射与query线性映射。最终得到每个边


的重要性权重。


2.3 基于G2ANet的策略网络

文章将衍生出的该算法称为GA-Comm,是一种基于通信的算法,每个智能体能够通过通信得知邻居智能体的状态,算法如下所示


python PPO单智能体区域覆盖 代码_博弈策略_04


每个智能体观测为


,利用LSTM提取每个智能体特征如下



其中


分别表示LSTM中的hidden state与cell state。


为一个全连接层,然后利用特征


通过hard与soft attention得到连接权重




最后利用soft-attention输出的权重对邻居特征进行加权处理得到邻居信息




最后利用策略梯度算法REINFORECE得到每个智能体的策略,这里其实可以拓展到很多RL算法



2.4 基于GA2Net的AC网络

与2.3 的主要区别在于对每个智能体计算一个


,其中


是多层感知机,


为邻居信息的加权,权重通过两种注意力机制计算得到



其中


为非线性函数与线性映射矩阵,



文章:https://arxiv.org/abs/1911.10715