论文专题讲解:MuZero:只预测对规划有用的世界模型

论文专题讲解:MuZero:只预测对规划有用的世界模型

Charles Lv8
论文信息

论文题名: Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model。

作者: Julian Schrittwieser、Ioannis Antonoglou、Thomas Hubert、Karen Simonyan、Laurent Sifre、Simon Schmitt、Arthur Guez、Edward Lockhart、Demis Hassabis、Thore Graepel、Timothy Lillicrap、David Silver。

机构: DeepMind;University College London。

时间 / 主题: arXiv v1:2019-11-19;v2:2020-02-21;世界模型 / planning / model-based RL。

arXiv / 官方报告: arXiv:1911.08265;DOI:10.48550/arXiv.1911.08265

GitHub / 项目: 论文未在 arXiv 元数据中给出官方 GitHub;arXiv ancillary files 包含 pseudocode 和评测 JSON。

元数据来源与核验口径: 来源:arXiv、官方 PDF、arXiv ancillary pseudocode.py;Checked Date:2026-07-06;Repro Status:Paper / pseudocode / ancillary data reviewed, independent reproduction not claimed。

原论文故事线

研究背景

MuZero 继承 AlphaZero 的搜索式强化学习背景,但移除了一个关键前提:已知游戏规则或完美模拟器。AlphaZero 在棋类游戏里很强,是因为 MCTS 可以调用真实规则展开未来;但在 Atari、机器人或其他真实环境中,agent 通常没有这样一个模拟器。传统 model-based RL 试图学习环境动力学,但常把大量容量花在预测像素或真实状态细节上,规划效果未必好。

MuZero 把问题重新放回 planning:如果模型的唯一用途是给搜索树提供未来回报信息,那么它是否需要预测真实 observation?论文的回答是否定的。模型只要预测 reward、policy 和 value,就能服务 MCTS。

问题(Challenge)

论文要解决的问题是:能否在不知道环境规则的情况下,学习一个足以支持 MCTS 的模型,并同时在棋类和 Atari 上达到强性能? 难点在于,搜索需要展开 hypothetical future;如果模型误差累积,MCTS 会被误导。另一方面,如果要求模型重建完整真实状态或像素,任务又太难,且很多细节与规划无关。

这个问题的价值在于,它直接连接真实世界决策:很多环境没有可调用规则模拟器,但仍需要 planning。MuZero 想保留 AlphaZero 的搜索优势,同时让模型从交互数据中学习。

Finding

作者的 finding 是:用于规划的世界模型不必等价于真实环境模型;它只需要在搜索树中保持 value-equivalent,即能预测对决策有用的 reward、policy 和 value。 这个洞见把世界模型从“复原世界”翻转为“服务规划的抽象状态机”。

这个 finding 能解决挑战,因为它大幅减少了模型必须学习的信息。hidden state 不需要可解释、不需要重建图像、不需要对应真实棋盘或 Atari RAM;只要在真实动作序列上 unroll 后能对齐 reward、MCTS policy target 和 n-step return,搜索就可以利用它。模型容量因此集中在决策相关变量上。

方法

MuZero 模型由三个函数组成。representation function hh 把历史 observations 编码成 root hidden state;dynamics function gg 接收 hidden state 和假设 action,输出 immediate reward 和下一 hidden state;prediction function ff 从 hidden state 输出 policy prior 和 value。MCTS 在这些 hidden states 上展开搜索,selection 使用 policy prior 和 value,expansion 调用 learned dynamics,backup 使用 predicted rewards 和 values。

训练时,从 replay buffer 采样真实轨迹。模型先用 hh 编码真实历史,再沿真实动作序列用 gg unroll 多步,并在每一步用 ff 预测 policy 和 value。loss 对齐三类 target:真实 observed reward、由搜索 visit counts 得到的 policy target、以及 board games 的最终 outcome 或 Atari 的 n-step return。行动时,agent 对当前 observation 运行 MCTS,并按搜索 visit counts 选择动作。

结论

实验显示,MuZero 在 chess、shogi、Go 中达到或匹配 AlphaZero 的超人类表现,同时在 57 个 Atari games 上超过当时强 model-free 方法的平均和中位人类归一化分数。论文还通过 Go 和 Ms. Pacman 的分析展示,增加搜索模拟数能提升或稳定性能,说明 learned model 不是只作为普通 policy network 使用,而确实支撑了 planning。

MuZero 的结论边界也很重要:它不是一个可解释环境模拟器,也不输出可视化未来;它证明的是 value-equivalent model 足以支持 MCTS。对世界模型专题来说,MuZero 提醒我们:世界模型可以按用途定义。如果用途是规划,预测决策相关量可能比预测所有像素更有效。

关键术语

  • Value-equivalent Model(价值等价模型):不要求复原真实环境状态,只要求在规划中产生等价的 reward、policy 和 value 信息。
  • Representation Function, h(表征函数):把历史观测编码成搜索根节点 hidden state。
  • Dynamics Function, g(动力学函数):在 hidden state 和假设动作上展开下一 hidden state,并预测即时奖励。
  • Prediction Function, f(预测函数):从 hidden state 输出 policy prior 和 value,指导 MCTS。
  • Monte Carlo Tree Search, MCTS(蒙特卡洛树搜索):通过模拟多条未来路径、累积访问次数和价值估计来选择动作的搜索算法。
  • Visit Count Policy(访问次数策略):MCTS 后根据每个动作被访问次数形成的训练或行动策略目标。

MuZero 的核心不是“学一个能重建环境的模型”,而是更锋利的一句话:世界模型只需要预测规划直接需要的量:reward、policy、value。 它不要求 hidden state 能重建像素,也不要求 hidden state 对齐真实环境状态;只要这个内部状态能支撑 MCTS 产生更好的 policy/value target,它就可以成为用于 planning 的模型。

这让 MuZero 和 PlaNet/Dreamer 路线形成鲜明对照。PlaNet/Dreamer 用 observation reconstruction、reward、discount 和 latent dynamics 学一个可 rollout 的状态空间;MuZero 则把模型直接训练成搜索树里的抽象状态转移器。它更像“把 AlphaZero 的真实规则模拟器替换成 learned dynamics model”,再把搜索结果反过来训练模型。

它的贡献位置

MuZero 站在三条路线的交叉处:

Route 典型方法 模型预测什么 规划 / 控制接口
Perfect simulator + search AlphaZero 真实游戏规则状态转移 MCTS 使用规则 simulator 展开树
Reconstruction world model PlaNet / Dreamer observation / latent state / reward / discount latent planning 或 latent actor-critic
Value-equivalent model MuZero reward / policy / value MCTS 在 learned hidden states 上搜索

MuZero 的大胆之处是放弃“模型必须预测真实世界长什么样”的执念。论文明确强调 hidden state 没有环境状态语义,只需要服务未来 policy、value、reward 预测。换句话说,MuZero 的世界模型不是照片式模拟器,而是 planning interface。

总体流程

MuZero planning acting training

图源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Figure 1。原论文图意:MuZero 用 representation、dynamics、prediction 三个函数进行规划、行动和训练;真实环境轨迹进入 replay buffer,模型在真实动作序列上 recurrent unroll,并预测 policy、value、reward。

这张图怎么读。
Figure 1 分成三块。A 是搜索:root hidden state 来自 representation function hh,树内每走一个假设动作就调用 dynamics function gg,再用 prediction function ff 输出 policy/value。B 是行动:每个真实时间步都跑 MCTS,从 visit count policy 采样动作,再把轨迹存进 replay。C 是训练:从 replay 采一段真实轨迹,用真实动作把模型 unroll KK 步,并在每一步对齐搜索 policy、return value 和真实 reward。

这三块形成闭环:

1
2
3
4
5
observation history -> h -> root hidden state
root hidden state + candidate actions -> MCTS over learned dynamics
MCTS visit counts/value -> policy/value targets
environment rewards -> reward targets
replay sequence + real actions -> train h, g, f by BPTT

三个函数:h、g、f

MuZero 模型可以写成:

s0=hθ(o1,,ot)s^0 = h_\theta(o_1,\ldots,o_t)

rk,sk=gθ(sk1,ak)r^k, s^k = g_\theta(s^{k-1}, a^k)

pk,vk=fθ(sk)p^k, v^k = f_\theta(s^k)

其中 hh 是 representation function,负责把过去观测编码成 root hidden state;gg 是 dynamics function,负责在搜索树内部根据 hidden state 和假设动作生成下一 hidden state 与即时 reward;ff 是 prediction function,负责从任意 hidden state 预测 action-selection policy 和 value。

关键点是:sks^k 不是棋盘状态、Atari RAM 状态,也不是可解码图像 latent。论文把它定义成模型内部状态,只要求对未来 policy/value/reward 有用。这和传统 model-based RL 的“预测下一状态”和 Dreamer 式“预测可重建 latent”都不同。

Function Input Output 用途
Representation hθh_\theta past observations root hidden state s0s^0 把真实历史转成搜索 root
Dynamics gθg_\theta hidden state + action reward rkr^k, next hidden state sks^k 在 MCTS 树内展开假设未来
Prediction fθf_\theta hidden state policy pkp^k, value vkv^k 指导树搜索并提供叶子估值

MCTS:把 learned model 当作树搜索环境

MuZero 的搜索继承 AlphaZero 的 MCTS,但把真实 simulator 换成 learned dynamics。

每条边保存 N(s,a),Q(s,a),P(s,a),R(s,a),S(s,a)N(s,a), Q(s,a), P(s,a), R(s,a), S(s,a),分别表示 visit count、mean value、policy prior、reward 和 transition state。每次 simulation 分三步:

MCTS stage MuZero 做什么 和 AlphaZero 的差别
Selection 用 pUCT 在树内选择 action Q 需要做 min-max normalization,因为 Atari value 无界
Expansion 对 leaf 调用 gθg_\theta 得到 reward/state,再调用 fθf_\theta 得到 policy/value transition 来自 learned dynamics,不来自规则 simulator
Backup 用 predicted reward + leaf value 回传更新 Q/N 支持 single-agent、intermediate rewards、discount

在棋类里,AlphaZero 依赖规则知识做三件事:搜索树状态转移、合法动作 mask、terminal node value。MuZero 分别替换成 learned dynamics、只在 root 用环境合法动作信息、树内 terminal 也交给 value 预测处理。论文还把 terminal state 作为 absorbing state 训练,让模型在搜索树内越过 terminal 时也能稳定预测。

训练目标

MuZero equations

图源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Figure S2。原论文图意:该图汇总模型、搜索、学习规则和 loss。MuZero 的 loss 同时包含 reward、value、policy 三类目标,并对 board games 和 general MDPs 使用不同目标定义。

这张公式图怎么读。
训练时,MuZero 不用 pixel reconstruction loss。它从 replay 中取时间 tt 的真实轨迹,先用 hh 编码历史,再沿真实动作 at+1,,at+ka_{t+1},\ldots,a_{t+k} unroll。每个 unroll step 都预测三类量:

Target Board games Atari / general MDPs
Policy MCTS search policy πt+k\pi_{t+k} MCTS search policy πt+k\pi_{t+k}
Value final outcome uTu_T n-step return ut+1+γut+2++γnνt+nu_{t+1}+\gamma u_{t+2}+\cdots+\gamma^n\nu_{t+n}
Reward omitted for no intermediate rewards observed reward ut+ku_{t+k}

总 loss 是:

lt(θ)=k=0Klr(ut+k,rtk)+lv(zt+k,vtk)+lp(πt+k,ptk)+cθ2l_t(\theta)=\sum_{k=0}^{K} l^r(u_{t+k}, r_t^k) +l^v(z_{t+k}, v_t^k) +l^p(\pi_{t+k}, p_t^k) +c\lVert\theta\rVert^2

这就是 MuZero 的世界模型哲学:不要学“环境全貌”,而是学“搜索需要的充要摘要”。如果 hidden state 能让 MCTS 产生更强 policy,哪怕它完全不可解释,也满足目标。

训练细节

论文和 ancillary pseudocode 给出的训练配置很细。先看共同设置:

Item MuZero setting
Hypothetical unroll steps K=5K=5
Training steps 1M mini-batches
Board game batch size 2048
Atari batch size 1024
Board game search 800 simulations per move
Atari search 50 simulations per move
UCB constants c1=1.25c_1=1.25, c2=19652c_2=19652
Weight decay 1e41e-4 in pseudocode
Momentum 0.9 in pseudocode

不同 domain 的配置:

Domain Action space Max moves Discount Dirichlet alpha Num simulations Batch size TD steps Num actors LR init
Go 362 722 1.0 0.03 800 2048 max_moves 3000 0.01
Chess 4672 512 1.0 0.3 800 2048 max_moves 3000 0.1
Shogi 11259 512 1.0 0.15 800 2048 max_moves 3000 0.1
Atari 18 27000 0.997 0.25 50 1024 10 350 0.05

表源:arXiv ancillary pseudocode.py。原字段名保留英文;max_moves 在 board games 中等价于 Monte Carlo return 到终局。

Replay 和数据生成

MuZero 用最新 checkpoint 做 self-play / acting,checkpoint 每 1000 training steps 更新一次。board games 中,每局结束后发给训练任务;Atari episode 很长,最长 30 分钟或 108,000 frames,因此每 200 moves 发送中间 sequence。

Replay item Board games Atari
Buffer most recent 1 million games most recent 125 thousand sequences of length 200
Sampling uniform states prioritized replay
Atari priority P(i)=piα/kpkαP(i)=p_i^\alpha / \sum_k p_k^\alpha, $p_i= \nu_i-z_i
Importance correction wi=(1/N1/P(i))βw_i=(1/N\cdot 1/P(i))^\beta
Priority exponents α=β=1\alpha=\beta=1

Atari 的 action selection temperature 随训练退火:前 500k steps 为 1,接下来 250k steps 为 0.5,最后 250k steps 为 0.25。这让早期探索更强,后期更贪心。

输入和网络结构

Board games 的输入类似 AlphaZero:Go 和 shogi 使用最近 8 个 board states;chess 增加到最近 100 个 board states,以便正确预测 draw。

Atari 更特殊:

Component Atari detail
Observation input last 32 RGB frames
Resolution 96 x 96
Action history last 32 actions, encoded as bias planes scaled as a/18a/18
No preprocessing no whitening or additional normalization beyond RGB scaled to [0, 1]
Dynamics input hidden state concatenated with spatial action planes
Downsampled resolution 6 x 6 for dynamics

网络架构也沿用 AlphaZero 风格,但做了 Atari 下采样:

Network part Architecture detail
Representation and dynamics AlphaZero-style residual network, 16 residual blocks instead of 20, 3x3 kernels, 256 hidden planes
Prediction function AlphaZero-style policy/value head: one or two conv layers, then fully connected output
Atari representation stem 96x96 input -> stride-2 conv 128 planes -> residual blocks -> stride-2 conv 256 planes -> residual blocks -> average pooling -> 6x6 hidden state
Atari value/reward output scalar targets transformed by invertible h(x)h(x), then represented on support size 601 from -300 to 300

训练时还有两个梯度缩放细节。第一,每个 head 的 loss 按 1/K1/K 缩放,避免 unroll steps 增多导致总梯度变大。第二,在 dynamics function 开始处把梯度缩放 1/21/2,让作用到 dynamics 的总梯度更稳定。hidden state 也被缩放到 [0, 1],和 action input 范围一致。

Reanalyze

MuZero Reanalyze 是为了提高 Atari 小数据设置下的样本效率。它会用最新模型重新对旧 time-steps 跑 MCTS,生成 fresh policy target,并用于 80% 的训练更新;同时用 target network 给 value 提供更稳定的新 n-step bootstrap target。

Reanalyze change Setting
Fresh policy targets re-run MCTS with latest model for 80% of updates
Target network used for stable n-step bootstrapped value
Samples per state 2.0 instead of 0.1
Value target weight 0.25 vs 1.0 for policy/reward
TD steps n = 5 instead of n = 10

这个变体说明 MuZero 的训练数据不是一锤子买卖。旧轨迹里的 observation/action/reward 不变,但 policy/value target 可以随着模型变强被重新标注。

结果与图表

MuZero training evaluation

图源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Figure 2。原论文图意:MuZero 在 chess、shogi、Go 中和 AlphaZero Elo 对比,在 Atari 中展示 57 个游戏的 mean/median human-normalized scores,并与 R2D2 对比。

这张图怎么读。
左三列说明 MuZero 在不知道游戏规则的情况下,用 learned dynamics 接近或超过 AlphaZero 水平;右侧 Atari 说明同一个算法能处理视觉复杂、单智能体、有中间奖励的环境。关键不是某条曲线的瞬时波动,而是统一算法同时覆盖 precision planning 和 visual RL 两类以前分开的场景。

Atari 总表如下,保留原英文列名:

Agent Median Mean Env. Frames Training Time Training Steps
Ape-X 434.1% 1695.6% 22.8B 5 days 8.64M
R2D2 1920.6% 4024.9% 37.5B 5 days 2.16M
MuZero 2041.1% 4999.2% 20.0B 12 hours 1M
IMPALA 191.8% 957.6% 200M
Rainbow 231.1% 200M 10 days
UNREAL 250% 880% 250M
LASER 431% 200M
MuZero Reanalyze 731.1% 2168.9% 200M 12 hours 1M

表源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Table 1。原表分 large data setting 和 small data setting 两组比较,除 MuZero 外其他 agent 使用 model-free RL 技术。

这张表的边界要讲清楚。MuZero 的 large-data Atari 使用 20.0B env frames,不是低数据量设置;MuZero Reanalyze 才是 200M frames 小数据设置。论文主张不是“MuZero 总是样本最省”,而是:在大量数据下达到 Atari SOTA,同时在 200M setting 也显著超过当时的 model-free baseline。

规划、消融和模型边界

MuZero evaluations

图源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Figure 3。原论文图意:A 比较 Go 中 learned model 与 real simulator 的 search scaling;B 展示 Atari 搜索 simulation 数对最终分数的影响;C 比较 MuZero MCTS training 与 Q-learning objective;D 展示 Ms. Pacman 中训练时 simulation 数对学习速度的影响。

这张图怎么读。
Figure 3 是理解 MuZero 的关键消融。A 说明在 Go 中,learned model 的搜索 scaling 可以接近真实 simulator;B 说明 Atari 中增加搜索 simulation 有收益但会 plateau,论文推测和 learned model 在视觉复杂环境中更不准确有关;C 说明在相同框架下,MCTS-based training 明显强于 Q-learning objective;D 说明训练时搜索 simulation 越多,学习越快,但即使 simulation 少于动作数也能学到有效策略。

补充 Figure S3 进一步说明 policy improvement:

MuZero policy improvement details

图源:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model,Figure S3。原论文图意:A/B 展示搜索树实际评估深度分布,红线是训练 unroll depth 5;C/D 展示 Ms. Pacman 和 Go 中 search policy 相比 raw policy network 的改进。

这张图怎么读。
红线提醒一个很有意思的点:训练只 unroll 5 步,但评估时搜索可以更深。Go 中 deeper search 的收益更明显,Atari 中收益较弱。这不是矛盾,而是说明 learned dynamics 在规则清晰的棋类中更适合被深搜索反复调用;在 Atari 这类视觉环境里,模型误差会更早限制规划深度。

为什么它属于世界模型

MuZero 很容易被误读成“只是 AlphaZero 加了一个模型”。更准确地说,它是 value-equivalent world model 的代表:它不学环境真实状态,也不学像素未来,而是学一个抽象 MDP,使得在这个抽象 MDP 上规划得到的 policy/value 对真实环境有用。

这给世界模型研究一个重要分叉:

问题 Dreamer 式回答 MuZero 式回答
state 应该包含什么 足以重建观测、预测 reward/discount、支持 imagination 足以预测 policy/value/reward 并支持 MCTS
future 如何使用 actor/value 在 latent rollout 中学习 MCTS 在 learned hidden states 上搜索
是否需要重建图像 需要,作为 representation learning 信号 不需要
最终证据 真实环境 return / sample efficiency 真实环境 return / search improvement

所以 MuZero 对当前具身智能也有启发:如果目标是控制,不一定要把世界模型训练成逼真视频生成器;也可以训练成“对规划器足够有用”的抽象 dynamics。不过,这条路线要求有 reward、policy/value target 和可搜索动作接口,不像开放视频预训练那样直接吃无标签视频。

证据等级与风险

Claim Evidence Boundary
Learned model can replace perfect simulator in planning Chess/shogi/Go Elo against AlphaZero, Go search scaling 棋类规则清晰、状态完全可观测,不能直接代表真实机器人
Planning-relevant predictions are enough No observation reconstruction; strong Atari/board-game results 隐状态不可解释,失败时难诊断模型学到了什么
MCTS targets are stronger than Q-learning targets in this framework Ms. Pacman MCTS vs Q-learning ablation 单游戏消融,不能证明所有视觉 RL 都如此
More search helps, but model accuracy matters Go scales strongly; Atari plateaus around 100 simulations 深搜索会放大 learned model bias
Reanalyze improves sample efficiency 200M Atari frames: MuZero Reanalyze 731.1% median 需要重新搜索旧数据,计算换样本效率

阅读结论

MuZero 的核心贡献是把“世界模型”从状态/像素预测器改写成规划用的抽象模型。它用 hh 把观测历史转成 root hidden state,用 gg 在假设动作下展开 learned hidden dynamics,用 ff 预测 policy/value,再用 MCTS 生成更强的 policy/value targets 反过来训练模型。整个系统没有 observation reconstruction loss,也不要求 hidden state 有人类可解释语义。

模型训练相关最重要的细节是:训练 unroll K=5K=5 步;每步都有 policy/value/reward loss;board games 使用 800 simulations、batch 2048、Monte Carlo return 到终局;Atari 使用 50 simulations、batch 1024、10-step return、prioritized replay、32 帧 RGB + action history 输入和 support-based value/reward 输出。Reanalyze 进一步把旧轨迹用新模型重新搜索,提升 200M frames 设置下的样本效率。

它的边界也同样清楚。MuZero 证明的是 planning-relevant learned model 可以支撑强搜索和强 RL,不是证明模型学到了真实世界完整动力学。对机器人和开放世界任务来说,如果没有稳定 reward、可搜索动作空间和足够好的 target 生成机制,MuZero 的抽象模型路线不会自动成立。更稳的读法是:MuZero 提供了一种“面向决策而非面向重建”的世界模型范式,和 Dreamer/LingBot 这类 latent/video world model 形成互补。

  • Title: 论文专题讲解:MuZero:只预测对规划有用的世界模型
  • Author: Charles
  • Created at : 2026-05-07 09:00:00
  • Updated at : 2026-05-07 09:00:00
  • Link: https://charles2530.github.io/2026/05/07/ai-files-paper-deep-dives-world-models-muzero/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments