假设你是少年足球队的教练,手下有11个精力旺盛但配合生疏的队员。你让他们各自练射门,可一上场就乱套:对手会变阵、每个人只能看到眼前一小块场地、好不容易进了一球,全队庆祝时你却说不清到底是谁的功劳。这就是多智能体强化学习里的三大难题:环境非平稳、局部可观测、信用分配。QMIX和MAPPO,就是两套完全不同的“带队哲学”:QMIX相信“只要每个队员都变好,球队一定不会变差”,于是把个人表现按权重加成一张团队评分表;MAPPO则相信“要先看清全局,再统一复盘”,训练时教练站在高处看清全场,上场后球员各自按自己的视野行动。这篇文章用一支球队的故事,讲透这两种算法如何让AI群体从各自为战走向默契协作。

岗位关联

多智能体协作是强化学习从单机走向真实世界的关键一跃。掌握QMIX与MAPPO,你就能设计出会配合的AI群体——无论是游戏战队、仓储机器人还是自动驾驶车队,都能让它们在复杂环境下高效协作。

目录
  1. 可视化演示
  2. 协作基础难题
  3. 信用分配问题
  4. QMIX分解原理
  5. MAPPO核心思想
  6. 算法适用对比
  7. 工程实现落地
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示多智能体协作挑战、QMIX单调混合网络、MAPPO集中式评论家与信用分配方法,点击按钮切换不同视角

本节配有交互动效(进入视口后自动加载,约 3KB)。

多智能体协作挑战 多智能体共享环境交互 协作通信信息共享机制 联合动作空间维度爆炸 信用分配归因困难 N_agents→joint_action 多智能体协作面临通信与信用分配核心挑战

协作基础难题

你让队员们各自苦练射门,可一到比赛就发现完全不是那么回事:对手会突然变阵,你安排的前锋还没跑到位置,队友已经把球传丢了。更麻烦的是,每个队员的视野有限,只能看到眼前一小块草皮,根本不知道全局发生了什么。这就是多智能体协作的第一个坎:它不是把 N 个单智能体问题简单叠加,而是一群“活环境”在互相影响。

在多智能体强化学习中,每个智能体都是独立决策的 agent,但它面对的环境里还站着其他也在学习的 agent。队友的策略在变,所以环境是非平稳的;每个智能体通常只能观测到局部信息,这叫局部可观测;当大家共享同一个团队奖励时,没有人能说清楚进球到底是谁的功劳。这三个问题彼此纠缠,让单智能体那套“状态-动作-奖励”的老办法直接失效。

把这个问题写成数学语言:智能体 i 看到下一状态 s' 的概率,不仅取决于自己的动作 a_i,还取决于其他所有智能体的策略 π_{-i}。也就是说,你的未来被别人的决策一起决定了。

所以,如果每个队员都只顾自己闷头练,永远学不会配合。真正的多智能体训练,必须先把“别人也在变”这件事纳入模型。

P(s′∣s,ai,π−i)P(s' \mid s, a_i, \pi_{-i})
通俗说明:就像球员想预判球会不会传到脚下,必须先猜测队友下一秒怎么跑、对手怎么抢。
  1. 状态 s当前球场局势,包括球的位置、队员站位,是所有智能体观测的基础。
    ss
  2. 智能体动作 a_i智能体 i 自己选择的动作,比如传球、射门或跑位。
    aia_i
  3. 其他智能体策略 π_{-i}除了 i 之外所有队友和对手的决策方式集合。
    π−i\pi_{-i}
  4. 下一状态 s'所有智能体都做出动作后,球场进入的下一步局势。
    s′s'

信用分配问题

比赛赢了一个球,前锋射门固然精彩,但后卫的抢断、中场的组织同样关键。全队只拿到一个比分,可这比分到底应该记在谁头上?这就是多智能体协作中最著名的“信用分配”难题。如果教练只看最终比分来发奖金,你会发现队员们都学不到正确动作,因为每个人的奖励完全一样。

在环境返回团队奖励时,所有智能体收到的都是同一个数字 r_i = R_team。大家看到的分数一模一样,每个人都无法从分数里反推出“我刚才那个选择到底贡献了多少”。更糟的是,如果某个无关紧要的动作碰巧和团队高分出现在同一局,它也会被错误地强化,形成“回报遮蔽”效应。

要拆分功劳,一个自然的思路是看“边际贡献”:固定住其他所有智能体的动作 a_{-i},把智能体 i 的动作从某个基准动作 a_i^0 换成实际动作 a_i,观察团队总价值 Q_total 增加了多少。这个增量就是该动作的边际贡献。

边际贡献概念很优美,但直接计算它需要在联合动作空间里做海量采样。QMIX 和 MAPPO,正是用两种不同方式绕开了“逐次换人实验”的爆炸开销。

δi=Qtotal(ai,a−i)−Qtotal(ai0,a−i)\delta_i = Q_{\text{total}}(a_i, a_{-i}) - Q_{\text{total}}(a_i^0, a_{-i})
通俗说明:这就像做战术对比实验:同一条进攻路线,把某个人换下来再换上去,看球队胜率变化了多少。
  1. 团队总 Q 值 Q_total在给定联合动作下,对团队未来收益的估计,相当于全队当前的“赢球期望”。
    QtotalQ_{\text{total}}
  2. 联合动作 (a_i, a_{-i})自己的动作 a_i 加上其他所有智能体的动作 a_{-i} 组成的完整动作组合。
    (ai,a−i)(a_i, a_{-i})
  3. 基准动作 a_i^0一个中性的、不额外做贡献的基线动作,用来对比“有我没有我”。
    ai0a_i^0
  4. 边际贡献 δ_i固定别人不变,智能体 i 这个动作给团队带来的价值增量。
    δi\delta_i

QMIX分解原理

你决定采用一套“单调加法评分板”:给每个队员一个个人表现分,然后按固定且非负的权重合成团队总分。这个评分板的妙处在于,只要任何队员表现变好,团队总分一定不会下降。这样一来,每个队员只需要关心“怎么让自己分数更高”,团队的胜利就水到渠成。

QMIX 把这种思路变成了神经网络。它用 RNN 为每个智能体维护一个个体动作值 Q_i(τ_i, u_i),再用一个混合网络把所有这些个体 Q 值合成联合 Q 值 Q_total。混合网络接收全局状态 s,输出每个智能体的权重 w_i(s) 和一个偏置 b(s)。为了保持“个体变好、团队一定变好”的单调性,权重必须永远非负。

靠着这块“单调评分板”,QMIX 把复杂的信用分配简化成了一件可控的事:团队最优的动作组合,恰好就是每个队员各自最优动作的集合。

Qtotal(τ,u)=∑i=1nwi(s)Qi(τi,ui)+b(s),wi(s)≥0Q_{\text{total}}(\tau,u) = \sum_{i=1}^{n} w_i(s) Q_i(\tau_i,u_i) + b(s), \quad w_i(s) \ge 0
通俗说明:混合网络就是教练手里的评分板,全局状态决定每个队员的权重,但无论怎么算,权重永远不为负。
  1. 局部观测历史 τ_i智能体 i 从比赛开始到现在看到的信息序列,相当于这个队员自己的“记忆录像”。
    τi\tau_i
  2. 个体 Q 值 Q_i(τ_i, u_i)只凭自己的记忆判断“如果我选动作 u_i,值多少分”。
    Qi(τi,ui)Q_i(\tau_i,u_i)
  3. 全局状态权重 w_i(s)混合网络根据全场信息给每个队员算出的贡献权重。
    wi(s)w_i(s)
  4. 状态偏置 b(s)与个体动作无关、只由全局状态决定的基础分。
    b(s)b(s)
  5. 非负约束 w_i(s) ≥ 0保证任何队员的个人分上升,团队总分不会下降,从而维持全局最优与局部最优的一致性。

MAPPO核心思想

另一种带队思路完全相反:平时训练时,教练站在高高的塔台上,能看清整个球场;他看完每个队员的表现,赛后统一给出“复盘点评”。可一上场,教练就退回到教练席,队员只能靠自己的眼睛做判断。这种“训练时看全局、执行时看局部”的套路,就是 CTDE 范式——集中训练,分布执行。

MAPPO 把单智能体 PPO 扩展到了多智能体。每个智能体 i 拥有自己的策略网络 π_i(a_i|o_i),执行时只根据局部观测 o_i 决策;但训练时有一个中心化评论家,它能看到全局状态 s,给出每个智能体动作的优势估计 A_i。因为优势不再依赖其他智能体的实时策略,环境非平稳带来的震荡被大幅缓解。

策略更新沿用 PPO 的裁剪目标:用新旧策略的概率比 ρ_i 衡量这次更新有多大变化,并把 ρ_i 裁剪在 [1-ε, 1+ε] 区间内,防止任何队员被“一份复盘报告”彻底改造成另一个人。

所以 MAPPO 的核心不是“多智能体版的 PPO”,而是“中心化评论家 + 分布式执行 + PPO 裁剪”三件套。教练的全局视野,才是它稳定训练的关键。

L(θi)=E[min⁡(ρi(θi)Ai, clip⁡(ρi(θi),1−ε,1+ε)Ai)],ρi(θi)=πi(ai∣oi;θi)πiold(ai∣oi)L(\theta_i) = \mathbb{E}\left[\min\left(\rho_i(\theta_i) A_i,\ \operatorname{clip}(\rho_i(\theta_i), 1-\varepsilon, 1+\varepsilon) A_i\right)\right],\quad \rho_i(\theta_i)=\frac{\pi_i(a_i|o_i;\theta_i)}{\pi_i^{\text{old}}(a_i|o_i)}
通俗说明:ρ_i 是新旧战术在同一场景下的选择概率比值,裁剪就像复盘时只小幅修正跑位,不推倒重来。
  1. 局部观测 o_i智能体 i 在场上能看到的那一小块信息,比如自己附近队友的位置。
    oio_i
  2. 概率比 ρ_i(θ_i)新策略与旧策略在选中同一个动作上的概率之比,比值越接近 1 说明变化越小。
    ρi(θi)=πi(ai∣oi;θi)πiold(ai∣oi)\rho_i(\theta_i) = \frac{\pi_i(a_i|o_i;\theta_i)}{\pi_i^{\text{old}}(a_i|o_i)}
  3. 优势 A_i由中心化评论家根据全局信息算出的“这个动作比平均表现好多少”。
    AiA_i
  4. 裁剪 clip把概率比限制在 [1-ε, 1+ε],优点明显就多走一步,优点不明显就原地踏步。
    clip⁡(ρi,1−ε,1+ε)\operatorname{clip}(\rho_i, 1-\varepsilon, 1+\varepsilon)

算法适用对比

现在你手里有两套带队哲学:QMIX 的“单调评分板”和 MAPPO 的“全局复盘”。到底该用哪套?要看球队踢的是哪种比赛。如果比赛动作是离散的——比如传球、射门、跑位三选一,QMIX 评分板非常合适;如果比赛动作是连续的——比如方向盘角度、油门大小,MAPPO 的连续策略网络更自然。

QMIX 属于基于值分解的方法,它天然要求动作用离散枚举,因为要在联合动作空间上取 argmax。优点是样本效率高,能直接学到确定性的最优配合。MAPPO 属于基于策略梯度的方法,它输出的是动作分布,天然支持连续动作,而且每个智能体的策略网络相互独立,扩展到大规模智能体时更灵活。缺点是需要中心化评论家,训练采样成本更高。

这两种决策方式的区别可以写成一个对比式:QMIX 在联合动作空间里搜索使总 Q 值最大的离散组合;MAPPO 则让每个智能体直接从自己的策略分布里采样动作。

选型建议很简单:小规模、离散动作、奖励结构接近单调的任务优先 QMIX;大规模、连续控制、需要随机策略的任务优先 MAPPO。

u∗=arg⁡max⁡u∑i=1nwi(s)Qi(τi,ui)vsui∼πi(⋅∣oi)u^* = \arg\max_{u}\sum_{i=1}^{n} w_i(s) Q_i(\tau_i, u_i) \quad \text{vs} \quad u_i \sim \pi_i(\cdot|o_i)
通俗说明:左侧像教练在战术板上画出“最优跑位组合”,右侧像每个队员按自己的比赛习惯随机出招,再靠赛后复盘修正。
  1. 联合动作 u 与个体动作 u_iu 是所有队员动作的组合,u_i 是其中第 i 个队员的动作。
    u=(u1,u2,…,un)u = (u_1, u_2, \dots, u_n)
  2. arg max 搜索从所有联合动作中挑出使团队 Q 值最大的那个组合。
    arg⁡max⁡u\arg\max_{u}
  3. 策略采样每个智能体按自己的策略分布随机抽一个动作,保持探索能力。
    ui∼πi(⋅∣oi)u_i \sim \pi_i(\cdot|o_i)
  4. 核心区别左边是值函数派,直接计算最优解;右边是策略梯度派,靠采样和梯度缓慢逼近最优。
    值函数分解vs策略梯度\text{值函数分解} \quad \text{vs} \quad \text{策略梯度}

工程实现落地

理念再漂亮,也得落到训练场上。真正实现 QMIX,你需要经验回放池、目标网络和单调混合网络;实现 MAPPO,你通常要用广义优势估计 GAE 来降低优势函数的方差,再配上 PPO 裁剪做策略更新。这些模块就像训练计划、录像回放和数据统计,缺一不可。

QMIX 的训练流程是端到端的:采样一批经验,用目标网络计算 TD 目标,再让混合网络输出的 Q_total 去逼近 TD 目标。MAPPO 则更依赖优势估计的质量。GAE 是 MAPPO 实现中最常用的技巧,它用带权平均的方式把多步 TD 误差 δ_t 累加成优势 A_t。

把这些模块组合好,再用环境交互、回放、更新这三板斧迭代,QMIX 和 MAPPO 就能真正在任务里跑起来。训练基础设施的成熟度,往往比算法细节更能决定最终成绩。

At=∑l=0T−t−1(γλ)lδt+l,δt=rt+γV(st+1)−V(st)A_t = \sum_{l=0}^{T-t-1} (\gamma\lambda)^l \delta_{t+l},\quad \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)
通俗说明:GAE 像裁判的慢镜头回放,把连续几步的“表现偏差”加权汇总,兼顾偏差和方差。
  1. TD 误差 δ_t实际奖励加下一状态价值,减去当前状态价值,衡量“这一步比预期好多少”。
    δt=rt+γV(st+1)−V(st)\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)
  2. 折扣因子 γ未来奖励的衰减系数,γ 越接近 1 越看重长远。
    γ\gamma
  3. 平滑参数 λ控制优势估计回溯多少步,λ 大更偏重长期一致,λ 小更偏重短期即时。
    λ\lambda
  4. 优势 A_t对“这个决策有多好”的估计,中心化评论家正是用它来指导队友调整策略。
    At=∑l=0T−t−1(γλ)lδt+lA_t = \sum_{l=0}^{T-t-1} (\gamma\lambda)^l \delta_{t+l}

AI 应用场景

游戏团战 AI:MOBA 游戏的英雄协作

阶段:模型训练与信用分配

解决的问题:在《王者荣耀》这类 5v5 游戏中,团队获胜的奖励只有一个,但每个英雄的技能选择、走位和放技能时机都影响战局。传统脚本 AI 无法处理“团战中谁才是关键贡献者”的问题,导致英雄各自为战。

具体案例:研究团队把英雄的离散技能选择建模为多智能体协作问题,用 QMIX 将团队胜率 Q 值分解到每个英雄的技能 Q 值上,非负权重保证“某个英雄打得更好,团队胜率一定不降”,从而训练出会主动开团、保护后排的协作 AI。

智能仓储多机器人调度

阶段:决策规划与分布式控制

解决的问题:几十台 AMR 机器人在仓库中搬运货物,动作是连续的速度与转角控制,且每台机器人只能感知附近障碍物。传统集中式规划在机器人数量增多时会迅速失效。MAPPO 的中心化评论家可以在训练时看到全场,给每台机器人稳定的全局优势评价,执行时机器人只用局部传感器信息决策。

具体案例:在某电商仓库仿真环境中,AMR 车队用 MAPPO 学习避让、排队和任务交接策略,相比独立 PPO,碰撞率降低了约 40%,搬运吞吐量提升了 25%。

自动驾驶多车协同变道

阶段:多智能体策略训练与验证

解决的问题:高速公路上多车协同变道时,每辆车的动作会影响其他车的安全与通行效率。MVAPPO 的“集中训练、分布执行”模式天然契合 V2V 车路协同:训练时使用全局交通状态做中心化评论家,车辆实际部署时只依靠自身感知进行连续转向与加减速决策。

具体案例:在自动驾驶仿真平台中,三辆智能车尝试在匝道汇入场景协作,MAPPO 通过学习“交替通行”策略,将平均汇入耗时降低了 35%,同时避免碰撞。

Python 演示

python46 行
import numpy as np  class QMIXToy:    """用 QMIX 的单调分解思想训练两个智能体的协作矩阵博弈"""     def __init__(self, weights=(0.5, 0.5), lr=0.1):        self.weights = np.array(weights, dtype=float)   # 非负单调权重        self.lr = lr        self.q = [np.zeros(2) for _ in range(2)]        # 两个智能体的个体Q表     def act(self, eps=0.3):        if np.random.rand() < eps:            return [np.random.randint(2) for _ in range(2)]        return [int(np.argmax(self.q[0])), int(np.argmax(self.q[1]))]     def update(self, a, reward):        q_tot = sum(w * self.q[i][a[i]] for i, w in enumerate(self.weights))        td = reward - q_tot        for i in range(2):            self.q[i][a[i]] += self.lr * self.weights[i] * td     def train(self, episodes=2000, eps=0.3):        reward_table = np.array([[3, 0], [0, 1]])       # (0,0) 是最优协作点        for _ in range(episodes):            a = self.act(eps)            r = reward_table[tuple(a)]            self.update(a, r)        return self.q  def ppo_clip_loss(new_prob, old_prob, advantage, eps=0.2):    ratio = new_prob / (old_prob + 1e-8)    return min(ratio * advantage,               np.clip(ratio, 1 - eps, 1 + eps) * advantage)  if __name__ == "__main__":    np.random.seed(42)    agent = QMIXToy()    q1, q2 = agent.train()    print("Q1:", q1.round(3), " Q2:", q2.round(3))    print("QMIX 最优动作:", int(np.argmax(q1)), int(np.argmax(q2)))     sample_loss = ppo_clip_loss(new_prob=0.7, old_prob=0.5, advantage=1.0)    print("PPO clipped loss:", sample_loss)
目的:用一个小型矩阵博弈展示 QMIX 的团队误差如何按非负权重分配到个体 Q 表,并演示 MAPPO 中 PPO 裁剪目标的核心计算。
  1. self.weights = np.array(weights, dtype=float)把权重固定为非负,这是 QMIX 单调性的灵魂。
  2. q_tot = sum(w * self.q[i][a[i]] for i, w in enumerate(self.weights))用个体 Q 的加权和构造团队 Q 值。
  3. td = reward - q_tot计算团队价值的 TD 误差,单步问题下目标就是环境奖励。
  4. self.q[i][a[i]] += self.lr * self.weights[i] * td把团队误差按权重回传给个体 Q 表,实现“功劳分配”。
  5. ratio = new_prob / (old_prob + 1e-8)计算 PPO 中的新旧策略概率比,分母加小常数防除零。
  6. min(ratio * advantage, np.clip(ratio, 1 - eps, 1 + eps) * advantage)用裁剪限制更新幅度,防止策略一步变得太激进。

常见误区

误区我理解 QMIX 把联合 Q 值分解成了个体 Q 值,所以每个智能体像是在单独做强化学习,各自优化自己的奖励。

正解QMIX 分解出来的个体 Q 值并不是“独立奖励”,它只是联合 Q 值在数学上的一个单调拆分。训练时,智能体仍然共享同一个团队奖励,个体 Q 值的梯度来自团队 TD 误差,只是通过非负权重分配给了每个个体。换句话说,功劳还是大家的功劳,只是按权重记到了个人名下。

为何常见:因为“分解”两个字容易让人联想到“独立训练”,再加上每个智能体确实有自己的一套 Q 网络,看起来很像单智能体。

误区MAPPO 不就是把 PPO 这个算法复制 N 份,每个智能体独立更新自己的策略吗?跟独立 PPO 没什么区别。

正解区别非常大。MAPPO 的核心是“中心化评论家”:训练时,评论家能看到全局状态,给每个智能体估计优势 A_i,从而缓解环境非平稳。独立 PPO 每个智能体只能用自己的局部观测估计价值,看到的世界不停在变,策略会震荡甚至发散。MAPPO 的关键不在 PPO 本身,而在 CTDE 这个框架。

为何常见:因为 MAPPO 的策略网络在执行阶段确实只用局部观测,看起来和单智能体 PPO 一样,容易忽略训练阶段额外引入的全局信息。

误区QMIX 的单调评分板保证个体变好团队就变好,那任何协作任务都可以用它解决。

正解单调性是一个强约束。它假设“所有智能体的贡献方向一致”,但真实世界里存在“有人变差反而帮助团队”的反单调场景,比如后撤一步给队友腾出射门空间。QMIX 的 w_i(s) ≥ 0 限制了它对这类复杂协作的建模能力。任务不满足单调性时,QMIX 的表现会明显下降。

为何常见:因为入门资料往往只强调 QMIX 在星际争霸等游戏上的成功,却很少解释它背后的单调假设。

误区只要让智能体互相通信,把观测信息广播给所有人,协作问题就解决了。

正解通信只是解决了“局部可观测”,但信用分配问题依然存在。就算每个智能体都拿到全场信息,共享的团队奖励还是让它分不清自己的贡献。QMIX 和 MAPPO 的首要目标都是做信用分配,通信只是辅助手段。

为何常见:因为“协作”最直观的表现就是“互相传递信息”,初学者容易把通信当成协作的全部。

误区QMIX 基于值函数,动作必须离散枚举,所以一旦遇到连续动作任务就只能放弃。

正解严格来说,QMIX 天然面向离散动作,但工程上可以通过动作离散化或 actor-critic 扩展让它处理连续控制。不过这种改造通常不如 MAPPO 自然和高效。因此,这个误区的问题在于把“不擅长”说成了“完全不能”。

为何常见:因为教材里 QMIX 的公式里都有 argmax 和离散动作集合,容易被读者当作绝对限制。

面试题

Q1. QMIX 的核心思想是什么?

单选题 · easy

  • A.用单调混合网络分解联合动作值← 正确答案
  • B.用策略梯度更新所有智能体
  • C.用通信网络广播全局状态
  • D.用进化算法搜索联合策略

答案:A。QMIX 通过单调混合网络把联合 Q 值分解为个体 Q 值的非负加权组合,本质是值函数分解。策略梯度是 MAPPO 的思路,通信广播和进化搜索都不是 QMIX 的核心机制。

Q2. MAPPO 中的“中心化评论家”在哪个阶段使用全局信息?

单选题 · easy

  • A.只在离线训练阶段使用← 正确答案
  • B.只在在线执行阶段使用
  • C.在模型测试阶段使用
  • D.在模型压缩阶段使用

答案:A。MAPPO 采用集中训练分布执行范式,中心化评论家只在训练阶段利用全局状态估计优势;执行时每个智能体只使用自己的局部观测,这与单智能体部署方式一致。

Q3. 多智能体信用分配问题指的是?

单选题 · easy

  • A.团队奖励无法区分个人贡献← 正确答案
  • B.智能体无法感知环境状态
  • C.动作空间太大无法枚举
  • D.通信带宽不足以传递数据

答案:A。信用分配指共享团队奖励时,每个智能体收到的分数相同,无法知道自己的具体动作贡献了多少。局部观测和动作空间爆炸是另外的困难,通信带宽也不是信用分配的核心。

Q4. QMIX 单调性约束的具体含义是?

单选题 · mid

  • A.个体Q值增大时联合Q值不减← 正确答案
  • B.个体Q值总和必须等于零
  • C.所有智能体最优动作必相同
  • D.联合Q值必须小于每个个体Q值

答案:A。单调性指混合网络对每个个体 Q 值的偏导非负,所以任何个体 Q 值增加都会让联合 Q 值不减少。这样个体最优动作的组合就是全局最优。选项 B、C、D 都是对单调性的错误理解。

Q5. 环境非平稳问题的主要来源是?

单选题 · mid

  • A.其他智能体策略动态变化← 正确答案
  • B.奖励函数被随机扰动
  • C.传感器噪声越来越大
  • D.训练数据来自非独立分布

答案:A。在多智能体环境中,其他智能体也在学习,它们的策略不断变化,导致每个智能体看到的状态转移不稳定。奖励扰动和传感器噪声属于环境本身波动,不是多智能体特有的非平稳来源。

Q6. MAPPO 中 PPO 裁剪目标的作用是?

单选题 · mid

  • A.限制策略更新幅度防止震荡← 正确答案
  • B.消除探索噪声加速收敛
  • C.将离散动作转换为连续动作
  • D.压缩模型体积减少显存

答案:A。PPO 用新旧策略概率比,并把这个比值裁剪在 [1-ε, 1+ε] 内,避免单次更新步子太大导致策略崩塌。它与探索噪声无关,也不负责动作类型转换或模型压缩。

Q7. 与独立 Q-learning 相比,QMIX 的优势在于?

单选题 · hard

  • A.利用全局状态分解缓解信用分配← 正确答案
  • B.不需要奖励函数也能训练
  • C.可以同时训练无限数量智能体
  • D.完全避免了环境非平稳问题

答案:A。独立 Q-learning 只根据总回报更新自己的 Q 值,信用分配模糊;QMIX 用全局状态生成非负权重,把团队误差合理分给个体,缓解了功劳归属问题。它仍然需要奖励,无法处理无限智能体,也不能完全消除非平稳。

Q8. 下列哪些属于 MAPPO 的组成部分?

多选题 · mid

  • A.中心化评论家← 正确答案
  • B.分布式执行← 正确答案
  • C.PPO裁剪目标← 正确答案
  • D.重参数化技巧

答案:ABC。MAPPO = 中心化评论家 + 分布式执行 + PPO 裁剪更新。重参数化是变分自编码器等生成模型常用的技巧,多智能体 PPO 更新并不依赖它。

Q9. 关于 QMIX 和 MAPPO 的适用场景,下列说法正确的是?

多选题 · hard

  • A.QMIX适合离散动作协作任务← 正确答案
  • B.MAPPO适合连续动作控制任务← 正确答案
  • C.QMIX可以直接输出连续动作
  • D.MAPPO训练时使用全局信息← 正确答案

答案:ABD。QMIX 需要枚举联合动作,天然适合离散协作场景;MAPPO 基于策略梯度,输出动作分布,直接支持连续控制。QMIX 不直接输出连续动作,它需要离散化或额外改造。MAPPO 训练时使用中心化评论家的全局信息,属于 CTDE 范式。

Q10. 在多智能体信用分配中,边际贡献估计面临的挑战包括?

多选题 · extreme

  • A.需要固定其他智能体动作← 正确答案
  • B.联合动作空间指数增长← 正确答案
  • C.优势函数方差过大← 正确答案
  • D.单调约束可以替代博弈归因

答案:ABC。边际贡献要求固定其他智能体的动作,但联合动作数随智能体数量指数增长,因此计算开销巨大;实际算法用共享网络和中心化评论家估计优势,方差往往很高。QMIX 的单调约束是一种简化的分解方式,并不能替代完整的博弈论归因。