QMIX

multi agent

Posted by Zhourui on June 4, 2023

study

联合动作值函数

在多智能体强化学习中一个关键的问题就是如何学习联合动作值函数,因为该函数的参数会随着智能体数量的增多而成指数增长,如果动作值函数的输入空间过大,则很难拟合出一个合适函数来表示真实的联合动作值函数。另一个问题就是学得了联合动作值函数后,如何通过联合值函数提取出一个优秀的分布式的策略。这其实是单智能体强化学习拓展到MARL的核心问题。

VDN:局部值函数只依赖于每个智能体的局部观测。VDN采用的方法就是直接相加求和的方式得到联合动作值函数

QMIX就是采用一个混合网络对单智能体局部值函数进行合并,并在训练学习过程中加入全局状态信息辅助,来提高算法性能。 沿用VDN的优势,对联合动作值函数取argmax等价于对每个局部动作值函数取 argmax ,其单调性相同,因此分布式策略就是贪心的通过局部Q获取最优动作。

图(c)表示每个智能体采用一个DRQN(引入了RNN的DRQN能够更好地处理部分可观的情况,DRQN能够更好的逼近实际的Q以至于学习到更优秀的策略)来拟合自身的Q值函数,DRQN循环输入当前的观测以及上一时刻的动作来得到Q值。

图(b)表示混合网络的结构。其输入为每个DRQN网络的输出。为了满足单调性约束,混合网络的所有权值都是非负数,对偏差不做限制,确保满足单调性约束。

Mixing 网络中实际包含两个神经网络,红色参数生成网络 & 蓝色推理网络。 参数生成网络: 接收全局状态 st ,生成蓝色网络中的神经元权重和偏差。 推理网络:接收所有 Agent 的行为效用值 Q ,并将参数生成网络生成的权重和偏差赋值到网络自身,从而推理出全局效用 Qtot 。

为了保证权值的非负性,采用一个线性网络以及绝对值激活函数保证输出不为负数。对偏差采用同样方式但没有非负性的约束,混合网络最后一层的偏差通过两层网络以及ReLU激活函数得到非线性映射网络。由于状态信息是通过超网络混合到Q 中的,而不是仅仅作为混合网络的输入项,这样的好处是,如果作为输入项则s的系数均为正,这样则无法充分利用状态信息来提高系统性能,相当于舍弃了一半的信息量。

eval 网络: 接收在状态 s 下每个 Agent RNN Network 所选行为的 Q 值作为输入,输出 Qtot(evaluate) 。 target 网络:接收在状态 snext 下每个 Agent RNN Network 所有行为中最大的 Q 值作为输入,输出 Qtot(target)。

  1. 学习得到分布式策略。
  2. 本质是一个值函数逼近算法。
  3. 由于对一个联合动作-状态只有一个总奖励值,而不是每个智能体得到一个自己的奖励值,因此只能用于合作环境,而不能用于竞争对抗环境。
  4. QMIX算法采用集中式学习,分布式执行应用的框架。通过集中式的信息学习,得到每个智能体的分布式策略。
  5. 训练时借用全局状态信息来提高算法效果。是后文提到的VDN方法的改进。
  6. 接上一条,QMIX设计一个神经网络来整合每个智能体的局部值函数而得到联合动作值函数,VDN是直接求和。
  7. 每个智能体的局部值函数只需要自己的局部观测,因此整个系统在执行时是一个分布式的,通过局部值函数,选出累积期望奖励最大的动作执行。
  8. 算法使联合动作值函数与每个局部值函数的单调性相同,因此对局部值函数取最大动作也就是使联合动作值函数最大。
  9. 算法针对的模型是一个分布式多智能体部分可观马尔可夫决策过程(Dec-POMDP)。