DINO-WM
translate by GPT

DINO-WM:我的世界模型入门笔记

从预训练视觉特征到动作规划,尽量不借助数学公式,读懂 DINO-WM 的思路与方法。

这篇paper算是我学习世界模型的起点了,ok 开干!

(先叠个甲,很多内容是读到了就随性写下,正确性不做担保。本文的目的是尽量不涉及数学公式的前提下,把dino-wm的思路和方法讲清楚)

DINO-WM: World Models on Pre-trained Visual Features enable Zero-shot Planning, ICML 2025

世界模型应该做到什么

作者开头就写出了,他们认为一个真正的世界模型应该是什么样子:

  1. 能够基于离线预收集的轨迹进行训练(感觉是最基础的,不必多说)
  2. 支持测试时的行为优化(在线优化)
  3. 促进任务无关的推理(泛化性)

作者为了满足以上要求,提出了一种无需重建视觉世界即可建模视觉动态的新方法(好绕啊)。

把三条要求拆开看

我们来一条条拆开说明:

首先是第一条"1) 能够基于离线预收集的轨迹进行训练",作者文章中说是利用dinov2预训练的空间Patch特征,使其能够通过预测未来Patch特征从离线行为轨迹中学习。(把dinov2看作一个预训练的视觉编码器)

接着是第二条"2) 支持测试时的行为优化",文章中说测试期间使用模型预测控制与推理时最优化来达成目标,而无需任何额外信息。感觉就是在测试时固定世界模型参数,只优化动作序列。

最后是第三条"3)促进任务无关的推理"作者在6个环境上进行了zero-shot评估,涵盖非常全面,完全可以支撑这个论点。

DINO-WM 的建模流程

作者接着在文章中定义了什么是世界模型,简单来说世界模型就是:

现在看到什么 + 做什么动作 → 接下来世界会变成什么样

文章中dino-wm具体是这样做的:

  1. 图片送入dinov2变为潜在特征(Observation model)
  2. 将历史特征和动作相结合预测未来的特征(Transition model)
  3. 把未来特征变为RGB 图片(Decoder model),这一步用于可视化,不是必须的。
DINO-WM 方法图:视觉编码器、动作条件转移模型与可选解码器。
DINO-WM 方法图 · 点击查看大图 · 图片来自 DINO-WM.

上面是文章的方法图,左边和右边是dinov2为模型提供任务无关的状态表征。中间是Transition model使用vit架构,采用帧级注意力(当前帧只能读取过去帧,整帧所有 Patch 一起预测。其实llm也是这样,预测token时能看到之前的所有token)

动作经过MLP编码后拼接到每个Patch特征中,使模型能够学习动作如何改变环境。训练是直接最小化预测dinov2特征与真实下一帧dinov2特征的MSE损失。

如何搜索动作序列

在动作方面,作者使用MPC(Model Predictive Control模型预测控制)结合CEM(Cross-Entropy Method交叉熵方法)反复搜索动作序列,使预测最终状态尽可能接近目标状态。坦白来讲,交叉熵我是知道的,mpc让我想起来了去年火过一段时间的大模型mpc接口...

不扯了,这部分我感觉是一种最优搜索方法,有点抽象。在附录中作者说CEM是从分布中采样一组动作序列,初始分布设置为高斯分布,看起来是一种随机采样方法。

然后对每个采样的动作序列预测潜在空间中的结果轨迹,选择成本最低的前几个动作序列,并相应地更新分布的均值和协方差。一直这样更新循环直到满足条件或者达到迭代次数的阈值。