一句话定位

MuZero 学一个只对规划有用的隐空间世界模型(表示 h / 动力学 g / 预测 f 三件套,预测 reward · value · policy 三个量),把 AlphaZero 的 MCTS 整个搬到这个抽象隐状态里跑——全程不知道环境真实规则、也从不重建观测像素。它在 Atari 57 游戏上刷新 SOTA(当时 model-based 一直打不过 model-free 的领域),同时在围棋、国际象棋、将棋上匹配甚至略超拿着完美模拟器的 AlphaZero,成为把「学到的模型」和「前瞻搜索」真正合一的里程碑工作。arXiv v1 2019-11(NeurIPS 2019 poster),正刊 2020-12 发在 Nature(588: 604-609)。

背景与定位

强化学习长期分两条路:model-free(DQN/R2D2/Ape-X 直接估最优策略/价值,在 Atari 这类视觉复杂域是 SOTA,但在需要精确前瞻的棋类上打不过搜索);model-based(先学环境模型再规划,但历史上要么重建真实状态、要么重建整帧观测,在 Atari 这类视觉丰富域一直落后于调好的 model-free 方法,连数据效率都不占优)。

MuZero 走的是价值等价模型(value-equivalent model)这条新路——不要求隐状态能重建观测、也不要求它匹配环境真实状态,只要求「在抽象 MDP 里规划 ≈ 在真实环境里规划」,即沿抽象轨迹累计的 reward/value 与真实环境一致。谱系:predictron(2017,首次提出价值等价模型,但只预测 value、无动作)→ TreeQN / Value Iteration Networks(学抽象 MDP 使树搜索/值迭代逼近最优价值)→ value-prediction-network(VPN,最接近 MuZero 的前身:学 grounded-in-action 的 MDP,但无 policy 预测、搜索只用 value)→ MuZero(在 alphazero 的搜索+基于搜索的策略迭代之上装进一个学到的模型,并把 AlphaZero 从「双人、无折扣、±1 终局奖励」推广到「单智能体、带折扣、任意幅度的中间奖励」)。它与同期 RSSM 一脉(dreamer-v3 的祖先 PlaNet/Dreamer,靠重建像素学隐动力学)形成对照:MuZero 明确不重建观测,把模型容量全砸在「预测对规划有用的量」上。

模型架构

三个联合训练的网络组件(参数统一 θ,端到端 BPTT):

  • 表示函数 hs⁰ = hθ(o₁,…,oₜ),把历史观测编码成根隐状态 s⁰。
  • 动力学函数 grᵏ, sᵏ = gθ(sᵏ⁻¹, aᵏ),一个循环过程,给定上一隐状态和候选动作,输出即时奖励 rᵏ 与新隐状态 sᵏ。本文动力学是确定性的,随机转移留作 future work。隐状态 sᵏ 无任何环境状态语义,唯一目的就是准确预测未来的 policy/value/reward。
  • 预测函数 fpᵏ, vᵏ = fθ(sᵏ),从隐状态算 policy 和 value,结构同 AlphaZero 的双头网络。

骨干:表示与动力学函数复用 AlphaZero 的卷积+残差结构,但用 16 个残差块(而非 AlphaZero 的 20 块),3×3 卷积核、256 个隐平面;预测函数结构照搬 AlphaZero(1-2 个保分辨率、降平面数的卷积层 + 全连接到输出)。围棋上 MuZero 反而略超 AlphaZero,作者推测它在搜索树里缓存计算、每多调一次动力学模型就多理解一层局面。

动作条件化:动作编码成与隐状态同分辨率的平面再沿平面维拼接进动力学输入。Atari 下采样后分辨率 6×6,围棋 19×19、象棋 8×8、将棋 9×9。Atari 动作是 one-hot 平铺成平面;象棋用 8 个平面(起点 one-hot + 落点 + 是否合法 + 5 种升变),将棋 11 个平面。

Atari 表示函数下采样(输入 96×96、128 平面 = 32 帧历史 × 3 RGB + 32 个历史动作广播成平面):conv stride2→48×48(128) → 2 残差块(128) → conv stride2→24×24(256) → 3 残差块(256) → avgpool stride2→12×12 → 3 残差块(256) → avgpool stride2→6×6。动力学函数始终在 6×6 上跑。

value/reward 的 categorical 表示:Atari 沿用 R2D2 的可逆缩放变换 h(x)=sign(x)(√(|x|+1)−1+εx),ε=0.001;再把标量映到大小 601 的离散 support(−300…300 每个整数一个支点),用相邻两支点的线性组合表示(如 3.7 = 0.3·[3]+0.7·[4]),网络输出 softmax(601),推理时求期望再反变换。隐状态也被缩放到与动作输入相同的 [0,1] 区间:s_scaled=(s−min s)/(max s−min s)

搜索(latent MCTS):每条边存 {N 访问数, Q 均值, P 先验, R 奖励, S 转移}。选择阶段用 pUCT(c₁=1.25, c₂=19652);因价值无界,用搜索树内观测到的 min-max 对 Q 归一化到 [0,1] 再进 pUCT。扩展阶段每次模拟只调一次 g 和 f,计算量与 AlphaZero 同阶。回传阶段推广到带中间奖励+折扣+无界价值的 l−k 步 bootstrap。相比 AlphaZero 的三处「用规则」:状态转移改为 g、树内不做合法动作 mask(只在能查询环境的根节点 mask)、终止节点不特殊处理(终态当吸收态训练)。

数据

  • 自对弈生成:最新 checkpoint(每 1000 训练步更新一次)跑 MCTS 产数据。棋类 800 次模拟/步,Atari 50 次模拟/步。
  • replay buffer:棋类保留最近 100 万局;Atari 因观测大,保留最近 12.5 万条长度 200 的序列(Atari 一局最长 30 分钟 / 108,000 帧,故每 200 步就把中间序列发给训练)。
  • 观测历史:Atari 输入最近 32 帧 RGB(96×96)+ 最近 32 个动作(动作也编码进来,因 Atari 动作对观测不一定有可见影响,18 个动作按 a/18 缩放成 bias 平面);围棋/将棋编码最近 8 个局面,象棋因要正确判和而用最近 100 个局面
  • 动作采样:Atari 全程按访问数分布采样(温度 T 见训练),棋类沿用 AlphaZero 的探索方案。
  • 无「数据配比/来源清洗」概念——这是自对弈 RL,数据全部来自智能体与环境(模拟器)的交互本身。

训练方法

目标函数(对每个假想步 k=0…K 求和): lₜ(θ) = Σₖ [ l_r(u_{t+k}, rₜᵏ) + l_v(z_{t+k}, vₜᵏ) + l_p(π_{t+k}, pₜᵏ) ] + c‖θ‖²

  • policy 目标 = MCTS 搜索策略 π(基于搜索的策略提升,作者消融证明它比 Q-learning 的高偏差高方差目标提供更强学习信号);
  • value 目标 = n 步 bootstrap z_t = u_{t+1}+γu_{t+2}+…+γ^{n-1}u_{t+n}+γⁿν_{t+n}(棋类直接 bootstrap 到终局 = 预测最终胜负);
  • reward 目标 = 观测到的真实奖励(棋类无中间奖励则略去 reward loss)。
  • 损失形式:棋类 value/reward 用平方误差;Atari 因奖励/价值幅度多变,改用交叉熵更稳;policy 两者都用交叉熵。

关键超参 / 训练细节

  • K = 5 假想步展开;100 万个 mini-batch;batch size 棋类 2048 / Atari 1024
  • 折扣 0.997(沿用 R2D2);Atari value bootstrap n = 10;棋类 bootstrap 到终局。
  • prioritized replay(仅 Atari):优先级 p_i=|ν_i−z_i|,重要性采样修偏,α=β=1;棋类均匀采样。
  • 梯度缩放两处:每个 head 的 loss 乘 1/K(让总梯度与展开步数无关);动力学函数入口处梯度乘 1/2(让施加到动力学的总梯度保持恒定)。
  • 温度退火:前 500k 步 T=1,接下来 250k 步 T=0.5,最后 250k 步 T=0.25,动作选择随训练变贪心。

MuZero Reanalyze(样本高效版):重访过去时间步、用最新参数重跑 MCTS 产生更优的新策略目标,用于 80% 的更新(博客口径:约 90% 时间用学到的模型重规划过去 episode);再用 target network 提供更稳的 n 步 value bootstrap。为增加样本复用/防 value 过拟合,调整了若干超参:每状态抽 2.0 个样本(vs 0.1)、value 目标权重降到 0.25(policy/reward 为 1.0)、n 步从 10 降到 5

Infra(训练 / 推理工程)

  • 全部实验跑在第三代 Google Cloud TPU
  • 棋类:每个游戏 16 TPU 训练 + 1000 TPU 自对弈
  • Atari:每个游戏 8 TPU 训练 + 32 TPU 自对弈(自对弈 TPU 占比远小于棋类,因每步只 50 次模拟、且动力学函数比表示函数小)。
  • 训练时长:Atari(大数据 20B 帧设定)约 12 小时 / 1M 训练步;对比 Ape-X/R2D2 都要 5 天(见评测表)。
  • 精度、GPU-hours 明细、推理 FPS / 控制频率 / 边缘硬件:未披露(本文是纯游戏 RL 研究,无部署侧工程指标)。

评测 benchmark

Atari 57 游戏(人类归一化分,均来自 Table 1 / Table S1)

大数据设定(30 随机 no-op starts):

AgentMedianMeanEnv FramesTraining TimeTraining Steps
Ape-X434.1%1695.6%22.8B5 天8.64M
R2D21920.6%4024.9%37.5B5 天2.16M
MuZero2041.1%4999.2%20.0B12 小时1M

小数据设定(200M 帧/游戏):

AgentMedianMean
IMPALA191.8%957.6%
Rainbow231.1%
UNREAL250%880%
LASER431%
MuZero Reanalyze731.1%2168.9%
  • MuZero 在 57 局中逐局击败前 SOTA model-free R2D2 42 局,逐局击败前最佳 model-based SimPLe 全部游戏。逐局最优统计:no-op starts 下 MuZero 拿 37 项最佳(Table S1),human starts 下拿 46 项最佳(Table S2)。
  • 围棋/象棋/将棋:MuZero 匹配 AlphaZero 的超人类水平(Elo 对打 AlphaZero,双方 800 模拟/步),围棋上还略超——尽管每节点只用 16 残差块(AlphaZero 用 20)。
  • 规划可扩展性(围棋,Fig 3A):训练时约 0.1s/搜索,评测放大到 10s 思考仍能匹配完美模拟器(比训练长两个数量级);博客补充:思考时间从 0.1s 加到 50s,棋力涨 >1000 Elo(约等于强业余到最强职业的差距)。
  • 规划可扩展性(Atari,Fig 3B):性能随模拟数上升,~100 次模拟后趋于平台;即便单次模拟(纯按策略网络走)也表现不错——训练末期原始策略已内化搜索收益。Atari 提升不如围棋明显,作者归因于 Atari 模型精度更低。
  • 消融(Ms. Pacman):(C) 把训练目标换成 R2D2 式 Q-learning 且不用搜索,最终分远低于 MCTS 版且学得更慢;(D) 训练时每步哪怕只 6 次模拟(少于动作数) MuZero 也能有效学习并快速提升,模拟越多提升越快。

创新点与影响

  • 核心贡献:首次把「学到的模型」与「前瞻搜索」在视觉复杂域真正合一——用价值等价的隐模型(只预测 reward/value/policy、不重建观测、隐状态无环境语义)在抽象隐空间直接跑 MCTS,在完全不知道规则的前提下同时拿下 Atari SOTA 和棋类超人类。这条路后来成为「学到的世界模型 + 规划」范式的标杆。
  • 改变了什么:终结了「model-based 在 Atari 打不过 model-free」的旧格局;把 AlphaZero 从双人零和棋类推广到单智能体、带折扣、任意幅度中间奖励的通用 RL 设定;「模型只需对规划有用、不必忠实重建世界」的思想影响深远(后续 EfficientZero、Sampled MuZero、Stochastic MuZero,乃至 MuZero 在视频压缩等真实系统的落地)。
  • 作者自陈局限:动力学被建成确定性的,随机转移留待 future work(后由 Stochastic MuZero 补上);不处理不完全信息博弈(如扑克)。此外 Atari 上规划带来的增益明显弱于围棋,反映学到的模型在视觉复杂域仍有精度瓶颈。

原始链接

一手源存档(sources/)

  • muzero—blog — DeepMind 官方博客快照(sources/world-model/2019/muzero--blog.md
  • arXiv 全文见上方链接(arXiv 原文 PDF,不入 git)