多智能体强化学习 本节摘要:单智能体 RL 假设环境是平稳的。把两个学习中的智能体放进同一个世界,这个假设就破了——每个智能体都是对方环境的一部分,而两者都在变。多智能体强化学习(Multi-Agent RL, MARL)就是当马尔可夫假设不再成立时,让学习仍能收敛的一套技巧。本节讲透它的形式化(马尔可夫博弈 );五大核心挑战(非平稳性、信用分配、探索协调、可扩展性、部分可观测);以及四种主导范式——独立学习(IQL/IPPO)、中心化训练去中心化执行(CTDE,MADDPG/MAPPO/QMIX/COMA)、自博弈(AlphaGo/AlphaZero)、联赛训练(AlphaStar)。
本节摘要:单智能体 RL 假设环境是平稳的。把两个学习中的智能体放进同一个世界,这个假设就破了——每个智能体都是对方环境的一部分,而两者都在变。多智能体强化学习(Multi-Agent RL, MARL)就是当马尔可夫假设不再成立时,让学习仍能收敛的一套技巧。本节讲透它的形式化(马尔可夫博弈
S, A_1…A_n, P, R_1…R_n);五大核心挑战(非平稳性、信用分配、探索协调、可扩展性、部分可观测);以及四种主导范式——独立学习(IQL/IPPO)、中心化训练去中心化执行(CTDE,MADDPG/MAPPO/QMIX/COMA)、自博弈(AlphaGo/AlphaZero)、联赛训练(AlphaStar)。你会在一个双智能体协作 GridWorld 上看到独立 Q 学习在松耦合任务上能用、在紧耦合任务上崩,从而理解为什么 CTDE 是 2026 年的主流。
对应原课程:Phase 9 · Lesson 10 ·
multi-agent-rl(原英文phases/09-reinforcement-learning/10-multi-agent-rl/docs/en.md)。
阅读完本节,你应当能够:
机器人在房间里学导航,是单智能体 RL 问题。一支足球队不是。AlphaStar 对 StarCraft 对手不是。一个由竞价智能体组成的市场不是。两辆车在四向停车口协商不是。多对多的真实世界问题大多不是。
在每个多智能体场景里,从任一智能体的视角看,其他智能体就是环境的一部分。当它们学习并改变行为时,环境变非平稳。马尔可夫性——「下一状态只依赖当前状态和我的动作」——被违反,因为下一状态还依赖其他智能体选了什么,而它们的策略是移动靶。
这打破表格收敛证明(Q 学习的保证假设平稳环境)。也打破朴素深度 RL:智能体互相追逐成环,永不收敛到稳定策略。你需要多智能体专用技术:中心化训练/去中心化执行、反事实基线、联赛训练、自博弈。
2026 年应用:机器人集群、交通路由、自动驾驶车队、市场模拟器、多智能体 LLM 系统、以及任何有多于一个智能玩家的游戏。
MDP 的推广:状态 S、联合动作 a = (a_1, …, a_n)、转移 P(s' | s, a)、每智能体奖励 R_i(s, a, s')。每个智能体 i 在自己的策略 π_i 下最大化自己的回报。若奖励相同,是全协作;若零和,是对抗;若混合,是一般和。
i 的视角,P(s' | s, a_i) 依赖 π_{-i},而它在变。n 指数增长。1. 独立 Q 学习 / 独立 PPO(IQL、IPPO)。每个智能体学自己的 Q 或策略,把其他智能体当环境的一部分。简单,有时能 work(尤其当经验回放充当平滑的对手建模技巧)。理论收敛:无。实践:松耦合任务还行,紧耦合任务糟糕。
2. 中心化训练、去中心化执行(CTDE)。最常见的现代范式。每个智能体有自己的策略 π_i,条件于局部观测 o_i——部署时标准去中心化执行。训练时,一个中心化 critic Q(s, a_1, …, a_n) 条件于完整全局状态与联合动作。例子:
a' 而非 a,奖励会怎样?」——孤立我的贡献。Q_tot(s, a) = f(Q_1(s, a_1), …, Q_n(s, a_n)),带单调混合。3. 自博弈。同一智能体的两份拷贝互相对弈。对手的策略就是我过去某个快照的策略。AlphaGo / AlphaZero / MuZero。OpenAI Five。零和博弈最佳,训练信号对称。
4. 联赛训练。自博弈向一般和 / 对抗环境的扩展:保留一个过去与当前策略的人群,从联赛里采样对手训练。加 exploiters(专攻当前最强)与 main exploiters(专攻 exploiters)。AlphaStar(StarCraft II)。当博弈存在「石头剪刀布」式的策略循环时需要。
通信。允许智能体互发学到的消息 m_i。协作场景下有用。Foerster et al. (2016) 证明可微的智能体间通信能端到端训练。今天的基于 LLM 的多智能体系统本质上用自然语言通信。
💡 CTDE 的精髓是「训练时作弊,部署时老实」。训练时你可以看到全局状态和所有智能体的动作(中心化 critic),所以能算准每个智能体的贡献;但部署时每个智能体的策略只用自己的局部观测。这恰好对应真实世界——机器人集群部署时,每个机器人只能看自己的传感器,但训练时你有上帝视角。
本节用一个 6×6 双协作智能体的 GridWorld。它们从对角出发,必须到达共享目标。共享奖励:任一智能体还在动时每步 -1,两个都到时 +10。见 code/main.py。
class CoopGridWorld: def __init__(self): self.size = 6 self.goal = (5, 5) def reset(self): return ((0, 0), (5, 0)) # 两个智能体 def step(self, state, actions): a1, a2 = state new1 = move(a1, actions[0]) new2 = move(a2, actions[1]) done = (new1 == self.goal) and (new2 == self.goal) reward = 10.0 if done else -1.0 return (new1, new2), reward, done
联合动作空间是 |A|² = 16。全局状态是两个位置。
每个智能体跑自己的 Q 表,键是联合状态。每步:两个都按 ε-贪心选动作,收集联合转移,各用共享奖励更新自己的 Q:
def independent_q(env, episodes, alpha, gamma, epsilon): Q1, Q2 = defaultdict(default_q), defaultdict(default_q) for _ in range(episodes): s = env.reset() while not done: a1 = epsilon_greedy(Q1, s, epsilon) a2 = epsilon_greedy(Q2, s, epsilon) s_next, r, done = env.step(s, (a1, a2)) target1 = r + gamma * max(Q1[s_next].values()) target2 = r + gamma * max(Q2[s_next].values()) Q1[s][a1] += alpha * (target1 - Q1[s][a1]) Q2[s][a2] += alpha * (target2 - Q2[s][a2]) s = s_next
这个任务上能 work,因为奖励密集且对齐。紧耦合任务(比如一个智能体必须等另一个)上失败。
用一个对联合动作的 Q Q(s, a_1, a_2)。从共享奖励更新。执行时去中心化,边缘化:π_i(s) = argmax_{a_i} max_{a_{-i}} Q(s, a_1, a_2)。用指数级联合动作空间换正确的全局视角。
同一智能体,两个角色。训智能体 A 对智能体 B;K 回合后把 A 的权重复制到 B。对称训练,持续进步。AlphaZero 配方的缩影。
💡 独立 Q 学习失败的关键信号:学习曲线震荡不收敛。原因是每个智能体的最优回应随对方更新而变——你刚学到的最优策略,对方一变就不最优了。CTDE 的中心化 critic 正是治这个:它把「对方在做什么」显式建模进价值函数,让每个智能体的优势估计对对手策略不敏感。
2026 年 MARL 应用地图:
| 领域 | 方法 | 备注 |
|---|---|---|
| 协作导航 / 操作 | MAPPO / QMIX | CTDE;共享 critic + 去中心化 actor |
| 双人对弈(棋、围棋、扑克) | 自博弈 + MCTS(AlphaZero) | 零和;对称训练 |
| 复杂多人(Dota、StarCraft) | 联赛训练 + 模仿预训练 | OpenAI Five、AlphaStar |
| 自动驾驶车队 | CTDE MAPPO / 带注意力的 PPO | 部分可观测;队伍规模可变 |
| 拍卖市场 | 博弈论均衡 + RL | n → ∞ 时用 mean-field RL |
| LLM 多智能体系统 | 自然语言通信 + 角色条件 | 在智能体规划层做 RL 循环 |
2026 年,MARL 增长最快的领域是基于 LLM 的:一群语言模型智能体协商、辩论、构建软件。RL 出现在轨迹级输出的偏好优化上,而非 token 级。
PettingZoo 是多智能体版的 gymnasium,提供标准接口(reset / step 返回动作字典)、一套参考环境(合作导航、粒子环境、Atari 多人版)。它与 stable-baselines3 的多智能体扩展(或 Supervisor 封装把多智能体环境拆成单智能体 API)配合,是 CTDE 实现的标准起点。值得做:在 PettingZoo 的 simple_spread 上跑 IPPO vs MAPPO,观察中心化 critic 带来的收敛提速。
本节产出一个可复用 skill(位于原课程 outputs/skill-marl-architect.md)。骨架:
--- name: marl-architect description: 为给定任务选对多智能体 RL 范式(IPPO、CTDE、自博弈、联赛)。 version: 1.0.0 phase: 9 lesson: 10 tags: [rl, multi-agent, marl, self-play] --- 给定一个含 n 智能体的任务,输出: 1. 范式分类。协作 / 对抗 / 一般和。附理由。 2. 算法。IPPO / MAPPO / QMIX / 自博弈 / 联赛。理由挂到耦合紧度与奖励结构。 3. 信息访问。中心化训练(什么全局信息给 critic)?去中心化执行? 4. 信用分配。反事实基线、价值分解、或奖励塑形。 5. 探索计划。每智能体熵、基于人群的训练、或联赛。 拒绝在紧耦合协作任务上推荐独立 Q 学习。 拒绝在有循环风险的一般和上推荐自博弈。 标记任何没有固定对手评估的 MARL 管线(挑过的自博弈数字很常见)。
| 术语 | 俗称 | 实际含义 |
|---|---|---|
| 马尔可夫博弈 | 「多智能体 MDP」 | (S, A_1,…,A_n, P, R_1,…,R_n);每智能体有自己的奖励 |
| CTDE | 「中心化训练、去中心化执行」 | 训练时联合 critic;每智能体策略只用局部观测 |
| IPPO | 「独立 PPO」 | 每智能体单独跑 PPO;简单基线;常被低估 |
| MAPPO | 「多智能体 PPO」 | 带条件于全局状态的中心化价值函数的 PPO |
| QMIX | 「单调价值分解」 | Q_tot = f_单调(Q_1,…,Q_n) 允许去中心化 argmax |
| COMA | 「反事实多智能体」 | 优势 = 我的 Q 减去对我的动作边缘化后的期望 Q |
| 自博弈 | 「智能体对过去的自己」 | 单智能体两角色;零和博弈标准 |
| 联赛训练 | 「基于人群的自博弈」 | 缓存过去策略,从池里采样对手;处理策略循环 |
(S, A_1…A_n, P, R_1…R_n) 是 MDP 的多智能体推广;分全协作/对抗/一般和。下一节,我们把在仿真器里训好的策略搬到真实硬件——Sim-to-Real 迁移,靠域随机化、域适配、系统辨识三件套跨过「现实鸿沟」。