QMIX:用于深度多智能体强化学习的单调值函数分解
多智能体强化学习-QMIX
论文名称:QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning
01 介绍
在多智能体强化学习中一种比较典型的学习模式为中心式训练,分布式执行,即在训练时利用所共享的信息来帮助更有效的分布式执行。然而,围绕如何最好地利用集中培训仍然存在着许多挑战。
其中一个挑战是如何表示和使用大多数强化学习方法学习的动作值函数。一方面,正确地捕捉主体行为的影响,需要一个集中的行动价值函数,它决定了全球状态和联合行动的条件。另一方面,当存在多个代理时,这样的函数很难学习,即使可以学习,也无法提供明显的方法来提取分散的策略,允许每个智能体根据单个观察结果选择单个操作。
面对上面的问题,已经有的解决方案是:
1.IQL:放弃学习中心式Qtot而转去对每个智能体学习一个独立的Qa。但是这个方法不能表现出智能体之间的互动,而且每个智能体的训练会被其他智能体的探索和学习干扰。
2.COMA:通过学习中心式的Qtot,用它来指导在参与者-批评家框架下的分散政策优化,但它需要on-policy,采样效率低。
3.QMIX:不同于上面两种方式,论文中提出学习一个中心式但可分解的Qtot即QMIX。它是一种新的基于价值的方法,可以以集中的端到端方式训练分散的策略。与这种算法相关的是2017年提出的VDN,VDN假设中心式的Qtot可以分解为各个Qa的线性相加,而QMIX可以视为VDN的拓展。
02 QMIX核心思路
让中心式Qtot对每个智能体Qa的导数大于等于0。
当通过一些限制满足上面的式子时,将会保证对每个Qa同时做最大化既等价于对每个中心式Qtot做最大化。
这样做的好处是一方面求解Qtot时更为方便,只需要对每个Qa做最大化即可;另一方面从Qtot中可以显示的提取分布式执行的各个智能体的策略。
03 QMIX模型
这是QMIX的模型部分,大体示意图是图的中间部分,QMIX由agent网络、混合网络和一组超网络组成的体系结构来表示Qtot。对于每一个智能体实现一个自己的DRQN网络,输入是自己的观察序列o和上一个动作u,计算得到自己的Q值,即图的右侧部分。Mixing 网络是一个前馈神经网络,接收所有的Qa,输出为Qtot,为了满足上面单调性约束的要求,混合网络的参数由单独的超参数网络生成,即图中左边红色框框,输入为全局状态信息,输出为混合网络的权重和偏置,权重需要满足大于等于0的要求,所以需要经过绝对值函数的**层,当权重大于等于0时,才能满足最后的Qtot对于Qa的导数大于等于0。
QMIX的最终代价函数即下面这个函数。
它的更新跟普通的DQN的一样,其中b表示从经验记忆中采样的样本数量。
由于满足上面的单调性约束,对Qtot进行了分解,对Qtot 进行argmax操作的计算量就不再是随智能体数量呈指数增长了,而是随智能体数量线性增长,极大的提高了算法效率。
为什么要使用超参数网络而不是直接将状态作为输入传递给mixing网络?
如果直接将状态作为输入项则要求它的系数均为非负,这样则无法充分利用状态信息来提高系统性能,相当于舍弃了一半的信息量。而使用超参数网络来生成参数的话,超参数网络的参数就可以不被约束为非负的,只要保证输出为非负就可以了。
04 实验结果
为了说明VDN和QMIX的影响,设计了一个简单的两步合作矩阵对策。
对VDN和QMIX进行训练,并得到最终的学习值函数。
表2显示了Qtot的学习值,表明QMIX更高的表示能力允许它能准确地表示联合作用值函数,而VDN不能。这直接转化为VDN学习次优策略,即在第一步选择动作A并获得7的奖励,而QMIX从其学习的联合动作值中恢复最优策略并获得8的奖励。
总之QMIX的算法效果要好。