你所在的小区组建了一支足球队。过去你练强化学习,像请了一位私教专盯你一个人练射门——球门是死的,环境是静止的。但一支球队完全不同:后卫、中场、前锋 11 个人同时上场,你传球的时机、队友的跑位、对手的逼抢全在动态变化。这,就是多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)要面对的世界。面对这支球队,不同教练有不同带法:懒教练让球员各自回家练球,互不搭话,上场就乱成一团——这是“独立 Q 学习”;聪明教练训练时站在看台上把全场尽收眼底,比赛哨响却不上场,让球员自己踢——这是“集中训练、分布执行”(MADDPG 的核心思路);还有一位精算师教练,设计一套“分钱规则”,把赢球奖池按每个人的贡献拆开,让前锋后卫都服气——这是“值分解”(QMIX)。本文就用这支球队的故事,带你认识 MARL 的主流算法与训练范式。
掌握 MARL 主流算法与训练范式,是多智能体系统落地选型的核心能力,能帮你在协作控制、博弈对战、群体智能等场景中快速定方案、少走弯路。
可视化演示
动态演示MARL主流算法与训练范式的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
MARL主流算法与训练范式:独立Q学 独立Q学习IQL的简单性与局限 MADDPG集中训练分散执行设 核心机制可视化 MARL主流算法与训练范式整体架构与关键组件
多智能体基础
一支球队从来不是十一个独立射门机器。你把球传出去,球能不能回来,取决于队友往哪跑;你防守时敢不敢留空档,取决于对手怎么进攻。每个球员既是决策者,又是别人眼中的“移动环境”。这种“人人为我、我为人人”的相互作用,正是多智能体强化学习与单智能体最本质的差异。
在单智能体 RL 里,环境是静止的足球门;在 MARL 里,每个智能体都在学习,于是队友和对手成了你环境里“会动的部分”。要描述这种局面,学术上用马尔可夫博弈(Markov Game):全局状态的变化不取决于某一个人的动作,而是所有人的联合动作共同决定。
围绕这条公式,诞生了 MARL 最著名的两个难题。第一是非平稳性:队友的策略在训练中不断变化,你眼中的“环境规律”就像流沙一样漂移,Q 学习赖以收敛的稳定假设被打破。第二是信用分配:球队 1:0 获胜,功劳该给进球的、助攻的还是整条防线?团队只有一个总奖励,怎么公平地归因到每个球员身上。先看懂这两个难题,后面的算法就有了坐标——就像教练先搞懂球员的位置关系,才能谈阵型与战术。
- 全局状态 s_t所有智能体共同观察到的环境状态,相当于比赛中的“实时比分与全场站位”。
- 联合动作 a_t^{(1)} \dots a_t^{(N)}每个智能体各自选一个动作,合起来构成全队下一步的“行动组合”。
- 转移概率 P(s_{t+1} \mid \cdot)环境在这个联合动作下跳到下一状态的概率,是所有智能体动作共同作用的结果。
- 非平稳性根源任何一个人的动作分布改变——比如队友换了一种战术——这条转移概率就会跟着变。
独立Q学习
最省事的带队方式,是让每个球员各自回家练球:后卫只琢磨防守,前锋只琢磨进攻,谁也不看谁、谁也不等谁。这就是独立 Q 学习(Independent Q-Learning, IQL)——把单智能体 Q 学习复制 N 份,每个智能体用自己的观测、自己的奖励、自己的 Q 表独立更新,把其他智能体统统当作“环境的噪声”。
它的更新公式和单智能体几乎一模一样,只是把下标 i 加在每个符号上:
IQL 的优点和缺点同样直白。优点是简单、可并行、在弱交互任务里够用——比如两队各守各的半场、互不干扰时,它甚至能逼近单智能体的表现。缺点是它把队友当成固定噪声,可队友明明在学、在变:后卫练了一辈子盯人,球队突然改打区域联防,他之前的经验一夜作废。非平稳性直接击穿贝尔曼方程对“环境稳定”的假设,因此在需要配合的任务里,IQL 的 Q 值估计会持续失真。
- 个体状态与动作 s_i, a_i第 i 个智能体自己观察到的状态和自己选的动作,相当于“我看到的场上局部画面和我做的动作”。
- 即时奖励 r_i环境在全体动作发生后返还给这个智能体的奖励,它可能受别人动作影响,但 IQL 不管这些。
- 目标值当前的奖励加上折现后的“下一步最优价值”,是 Q 表要追赶的方向。
- 软更新幅度 α学习率决定了新信息取代旧经验的速度,太小学得慢,太大会震荡。
MADDPG算法
靠谱教练的做法是:训练时站在看台上,手握全场视野,谁跑位、谁接应、谁漏人看得一清二楚;但比赛哨声一响,教练不能上场,球员必须靠自己的经验和判断临场决策。这就是 MARL 最经典的训练范式——集中训练、分布执行(Centralized Training with Decentralized Execution, CTDE),MADDPG 是它的杰出代表。
MADDPG 是单智能体 DDPG 的多智能体扩展,每个智能体都拥有自己的演员(Actor)和评论家(Critic)。关键在于评论家的“视野”:训练时,评论家能看到所有智能体的状态和动作,像教练俯瞰全场;执行时,评论家退场,演员只用自己的局部观测做决策,像球员自己在场上判断。更妙的是,评论家连“对手的动作”也一并收入眼底,相当于把“对手会怎么变招”也学进了价值函数里,从而有力缓解非平稳性。
MADDPG 支持连续动作,协作、竞争、混合任务通吃,是目前产业落地最常被提及的算法之一。它的灵魂就是那张“训练看全局、比赛靠自己”的牌——训练时信息越全越好,执行时通信越少越好,用信息不对称换来了实用性与可扩展性的平衡。
- 演员参数 θ_i第 i 个智能体决策网络的参数,相当于这个球员的“肌肉记忆”。
- 全局观测拼接 x所有智能体观测拼在一起,只有训练时教练(评论家)才看得见。
- 集中式评论家 Q_i^\mu输入所有智能体的状态与动作,输出对第 i 个智能体动作的评价。
- 策略梯度链式法则先看评论家对动作的梯度,再反推演员网络该怎么调参,两个梯度相乘。
QMIX值分解
精算师教练的思路完全不同:她不管跑位和防守细节,只设计一件事——赢球奖池怎么分。她的方案是写进合同的一条“分钱规则”:把团队总奖金拆成每个球员的个人奖金,规则的核心原则只有一条:多劳一定多得。贡献越大,分到的钱只增不减。这个朴素的公平原则,就是 QMIX 的思想内核。
QMIX 面向完全协作的任务。每个智能体维护一个个人价值函数 Q_i(个人奖金),一个中心混合网络 f_ψ 把所有人的 Q_i 和全局状态 s_t 揉在一起,得到团队总价值 Q_tot(赢球奖池)。训练时直接优化 Q_tot,让奖池总额最大化;执行时每个球员只按自己的 Q_i 选动作,不需要知道别人的决定。
与 MADDPG 相比:MADDPG 的评论家像看台上给建议的教练,通用但训练开销大;QMIX 的混合网络像写进合同的分钱条款,牺牲了一定的通用性,却在协作任务上更稳、更高效——尤其适合几十上百个智能体的大规模协作场景,信用分配问题被这条“公平规则”天然化解。
- 个人价值 Q_i(\tau_i, u_i)第 i 个智能体基于自己的历史观测序列 τ_i 评估动作 u_i 的优劣,相当于“个人的工作量”。
- 混合网络 f_ψ把个人价值混合成团队总价值的神经网络,其参数 ψ 由全局状态 s_t 动态生成。
- 团队总价值 Q_tot整个队伍在联合动作下的期望总收益,训练时优化的唯一目标。
- 单调性约束∂Q_tot / ∂Q_i 恒为非负,保证“多劳必多得”,这是实现个体-全局最优一致的前提。
训练范式选型
没有最好的阵型,只有最合适的阵型。对手全是单打独斗,你摆最简单的 4-4-2 就够用(独立学习);需要整体传控,就得有教练全局调度(CTDE);如果全队要靠小范围默契配合取胜,不如先定好分钱规则(值分解)。MARL 工程选型,本质就是回答三个问题。
问题一:任务是合作、竞争还是混合? 完全协作且奖励共享,优先 QMIX 家族;竞争或混合,MADDPG 这类 CTDE 方法更通用。问题二:动作是连续还是离散? 连续控制(机器人、无人机)选 MADDPG;离散决策(游戏、交通信号)选 QMIX 系更成熟。问题三:智能体数量和通信能力如何? 数量少、可通信,CTDE 优势明显;数量大、通信受限,值分解的轻量执行端更实际。为什么要坚持“训练集中、执行分散”?下面这个等式给出了数学底气:
赛前看对手排兵布阵,MARL 选型也是看任务三要素。记住这张决策地图:弱交互、重简单 → IQL;协作 + 离散 + 大规模 → QMIX 家族;连续控制或竞争对抗 → MADDPG;需要复杂通信协商 → 考虑带通信的 CTDE 变体。范式本身没有高下之分,只有合不合身。
- 全局最优联合动作让团队总价值最大的那个动作组合,是教练心目中的“完美战术”。
- 个体最优动作每个智能体只看自己的 Q_i 选出的最优动作,是球员的“本能发挥”。
- 等式两端相等这就是个体-全局最优一致(IGM)原则,意味着“做好自己”的分布执行方式不会损失全局收益。
工程落地挑战
从训练场到职业联赛,麻烦才刚开始。场地条件、球员伤病、球队规模,每一项都考验教练的工程能力。MARL 落地同样如此:论文里的漂亮曲线,到了真实环境往往水土不服。最典型的挑战集中在三个方面。
第一,环境与奖励设计。 奖励函数怎么写,直接决定信用分配的难度。如果奖励设计成“谁抢到球就给谁加分”,球员就会疯狂抢球而不管会不会传给队友——这就是奖励塑形带来的“刷分”漏洞。设计者需要把团队目标拆解成可学习的中间信号,同时避免智能体钻空子。
第二,收敛稳定性。 多个学习主体同时更新,训练曲线像过山车:赢一局就飘,输一局就崩。常见对策包括软更新(目标网络缓慢跟随)、经验回放(打破样本相关性)、课程学习(从易到难逐步加戏)。这些手段能“止痛”,但不能根治——非平稳性始终存在,监控训练过程和回滚机制是工程上的必备保险。
第三,扩展性。 联合动作空间随智能体数量指数爆炸,这是数学上躲不开的坎:
职业教练都知道,带好一支队最难的不是战术板上的几笔划线,而是场下千百次训练中的磨合。MARL 落地同理:算法选型只是起点,环境设计、稳定性调优、扩展性架构,才是决定系统能否真正跑起来的胜负手。
- 单智能体动作数每个智能体可选动作的数量,比如 10 种。
- 连乘符号把所有智能体的动作数乘起来,得到联合动作空间的总大小。
- 指数爆炸的含义智能体数量每加一,联合空间就乘以一份动作数,呈指数增长。
AI 应用场景
无人机编队协作控制
阶段:模型训练与部署(CTDE 范式)
解决的问题:多无人机协同避障、编队保持需要实时响应动态环境,传统人工规划难以应对队友和障碍物同时移动的复杂局面;MADDPG 的集中评论家在训练时统筹全局,执行时各无人机仅凭自身传感器决策,兼顾了协作质量与通信开销。
具体案例:物流园区内 5 架无人机协同完成包裹转运,训练时中央评论家同时观察所有无人机的位置、速度和动作,学习编队与避障策略;部署后每架无人机只依赖本地传感器实时调整航线,即使通信中断也能维持队形。
手游 5v5 对战 AI
阶段:奖励设计与价值学习(值分解 + 信用分配)
解决的问题:MOBA 类游戏团队胜负是唯一的全局奖励,传统强化学习把“不送人头”作为个人目标,导致 AI 各自为战、毫无配合;QMIX 把团队胜率分解到每个英雄的贡献值,让辅助愿意牺牲、坦克敢于开团。
具体案例:某头部手游用 QMIX 系算法训练 5v5 AI,每个英雄学习自己的 Q 函数,混合网络按全局战况把团队胜率分解成个人价值,最终 AI 在高端局中表现出成熟的团战配合,胜率稳定超过人工规则 AI。
多路口交通信号协同控制
阶段:决策控制与评估(协作任务 + CTDE)
解决的问题:单路口红绿灯优化只考虑本地车流,容易把拥堵“踢皮球”到相邻路口;多智能体方案把每个路口当作一个智能体,用集中训练共享全网车流信息,执行时各路口的控制器根据本地车流独立调整信号相位。
具体案例:某城市 12 个连续路口部署 MARL 信控系统,训练阶段中央模型汇总所有路口的排队长度与车流速度,执行阶段各路口控制器独立决策,平均通行延误降低约 18%,证明“集中训练、分布执行”在真实交通中的价值。
Python 演示
# -*- coding: utf-8 -*-"""MARL小实验: 对比独立Q学习与集中式联合Q学习两个智能体从不同起点出发, 必须同时到达各自目标才算成功。"""import randomrandom.seed(42) N = 4STARTS = [(0, 0), (3, 0)]TARGETS = [(3, 3), (0, 3)]ACT = [(0, 1), (0, -1), (1, 0), (-1, 0)]EP, STEPS, ALPHA, GAMMA, EPS = 300, 60, 0.2, 0.95, 0.15 def move(p, a): x, y = p dx, dy = ACT[a] return max(0, min(N - 1, x + dx)), max(0, min(N - 1, y + dy)) def run(mode): q = [{}, {}] if mode == 'ind' else {} p = [STARTS[0], STARTS[1]] ret = 0.0 for _ in range(STEPS): act = [0, 0] if mode == 'ind': for i in range(2): if random.random() < EPS: act[i] = random.randrange(4) else: vs = [q[i].get((p[i], a), 0.0) for a in range(4)] act[i] = vs.index(max(vs)) else: for i in range(2): if random.random() < EPS: act[i] = random.randrange(4) else: cand = [max([q.get((p[0], p[1], a if i == 0 else b, b if i == 0 else a), 0.0) for b in range(4)]) for a in range(4)] act[i] = cand.index(max(cand)) nxt = [move(p[0], act[0]), move(p[1], act[1])] done = nxt[0] == TARGETS[0] and nxt[1] == TARGETS[1] r = 1.0 if done else -0.01 ret += r if mode == 'ind': for i in range(2): old = q[i].get((p[i], act[i]), 0.0) nv = max([q[i].get((nxt[i], a), 0.0) for a in range(4)]) q[i][(p[i], act[i])] = old + ALPHA * (r + GAMMA * nv - old) else: key = (p[0], p[1], act[0], act[1]) old = q.get(key, 0.0) nv = max([q.get((nxt[0], nxt[1], a, b), 0.0) for a in range(4) for b in range(4)]) q[key] = old + ALPHA * (r + GAMMA * nv - old) p = nxt if done: break return ret def train(mode): total = 0.0 for ep in range(EP): total += run(mode) if (ep + 1) % 100 == 0: print('%s epoch %d avg %.4f' % (mode, ep + 1, total / (ep + 1))) return total / EP if __name__ == '__main__': for m in ('ind', 'ctde'): avg = train(m) print('final %s avg %.4f' % (m, avg))
q = [{}, {}] if mode == 'ind' else {}独立模式每人一张 Q 表;集中模式所有人共用一张联合 Q 表,对应“集中训练”。cand = [max([q.get((p[0], p[1], a if i == 0 else b, b if i == 0 else a), 0.0) for b in range(4)]) for a in range(4)]执行时每个智能体只按自己的动作维挑最优,体现了“分布执行 + 全局最优可分解”的 IGM 思想。done = nxt[0] == TARGETS[0] and nxt[1] == TARGETS[1]只有两人同时到达才给 1 分,人为制造“信用分配”难题。q[key] = old + ALPHA * (r + GAMMA * nv - old)联合 Q 表用贝尔曼公式更新,等价于一个看到全局状态的集中式评论家。random.seed(42)固定随机种子,让两套算法在公平条件下对比,结果可复现。
常见误区
误区多智能体强化学习没什么新鲜的,给每个智能体各跑一份 Q-learning 或者 DQN,加起来不就是 MARL 了吗?训练时并行开几个进程就好了。
正解这只是最朴素的独立 Q 学习(IQL),是一个基线而非完整的 MARL 方案。真正的 MARL 要考虑智能体之间的交互、环境非平稳性和信用分配。让 11 个球员各自回家练射门,不等于训练出一支球队。只有弱交互任务里 IQL 才够用,一旦需要配合,它就会因为忽视队友的存在而失效。
为何常见:初学者最先接触的单智能体工具太顺手,容易把“多智能体”简单理解成“多个单智能体并行”,忽略了协同带来的新问题。
误区CTDE 不就是所有智能体训练时共用一个大脑吗?大家都是同一个网络,执行时自然能配合。干脆把参数完全共享算了。
正解CTDE 的关键是“信息”的不对称,不是“参数”的共享。训练时评论家能看到全局信息,这没错;但执行时每个智能体通常拥有自己独立的演员网络,只输入自己的局部观测。一个教练在看台上看全场,不等于每个球员脑子里的战术本相同。共享参数只是工程上的可选优化,不是 CTDE 的定义。
为何常见:把“集中”误读成“参数统一”,是因为没分清“集中训练”与“集中决策”两个概念,忽略了执行阶段去中心化的本质。
误区QMIX 有单调性约束又满足 IGM,看起来最厉害,以后所有多智能体任务都用 QMIX 不就行了?
正解QMIX 只适用于完全协作的任务,竞争与混合任务中“多劳多得”的分钱规则根本不成立——对手的贡献越高,你的收益反而越低。而且单调性约束本身也是一种限制:某些协作任务里,“一个人的贡献上升导致团队总价值下降”虽然反直觉,却真实存在,QMIX 的表达力学不了这种模式。
为何常见:看到论文里 QMIX 在协作基准上成绩亮眼,就容易把它神化,忽略了它适用的前提条件。
误区MARL 里的非平稳性,就是环境一直在变化,比如天气变了、场地换了,所以模型老是训不稳定。
正解非平稳性的真正来源是“其他智能体在学习”。同一个状态、同一个动作,因为队友策略变了,你收到的奖励和下一状态的分布就漂移了。球场没变,变的是对手的战术和队友的跑位。这也是为什么 MADDPG 让评论家看到对手动作,就能缓解非平稳性——它对“别人的变化”建模了。
为何常见:单智能体里环境是固定的,初学者习惯把训练不稳定归因于环境噪声,忽略了智能体之间互为动态环境的特殊性。
误区智能体数量一多,联合动作空间爆炸,解决办法就是让智能体之间随时通信,互相通报动作。
正解通信会引入延迟、带宽和隐私问题,而且“完全通信”在训练和执行阶段都很难做到。主流思路恰恰相反:训练时集中共享信息(不要通信,让评论家代劳),执行时尽量去中心化(每人的策略只依赖自身观测)。QMIX 用值分解把全局最优拆成个体最优,正是为了“不通信也能配合”。
为何常见:直觉上觉得配合就必须交流,忽略了“集中训练、分布执行”这一范式在信息利用与通信成本之间的巧妙平衡。
面试题
Q1. 关于多智能体强化学习(MARL),下列说法最准确的是?
- A.它是单智能体RL的简单叠加复制
- B.它强调多个学习主体的交互协作← 正确答案
- C.它不需要设计任何奖励函数
- D.它只能用于完全竞争类任务
答案:B。MARL 的核心在于多个学习主体共享环境、相互影响,B 准确。它不能简单复制单智能体 RL,因为存在非平稳性与信用分配问题;奖励函数依然必须精心设计;协作、竞争、混合任务都能用,A、C、D 都不成立。
Q2. 独立 Q 学习(IQL)在协作任务中效果常不理想,根本原因是?
- A.学习率通常设置得过高
- B.忽略了环境的非平稳性← 正确答案
- C.无法使用神经网络拟合
- D.缺少经验回放机制
答案:B。IQL 把队友当作固定噪声,而队友在同步学习导致环境非平稳,Q 学习的收敛假设被破坏,B 正确。学习率、神经网络、经验回放都只是工程细节,不是它失效的根本原因。
Q3. MADDPG 的“集中训练分布执行”是指?
- A.训练时集中使用全部算力资源
- B.评论家看全局,执行时只看自身观测← 正确答案
- C.所有智能体共享一套网络参数
- D.执行时必须集中收集所有观测
答案:B。CTDE 的核心是信息不对称:训练时评论家输入所有智能体的状态与动作,执行时演员只用自身观测做决策,B 正确。算力分配、参数共享、集中决策都与 CTDE 的定义无关。
Q4. QMIX 通过单调性约束获得的直接好处是?
- A.联合动作空间不再爆炸
- B.个体最优组合等于全局最优← 正确答案
- C.无需训练即可完成协作
- D.评论家可读取真实状态
答案:B。单调性约束 ∂Q_tot/∂Q_i ≥ 0 保证了 IGM 原则——每个智能体按自己的 Q_i 取最优,拼起来就是全局最优联合动作,B 正确。它并不减少动作空间,也不免除训练,跟读取真实状态无关。
Q5. 当每个智能体独立选取自身最优动作,恰好构成全局最优联合动作时,体现的原则是?
- A.集中训练分布执行原则
- B.个体全局最优(IGM)原则← 正确答案
- C.经验回放优先原则
- D.最大熵探索原则
答案:B。IGM(Individual-Global-Max)原则描述的就是“全局最优由个体最优拼成”,是值分解方法分布执行不损失全局收益的理论保证。CTDE 是训练范式,与“个体最优组合成全局最优”不是同一概念。
Q6. 在一个三智能体任务中,每个智能体有 10 个离散动作,联合动作空间共有多少种?
- A.30 种
- B.100 种
- C.1000 种← 正确答案
- D.3000 种
答案:C。联合动作空间大小是各智能体动作数的乘积,10 × 10 × 10 = 1000 种。这就是 MARL 扩展性挑战的数学根源:智能体数量每加一个,动作空间就乘一次。
Q7. 信用分配问题指的是?
- A.把团队总奖励合理归因到每个智能体← 正确答案
- B.把训练任务分配到多台服务器
- C.把决策权下放给每个智能体
- D.把奖励函数拆成多个子函数
答案:A。信用分配解决的是“团队赢球,功劳怎么分”的归因难题——团队只有一个总奖励,却要指导每个智能体改进策略,A 正确。它与计算资源分配、决策权下放均无关。
Q8. 下列哪些是 MARL 相比单智能体 RL 的典型挑战?
- A.环境非平稳性← 正确答案
- B.信用分配困难← 正确答案
- C.联合动作空间爆炸← 正确答案
- D.奖励函数必须为常数
答案:ABC。队友同步学习导致环境非平稳(A);团队总奖励难以归因到个体(B);动作空间随智能体数量指数增长(C)。D 说法错误,奖励函数仍需精心设计,且通常不能是常数。
Q9. 关于 MADDPG 算法,下列说法正确的有?
- A.每个智能体拥有独立的演员网络← 正确答案
- B.评论家训练时输入所有智能体的动作← 正确答案
- C.支持连续动作空间← 正确答案
- D.执行时必须依赖集中评论家
答案:ABC。MADDPG 中每个智能体有自己的 Actor 与 Critic,评论家训练时看全局(A、B 正确);它脱胎于 DDPG,天然支持连续动作(C 正确)。执行阶段评论家退场,演员只凭自身观测决策,D 错误。
Q10. 以下哪些场景适合优先考虑 QMIX 或值分解思路?
- A.多机器人协作搬运任务← 正确答案
- B.需要解决信用分配的任务← 正确答案
- C.双方零和博弈对抗任务
- D.智能体之间完全无交互
答案:AB。QMIX 面向完全协作任务,能通过值分解把团队总奖励合理归因到个体,A、B 正确。零和对抗中“多劳多得的单调规则”不成立,不适合 QMIX;完全无交互的任务直接用单智能体 RL 即可,无需多智能体方法。