DreamerV3:一个模型,一套超参,「白日做梦」横扫 150+ 任务
🎯 为什么重要:RL 一直有「调参玄学」的毛病
RL 的痛点很直接:换个任务、换个域,就得重新调超参。做连续控制的去调 Atari、做离散的去做机器人,几乎所有 SOTA 都是「针对特定域精调的专用算法」。这意味着把 RL 落到新问题上,需要大量专家经验和算力去做 hyperparameter sweep。
DreamerV3 给出的答案不是「更大的网络」,而是一套「信号归一化 + 损失平衡 + 分布变换」的工程组合拳,让同一个算法可以无修改地吃掉 8 个差异极大的域。
💡 核心思想:世界模型 + 在脑内训练 actor-critic
Dreamer 的关键词是「imagination」——世界模型预测未来的抽象状态序列,actor 和 critic 就在这条想象出来的轨迹上学习,完全脱离真实环境:
架构上是三个网络:World Model(RSSM 编码器 + 序列模型 + 解码器 + reward/continue 预测头)、Actor、Critic。三者从 replay buffer 同步训练。
🛠️ 让「一套超参」成立的关键工程
DreamerV3 论文真正发力的不是新架构,而是让三大组件对量级不敏感。下面这些技术合起来才能 fixed hyperparameters:
| 技术 | 心智 | 为什么关键 |
|---|---|---|
| ① symlog 变换 | 对大数值取类 log 压缩;网络输出 symexp 还原 | reward / value 跨域差几个数量级(Minecraft 个位数,Atari 上千),压到对数空间后同一个 loss scale 就能 hold 住所有域 |
| ② Categorical 分布表示 | 把 RSSM 的随机状态 $z_t$ 离散成一串 softmax 分类分布(而非高斯) | 避免 KL 散度数值爆炸,梯度更稳;且对多模态未来有表达力 |
| ③ Free bits | 把 dynamics loss / representation loss clip 在 1 nat 下,小于阈值就不再压 | 防止表征塌缩成「容易预测但没信息」的退化解;让 representation loss 在简单/复杂视觉下不用分别调权重 |
| ④ 分布式 Critic | Critic 输出回报分布(categorical),而不是标量值 | 回报本身可能是多峰分布;学分布比学均值稳,且能跨量级 |
| ⑤ μ = 1% uniform mixing | 编码器和动力学预测头的 categorical 分布,混入 1% 均匀分布 | 防止分布变 deterministic 后 KL 爆炸,训得更稳 |
回归一个范围 $[0, 1000]$ 的目标,均方误差会被大值主导,小值学不动;但如果你让网络去预测 $\text{symlog}(y) = \text{sign}(y)\ln(|y|+1)$,数值就被压到接近 $[-7, 7]$,小值大值同一把尺子。再配 symlog 平方损失(论文里命名为 symlog squared loss),梯度也不会因数值过大而爆炸。一个小小的变换,把「跨域 reward 量级」这个老大难直接解决。
📊 结果:8 域 150+ 任务,首个从零拿 Minecraft 钻石
| 域 | 任务数 | 预算 | 结果 |
|---|---|---|---|
| Atari | 57 | 200M 步 | 超越 MuZero、Rainbow、IQN(算力只是其零头) |
| ProcGen | 16 | 50M 步 | 匹敌 tuned expert PPG、超越 Rainbow |
| DMLab | 30 | 100M 步 | 超越 IMPALA、R2D2+(10× 数据) |
| Minecraft | 1 | 100M 步 | 首个无人类数据、无课程,从零采到钻石 |
| Atari100k | 26 | 400K 步 | 超越 IRIS、TWM |
| Proprio Control(CS) | 18 | 500K 步 | 超越 D4PG、DMPO |
| Visual Control(CS) | 20 | 1M 步 | 超越 DrQ-v2、CURL |
| BSuite | 23 | — | 超越 Boot DQN、DQN |
论文还给出一个反直觉的结论:模型越大,所需环境交互越少——从 12M 到 400M 参数,放大世界模型直接换来 sample efficiency。这意味着在 RL 里「scale up」第一次有了可预测的回报。
🌐 在领域中的位置
DreamerV3 是model-based RL 走向「通用算法」的标志性节点。它证明了「学到环境模型 + 在模型里 imagine」这条范式不仅在某个域有效,而是跨域稳健的。后续大量工作(TWM、IRIS、TD-MPC2)都站在它肩上。
❓ 常见误区
DreamerV3 是「无模型(model-free)」还是「有模型(model-based)」?
明确的有模型 RL。它学的是一个世界模型(预测下一状态、reward、是否结束),actor-critic 在这个世界模型上训练。和 model-free 的 PPO / SAC 路线是两条平行路径。
既然在想象里训,世界模型不准怎么办?
论文 Fig. 4 展示了 45 步长期视频预测(DMLab 迷宫 + 四足机器人)——世界模型确实学到了环境的结构。此外 actor 在 imagination 中只展开 $T=16$ 步,加上 critic 学回报分布来吸收 horizon 之外的不确定性,短展开 + 分布 critic 把「模型误差累积」按住了。
「固定超参」真的一个数都不改吗?
对——同一套超参(包括 $\beta_{\text{pred}}=1, \beta_{\text{dyn}}=1, \beta_{\text{rep}}=0.1$,$\gamma=0.997$,$T=16$,free bits=1 nat 等)原样吃下 8 个域。这是论文最大的工程贡献:让 normalization / balancing / transformations 三招组合,使得超参对域不敏感。