VIP:用「强化学习自己」给机器人预训练视觉表示和奖励
🎯 为什么重要:奖励工程是机器人学习的「真·最后一公里」
2022 年前后,「在 ImageNet/Ego4D 上预训练一个 ResNet,再冻结当机器人的视觉骨干」已经成了套路(R3M、MoCo、CLIP 都是这条路)。但所有这些工作都有一个没说出口的假设:
VIP 抛出的问题非常激进:能不能完全不碰机器人数据,从纯人类视频里学出一个「通用的视觉 reward 函数」?答案是:可以,只要你换一个目标函数。
💡 核心思想:把人类视频当离线 RL,解它的「对偶」绕开动作
人类视频有图像帧但没有动作标签——直接做 offline RL 是死的。VIP 的关键洞察是:对偶问题里动作消失了。
标准时间对比学习(TCN):让相邻帧靠近、远处帧拉开。结果是 embedding 距离曲线充满局部极小。
VIP 反过来:让起点和终点在 embedding 上靠近(因为它们都是「同一任务的边界」),中间帧通过递归 TD 一致性自动按时间远近排开。结果是 embedding 距离随时间单调光滑下降——这正是「reward 应该平滑」所需要的性质。论文 Fig.2 在 2D toy 上漂亮地展示了这一点。
🛠️ 算法实现:不到 10 行 PyTorch
| 组件 | 选择 | 理由 |
|---|---|---|
| 视觉骨干 | ResNet-50 | 与 R3M/MoCo/ImageNet 全部对齐,公平比较 |
| 训练数据 | Ego4D 子集(人类第一视角视频) | 与 R3M 完全一致;覆盖全球多样任务 |
| 采样单元 | 从每个视频随机截取子轨迹 $(o_{i_t},...,o_{i_k},o_{i_{k+1}},...,o_{i_T})$ | 任何子轨迹也是合法视频序列;末帧当 g(goal/anchor),首帧当 o₀(正样本/初始),中间当负样本 |
| V* 形式 | 负 L2 距离 $-\|\phi(o)-\phi(g)\|^2$ | 省掉一个 value 网络;Eq.6 直接对 φ 求梯度 |
| 奖励(下游用) | $R(o_t,o_{t+1};\phi,g) = (1-\gamma)S_\phi(o_{t+1};g) + (\gamma S_\phi(o_{t+1};g) - S_\phi(o_t;g))$ | 第一项是 raw 距离,第二项是 potential-based shaping,保证最优策略不变但加速学习 |
| 超参数 | batch size / optimizer / lr 全部复刻 R3M | 隔离变量:唯一区别就是「目标函数」 |
App. D.3 给出 <10 行 PyTorch 实现。
📊 关键结果(PDF 溯源)
1. 仿真:FrankaKitchen(36 个视觉操作任务 = 12 子任务 × 3 视角)
| 设定 | VIP | R3M(同数据) | ImageNet ResNet | CLIP |
|---|---|---|---|---|
| MPPI Easy(默认 32 轨迹) | 显著最优 | 次之 | 更差 | 更差 |
| MPPI Hard(唯一非平凡进展) | 唯一能学 | ≈ 0 | ≈ 0 | ≈ 0 |
| MPPI + 给更强优化器(更多轨迹) | 升到 ~44% | 不升反降(reward hacking) | 降 | 降 |
| Online RL(NPG,aggregate) | ~40% | 次之 | 差 | 差 |
| VIP (Sparse)(用真稀密 reward + VIP 表示) | ≈ 0 | 证明:稠密 reward 必不可少,光好表示不够 | ||
2. 真机:4 个桌面操作任务,每个 ~20 条示教(few-shot offline RL)
| 任务 | VIP-RWR | VIP-BC | R3M-RWR | R3M-BC | Scratch-BC |
|---|---|---|---|---|---|
| CloseDrawer | 100 ± 0 | 50 ± 50 | 80 ± 40 | 10 ± 30 | 30 ± 46 |
| PushBottle | 90 ± 30 | 50 ± 50 | 70 ± 46 | 50 ± 50 | 40 ± 48 |
| PlaceMelon | 60 ± 48 | 10 ± 30 | 0 ± 0 | 0 ± 0 | 0 ± 0 |
| FoldTowel | 90 ± 30 | 20 ± 40 | 0 ± 0 | 0 ± 0 | 0 ± 0 |
3. 表示质量:embedding 距离的「平滑性」
| 衡量 | VIP | 对比基线 |
|---|---|---|
| 距离曲线「凸起」数量 | 最少 | R3M / CLIP / ResNet 显著更多 |
| 奖励直方图第一桶(小幅正奖励) | 比 R3M 多 ~20% | 极端奖励 bin 显著更少 |
| 与人工稠密 reward 的相关系数 | 最高 R² = 0.95(8/12 任务至少一个视角) | 其他方法相关性低或负 |
🌐 在领域中的位置
VIP 是「视觉基础模型用于机器人」这条线上的关键转折点:第一次把「reward 学习」纳入预训练目标,而不只是「表示学习」。它对后续的 Voltron、MVP,乃至 VLA 时代的 RT-2、OpenVLA 都有方法论遗产——「用 RL 本身做预训练」成了一个流派。关联线索:T06 基础模型谱系。
❓ 常见误区
VIP 是个 VLA(视觉-语言-动作)模型吗?
不是。VIP 没有语言、没有动作输出。它只产出一个 ResNet-50 编码器 φ 和一个「用 embedding 距离构造 reward」的配方。下游策略(MPPI / NPG / RWR)才是真正输出动作的。它是「基础模型」前的「基础表示 + 基础 reward」。
人类视频里动作都没了,怎么还算 RL?
这正是 Fenchel 对偶的妙处(§4.1 Prop.4.1)。原问题里策略 π_H 需要 a_H,但对偶问题里只出现 value V——而 value 是关于 (state, goal) 的函数,跟动作解耦。论文在确定性转移假设下严格证明了这个对偶推导。
它的 reward 真的比 CLIP 距离好那么多?
是的。Fig.5 给出最直接的证据:给 MPPI 越来越多轨迹数,VIP 的成功率单调上升到 44%,而 CLIP/R3M/ResNet 都会下降——因为它们的 reward landscape 充满局部极小,优化器越强越能找到「假 reward 高地」(reward hacking)。
20 条示教就能在真机学 FoldTowel,太夸张了吧?
关键在「offline RL + 预训练 reward」组合。20 条示教只用来作为 offline 数据;学什么动作完全由 VIP reward 引导(RWR 用 reward 加权回归)。R3M 在同一设定下 FoldTowel 成功率 0%,说明换一个表示就废——这恰恰证明 VIP reward 的稠密性是关键。但仍要承认:成功率 90±30% 方差很大,离产品级还远。
和后来的 CLIP-RL / VLA 相比,VIP 还有用吗?
它的位置是「轻量、纯视觉、无需语言标注的 reward 来源」。在 VLA 时代,它是「当你的任务没法用语言描述、只能给一张目标图」时的解决方案。今天的 zero-shot reward 研究仍频繁引用它的 embedding-distance reward 套路。