精读:Unified Video Action Model(UVA)
论文题目:Unified Video Action Model
作者:Shuang Li、Yihuai Gao、Dorsa Sadigh、Shuran Song,Stanford。论文提出一个统一建模视频与机器人动作的框架 UVA。
1. 先用一句话理解这篇论文
训练时同时预测未来视频和未来动作,让视频预测帮助模型学到物理动态;执行时只解码动作,不真正生成视频,从而兼顾动作准确率和推理速度。
它试图解决视频世界模型用于机器人控制时的一个核心矛盾:
-
视频生成有助于学习“动作会如何改变环境”;
-
但完整生成视频非常慢;
-
机器人 policy 又必须快速、高频地产生动作。
UVA 的解决方案不是“先生成视频,再从视频反推动作”,而是:
训练时两个 head 都使用;执行 policy 时,直接跳过 Video Diffusion Head。
2. 论文试图解决什么问题?
2.1 Action-only policy 的问题
传统视觉运动策略通常直接学习:
例如 Diffusion Policy 直接根据历史观察预测动作。
优点是简单、快速;但作者认为它存在一个问题:
模型可能学到的是训练数据中“观察到动作”的统计对应关系,而不一定真正理解动作如何改变环境。
例如模型看到机械臂在杯子附近,可能直接输出抓取动作;但它未必建模:
-
抓取后杯子会怎样移动;
-
杯子和夹爪之间的接触关系;
-
当前动作是否会导致未来任务状态更接近目标。
作者认为,增加未来视觉预测监督,可以迫使模型理解更完整的场景动态,并减少对历史动作模式的过拟合。
2.2 Video-first policy 的问题
另一类方法,例如 UniPi,大致采用:
即先生成未来视频,再从生成的视频中恢复动作。
问题有两个。
问题一:慢
机器人动作可能以几十 Hz 输出,而高分辨率视频生成需要大量计算。
问题二:误差传递
如果未来视频生成错了:
也就是说,动作预测质量被视频像素生成质量限制。
PAD 虽然联合训练视频和动作,但动作生成仍然依赖未来图像的生成过程,因此推理速度依然受视频生成影响。UVA 的关键区别是:共享 latent,但分开解码。
3. UVA 的三个核心设计
论文的主要贡献可以拆成三部分。
3.1 Joint Video-Action Latent
视频和动作进入同一个 Transformer,形成联合隐表示:
这个 同时受到两类监督:
以及:
因此,作者希望 同时编码:
-
当前环境中有哪些物体;
-
物体之间的空间关系;
-
机器人过去采取了什么动作;
-
动作对环境造成了什么变化;
-
接下来合理的动作是什么;
-
接下来环境可能变成什么样。
这里的“joint latent”不是简单把图像向量和动作向量拼接后就结束,而是通过 Transformer 对它们进行多层交互,使每个未来时刻的 latent 同时包含视觉与动作信息。
3.2 Decoupled Video-Action Diffusion
共享 latent 之后,UVA 不使用一个统一的大型生成器,而是接两个独立的轻量 diffusion head:
训练时:
policy 推理时只运行:
而不运行:
因此,视频预测在这里更像一种训练期辅助监督:
模型需要具备预测未来视觉结果的能力,但执行控制时不需要真的把这些未来结果渲染出来。
这是整篇论文最重要的思想。
3.3 Masked Training
UVA 会随机屏蔽不同位置的视频或动作信息,再要求模型重建缺失部分。
通过改变输入与输出的 mask,单个模型可以实现:
| 模式 | 已知信息 | 预测信息 |
|---|---|---|
| Policy | 历史观察、历史动作 | 未来动作 |
| Video model | 历史观察 | 未来视频 |
| Forward dynamics | 当前观察、给定未来动作 | 未来观察 |
| Inverse dynamics | 前后观察 | 中间动作 |
| Policy + Planner | 历史信息 | 未来动作与未来视频 |
因此,UVA 并不是简单的“多任务模型”,而是把不同任务看成同一序列中不同变量的条件补全问题:
根据哪些变量被给定、哪些变量被 mask,可以得到不同的条件分布:
这与 masked language modeling 的思路类似:同一个模型通过不同 mask pattern 学会不同方向的推断。
4. 模型输入输出的精确定义
论文设历史 horizon 为 。
历史观察:
对应的历史 action chunks:
模型预测未来观察:
和未来 action chunks:
每个 action chunk 为:
其中:
-
:一个视觉帧间隔内包含的高频动作数量;
-
:单个动作的维度。
例如相机每秒采集 10 帧,但机器人控制频率为 100 Hz,那么两个图像之间可能对应 个动作。
这解决了视频和动作之间的频率不匹配:
论文明确让每个图像对应一个 action chunk,而不是一个单独动作。
5. 图像和动作如何变成 token?
5.1 图像编码
每张图像首先经过预训练 VAE encoder,得到 latent feature map:
然后展平并经过全连接层:
其中:
-
,表示图像 token 数;
-
是 Transformer hidden dimension。
因此一张图片被表示为:
每个 token 大致对应图像 latent 中的一个空间区域。
5.2 动作编码
一个 action chunk:
先重复若干次,使其数量与图像 token 数 对齐,然后经过 FC 映射成:
直观上,相同 action chunk 被广播到图像的不同空间位置。
这么做的目的不是声称每个空间 patch 对应一个独立动作,而是为了让视觉与动作可以在 token 维度上对齐并融合。论文随后对视觉 token、动作 token 和 masked future token 进行通道级拼接,再沿时间维组成 Transformer 序列。
6. Future Observation 的 masked generation
未来图像经过相同的 VAE 编码:
训练时随机 mask 一部分未来图像 token:
Transformer 接收:
$$
X_{\text{input}}
\left[
X_{\text{history}}^O,,
X_{\text{history}}^A,,
\tilde X_{\text{future}}^O
\right]
其中:
训练时模型看到部分未来视觉 token,需要推断其余部分;生成时则可以从全部被 mask 的未来图像开始,逐步填充 token。
6.1 为什么所有帧使用相同的空间 mask?
论文在不同未来帧中屏蔽相同的空间位置。
例如,假设图像被划分为九个 patch:
1 2 3
4 5 6
7 8 9
如果 mask 掉位置 2 和 7,那么所有未来帧都 mask 位置 2 和 7,而不是每帧随机 mask 不同位置。
作者这样做是为了减少跨帧信息泄漏。
否则可能出现:
-
第 帧的左上角被 mask;
-
但第 帧的左上角未被 mask;
-
模型直接利用未来帧未 mask 的同一位置,反推出上一帧内容。
固定空间 mask 可以迫使模型更多依赖历史状态、动作和时序动态,而不是利用相邻未来帧的局部复制。
6.2 为什么视频生成还带有 autoregressive 步骤?
UVA 不是按照帧序列:
逐帧生成。
它更像是按照空间 token 集合分步填充:
同一个空间位置在全部未来帧中同时生成。
因此:
-
时间维可以并行预测;
-
空间 token 集合可以逐步补全;
-
增加生成步骤能够改善细节质量。
实验中,8-step 生成明显优于 1-step 生成。
7. Joint Latent 到底长什么样?
Transformer 输出:
每个未来时刻:
$$
Z_{t+i}
{z_{t+i,1},\ldots,z_{t+i,N}}
其中每个 $z_{t+i,j}$ 对应一个空间位置,但它已经融合了: - 历史视觉; - 历史动作; - 其他未来时刻的信息; - 当前未 mask 的未来视觉 token; - 可选的语言指令。 因此 $z_{t+i,j}$ 不只是纯视觉 latent,它是一个带有动作和时间上下文的视觉空间 latent。 --- ## 7.1 Video head 如何使用 $Z$? Video Diffusion 对每个空间 token 分别预测视频 patch:z_{t+i,j}
\rightarrow
\hat O_{t+i,j}
N\text{ 个 latent tokens}
\rightarrow
N\text{ 个图像 patches}
然后条件化 action diffusion:
因此两个 decoder 的归纳偏置不同:
-
Video head:保留每个 token 的空间局部性;
-
Action head:聚合全部 token,生成全局 action chunk。
这是一种很合理的非对称设计。
8. Diffusion loss
8.1 动作 diffusion
给真实动作加入噪声:
$$
A^{(k)}
\alpha_k A+\sigma_k\epsilon
\epsilon_\theta(A^{(k)}\mid k,Z)
损失为: # $$ \mathcal L_{\text{action}}(Z,A) \mathbb E_{\epsilon,k} \left[ \left| \epsilon- \epsilon_\theta(A^{(k)}\mid k,Z) \right|_2^2 \right]含义是:
给模型一个被噪声破坏的动作序列,让它在联合视频—动作 latent 的条件下恢复干净动作。
8.2 视频 diffusion
对每个视觉 patch 分别加噪:
$$
O_i^{(k)}
\alpha_k O_i+\sigma_k\epsilon_i
视频 loss: # $$ \mathcal L_{\text{video}}(Z,O) \mathbb E_{\epsilon,k} \left[ \frac{1}{N} \sum_{i=1}^{N} \left| \epsilon_i- \epsilon_\phi(O_i^{(k)}\mid k,z_i) \right|_2^2 \right]总损失:
$$
\mathcal L
\sum_{\tau=1}^{h}
\left(
\mathcal L_{\text{action}}^{(\tau)}
+
\mathcal L_{\text{video}}^{(\tau)}
\right)
\text{输入}
\overset{\text{一次}}{\longrightarrow}
\text{VAE + Transformer}
\longrightarrow
Z
A^{(K)}
\rightarrow
A^{(K-1)}
\rightarrow
\cdots
\rightarrow
A^{(0)}
\text{UVA} > \text{UVA-action}
UVA-action 去掉了视频预测监督。 例如: - PushT:$0.45\rightarrow0.98$; - PushT-M:$0.46\rightarrow0.88$; - Libero10:$0.86\rightarrow0.90$。 这支持了论文的主要主张: > 未来视频预测并不只是附加的可视化功能,它确实能提升动作策略。 不过,PushT 和 PushT-M 上提升幅度极大,也值得进一步追问两者是否严格保持了相同容量、训练预算和超参数。 --- ## 10.2 为什么多任务表现尤其好? 论文认为,多任务之间可能共享相似的环境动力学: - 如何接近物体; - 如何产生接触; - 推动方向如何改变物体位置; - 抓取后物体如何随夹爪移动。 Action-only 模型可能把每个任务学成独立映射:O\rightarrow A
(O,A)\rightarrow O’
即共享的 dynamics。 因此在任务目标改变时,模型仍可复用: > 某个动作会如何改变世界。 UVA 在 PushT-M 上比最强 baseline 高约 20 个百分点,在 Libero10 上高约 5 个百分点。 --- # 11. 实验二:视觉扰动鲁棒性 作者修改 PushT 中的视觉条件: - 背景颜色; - 背景干扰物; - 目标颜色。 结果: |模型|Normal|BgColor|BgObject|GoalColor| |---|--:|--:|--:|--:| |DP-C|0.91|0.12|0.21|0.17| |DP-T|0.78|0.22|0.17|0.28| |OpenVLA|0.35|0.17|0.13|0.32| |UniPi|0.42|0.31|**0.36**|0.40| |UVA|**0.98**|**0.35**|0.31|**0.64**| UVA 和 UniPi 这两种带视频生成目标的方法,在视觉扰动下整体优于普通 policy baseline。 作者据此推测,视频监督使模型更关注物体、动作和动态,而不是训练背景的静态像素模式。 不过这个结论需要谨慎: - UVA 使用了 VAE 表征; - 不同 baseline 的视觉 backbone 不完全一致; - 鲁棒性提升未必全部来自“视频预测”; - 也可能来自模型容量、tokenization 或训练目标带来的正则化。 因此更准确的结论是: > 实验说明联合视频预测与更强视觉鲁棒性相关,但还不足以完全证明模型学到了可解释的物理因果结构。 --- # 12. 实验三:长历史输入 Diffusion Policy 的表现会随历史长度增大而明显下降,而 UVA 在历史长度从 1 增大到 16 时基本保持稳定。 作者的解释是: - action-only policy 容易过拟合历史 action pattern; - 历史越长,冗余和偶然相关越多; - 视频预测目标约束模型必须解释状态如何随时间变化; - 因而模型更能利用长时序上下文。 可以理解为,视频 loss 提供了一种时间一致性正则化:Z_t
\text{ 不仅要足以预测 }A_t
Z_t
\text{ 足以解释 }O_{t+1:t+h}
作者在 block-pushing 任务中使用 UVA 做 trajectory evaluation。
具体流程:
- 使用 Diffusion Policy 采样 100 条候选动作轨迹:
- 对每条动作轨迹,使用 UVA 预测未来视频:
$$
\hat O^{(i)}_{t+1:t+H}
f_{\text{UVA}}(O_{\leq t},A^{(i)})
3. 从预测视频中检测方块和目标的位置; 4. 计算奖励: # $$ R^{(i)} -\operatorname{distance} \left( \text{predicted block}, \text{target} \right)- 选择:
- 执行选中轨迹的前 6 步,然后重新规划。
结果:
| 方法 | 平均成功率 |
|---|---|
| DP-C 原始 policy | 0.38 |
| DP-C + UVA dynamics | 0.60 |
| DP-C + ground-truth simulator | 0.75 |
说明 UVA 能作为学习到的 dynamics model,用于筛选已有 policy 产生的动作轨迹。
14.1 这和 World Action Model 的关系
从你最近关注的 WAM 视角看,UVA 已经包含一些 WAM 的雏形:
然后利用预测结果进行动作选择。
但它还不是一个特别完整的闭环 WAM,原因是:
-
候选动作由外部 DP-C 生成;
-
reward 由人工定义的目标距离计算;
-
没有在 latent 中直接完成大规模搜索;
-
没有显式处理模型不确定性;
-
没有在 rollout 失败时自适应修正模型;
-
planning 实验规模较小。
因此更准确地说,UVA 是:
一个能够同时充当 policy 和 visual dynamics model 的统一底座。
而不是一个完整的通用 deliberative agent。
15. 实验六:Inverse Dynamics
Inverse dynamics 定义为:
$$
\hat A_t
f_{\text{inverse}}(O_t,O_{t+1})
(O_t,O_{t+1})
\rightarrow
\hat A_t
\text{大量视频}
\rightarrow
\text{inverse dynamics 伪标注}
\rightarrow
\text{训练 policy / dynamics}
0.93\rightarrow0.97
0.90\rightarrow0.91
有一定提升。 这验证了框架能够吸收 action-free video,但规模还很小,距离“利用互联网视频构建机器人 foundation world model”还有很大差距。 --- # 18. 与几类相关工作的核心区别 ## 18.1 与 Diffusion Policy Diffusion Policy:O_{\leq t}
\rightarrow
A_{t:t+H}
(O_{\leq t},A_{<t})
\rightarrow
Z
\rightarrow
\begin{cases}
A_{t:t+H}\
O_{t+1:t+H}
\end{cases}
O_{\leq t}
\rightarrow
\hat O_{t+1:t+H}
\rightarrow
\hat A_{t:t+H}
O_{\leq t}
\rightarrow
Z
\rightarrow
\hat A_{t:t+H}
Z\rightarrow\hat O_{t+1:t+H}
只在需要视频或 planning 时执行。 所以 UniPi 是串行依赖,UVA 是共享 latent 后并行、解耦解码。 --- ## 18.3 与 PAD PAD 也联合动作预测与视频生成。 但 PAD 中动作预测仍与未来视觉生成过程更紧密耦合;UVA 强调:\text{joint representation}
+
\text{decoupled decoding}
p(O_{t+1}\mid O_t,A_t)
p(O_{\text{future}},A_{\text{future}}
\mid O_{\text{history}},A_{\text{history}})
但两个目标可能存在冲突:
-
视频生成偏好保留背景、纹理和细节;
-
动作预测只需要任务相关状态;
-
高质量像素生成不一定需要最好的控制表征;
-
控制所需的小物体位姿可能在视频 loss 中权重很低。
更深入的工作可以研究:
是协同还是冲突,以及如何进行动态 loss weighting。
20.3 Planning 实验仍然较简单
当前 planning 是:
没有测试:
-
长 horizon error accumulation;
-
多步闭环 uncertainty;
-
接触丰富任务;
-
开放语言目标;
-
model exploitation;
-
OOD action trajectory;
-
预测不确定性与风险规避。
因此,它证明了 UVA 可以作为 forward model,但还没有证明它是强大的通用 planner。
20.4 没有充分利用 action-free video
作者自己也承认,当前没有利用大规模无动作视频;这限制了视觉泛化能力。论文提出未来可在 web-scale 视频上预训练,也可以继续加入声音、力等额外 diffusion heads。
21. 对你做 WAM / causal latent 工作的启发
这篇论文最值得你借鉴的不是单纯增加 video head,而是这个结构:
你可以进一步研究三个问题。
方向一:Action-relevant latent attribution
分析 action diffusion 的输出对不同空间 token 的敏感度:
$$
\operatorname{Importance}(z_i)
\left|
\frac{\partial \hat A}{\partial z_i}
\right|
z_i\leftarrow z_i+\delta
\Delta\hat A
\quad\text{与}\quad
\Delta\hat O_{\text{future}}
可以提取高误差的 latent transition:
存入 memory,在后续相似场景中检索,用于:
-
dynamics correction;
-
action reranking;
-
uncertainty estimation;
-
failure anticipation。
这会把 UVA 类型的 unified model 与你关注的 latent causal memory 联系起来。
22. 最后压缩成一张笔记
核心问题
视频预测有利于 dynamics learning,但视频生成太慢,不能作为实时 policy 的必经步骤。
核心方法
训练
$$
\mathcal L
\mathcal L_{\text{action}}
+
\mathcal L_{\text{video}}
O_{\leq t},A_{<t}
\rightarrow
Z
\rightarrow
A_{t:t+H}
\text{Policy}
,\quad
\text{Video Generation}
,\quad
\text{Forward Dynamics}
,\quad
\text{Inverse Dynamics}
,\quad
\text{Planning}