跳转到内容

Dreamer:在潜空间想象中学习

Dreamer 用循环状态空间模型(RSSM)学习潜在动力学,在想象的轨迹上用 Actor-Critic 学策略。本章讲 RSSM 的确定/随机分量、想象训练的梯度传播、以及 DreamerV3 用固定超参跨领域工作的技术(symlog、KL 平衡、free bits)。

Dreamer (Hafner et al., 2019 起) 的循环分三步:

  1. 学世界模型:从真实经验学习潜在动力学——观测怎么产生、状态怎么转移、奖励怎么给;
  2. 想象:从真实状态出发,在潜空间里 rollout 模型,生成想象轨迹(不与真实环境交互、不重建像素);
  3. 学策略:在想象轨迹上用 Actor-Critic 学策略——critic 回归想象奖励的折扣和,actor 沿 critic 的梯度最大化它。

核心卖点是在潜空间训练比像素空间便宜数个数量级:想象的轨迹只需要隐状态与奖励,不需要渲染观测;actor-critic 的梯度在隐空间里传播,一次反向传播覆盖整条想象轨迹。

循环状态空间模型(RSSM)把隐状态分成两个分量:

ht=f(ht−1,zt−1,at−1),zt∼p(zt∣ht),h_t = f(h_{t-1}, z_{t-1}, a_{t-1}), \qquad z_t \sim p(z_t \mid h_t),

前者是确定性分量(GRU),后者是随机分量。纯确定性的隐模型无法表示环境的随机性(同一状态多结局),纯随机的模型不稳定;确定 + 随机的组合兼顾两者。模型由四组损失训练:

  • 重建损失:从 (ht,zt)(h_t, z_t) 重建观测(与奖励)——重建提供了丰富的表示学习信号,逼隐状态记住预测未来需要的信息;
  • KL 损失:让后验(从观测推断 ztz_t)与前验(从动力学预测 ztz_t)对齐——这是隐状态的"马尔可夫性"来源;
  • 奖励预测:显式预测奖励,供想象训练使用;
  • 继续性预测:预测回合是否终止。

想象训练的梯度传播:想象轨迹上的 actor-critic 与普通 actor-critic 相同(→ Actor-Critic 与 GAE),但轨迹由模型生成——梯度要穿过采样操作,实践用重参数化(reparameterization)让 ztz_t 可微。

Dreamer 的各代改进集中在训练稳定性。DreamerV3 (Hafner et al., 2023) 的目标是零调参:一套固定超参在 150+ 任务(Atari、DMC、机器人、游戏)上全部工作。关键设计:

  • symlog 编码:对价值与奖励用 symlog(x)=sign(x)(log⁡(1+∣x∣))\mathrm{symlog}(x) = \mathrm{sign}(x)(\log(1 + \lvert x \rvert)) 变换,不同任务间奖励尺度差异几个数量级也能统一处理;
  • KL 平衡(KL balancing):把先验向后验靠的速度与后验向前验靠的速度设成不同的学习率组合,避免后验过度追随噪声;
  • free bits:KL 损失设下限,小于阈值时不惩罚——避免模型为了省 KL 而"关掉"随机分量、导致隐状态退化;
  • 两hot 编码等数值细节。

DreamerV3 在 Atari 100k 与多个基准上达到或超过专门调参的方法,是第一个真正零调参的通用 RL 算法之一,也是"世界模型路线"的标志性成果:第一个零样本通过 Minecraft 钻石层级的方法(后由更多算力版本完成)。

与 MuZero 相比(→ MuZero:学习用于规划的模型):Dreamer 学重建(表示信号丰富、通用),MuZero 学价值等价(面向规划、省容量);Dreamer 不用搜索(想象中直接 actor-critic),MuZero 靠 MCTS。与无模型方法相比:Dreamer 的样本效率高出一个数量级,但每步计算量更大(模型训练 + 想象)。

  • 在潜空间训练比像素空间便宜数个数量级
  • 重建损失提供了丰富的表示学习信号
  • DreamerV3 是第一个零调参的通用算法之一