多智能体强化学习算法
概述
本文详细介绍 MARL 的核心算法族,包括价值分解方法 (VDN, QMIX)、多智能体策略梯度 (MAPPO, MADDPG)、通信机制 (CommNet, TarMAC),以及涌现通信等前沿方向。
1. 价值分解方法
1.1 核心思想
在合作 MARL 中,学习联合动作价值函数 \(Q_{tot}(s, \mathbf{a})\) 面临维度爆炸。价值分解将团队 Q 值分解为个体 Q 值的某种组合:
关键约束: 个体贪心 (Individual-Global-Max, IGM):
即每个智能体独立选择使自己 Q 值最大的动作,等价于最大化团队 Q 值。
1.2 VDN: 价值分解网络
方法: 简单加法分解
IGM 满足性: 加法自动满足 IGM,因为:
优点: - 简单直接 - 天然满足 IGM - 执行时完全分布式
缺点: - 表示能力受限(只能表示加法可分解的价值函数) - 无法建模智能体间的交互效应
1.3 QMIX: 单调混合网络
方法: 用混合网络组合个体 Q 值,保证单调性:
单调性约束:
实现: 混合网络的权重由全局状态 \(s\) 通过超网络 (Hypernetwork) 生成,且权重非负:
超网络:
s → HyperNet_w1 → |abs| → W1 (混合网络第一层权重)
s → HyperNet_b1 → B1 (混合网络第一层偏置)
s → HyperNet_w2 → |abs| → W2 (混合网络第二层权重)
s → HyperNet_b2 → B2 (混合网络第二层偏置)
混合网络:
[Q1, Q2, ..., QN] → Linear(W1, B1) → ELU → Linear(W2, B2) → Q_tot
关键设计: - 权重取绝对值保证非负 → 单调性 - 偏置不受约束 → 增加表示能力 - 超网络以全局状态为条件 → 利用额外信息
IGM 满足性: 单调性保证:
QMIX 架构图
graph TB
subgraph Agents["各智能体 Q 网络"]
O1[o1] --> Q1["Q1(o1, a1)"]
O2[o2] --> Q2["Q2(o2, a2)"]
ON[oN] --> QN["QN(oN, aN)"]
end
subgraph Mixing["混合网络"]
Q1 --> MIX[Mixing Network]
Q2 --> MIX
QN --> MIX
MIX --> QTOT["Q_tot"]
end
subgraph Hyper["超网络"]
S[全局状态 s] --> HN[HyperNetworks]
HN -->|权重/偏置| MIX
end
style Agents fill:#e3f2fd
style Mixing fill:#fff3e0
style Hyper fill:#e8f5e9
1.4 价值分解方法对比
| 方法 | 分解方式 | 表示能力 | 额外信息 | 年份 |
|---|---|---|---|---|
| VDN | 加法 | 弱 | 无 | 2018 |
| QMIX | 单调混合 | 中 | 全局状态 | 2018 |
| QTRAN | 线性约束 | 强 | 全局状态 | 2019 |
| QPLEX | 对偶分解 | 强 | 全局状态 | 2021 |
| WQMIX | 加权QMIX | 中+ | 全局状态 | 2020 |
QMIX 的局限
QMIX 的单调性约束意味着它无法表示所有可能的联合 Q 函数。例如,非单调的协调任务(如某些矩阵博弈)可能导致 QMIX 失败。QTRAN 和 QPLEX 试图解决这个问题,但计算代价更高。
2. 多智能体策略梯度
2.1 MADDPG: 多智能体 DDPG
核心思想: CTDE 框架下的多智能体 Actor-Critic,每个智能体有独立的 Actor,但 Critic 使用所有智能体的信息。
架构: - Actor \(\mu_{\theta_i}(o_i)\): 只用局部观测,分布执行 - Critic \(Q_{\phi_i}(s, a_1, \dots, a_N)\): 用全局信息,集中训练
Critic 更新:
Actor 更新:
特点: - 适用于合作、竞争和混合场景 - 处理连续动作空间 - 训练时需要所有智能体的观测和动作
2.2 MAPPO: 多智能体 PPO
核心思想: 将 PPO 扩展到多智能体设置,惊人地简单却非常有效。
架构: - Actor \(\pi_{\theta_i}(a_i|o_i)\): 局部观测,独立策略 - Critic \(V_{\phi}(s)\): 全局状态,共享或独立
策略目标 (每个智能体):
关键设计选择:
| 设计 | 选项 | MAPPO 推荐 |
|---|---|---|
| 参数共享 | 共享/独立 | 共享 (加 agent ID) |
| Critic 输入 | 局部/全局 | 全局状态 |
| 价值归一化 | PopArt/标准化 | PopArt |
| 数据使用 | 单次/多次 | 多次 (5-15 epoch) |
为什么 MAPPO 这么有效?
- PPO 的裁剪机制天然防止过大更新,在非平稳环境中更稳定
- 参数共享显著提高样本效率
- 简单架构易于调优和复现
- 在 SMAC 等基准上超过或匹配 QMIX
2.3 MADDPG vs MAPPO 对比
| 特性 | MADDPG | MAPPO |
|---|---|---|
| 策略类型 | 确定性 | 随机 |
| 动作空间 | 连续 | 离散/连续 |
| 数据利用 | Off-policy (经验回放) | On-policy (无回放) |
| Critic | 每个智能体独立 | 可共享 |
| 适用场景 | 竞争/混合 | 合作为主 |
| 实现复杂度 | 中 | 低 |
| 性能 | 好 | 通常更好(合作任务) |
3. 通信机制
3.1 为什么需要通信?
在部分可观测环境中,智能体的局部观测不足以做出最优决策。通信允许智能体:
- 共享局部信息
- 协调动作
- 传达意图
- 请求帮助
3.2 CommNet: 通信神经网络
核心思想: 智能体通过连续通信向量交换信息,通信集成在前向传播中。
架构:
每个智能体 \(i\) 在每个通信轮次 \(k\):
其中通信消息是其他所有智能体隐状态的平均:
特点: - 端到端可微,可以通过反向传播训练 - 通信结构预定义(全连接) - 多轮通信逐步精炼信息
3.3 TarMAC: 目标化多智能体通信
核心改进: 使用注意力机制实现选择性通信,智能体可以决定听谁的消息。
注意力通信:
-
每个智能体 \(i\) 生成:
- 消息 \(m_i\): 要发送的信息
- 签名 \(k_i\): 消息的"标签"
-
接收者 \(j\) 计算注意力权重:
- 加权聚合消息:
优势: - 动态选择通信对象 - 可解释(注意力权重可视化) - 自动学习通信协议
3.4 通信方法对比
| 方法 | 通信结构 | 通信内容 | 选择性 | 年份 |
|---|---|---|---|---|
| CommNet | 全连接平均 | 连续向量 | 否 | 2016 |
| IC3Net | 门控通信 | 连续向量 | 是(二值门) | 2019 |
| TarMAC | 注意力加权 | 连续向量 | 是(软注意力) | 2019 |
| DIAL | 直接梯度传递 | 离散/连续 | 否 | 2016 |
| ATOC | 动态分组 | 连续向量 | 是(分组) | 2018 |
4. 涌现通信 (Emergent Communication)
4.1 什么是涌现通信?
不预定义通信协议,让智能体通过 RL 自发学习通信语言:
- 通信通道是动作空间的一部分
- 消息内容和语义完全由智能体学习决定
- 可以发现人类未曾设想的通信策略
4.2 关键发现
- 语言涌现: 智能体可以发展出具有组合性的"语言"
- 指称博弈: Lewis signaling game 中的信号语义涌现
- 语言漂移: 从人类语言预训练后,智能体可能偏离人类语言
- 可解释性: 涌现语言通常难以被人类解读
4.3 挑战
- 离散消息导致梯度不可微 → Gumbel-Softmax 或 REINFORCE
- 通信协议不稳定
- 难以与人类语言对齐
- 评估涌现语言的质量
5. 经典案例: OpenAI Five
5.1 系统概述
OpenAI Five 在 Dota 2 (5v5 MOBA 游戏) 中击败世界冠军,是 MARL 最具影响力的应用之一。
5.2 技术方案
| 组件 | 选择 |
|---|---|
| 算法 | 大规模 PPO (类似 IPPO) |
| 策略网络 | LSTM (每个英雄独立) |
| 参数共享 | 是 (所有英雄共享) |
| 通信 | 无显式通信 |
| 训练规模 | ~800 petaflop-days/天 |
| 自我对弈 | 80% 当前版本 + 20% 历史版本 |
| 奖励 | 团队奖励 + 个体奖励塑形 |
5.3 关键洞察
- 规模即一切: 巨大的计算规模弥补了算法简单性
- 参数共享有效: 所有英雄共享参数 + agent ID
- 无需显式通信: 隐式协调通过共享训练实现
- 长期信用分配: 通过精细的奖励塑形缓解
- PPO 的鲁棒性: 在大规模非平稳训练中表现稳定
5.4 启示
- 简单算法 + 大规模计算可以解决极其复杂的 MARL 问题
- 参数共享是提高效率的关键技巧
- 奖励工程在 MARL 中至关重要
6. 算法总结与选择
6.1 算法对比表
| 算法 | 范式 | 动作空间 | 场景 | 复杂度 | 性能 |
|---|---|---|---|---|---|
| IQL | 独立 | 离散 | 通用 | 低 | 弱 |
| VDN | CTDE-价值分解 | 离散 | 合作 | 低 | 中 |
| QMIX | CTDE-价值分解 | 离散 | 合作 | 中 | 好 |
| MADDPG | CTDE-策略梯度 | 连续 | 通用 | 中 | 好 |
| MAPPO | CTDE-策略梯度 | 离散/连续 | 合作 | 低 | 很好 |
| CommNet | CTDE-通信 | 离散 | 合作 | 中 | 中 |
| TarMAC | CTDE-通信 | 离散 | 合作 | 中 | 好 |
6.2 选择指南
合作任务:
├── 离散动作 + 需要价值分解 → QMIX
├── 离散/连续 + 简单高效 → MAPPO
├── 需要通信 → TarMAC / CommNet
└── 大规模智能体 → MAPPO + 参数共享
竞争/混合任务:
├── 连续动作 → MADDPG
├── 离散动作 → MAPPO
└── 需要多样性 → 联盟训练 (League Training)
不确定时:
└── 先尝试 MAPPO (简单、鲁棒、通常足够好)
7. 实践建议
7.1 常见陷阱
- 忽略超参数调优: MARL 对超参数更敏感
- 评估不充分: 需要多种子、多对手评估
- 奖励设计不当: 个体奖励与团队目标冲突
- 忽略可扩展性: 算法在小规模有效不代表大规模也行
- 通信开销: 通信方法可能引入巨大的计算开销
7.2 推荐工具和框架
| 框架 | 特点 |
|---|---|
| EPyMARL | SMAC 基准,多种算法实现 |
| MARLlib | 统一接口,10+ 环境,20+ 算法 |
| PettingZoo | 标准化多智能体环境接口 |
| OpenSpiel | 博弈论 + MARL |
| Melting Pot | 社会智能评估 |
参考资料
- Sunehag, P. et al. (2018). Value-Decomposition Networks for Cooperative Multi-Agent Learning. AAMAS.
- Rashid, T. et al. (2018). QMIX: Monotonic Value Function Factorisation. ICML.
- Lowe, R. et al. (2017). Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments. NeurIPS.
- Yu, C. et al. (2022). The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games. NeurIPS.
- Sukhbaatar, S. et al. (2016). Learning Multiagent Communication with Backpropagation. NeurIPS.
- Das, A. et al. (2019). TarMAC: Targeted Multi-Agent Communication. ICML.
- Berner, C. et al. (2019). Dota 2 with Large Scale Deep Reinforcement Learning.
延伸阅读
- MARL综述 — 多智能体RL的核心挑战与范式
- PPO 算法 — MAPPO 的基础算法
- TD3 与 DDPG — MADDPG 的基础算法
- RL里程碑 — OpenAI Five、AlphaStar 案例
- 多智能体综述 — AI Agent 视角的多智能体系统