枢纽
数据集DeepMind Control Suite
物理感知
输入模态vision

Dreamer:在「脑内」做白日梦学策略

Danijar Hafner, Timothy Lillicrap, Jimmy Ba, Mohammad Norouzi(University of Toronto / DeepMind / Google Brain)。ICLR 2020 · arXiv:1912.01603。 项目页 · 全开源 · model-based RLworld modelactor-critic in imagination

🧠 一句话心智模型:先用真实数据训一个潜在动力学模型(world model),然后完全在这个"脑内世界"里想象出几千条轨迹,把价值函数的解析梯度沿轨迹反向传播回策略——策略像做梦一样学会行动,不必和真实环境反复交互。这是 "Dream to Control" 名字的由来。

🎯 为什么重要:把 model-based RL 的两难破解了

RL 里有个老问题:数据效率渐近性能通常二选一。model-free(D4PG、SAC)最终性能强但费数据(动辄 10⁸ 步);早期的 model-based 方法(PlaNet 等)数据效率好但天花板低——它们要么用在线规划(慢),要么用无梯度优化策略(近视、不稳定)。

核心矛盾:world model 是个神经网络,理论上可以求解析梯度——但之前没人成功地把这个梯度用起来训练长期策略。原因有二:
短期 horizon 内只看 imagined reward 会让策略近视(horizon 一到就不管了);
② 直接通过模型反传梯度在 long horizon 上数值不稳定("curse of chaos")。

Dreamer 的破局点是:引入一个 value model 来"补偿 horizon 之外的奖励",再用 actor-critic + 重参数化 + 解析梯度反传。这一下把数据效率(继承 PlaNet)和最终性能(超过 D4PG)同时拿到手了。

💡 核心思想:在 latent 空间想象 + 把 value 梯度反传

Dreamer 的训练循环分为三步(论文 Fig.3):① 用真实经验学世界模型;② 在 latent 空间想象未来 H 步轨迹,在轨迹上训 actor 和 critic;③ 把 actor 丢回真实环境收集新数据。

(a) 学世界模型 真实经验数据 → latent dynamics o₁ o₂ o₃ 真实图像 s₁ s₂ s₃ latent state r̂₁ r̂₂ r̂₃ representation + transition + reward 优化 ELBO 或对比损失 (b) 在想象中学习(latent imagination) 从某个真实 s_t 出发,模型想象 H 步 sτ₊₁ sτ₊ₕ aτ₊₁ aτ₊ₕ r̂τ r̂τ₊₁ vτ₊₁ ∂Vλ / ∂φ 反传 Vλ 估计 horizon 内外 reward (c) 真实环境执行 观察 o_t 编码 s_t a_t ~ qφ(a|s) env.step(a) 新经验 → 数据集 真实 s_t 起始想象
图 1:Dreamer 三步循环(对应论文 Fig.3)。(a) 从经验学习世界模型(representation + transition + reward)。(b) 在 latent 空间从真实 s_t 出发想象 H 步,预测 value 并把 ∂Vλ/∂φ 反传到 actor。这是论文的核心贡献。(c) 用学到的 actor 在真实环境执行、收集新数据。

论文最关键的一行(§3):因为 所有环节都是神经网络(latent 动力学、actor、critic、reward head),所以从「想象轨迹末端的价值」一路解析地反向传播到 actor 的参数 φ。这就是「latent imagination + analytic value gradient」。

🛠️ 4 个让 long-horizon 学得动的关键设计

组件做法为什么必要
① World Model(RSSM)representation 模型 $p(s_t\|s_{t-1},a_{t-1},o_t)$、transition 模型 $q(s_t\|s_{t-1},a_{t-1})$、reward 模型 $q(r_t\|s_t)$。用 recurrent state space model(RSSM)做主干,可选像素重建/对比/reward-only 三种监督RSSM 让 latent state 准确预测 45 步(Fig.5),是想象的前提。论文实测像素重建 > 对比 > 仅 reward(Fig.8)
② Value Model 估计 Vλ用 λ-return(Eq.6,平衡 bias/variance)作为 value 监督。$V_\lambda$ 把 horizon 内的实际 reward 和 horizon 外的 value 估计加权融合这是破解"近视"的关键——horizon 之外的 reward 由 value 补偿。Fig.4 显示无 value 的版本对 horizon 长度极敏感,加 value 后稳健得多
③ Action Model + 重参数化actor 输出 tanh-Gaussian,用 reparameterization(Eq.3)让采样可微,$\nabla_\phi \mathbb{E}\sum_\tau V_\lambda(s_\tau)$ 直接反传这是把"value 梯度反传过 dynamics"的工程实现——没有它就无法解析求梯度
④ 完全 off-policy + 想象从 replay buffer 采真实序列 → 学模型 → 在模型里想象成千上万条轨迹并行训 actor模型小、latent 状态低维 → 想象几乎免费。比 PlaNet 的在线规划快得多(每 10⁶ 步 3 小时 vs 11 小时)
🔮 直觉:为什么 "做梦" 比直接在环境里试更高效?
真实环境交互是昂贵的(机器人一次动作要秒级),而且数据只能用一次。而 latent 空间里的想象是廉价的(前向一个 MLP),可以反复从同一条真实经验里想象出几千条不同轨迹。所以同一批真实数据,Dreamer 能榨出多得多的策略梯度信号——这就是它数据效率的根源。论文 §1:"world models can interpolate past experience and offer analytic gradients of multi-step returns."

📊 结果:20 任务平均 823 分,超过 10⁸ 步的 D4PG

维度数字(溯源论文)
任务覆盖DeepMind Control Suite 的 20 个视觉控制任务,图像输入 64×64×3,action 1~12 维,episode 长 1000 步,同一套超参通吃
平均分(5×10⁶ 步)Dreamer 823 · PlaNet 332 · D4PG(10⁸ 步)786 · A3C(10⁸ 步,proprio)
数据效率1/20 的环境步数超过 model-free 最强基线 D4PG 的渐近性能
计算效率每 10⁶ 环境步训练时间 ~3 小时(PlaNet 11 小时;D4PG 到同样性能需 24 小时)。单卡 V100 + 10 CPU
long-horizon 任务Acrobot Swingup、Hopper Hop 等需要长期信用分配的任务,无 value 版直接失败,加 value 后解决(Fig.7)
对 horizon 鲁棒Fig.4 显示 Dreamer 在 horizon=5 到 50 都稳定;无 value 版和无 actor 版(PlaNet)对 horizon 高度敏感
表征学习对比Fig.8:像素重建 > 对比估计 > 仅 reward。未来更好的表征模型会直接转译为 Dreamer 性能提升
泛化性附录 C 验证可用于 Atari(离散动作)和 DeepMind Lab(早终止),同一套机制
关键洞察:Fig.6 是 Dreamer 最有力的图——5×10⁶ 步的数据效率达到 PlaNet 水准,最终性能又超过 model-free SOTA。这是当时罕见的"鱼与熊掌兼得"。它揭示了:model-based 的瓶颈不是模型本身,而是怎么把模型转成策略——Dreamer 用"value 反传"给出了一个可工程化的答案。

🌐 在领域中的位置

World Models (Ha & Schmidhuber 2018) PlaNet(latent 在线规划) Dreamer(想象 + value 反传)⭐ DreamerV2(discrete latent, Atari) DreamerV3(fixed 超参,Atari + Minecraft + DMC) TD-MPC2(implicit 路线 scaling)

Dreamer 是 latent imagination 路线的奠基之作。它把"在脑内想象"从一个比喻变成了一个可优化的数学对象——通过神经网络模型反传 value 梯度。这条路线之后被作者本人持续进化:DreamerV2(2021)把 latent 离散化,第一次在 Atari 55 个游戏上达到人类水平;DreamerV3(2023)用一套固定超参解决 Atari + Minecraft + DMC + Crafter。TD-MPC2(2024)则走 implicit(不重建图像)路线,与 Dreamer 形成 model-based RL 的两大平行进化分支。

❓ 常见误区

Dreamer 是 model-based 还是 model-free?

model-based。它显式学了一个 world model(latent dynamics)。但它用 model-free actor-critic 的方式(policy gradient + value 回归)来训练策略——只不过整个 actor-critic 都在想象的轨迹上跑。论文 §3 Comparison to actor critic 详细对比了和 DDPG/SAC 的异同。

"想象"真的可靠吗?模型一旦错,策略不就跟着错?

这正是 Dreamer 设计 value model 的原因——Vλ 平滑了 horizon 之外的估计,让策略对 horizon 长度鲁棒(Fig.4)。后续 DreamerV3 进一步通过离散化 latent、symlog 归一化等手段让模型更稳。但"模型偏差"始终是 model-based 的根本挑战。

为什么必须用 RSSM 而不是普通 RNN 或 VAE?

RSSM(Hafner 2018 PlaNet 提出)同时建模了 stochastic 和 deterministic 路径,能做长期视频预测(Fig.5 显示 45 步仍清晰),这是想象上千条轨迹的前提。普通 VAE 缺少转移模型,普通 RNN 又缺随机性。

它和 TD-MPC2 有什么本质区别?

两条平行路线:① Dreamer = reconstruction-based world model(解码图像)+ actor-critic 反传;② TD-MPC = implicit world model(不解码)+ MPC 在线规划。Dreamer 想象时生成完整分布,TD-MPC2 直接规划动作序列。两者都是 latent,但怎么用 latent 决策完全不同。

解析梯度反传过 long horizon 不会梯度爆炸吗?

确实有过这个担忧("curse of chaos")。Dreamer 通过 ① 想象 horizon 较短(H≈5~50)+ value 补偿 long horizon;② 用 ELBO/KL 正则的稳定世界模型;③ 重参数化让梯度计算稳定可微——三者合起来避开了这个陷阱,实证上稳定训练。