摘要 :
游戏是强化学习的"果蝇"。在多智能体强化学习(MARL)的推动下,AI 已经不满足于下围棋,它们开始组队打 Dota,指挥千军万马打星际争霸,甚至在斗地主中学会了"配合"。本文将深度拆解 OpenAI Five (Dota 2) 和 AlphaStar (StarCraft II) 两大里程碑式系统的技术内核,重点分析 PPO 的大规模分布式训练 、League Training(联盟训练) 以及 Team Spirit(团队精神系数) 等关键技术是如何在实战中落地的。
目录 (Table of Contents)
- [引言:为什么游戏是 MARL 的终极考场?](#引言:为什么游戏是 MARL 的终极考场?)
- [Dota 2 (OpenAI Five):大力出奇迹](#Dota 2 (OpenAI Five):大力出奇迹)
- PPO + LSTM 的无限扩展
- Team Spirit:如何平衡"抢人头"与"赢比赛"
- 手术刀技术 (Net Surgery)
- [StarCraft II (AlphaStar):博弈论的胜利](#StarCraft II (AlphaStar):博弈论的胜利)
- 架构:Transformer + Pointer Network
- 核心灵魂:联盟训练 (The League)
- 解决"石头剪刀布"循环
- [棋牌游戏 (DouZero / Pluribus):非完美信息的诈唬](#棋牌游戏 (DouZero / Pluribus):非完美信息的诈唬)
- 斗地主中的 2v1 配合
- MCCFR 与蒙特卡洛采样
- 通用的制胜法宝 (The Secret Sauce)
- Self-Play (自我博弈)
- Reward Shaping (奖励塑形)
- 总结与展望
1. 引言:为什么游戏是 MARL 的终极考场?
与围棋(单智能体、完全信息、离散动作)不同,RTS(即时战略)和 MOBA(多人在线战术竞技)游戏面临着 MARL 的所有核心挑战:
- 非完美信息 (Imperfect Information):战争迷雾(Fog of War)。你必须推测对手在阴影里干什么(Dec-POMDP)。
- 超长序列 (Long Horizon):一局游戏长达 45 分钟,动作数量数以万计。现在的决策(比如造兵)可能在 20 分钟后才生效。
- 巨大的动作空间 :在星际争霸中,联合动作空间高达 10 26 10^{26} 1026,比宇宙中的原子总数还多。
- 团队协作:Dota 2 需要 5 个英雄完美配合,有人抗伤害,有人输出。
2. Dota 2 (OpenAI Five):大力出奇迹
2019 年,OpenAI Five 击败了世界冠军战队 OG。它的技术路线可以概括为:简单的算法 + 恐怖的算力。
2.1 PPO + LSTM 的无限扩展
OpenAI Five 并没有使用特别花哨的 MARL 算法(如 QMIX),而是使用了独立的 PPO (Proximal Policy Optimization)。
- 架构:每个英雄是一个独立的 LSTM 网络(处理部分可观测性)。
- 训练 :大规模分布式训练。数万个 CPU 核心同时跑游戏采样,显卡负责更新梯度。每天自我博弈模拟 180 年 的游戏时长。
- 启示:只要 Scale 足够大,Independent PPO 配合 LSTM 也能涌现出极强的协作能力。
2.2 Team Spirit:解决信誉分配
为了解决"抢人头"还是"保团队"的问题,OpenAI 设计了一个动态系数 τ \tau τ (Team Spirit)。
R i = ( 1 − τ ) ⋅ R i n d i v i d u a l + τ ⋅ R ˉ t e a m R_i = (1 - \tau) \cdot R_{individual} + \tau \cdot \bar{R}_{team} Ri=(1−τ)⋅Rindividual+τ⋅Rˉteam
- 初期 ( τ \tau τ 低):鼓励英雄学好对线、补刀(个人能力)。
- 后期 ( τ → 1 \tau \to 1 τ→1):强制英雄关注输赢,哪怕牺牲自己也要保大哥。
2.3 手术刀技术 (Net Surgery)
Dota 2 版本更新频繁,或者需要修改网络结构时,重新训练成本太高。OpenAI 发明了 Net Surgery:
- 将旧网络的参数映射到新网络。
- 通过知识蒸馏(Distillation)让新网络快速恢复到旧网络的水平,然后继续训练。
3. StarCraft II (AlphaStar):博弈论的胜利
DeepMind 的 AlphaStar 在 2019 年达到了宗师级水平。星际争霸比 Dota 更难,因为涉及到宏观运营和兵种相克。
3.1 架构:Transformer + Pointer Network
- 输入 :AlphaStar 直接读取游戏内存中的 Unit List(实体列表),使用 Transformer 处理不定数量的单位。
- 输出 :使用 Pointer Network 来选择攻击对象(从输入的 Unit List 中"指"一个)。
- 动作 :自回归(Auto-Regressive)动作头。先决定
WHAT(造兵),再决定WHERE(位置),再决定WHO(目标)。
3.2 核心灵魂:联盟训练 (The League)
这是 AlphaStar 最伟大的贡献。它解决了一个 MARL 的终极难题:策略循环 (Cycling)。
- 问题:A 战术克制 B,B 克制 C,C 克制 A。如果只是简单的 Self-Play,AI 会在 ABC 之间无限转圈,遇到全新的 D 战术就傻了。
AlphaStar League 的角色分工:
- Main Agent:我们要训练的最强王者。它的目标是打败所有人。
- Main Exploiter (主剥削者) :专门寻找 Main Agent 的弱点。如果 Main Agent 防空弱,Exploiter 就疯狂造空军。这强迫 Main Agent 弥补短板。
- League Exploiter (联盟剥削者):寻找整个联盟历史中所有模型的弱点,防止 Main Agent 忘记怎么打旧战术(遗忘)。
通过这种机制,AlphaStar 并没有陷入局部最优,而是逼出了纳什均衡策略------即"没有明显短板"的策略。
4. 棋牌游戏 (DouZero / Pluribus):非完美信息的诈唬
4.1 斗地主 (DouZero)
斗地主是典型的 2v1 非对称对抗。
- 挑战:两个农民之间不能通信,只能通过出牌来传递意图(隐式通信)。
- DouZero :快手团队提出的算法。
- 不使用复杂的 CFR(博弈论中的后悔最小化),而是直接使用 Deep Monte Carlo (DMC)。
- 通过对动作空间进行极其精妙的编码 (Action Encoding) ,将出牌规则矩阵化,直接让神经网络学习 Q ( s , a ) Q(s, a) Q(s,a)。
- 结果:两个农民学会了精妙的配合(如地主出单张,下家农民顶大牌,让上家农民走)。
4.2 德州扑克 (Pluribus)
- 核心 :MCCFR (Monte Carlo Counterfactual Regret Minimization)。
- 诈唬 (Bluffing):AI 学会了在手牌很烂的时候下重注。这不是因为它有情绪,而是因为数学计算表明,以一定概率随机诈唬,能让对手无法推测我的真实手牌范围,从而收益最大化。
5. 通用的制胜法宝 (The Secret Sauce)
总结这些神级 AI,它们都有共同的配方:
5.1 Self-Play (自我博弈)
这是 MARL 的永动机。
- 没有人类数据?没关系,自己打自己。
- 只要我比昨天的我强一点点,长期迭代下去,我就能超越人类。
- 注意 :必须配合 Fictitious Play (虚拟博弈),即不仅打最新的自己,还要随机打过去的自己,防止遗忘。
5.2 Reward Shaping (奖励塑形)
- 稀疏奖励:赢了 +1,输了 -1。这太难学了。
- 稠密奖励:AlphaStar 和 OpenAI Five 都设计了极其复杂的奖励函数(补兵+0.01,推塔+0.5,血量健康+0.1...)。
- 艺术:随着训练进行,要逐渐减小稠密奖励的权重,回归到胜负奖励,否则 AI 可能会为了刷数据(比如疯狂补兵)而输掉比赛。
6. 总结与展望
从 Dota 到 StarCraft,MARL 证明了它能够处理极度复杂的协作与对抗。
- 技术演进 :从独立的 DQN/PPO → \to → CTDE (QMIX) → \to → 大规模种群训练 (League Training)。
- 未来方向 :
- Sim2Real:如何把游戏里的配合,迁移到真实的机器人足球或无人机编队?
- 少样本适应:现在的 AI 训练需要几百年,人类只需要几小时。如何让 AI 像人类一样快速适应新地图?
游戏通关了,现实世界的 MARL 副本才刚刚开启。
本篇是 MARL 应用篇。如果您对具体的算法细节(如 PPO 的原理或 Transformer 结构)感兴趣,欢迎查阅本专栏的其他文章!