论文原文:QTRAN: Learning to Factorize with Transformation for Cooperative Multi-Agent Reinforcement learning
参考文章:
(35条消息) 多智能体强化学习(一) IQL、VDN、QMIX、QTRAN算法详解_小小何先生的博客-CSDN博客_iql算法
QTRAN 算法详解(VDN和QMIX的升级版本) - 知乎 (zhihu.com)
到目前为止已经看过很多篇MARL的论文了,首先来总结一下学到的内容
MARL研究的问题是,假设有个智能体合作(也可能是竞争或者半合作半竞争,但是IQL\COMA\VDN\QMIX这些算法里似乎都只讨论了合作关系)完成一项任务。具体而言,在状态
下,每个智能体
选择各自的动作
,由这些动作组成联合动作
,执行
后获得全局奖励
,这个奖励是对于所有智能体而言的,每个智能体的局部奖励
未知。如果使用全局奖励去训练actor网络,那么很可能会训练出“懒惰的”智能体。于是便需要一个神经网络来分别拟合每个智能体的局部奖励,以保证:当每个智能体的动作
都使局部奖励
取得最大值时,这些动作组成的联合动作
正好能使全局奖励
也取得最大值。即:
这种关系在QTRAN的论文中被定义为IGM(Individual-Global-Max)条件
VDN为了满足IGM条件,将值函数(全局奖励)分解成各局部奖励之和的形式:
QMIX提出了只要全局奖励和局部奖励的单调性一致即可:
VDN和QMIX的想法对于(1)式来说都是充分非必要的。
QTRAN的关键思路,就是将原始的整体值函数映射到一个新的值函数
使得这两个函数的最优联合动作是等价的。这样就可以通过分解
来得到
,同时我们还要知道
和
之间的关系,保证全局最优。
可进行值函数分解的条件:
定理1:当和
满足下列关系时,
可以被分解成
或
其中,
(证明略)
映射方式:
对于新的值函数,作者直接将它定义为
,这其实就是VDN中的分解方式,它和真实的
之间存在差距,所以作者用
来修正
和
之间的误差,于是就有了:
算法设计:
根据上面的分析,这里至少有三样东西是要学习的,分别是,
和
。因此,QTRAN算法框架中,相对应地包含了下列三个重要的模块:
1. 智能体网络 (Individual action-value network):
2. 联合动作-值网络 (Joint action-value network):
3. 状态值网络 (State-value network):
由于QTRAN的训练目标有两个: 和
。因此,损失函数设计如下:
其中用于拟合
;
和
用于拟合
,他们的定义如下:
QTRAN-alt
将定理1中(4b)的条件替换成这个公式,定理1依然成立:
为了方便计算(7)式中的\min函数,作者参考COMA算法中的反事实基准线(counterfactual baseline) 思想,提出反事实联合网络 (counterfactual joint network)
最终,
这样,可以改写成: