Dreamer:在「脑内」做白日梦学策略
🎯 为什么重要:把 model-based RL 的两难破解了
RL 里有个老问题:数据效率和渐近性能通常二选一。model-free(D4PG、SAC)最终性能强但费数据(动辄 10⁸ 步);早期的 model-based 方法(PlaNet 等)数据效率好但天花板低——它们要么用在线规划(慢),要么用无梯度优化策略(近视、不稳定)。
① 短期 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 丢回真实环境收集新数据。
论文最关键的一行(§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(早终止),同一套机制 |
🌐 在领域中的位置
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 正则的稳定世界模型;③ 重参数化让梯度计算稳定可微——三者合起来避开了这个陷阱,实证上稳定训练。