前言
社会心理学和真实经验展示了,认知一致性在保持人类社会有序方面扮演了重要角色。如果人们对于他们的环境具有更一致的认知,他们更可能实现更好的合作。同时,只有一个邻居范围内的认知一致性才重要,因为人们只直接与邻居交互。这篇文章将neighborhood cognitive consistency(NCC)引入MARL,提出一个整体的设计。
社会心理学中,认知一致性理论展示人们通常试图以一种简单一致的方式理解环境。不一致会不舒服,并趋于一致。维护邻居认知一致性通常足够保证系统级(system-level)协作。
作者通过三步实现邻居认知一致性,第一,将多智能体环境建模为图,使用图卷积网络从邻居agents的联合观察中提取高层表征;第二,然后将这个高层表征分解为一个agent-specific认知表征和一个neighborhood-specific认知表征;第三,假设每个neighborhood有一个真隐藏认知变量,然后所有的邻居agent学习通过这个真隐藏认知变量进行变分推断(variational inference)来对齐他们的neighborhood-specific认知表征,最后所有的邻居agent将最终形成一致的邻居认知。
方法
定义认知为agent对局部环境的理解,包含对所有邻居agent的观察,和从观察中提取的高层知识。定义邻居认知一致性为邻居agent对他们的neighborhood形成了相似的认知(认知变量的分布相似)
NCC-Q
- 首先是FC将局部观察 o i o_i oi编码为低层认知向量 h i h_i hi,只包含agent-specific信息。
- 通过图卷积网络整合整个neighborhood中所有的 h i h_i hi,包含agent自己,得到高层认知向量 H i H_i Hi,具体公式如下。共享参数 W W W,减少overfitting风险,更鲁棒。同时正则化也降权了high-degree neighbors。这里估计符号错了,应该是union不是conjunction。
- 认知模块将
H
i
H_i
Hi分解为两个,一个agent-specific认知
A
i
A_i
Ai,应该捕获关于agent自己处境的局部知识;另一个是
C
i
^
\widehat{C_i}
Ci
,neighborhood-specific认知,提取关于neighborhood的整体知识。这部分的具体实现基于两个假设:
1)对于每一个neighborhood,都有一个true hidden cognitive variable C来获得每个agent 的观察。即作者提出NCC-MARL,将全局状态 S S S分解为一些隐藏认知变量 C k C_k Ck,观察 O i O_i Oi是基于 C k C_k Ck产生的。当只有一个agent时,跟DEC-POMDP一致。但在大规模设置下,仅通过一个状态产生观察是不准确且不实际的,因为不同agent的观察可能非常不同。2)如果邻居agent可以恢复隐藏认知变量 C C C,他们最终会形成一致的周边认知,因此实现更好的协作。换言之,学到的认知变量应该与真实认知变量相似。作者最小化原始分布 p ( C ∣ o i ) p(C|o_i) p(C∣oi)与近似分布 q ( C ∣ o i ) q(C|o_i) q(C∣oi)之间的KL散度,等价于最大化这个等式。作者使用VAE建模,encoder 将 o i o_i oi 编码为 C i ^ \widehat{C_i} Ci ,但不是直接将 o i o_i oi映射为 C i ^ \widehat{C_i} Ci ,采用重参数化trick从单位高斯分布中采样 ϵ \epsilon ϵ,然后 C i ^ = C i μ ^ + C i σ ^ ⨀ ϵ \widehat{C_i}=\widehat{C_i^{\mu}}+\widehat{C_i^{\sigma}}\bigodot\epsilon Ci =Ciμ +Ciσ ⨀ϵ。
decoder尝试将其还原为 o i ^ \widehat{o_i} oi ,loss函数为最小化观察的L2 loss和观察产生这个认知变量的分布于真实认知变量分布的KL散度。所有的邻居agent使用相同的 p ( C ) p(C) p(C),最终会在neighborhood级别上实现一致的认知。 - Q值模块通过元素间求和整合 A i A_i Ai和 C i ^ \widehat{C_i} Ci 。
- 混合模块对所有的Q值求和得到联合Q值函数,所有agent共享。
以上过程仅针对同一个neighborhood中的agent。
训练主要最小化两个loss的结合,
一个是所有agent共享的TD-loss,这个鼓励所有的agent协作地产生大的
Q
t
o
t
a
l
Q_{total}
Qtotal,确保整个队伍层面的协作。
然后是CD-loss,若只有一个邻居,假设
p
(
C
)
p(C)
p(C) 遵循 unit Gaussian distribution。若有更多的邻居,使用邻居agent的替换真实的
p
(
C
)
p(C)
p(C)。这种方式惩罚任意有巨大认知分歧的agent
i
i
i 和
j
j
j,进一步限制了KL散度的大小,保证了邻居认知一致性。这么做的原因在于不关心邻居agent是否收敛到了特定的认知分布
p
(
C
)
p(C)
p(C),只要他们形成了一致的认知即可。
NCC-AC
这里使用标准的 actor-critic 架构,每个 agent 都有一个独立的 actor
μ
θ
i
(
o
i
)
\mu_{\theta_i}(o_i)
μθi(oi)。
对于critic
Q
i
(
<
o
i
,
a
i
>
,
o
i
→
,
a
i
→
∣
w
i
Q_i(<o_i,a_i>,\overrightarrow{o_i}, \overrightarrow{a_i}|w_i
Qi(<oi,ai>,oi,ai∣wi。
这里有两个细节,1)GCN模块分别整合动作和观察,
H
i
a
,
H
i
o
H_i^a,H_i^o
Hia,Hio。2)直接使用
h
i
a
h_i^a
hia 产生 agent-specific 认知变量
A
i
A_i
Ai。
critic 训练最小化与 NCC-Q 一样的损失
actor 使用DDPG的多智能体扩展版本:
实验
对于连续动作,作者使用数据包路由(packet routing)任务,离散动作使用wifi配置和 google football 环境。在这些环境中,agent 之间天然的拓扑可以被用来形成邻居。
Google Football
基于物理的 3D 模拟器,观察是 115 个浮点数,包括玩家和球的坐标,玩家和球的方向等。21个离散动作,移动(上下左右),不同的踢球方式(短、长、高传球,射门),冲刺等。
实验场景为两个标准场景:1)2v2,我方两个尝试从盒子边缘得分。一个在边缘和球一起,跟后卫挨着;另一个在中间,面对对方守门员。2)3v2,我方三个尝试得分,一边一个,中间的有球,面对后卫。
CD-loss的权重为 0.2,为了加速学习,探索时的动作集为{top-right-move, bottom-right-move, high-pass, shot},如果agent得分,给最后三个动作分别1,0.7,0.3。
DGN取得了好的平均奖赏因为参数共享对于同质环境有用,但是方差比较大。
VDN在简单场景超过QMIX,但是复杂场景不行。
IDQN总是最差的,因为其既没有联合Q的分解,也没有agent分解这种明确的协作机制,这也说明了大规模场景中协作机制的必要性。
认知一致性对高困难设置的优秀表现很重要,CD-loss有这个能力。认知一致性和agent之间的协作有密切联系。