QTRAN算法总结

论文原文: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网络,那么很可能会训练出“懒惰的”智能体。于是便需要一个神经网络来分别拟合每个智能体的局部奖励,以保证:当每个智能体的动作都使局部奖励取得最大值时,这些动作组成的联合动作正好能使全局奖励也取得最大值。即:

IGM条件

这种关系在QTRAN的论文中被定义为IGM(Individual-Global-Max)条件

VDN为了满足IGM条件,将值函数(全局奖励)分解成各局部奖励之和的形式:

VDN的IGM

QMIX提出了只要全局奖励和局部奖励的单调性一致即可:

QMIX的IGM

VDN和QMIX的想法对于(1)式来说都是充分非必要的。

QTRAN的关键思路,就是将原始的整体值函数映射到一个新的值函数使得这两个函数的最优联合动作是等价的。这样就可以通过分解来得到,同时我们还要知道和之间的关系,保证全局最优。

可进行值函数分解的条件:

定理1:当和满足下列关系时,可以被分解成

其中,

(证明略)

映射方式:

对于新的值函数,作者直接将它定义为,这其实就是VDN中的分解方式,它和真实的之间存在差距,所以作者用来修正和之间的误差,于是就有了:

算法设计:

根据上面的分析,这里至少有三样东西是要学习的,分别是,和。因此,QTRAN算法框架中,相对应地包含了下列三个重要的模块:

1. 智能体网络 (Individual action-value network): 

2. 联合动作-值网络 (Joint action-value network):

3. 状态值网络 (State-value network):

QTRAN算法框图

由于QTRAN的训练目标有两个: 和。因此,损失函数设计如下:

损失函数

其中用于拟合;和用于拟合,他们的定义如下:

用于保证(4a)成立; 用于保证(4b)成立

QTRAN-alt

将定理1中(4b)的条件替换成这个公式,定理1依然成立:

为了方便计算(7)式中的\min函数,作者参考COMA算法中的反事实基准线(counterfactual baseline) 思想,提出反事实联合网络 (counterfactual joint network)

最终,

这样,可以改写成:

你可能感兴趣的:(QTRAN算法总结)