Multi-Agent Game Abstraction via Graph Attention Neural Network
论文地址
代码地址
摘要
本文通过一个完整的图来建模智能体之间的关系,并创新性地提出一种基于两阶段注意力网络(G2ANet)的游戏抽象机制,表明两个智能体之间的交互以及交互的重要性。本文将这种检测机制集成到基于图神经网络的多智能体强化学习中,以进行游戏抽象(可以理解为为了提高智能体的性能,简化学习过程而提出的与多智能体系统结构等相关的先验知识),并提出了两种新的学习算法GA-Comm和GA-AC。
相关工作
大规模的智能体数量个复杂的智能体交互对策略的学习造成影响。因此,简化学习过程是一个重要的研究。早期的研究重要是松散多智能体系统的耦合,采用游戏抽象和知识转换来加速多智能体强化学习。然而,在大规模的智能体环境中,智能体往往不是独立的,通过松散耦合将单智能体的方法应用到多智能体系统中失效。
game abstract
游戏抽象的主要思想是将多智能体强化学习(马尔可夫博弈)模型简化为一个小游戏,从而降低求解(或学习)博弈均衡策略的复杂性。
soft- attention
soft-attention计算元素的重要性分布。它是完全可微的,因此能够实现end-to-end 反向传播训练。
hard-attention
hard- attention从所有元素中选择一个子集,迫使模型只能关注重要元素,完全忽略其他元素。
方法
如图所示,本文提出一种基于两阶段注意力网络的图网络结构来进行游戏抽象。hard-attention用来减少无关的边(无关的智能体信息),soft-attention用来学习重要的边(相关的智能体信息),然后使用图网络获得其他智能体的信息。最后,将获得的游戏抽象与强化学习算法结合。
G2ANet:将智能体之间的关系构建为图,每个智能体为一个节点,默认情况下,所有的节点成对连接。
agent-coordination-graph:智能体之间的关系构建为一个无相图:
G
=
(
N
,
E
)
G=(N,E)
G=(N,E),又节点集合
N
N
N和边集合
E
E
E组成,是
N
N
N的无序元素对。每个节点代表智能体的入口(开始),边代表两个相邻智能体之间的关系。
之前的工作大部分采用soft-attention机制获得重要性分布,包括环境中的所有智能体(与当前智能体不相关的智能体),从而削弱了真正有作用的智能体的影响。因此,G2ANet中先用hard-attention去除不相关的智能体,在用soft-attention确定相关智能体的权重分布。
部分可观测环境中,在时间步
t
t
t,每个智能体
i
i
i获得一个局部观测
o
i
t
o_i^t
oit,它包含了智能体
i
i
i在图
G
G
G中的信息。通过MLP将局部观测
o
i
t
o_i^t
oit编码为一个特征向量
h
i
t
h_i^t
hit ,然后,通过特征向量
h
i
t
h_i^t
hit 学习智能体之间的关系。hard-attention会输出一个one-hot向量,我们可以得到节点
i
i
i和
j
j
j之间的边是否存在于图
G
G
G中,以及每个智能体需要与哪些智能体交互。通过这种方式,策略学习被简化为几个较小的问题,并且可以实现初步的游戏抽象。
此外,图
G
G
G中每条边的权重不同。我们通过soft-attention学习每条边的权重。这样,我们可以得到智能体
i
i
i的一个子图
G
i
G_i
Gi,智能体
i
i
i仅仅与需要交互的智能体相连,边的权重代表关系的重要性。可以利用GNN获得子图
G
i
G_i
Gi的向量表示,代表其他智能体的贡献。
具体的,图上图所示。对于智能体
i
i
i,通过hard-attention机制学习到一个hard权重
W
h
i
,
j
W_h^{i,j}
Whi,j,决定智能体
i
,
j
i,j
i,j之间是否需要交互。利用LSTM网络输出权重(0,1).对于智能体
i
i
i,我们将智能体
i
,
j
i,j
i,j的嵌入向量合并为特征
(
h
i
,
h
j
)
(h_i,h_j)
(hi,hj),并将特征输入到LSTM模型中,这里采用了
B
i
−
L
S
T
M
Bi-LSTM
Bi−LSTM,减少输入顺序对权重的影响,考虑所有输入的影响。(传统LSTM中输出仅取决于当前时间和前一时间的输入,而忽略了后一时间的输出信息输入)
另外,由于hard-attention采用sampling过程而无法进行梯度反向传播,在这里尝试采用gumbel-softmax解决(具体可以参考gumbel-softmax):
W
h
i
,
j
=
g
u
m
(
f
L
S
T
M
(
h
i
,
h
j
)
)
W_h^{i,j}=gum(f{LSTM(h_i,h_j)})
Whi,j=gum(fLSTM(hi,hj))
g
u
m
(
.
)
gum(.)
gum(.)代表gumbel-softmax 函数。通过hard-attention,得到智能体
i
i
i的子图
G
i
G_i
Gi,图中,
i
i
i仅仅与需要协作的智能体相连。
然后,使用soft-attention学习子图
G
i
G_i
Gi边的权重
W
s
i
,
j
W_s^{i,j}
Wsi,j,使用query-key(键-值对)将嵌入
e
i
,
e
j
e_i,e_j
ei,ej进行比较,并将这两个嵌入之间的匹配值传递到softmax函数中(这里就是采用最基础的attention机制处理,对hard-attention保留的边进行重要性权重处理)
W
s
i
,
j
∝
e
x
p
(
e
j
T
W
k
T
W
q
e
i
W
h
i
,
j
)
W_s^{i,j}\propto exp(e_j^TW_k^TW_qe_iW_h^{i,j})
Wsi,j∝exp(ejTWkTWqeiWhi,j)
W
k
W_k
Wk将
e
j
e_j
ej转化为key,
W
q
W_q
Wq将
e
i
e_i
ei转化为query,
e
i
,
e
j
e_i,e_j
ei,ej对应图中的
(
h
i
,
h
j
)
(h_i,h_j)
(hi,hj)。
基于G2ANet的策略网络
大部分通信的研究中,通过聚合函数实现通信,聚合函数可以将所有其他智能体的通信向量(例如,平均函数、最大函数)聚合为一个向量,并将其传递给每个智能体。这样,每个智能体都可以接收所有智能体的信息并实现通信。但是,在大多数环境中,智能不需要与所有其他智能体通信。频繁的通信将导致高计算成本,并增加策略学习的难度。本文提出一种GA-Comm。
如上图,
o
i
o_i
oi代表智能体
i
i
i的观测,利用LSTM提取智能体的特征:
h
i
,
s
i
=
L
S
T
M
(
e
(
o
i
)
,
h
i
′
,
s
i
′
)
h_i,s_i=LSTM(e(o_i),h'_i,s'_i)
hi,si=LSTM(e(oi),hi′,si′)
(
h
i
,
s
i
)
(h_i,s_i)
(hi,si)是LSTM的hidden和 cell states。关于其他智能体对智能体
i
i
i的贡献,我们首先使用两阶段注意机制来选择智能体
i
i
i需要与哪些智能体通信并获得其重要性
W
h
i
,
j
=
M
h
a
r
d
(
h
i
,
h
j
)
,
W
s
i
,
j
=
M
s
o
f
t
(
W
h
,
h
i
,
h
j
)
W_h^{i,j}=M_{hard}(h_i,h_j), \\ W_s^{i,j}=M_{soft} (W_h,h_i,h_j)
Whi,j=Mhard(hi,hj),Wsi,j=Msoft(Wh,hi,hj)
最后,通过soft-attention输出的权重对邻居特征进行加权处理得到邻居信息
x
i
x_i
xi
x
i
=
∑
j
≠
i
w
j
h
j
=
∑
j
≠
i
W
h
i
,
j
W
s
i
,
j
h
j
x_i=\sum_{j\neq i}w_jh_j=\sum_{j\neq i}W_h^{i,j}W_s^{i,j}h_j
xi=j=i∑wjhj=j=i∑Whi,jWsi,jhj
最后,利用策略梯度得到每个智能体的策略,并扩展到多种RL算法中
a
i
=
π
(
h
i
,
x
i
)
a_i=\pi(h_i,x_i)
ai=π(hi,xi)
h
i
h_i
hi是智能体的观测特征,
x
i
x_i
xi是其他智能体对
i
i
i的贡献。
基于G2ANet的AC网络
基于M AAC。主要改进是计算其他智能体的贡献权重,在G2ANet-AC中,
x
i
=
∑
j
≠
i
w
j
v
j
=
∑
j
≠
i
w
j
h
(
V
g
i
(
o
j
,
a
j
)
)
w
j
=
W
h
i
,
j
W
s
i
,
j
∝
e
x
p
(
h
(
B
i
L
S
T
M
j
(
e
i
,
e
j
)
)
e
j
T
W
k
T
W
q
e
i
)
x_i=\sum_{j\neq i}w_jv_j=\sum_{j\neq i}w_jh(Vg_i(o_j,a_j))\\ w_j=W_h^{i,j}W_s^{i,j}\propto exp(h(BiLSTM_j(e_i,e_j))e_j^TW_k^TW_qe_i)
xi=j=i∑wjvj=j=i∑wjh(Vgi(oj,aj))wj=Whi,jWsi,j∝exp(h(BiLSTMj(ei,ej))ejTWkTWqei)
实验
在交通灯和追捕环境中进行验证