在协作式多智能体环境中,一个共同的目标是最大化共享的团队奖励。集中训练去中心化执行 (CTDE) 方法提供了一种实用办法:智能体可以利用潜在的全局信息共同学习,但在执行时必须仅根据各自的局部观测独立行动。CTDE 中的一个主要难题是如何有效地协调行动。如果我们学习一个集中式的联合动作价值函数 $Q_{tot}(\mathbf{s}, \mathbf{a})$,其中 $\mathbf{s}$ 是全局状态(或训练期间可用的某种表示),$\mathbf{a}$ 是联合动作 $(a_1, ..., a_N)$,那么我们如何从中学得智能体可以根据其局部观测 $o_i$ 使用的去中心化策略 $\pi_i(a_i | o_i)$?对 $Q_{tot}$ 进行关于 $\mathbf{a}$ 的全局 argmax 运算通常在计算上不可行,尤其当智能体和动作的数量增加时。价值分解方法通过学习单个智能体的价值函数 $Q_i(o_i, a_i)$,然后以结构化的方式组合它们来近似 $Q_{tot}$,从而确保最大化 $Q_{tot}$ 可以通过每个智能体最大化自己的 $Q_i$ 来实现。价值分解网络 (VDN)价值分解最简单的方法是价值分解网络 (VDN)。VDN 假定联合动作价值函数可以加性分解为单个智能体的价值函数:$$ Q_{tot}(\mathbf{s}, \mathbf{a}) = \sum_{i=1}^{N} Q_i(o_i, a_i) $$这里,$N$ 是智能体的数量。每个 $Q_i$ 通常由一个神经网络表示,该网络将智能体 $i$ 的局部观测 $o_i$ 和动作 $a_i$ 作为输入(通常,在给定 $o_i$ 的情况下,该网络会输出所有可能动作 $a_i$ 的 Q 值)。全局 $Q_{tot}$ 只是这些单个 Q 值的总和。它如何支持 CTDE:集中训练: 在训练期间,我们可以通过对单个 $Q_i$ 值求和来计算 $Q_{tot}$。损失(例如,Q-learning 的 TD 误差)是根据 $Q_{tot}$ 和全局奖励计算的,梯度通过求和操作反向传播,以更新每个单个 $Q_i$ 网络。这通常需要获取全局状态 $\mathbf{s}$,或者至少是联合动作 $\mathbf{a}$ 和全局奖励 $r$。去中心化执行: 在执行时,每个智能体 $i$ 只需其局部观测 $o_i$。它会计算其 $Q_i(o_i, \cdot)$ 对于所有可能动作的值,并贪婪地选择动作: $$ a_i^* = \arg\max_{a_i} Q_i(o_i, a_i) $$ 由于全局 $Q_{tot}$ 仅仅是一个总和,单独最大化每个 $Q_i$ 可以确保联合动作 $\mathbf{a}^* = (a_1^, ..., a_N^)$ 能够最大化 $Q_{tot}$。digraph VDN {rankdir=LR;node [shape=box,style="rounded,filled",fontname="sans-serif",color="#495057",fillcolor="#e9ecef"];edge [color="#495057"];subgraph cluster_agent1 {label="智能体 1";style=dashed;color="#adb5bd";o1 [label="观测 o1",shape=ellipse,fillcolor="#a5d8ff"];Q1 [label="Q1 网络"];a1 [label="动作 a1",shape=ellipse,fillcolor="#a5d8ff",style=filled,color="#1c7ed6"];o1 -> Q1;Q1 -> a1 [style=dashed,label="argmax"];}subgraph cluster_agentN {label="智能体 N";style=dashed;color="#adb5bd";oN [label="观测 oN",shape=ellipse,fillcolor="#a5d8ff"];QN [label="QN 网络"];aN [label="动作 aN",shape=ellipse,fillcolor="#a5d8ff",style=filled,color="#1c7ed6"];oN -> QN;QN -> aN [style=dashed,label="argmax"];}Sum [label="Σ",shape=circle,fillcolor="#ffe066"];Q_tot [label="Q_tot"];Q1 -> Sum;QN -> Sum;Sum -> Q_tot [label=" 集中训练\n 损失计算"];} VDN 架构。每个智能体都有一个独立的 Q 网络。在训练期间,它们的输出被求和以形成 $Q_{tot}$,用于损失计算。在执行期间,每个智能体根据自己的 $Q_i$ 贪婪地行动。局限: VDN 的主要局限是其严格的加性假定。它只能表示每个智能体的贡献独立于其他智能体动作的联合动作价值函数。这使得它无法对更复杂的协作场景进行建模,在这些场景中,一个智能体动作的价值严重依赖于其他智能体正在做什么。QMIX:单调价值函数分解QMIX (Q-Mixing) 解决了 VDN 在表示上的局限,同时保持了方便的去中心化执行特性。QMIX 没有采用简单的求和,而是使用一个混合网络来组合单个的 $Q_i$ 值以形成 $Q_{tot}$。$$ Q_{tot}(\mathbf{s}, \mathbf{a}) = f({Q_i(o_i, a_i)}_{i=1}^N, \mathbf{s}) $$函数 $f$,由混合网络表示,被设计为满足一个重要的单调性约束:$$ \frac{\partial Q_{tot}}{\partial Q_i} \ge 0 \quad \forall i $$该约束足以确保如果一个智能体增加其单个 $Q_i$ 值,全局 $Q_{tot}$ 值将增加或保持不变,但绝不会减少。单调性为何重要: 单调性约束足以确保对 $Q_{tot}$ 进行全局 argmax 运算会得到与对每个 $Q_i$ 分别进行 argmax 运算相同的结果:$$ \arg\max_{\mathbf{a}} Q_{tot}(\mathbf{s}, \mathbf{a}) = (\arg\max_{a_1} Q_1(o_1, a_1), ..., \arg\max_{a_N} Q_N(o_N, a_N)) $$这表示 QMIX 保留了 VDN 中去中心化执行的便利性,即每个智能体只选择最大化其自身学习到的 $Q_i$ 的动作。混合网络架构: 混合网络通过具有非负权重来强制执行单调性约束。它通常将单个 $Q_i$ 网络的输出作为输入。最重要的是,混合网络本身的权重和偏置是由单独的超网络生成的,这些超网络接收全局状态 $\mathbf{s}$ 作为输入。这使得单个 $Q_i$ 值组合的方式能够依赖于状态提供的整体上下文,从而使 QMIX 比 VDN 更具表示能力。权重的非负性通常通过在生成权重的超网络输出上使用绝对激活函数或 ReLU 来强制实现。digraph QMIX {rankdir=LR;node [shape=box,style="rounded,filled",fontname="sans-serif",color="#495057",fillcolor="#e9ecef"];edge [color="#495057"];subgraph cluster_agents {label="智能体网络";style=dashed;color="#adb5bd";Q1 [label="Q1"];QN [label="QN"];o1 [label="o1",shape=ellipse,fillcolor="#a5d8ff"];a1 [label="a1",shape=ellipse,fillcolor="#a5d8ff",style=filled,color="#1c7ed6"];oN [label="oN",shape=ellipse,fillcolor="#a5d8ff"];aN [label="aN",shape=ellipse,fillcolor="#a5d8ff",style=filled,color="#1c7ed6"];o1 -> Q1;Q1 -> a1 [style=dashed,label="argmax"];oN -> QN;QN -> aN [style=dashed,label="argmax"];}subgraph cluster_mixing {label="混合网络(状态依赖)";style=dashed;color="#adb5bd";State [label="全局状态 s",shape=ellipse,fillcolor="#ffec99"];HyperW [label="超网络\n(权重 ≥ 0)"];HyperB [label="超网络\n(偏置)"];MixNet [label="混合函数 f\n(单调)"];State -> HyperW;State -> HyperB;HyperW -> MixNet [label="权重 W(s)"];HyperB -> MixNet [label="偏置 b(s)"];}Q_tot [label="Q_tot"];Q1 -> MixNet [label="Q1"];QN -> MixNet [label="QN"];MixNet -> Q_tot [label=" 集中训练\n 损失计算"];} QMIX 架构。单个智能体 Q 网络($Q_1$ 到 $Q_N$)去中心化运行。它们的输出输入到一个中央混合网络。混合网络的参数(权重和偏置)由基于全局状态 $s$ 的超网络生成,从而保证单调性($\partial Q_{tot}/\partial Q_i \ge 0$),并允许复杂、依赖于状态的组合,同时保持可行的去中心化执行。相对于 VDN 的优势: QMIX 比 VDN 能够表示更丰富的协作式多智能体强化学习问题,因为混合网络可以学习单个智能体价值的复杂非线性组合,这些组合是基于全局状态的。唯一的结构约束是单调性,这比纯粹的加性约束要宽松得多。总结: VDN 和 QMIX 是协作式多智能体强化学习的 CTDE 框架内重要的基于价值的方法。它们学习单个智能体 Q 函数 $Q_i$,这些函数支持去中心化执行。VDN 使用简单的求和,这使得它易于实现,但限制了其表示能力。QMIX 采用了一个带有单调性约束的状态依赖混合网络,提供了更强的表示能力,同时保留了重要特性:最大化单个 $Q_i$ 函数能够最大化联合 $Q_{tot}$。这些方法通过分解团队的价值函数,提供了协调智能体团队的有效方式,为协作式多智能体强化学习中的许多高级技术提供了重要支持。