QTRAN 多智能体值分解
代码:https://github.com/Sonkyunghwan/QTRAN
VDN 和 QMIX 都是值分解领域的两大标杆性文章,VDN 将联合动作价值函数分解为单个动作价值函数的和。QMIX 扩展了这种可加性的值函数,进行因子分解,将联合作用价值函数表示为单调函数,而不是仅仅为加和,从而实现了环境的更进一步扩展。
值分解其实就是在保证联合动作取 argmax 的时候能够是对各个智能体的值函数取 argmax。VDN 中采用的是线性求和的方式,QMIX 中采用的是保证单调性。对于一些任务,比如像联合动作的最优就是各个智能体的单独的最优的值函数,这样的问题可以采用这种方式,对于不是这类型的问题的话,这种限制就太强了。
QTRAN 提出了一种新的值分解的算法,将原来的联合行动价值函数转换为一种易于分解的函数,它们具有相同的最优行动,这种方法有更一般的降解,适合更多的场合,号称可以降解一切可以降解任务。
1. QTRAN 直观理解
在 VDN 和 QMIX 中是将
但是由于部分可观测的限制,
2. 背景
2.1 Decentralized POMDP
Decentralized POMDP 是用来给合作式多智能体任务建模的标准方法,简称 DEC-POMDP,表示为
:N 个 agents. :环境的真实状态 :每个 agent 的动作 :联合动作向量 :状态转移方程 :共享的联合奖励函数 :折扣因子 :每个 agent 自己的部分观察 :每个 agent 的动作-观察历史
2.2 IGM Condition and Factorizable Task
下面给出 IGM 与可分解任务的定义。IGM 全称 Individual-Global-Max,可以理解为独立值函数最大化与联合值函数最大化的一致性,具体定义为;
给定一个联合动作值函数
则认为
如果某任务的
VDN 和 QMIX 的分解方式其实本质上是满足 IGM 的充分非必要条件:
它们与本文 QTRAN 方法的关系可以用下图表示:
(图:VDN、QMIX 与 QTRAN 可表示函数集合的关系示意)
2.3 QTRAN
QTRAN 核心思想是将原有的联合行动价值函数
2.3.1 可分解值函数
可分解值函数的特点由如下定理给出:
Theorem 1:令
其中
证明如下:
注意,对于映射变化
因此可以找到一个转换联合动作值函数
这是因为这种加和形式下,
2.3.2 方法框架
QTRAN 的框架如下图所示:
(图:QTRAN 网络结构示意)
其中包含三个网络:
其中,联合动作值函数网络使用所有独立动作值函数网络采样得到的动作进行更新,并连接各个所有独立动作值函数网络底层输出的隐性特征
2.3.3 损失函数
QTRAN 中的 loss 函数由三部分组成:
其中:
其中
2.3.4 修改对联合行动价值函数的追踪
上述版本的 QTRAN 称为 QTRAN-base,反映其如何追踪联合行动价值函数的基本性质。然而,Theorem 1 的第二个条件太宽,导致神经网络无法完成构建
Theorem 2:Theorem 1 的第二个条件替换为如下条件时,Theorem 1 依旧成立。当
其中
为了实现 Theorem 2,使用反事实联合网络来替代联合动作值函数网络,即对于每个 agent 都设置一个反事实网络
其中
3. 实验内容
在下图的单状态马尔科夫博弈中,QTRAN 是唯一获得最优解的:
(图:单状态矩阵博弈实验结果示意)
QTRAN-alt 比 QTRAN-base 更好地区分最优动作与非最优动作:
(图:QTRAN-base 与 QTRAN-alt 动作区分能力示意)
将 Multi-domain Gaussian Squeeze、Modified predator-prey 等环境设置为强迫合作式的环境,表现超越了 VDN 与 QMIX:
(图:多个合作环境实验结果示意)
4. 缺点
分解的 Q 值依旧没有实际含义
在复杂的 MARL 任务上的实际表现很差,因为由于 QTRAN 使用的约束太过松散,实现时的过多近似会导致在很多任务上效果不如 Q-mix 理想
5. 优点
- 进一步扩大了 Q 值分解理论的适用范围
- 采用类似 dueling network 的结构可以提升学习效果, 加速收敛