DreamerV3(23年1月)+DreamerV4(25年9月)

25 阅读7分钟

DreamerV3

作者是 Danijar HafnerJurgis PasukonisJimmy Ba 和 Timothy Lillicrap

1. 相关研究

在 DreamerV3 之前,强化学习领域已经涌现了许多优秀的算法,例如:

  • PPO (Proximal Policy Optimization) : 一种被广泛使用的策略梯度算法,以其稳定性和可靠性著称,但通常需要大量的经验数据和参数调整。
  • SAC (Soft Actor-Critic) : 一种适用于连续控制任务的算法,但对超参数敏感,难以在高维输入下保持稳定。
  • MuZero: 通过学习价值预测模型进行规划,在围棋、Atari 等游戏中表现出色,但实现较为复杂,难以复现。
  • Rainbow:结合了多种深度强化学习改进技巧,如Double DQN、Prioritized Replay等,在Atari游戏上取得了不错的成绩,但计算量较大。
  • IMPALA:一种可扩展的分布式强化学习算法,在3D环境的DMLab中表现良好,但数据效率较低。

这些算法在各自擅长的领域表现优异,但都无法像 DreamerV3 一样,在如此广泛的领域内实现通用性。它们通常需要针对特定任务进行微调,并且在新的环境或任务面前,性能可能会大幅下降。

2. 创新点

强化学习领域长期以来被“调参炼金术”所困扰,一个算法在一个领域表现出色,换个环境就可能完全失效。DreamerV3直面了这个问题。通用性!!!

image.png

  • 通用强鲁棒: 全程使用同一套超参数,覆盖连续 / 离散动作、图像 / 向量输入、稠密 / 稀疏奖励、2D/3D 环境、机器人控制、游戏、开放世界等全类型任务。

  • 世界模型驱动

3. 架构

DreamerV3 由三个网络协同训练:

  1. 世界模型(World Model)

    • RSSM(循环状态空间模型) 编码观测为离散隐表示
    • 预测未来状态、奖励、是否终止,并重建观测
    • free bits、KL 平衡、symlog 变换保证跨域稳定
  2. 评论家(Critic)

    • 预测状态回报分布,用指数间隔分箱 + symexp twohot 损失处理跨域数值尺度差异
    • 结合想象轨迹与回放缓冲训练,用 EMA 稳定学习
  3. 演员(Actor)

    • 输出动作策略,用百分位回报归一化固定熵系数,适配稀疏 / 稠密奖励
    • 直接在世界模型生成的想象轨迹中学习,无需在线规划

4. 工程化的技术

4.1 symlog/symexp 变换

用来处理奖励和价值预测的,很多模型在这里都会遇到梯度爆炸或学习停滞的问题。

symlog(x)sign(x)ln(x+1)\text{symlog}(x) \doteq \text{sign}(x) \cdot \ln(|x| + 1)

symexp(x)sign(x)(exp(x)1)\text{symexp}(x) \doteq \text{sign}(x) \cdot \left(\exp(|x|) - 1\right)

symlog:对大数值做对数压缩,同时保留符号;在原点附近(∣x∣≪1)

symexp:symlog 的可逆逆变换,用于把压缩后的值还原回原始尺度。

4.2 百分位回报归一化(percentile return normalization):
  • 稀疏奖励下,大部分回报值很小,只有少数成功样本(如挖到钻石)有极高回报;

  • 用全局标准差归一化时,会把小回报的噪声过度放大,导致训练不稳定、梯度爆炸。

DreamerV3 提出用百分位范围替代全局标准差来缩放回报,只关注中间 90% 的回报分布,避免极端值干扰:

S=EMA(Per(Rλ,95)Per(Rλ,5), 0.99)S = \text{EMA}\big(\text{Per}(R^\lambda, 95) - \text{Per}(R^\lambda, 5),\ 0.99\big)

EMA(⋅,0.99) :对上述范围做指数移动平均(Exponential Moving Average),平滑不同批次间的波动,系数 0.99 表示历史信息权重很高,保证归一化尺度稳定。

4.2 KL 平衡 + free bits:

DreamerV3 的 RSSM 包含先验分布 p(htht1,at1)p(h_t | h_{t-1}, a_{t-1})后验分布 q(htht1,at1,ot)q(h_t | h_{t-1}, a_{t-1}, o_t),训练时会用 KL 散度 KL(qp)KL(q \parallel p) 约束后验贴近先验(避免过拟合当前观测)。

但在不同任务中:

  • 简单任务(如低分辨率 Atari):KL 损失易过小,隐表示“偷懒”(退化),学不到有效信息;
  • 复杂任务(如 Minecraft 视觉输入):KL 损失易过大,导致模型训练崩溃;
  • 直接用固定 KL 目标,无法适配不同视觉复杂度的任务。

KL 平衡(KL Balancing)

核心是动态调整先验 / 后验的权重,让 KL 损失的梯度贡献均衡:

  • 传统做法:KL 损失直接加在总损失中,权重固定;

  • DreamerV3 做法

    1. 计算先验 \rightarrow 后验的 KL 散度 KL(qp)KL(q \parallel p)

    2. 同时计算后验 \rightarrow 先验的 KL 散度 KL(pq)KL(p \parallel q)

    3. 用两者的几何均值替代单一 KL 损失,公式:

      KLbalanced=KL(qp)KL(pq)KL_{balanced} = \sqrt{KL(q \parallel p) \cdot KL(p \parallel q)}

      作用:避免单一方向 KL 散度过大 / 过小,让先验和后验的学习节奏匹配。

Free bits(自由比特) 在 KL 平衡基础上,给 KL 损失设置下限,强制隐表示至少保留一定信息量

DreamerV4

DreamerV3的RSSM虽然高效,但其基于RNN的结构在捕捉长距离依赖和扩展模型容量方面存在瓶颈。Dreamer 4彻底拥抱了现代生成模型的架构:[Transformer],并结合了扩散模型的思想。

image.png

它由一个因果分词器(Causal Tokenizer)和一个交互式动力学模型(Interactive Dynamics)组成,两者都基于Transformer。更关键的是它的训练目标。它没有使用传统的VAE损失或简单的预测损失,而是采用了一种名为“捷径强制(Shortcut Forcing) ”的目标。它允许模型在推理时用极少的采样步数(例如4步)就生成高质量的下一帧,而不是像传统扩散模型那样需要几十上百步。这使得实时交互式生成成为可能!

  1. 训练时强制学跨大步

  2. 推理时每一步都走一个大 shortcut

  3. 4 大步 ≈ 传统扩散几百小步的效果

  4. 隐空间做,比像素空间快太多

最让人震惊的是学习范式的转变。Dreamer 4现在是一个离线(offline) 智能体。它完全从一个固定的数据集(VPT数据集)中学习,而不需要与真实环境进行任何交互。这对于机器人学等现实世界应用来说,意义非凡。在线试错的代太高了。

image.png

左图显示,仅用100小时的带动作标签的视频(总共有2500小时视频),模型学习到的动作条件生成质量就能达到使用全部动作数据时的85%以上。右图甚至展示了模型能将在《我的世界》主世界(Overworld)学到的动作泛化到它从未见过动作标签的下界(Nether)。这意味着世界模型可以从海量的网络视频中学习通用的物理和交互知识,然后用少量带标签的数据进行“嵌入”,使其可控。

Dreamer 4的表现远超之前的所有离线方法,包括OpenAI的VPT。

image.png

总结

特性DreamerV3Dreamer 4演化方向
核心范式在线强化学习离线强化学习从交互学习到模拟学习
世界模型架构循环状态空间模型 (RSSM)高效Transformer可扩展性与容量大幅提升
世界模型目标变分自编码 (VAE)捷径强制 (基于流匹配)更高保真度、更快速的生成
数据利用主要为在线交互数据大规模离线数据集(含无标签视频)数据驱动,降低对昂贵在线交互的依赖
主要贡献证明单一算法的通用性证明离线构建可扩展模拟器的可行性从“解决者”到“世界构建者

参考

【论文解读】DreamerV3:更通用的世界模型 - 知乎

(29 封私信 / 80 条消息) 世界模型 Sim2Real 升级:Dreamer v3 到 v4 - 知乎