概念辨析 · 机器人的表征学习(Visual / Motor / Cross-embodiment)
VLA 能 work 的关键不只是「大模型」,还有好的视觉/动作表征。这条辨析梳理机器人表征学习的几条路线,是理解 VLA/IL 为什么 work 的基础。
本页内容
基础解释
一句话直觉
把图像压成几个有意义的数,机器人好决策。好比把菜尝成咸淡酸甜几个指标,比记整盘菜样子省事。
是什么·为什么
机器人眼里一幅图是十几万个像素数字。直接学动作太难。表征学习先把像素压成几十上百个有意义的数。比如"物体在哪、能不能抓、朝哪"。上层策略在这些数上决策。
为什么重要:表征决定策略的上限。同样的数据和算法,换个编码器,成功率可能差十几个点。
核心大白话:换种"看法"让问题变简单。从"看整盘菜"换成"看咸淡酸甜"。
主流路线分三种。
路线一·借通用模型:直接拿预训练的视觉编码器当眼睛。免费通用。但它为分类优化,对接触点、姿态不敏感。
路线二·机器人专用:用机器人或人类操作视频训一个专用编码器。它盯着接触点、姿态、深度这些机器人关心的细节。
路线三·视觉动作联合学:不分别学表征和策略。把两者塞进同一个网络一起学。这是当前主流。
一句话类比:表征之于机器人,像菜评之于食客。菜评把整盘菜压成几个维度,食客好做判断。
为什么表征是隐藏的关键
机器人 policy 的输入是图像(+语言)。图像是高维(224×224×3 = 15 万维),直接学 policy 极难。表征学习先把图像压成低维 meaningful feature(如 512 维),policy 在这个 feature 上学。
经典发现(R3M/VC-1/Voltron 2022-2023):用「为机器人任务预训练的视觉编码器」比用通用 ImageNet 编码器显著更好。表征决定了 policy 的上限。
三条表征学习路线
下图 SVG 把「视觉特征从哪儿来」分成 ①借通用视频(VIP/R3M/VC-1)②域随机化(OpenAI Hand/ANYmal-C/RMA)③world model(DreamerV3/PlaNet/UNPi)三条更广的策略线(含 sim2real 与 model-based RL 视角)。下文则把镜头收到「为机器人学的视觉/动作表征」这一更窄的轴,拆成通用 CV 表征 → 机器人专用视觉表征 → 动作感知表征 三条紧密相关的路线,与 SVG 互补。
路线 1 · 借用通用视觉表征(ImageNet/CLIP/DINO)
最简单:直接用 ImageNet 分类、CLIP、DINO/DINOv2 的预训练编码器。
优点:免费、通用。缺点:这些编码器为「分类/检测」优化,对「机器人关心的细节」(物体姿态、接触点、深度)不敏感。比如 DINO 对纹理敏感,但机器人要的是几何。
OpenVLA 的 trick:用 SigLIP(语义)+ DINOv2(空间)双流融合,弥补单编码器的不足。这是当前 VLA 的主流。
路线 2 · 机器人专用视觉预训练(R3M / VC-1 / Voltron)
2022-2023 年一批工作专门为机器人学视觉编码器:
- R3M(Nair 2022, arxiv:2203.12601,站内深笔记待补):用「人类第一人称视频(Ego4D / EPIC-Kitchens / Something-Something)+ 时间对比学习」学表征。想法:同一视频相近帧的 embedding 应相近,远的应远。架构 backbone 用 ResNet-50 + 投影头(2-3 层 MLP 到 128 维)。三路损失:时间对比(同一视频近帧为正、远帧为负)、视频-语言对齐(视频帧与其 narration 文本为正,CLIP 式)、稀疏化(L1 稀疏正则)。
- VC-1(Majumdar 2023, arxiv:2303.18240,站内深笔记待补):用「ImageNet + Ego4D + 机器人数据 + 自监督 MAE」多源混合预训练。架构是ViT-Large + MAE decoder(mask 75%,重建 masked patch 像素),finetune 阶段加 MoCo-v3 对比损失。核心贡献是系统性 benchmark:定义 17 个下游任务(CortexBench:DeepMind Control、Franka Kitchen、Cabinet/Drawer 等,覆盖 locomotion/navigation/manipulation 三大类),横评 ImageNet / CLIP / DINO / TimeSformer / MVP / Voltron / R3M,发现「单域预训练(自监督 + 多数据源混合)」最好。
- Voltron(Karamcheti 2023, arxiv:2302.12766,站内深笔记待补):用「语言-视频对齐」学表征。架构是ViT + BERT 系语言 encoder 双塔,预训练任务有三种:(a) 帧-语言对比(CLIP 式);(b) language-conditioned masked patch reconstruction;(c) visually-grounded captioning(生成帧描述)。强调「语言引导的视觉表征」比纯视觉对比更强。
架构差异总结:
| 工作 | Backbone | 预训练任务 | 数据源 | 投影/对齐空间 |
|---|---|---|---|---|
| R3M | ResNet-50 | 时间对比 + 视频-语言对齐 | Ego4D / EPIC-Kitchens / Something-Something | 128-d 对比 |
| VC-1 | ViT-Large + MAE | MAE 重建 + MoCo-v3 对比 | ImageNet + Ego4D + 机器人数据 | 768-d 重建 + 256-d 对比 |
| Voltron | ViT + BERT 双塔 | 帧语言对比 + masked recon + caption | Ego4D + HowTo100M + 描述视频 | 512-d 共享语义空间 |
核心 insight:通用视觉编码器(ImageNet)对机器人任务次优,用机器人相关数据预训练能显著提升。但后续发现:当 VLA 模型足够大(如 OpenVLA 7B),专用预训练表征的优势变小——大 VLM 自己会学表征。即 R3M/VC-1 这类专用表征对小 policy(< 100M)提升明显,在大 VLA(7B+)上提升收窄(具体数字因下游任务/基准而异,待核)。一句话:表征的价值随下游模型规模递减。
路线 3 · 动作感知表征(Motor Representation / Policy-aware)
更进一步:不只学视觉,学「视觉-动作联合表征」。
- VIP(Ma 2022, arxiv:2210.00030,站内深笔记待补):用「时间对比 + value-implicit 预训练」学既能当视觉表征、又能当 dense visual reward 的统一嵌入(LIV 的前身)
- MVP / Masked Visual Pre-training for Motor Control(Xiao 2022, arxiv:2203.06173):MAE 式预训练(mask 75% patch 重建),然后接 policy head,是 VC-1 的方法学前身
- π0 的 action expert:把 action token 和 image token 放进同一个 transformer,让视觉和动作联合学。这是「表征 + policy 端到端」的极端。
趋势:从「先学表征再训 policy」走向「表征和 policy 端到端一起训」。VLA 就是这个趋势的产物。
对比学习的数学(核心工具)
上述方法的核心数学是对比学习(contrastive learning)。统一形式 InfoNCE(Oord 2018):
给定 anchor $x$、正样本 $x^+$(语义相近)、负样本集 $\{x^-_i\}_{i=1}^{N}$,学 encoder $f$ 使:
$$\mathcal{L}_{\text{InfoNCE}} = -\log \frac{\exp(\text{sim}(f(x), f(x^+))/\tau)}{\exp(\text{sim}(f(x), f(x^+))/\tau) + \sum_{i=1}^{N} \exp(\text{sim}(f(x), f(x^-_i))/\tau)}$$
其中 $\text{sim}(u,v) = u^\top v / (\|u\|\|v\|)$ 是余弦相似度,$\tau$ 是温度(典型 0.07-0.5),$N$ 是负样本数(典型 256-65536,越大越接近真实分布)。
InfoNCE 的概率论推导
InfoNCE 的目标是最大化 anchor 与正样本的互信息的下界。设候选集 $S = \{x^+, x^-_1, \dots, x^-_N\}$,正样本位置 $c \in \{1, \dots, N+1\}$ 均匀分布。一个识别模型 $p(c=i \mid x, S)$ 用 softmax 参数化:
$$p(c=i \mid x, S) = \frac{\exp(\text{sim}(f(x), f(x_i))/\tau)}{\sum_{j=1}^{N+1} \exp(\text{sim}(f(x), f(x_j))/\tau)}$$
最大化 $\mathbb{E}[\log p(c \mid x, S)]$ 即最小化 $\mathcal{L}_{\text{InfoNCE}}$。由互信息不等式:
$$I(x; x^+) \ge \log(N+1) - \mathcal{L}_{\text{InfoNCE}}$$
直觉:负样本越多,模型越要真正区分正负,而不是记住表面统计;$\log(N+1)$ 是「盲猜的上界」,loss 越小则真实互信息越大。当 $N \to \infty$ 时 $\mathcal{L}_{\text{InfoNCE}} \to -I(x;x^+)$(精确互信息估计)。
梯度形式
对正样本编码 $z^+ = f(x^+)$ 求 loss 梯度,记 $w_i = \exp(\text{sim}(z, z_i)/\tau)$:
$$\frac{\partial \mathcal{L}}{\partial z^+} \propto \frac{1}{\tau}\left(\sum_{j} p_j \cdot z_j - z^+\right)$$
其中 $p_j = w_j / \sum_k w_k$ 是 softmax 概率。直观:拉 $z^+$ 远离所有负样本的加权平均、推向 $z$(即 anchor),这就是「对比」的几何意义。
负样本采样策略(决定表征质量的关键)
不同方法的核心区别在「正负样本怎么定义」:
| 方法 | 正样本 $x^+$ | 负样本 $\{x^-\}$ | 假负样本风险 |
|---|---|---|---|
| SimCLR / MoCo | 同图增广(crop/color) | batch 内其他图 | 低(语义远) |
| R3M | 同视频近帧($\Delta t$ 小) | 同视频远帧 + 其他视频帧 | 中(同任务不同视角可能语义相近) |
| VIP | 同视频近帧(同 R3M,加 value-implicit) | 同视频远帧 + 其他视频帧 | 中 |
| CLIP | 匹配图文对 | batch 内不匹配图文 | 低 |
| Voltron | 语言-视频匹配对 | batch 内其他视频/语言 | 中 |
假负样本(false negative)问题:当负样本里混入了语义相近的样本(如 R3M 把「抓杯子」视频的另一段也当负样本),对比损失会强行推开语义相近的表征,损害下游任务。Mitigation:① 大 batch + 难负样本挖掘(只挑最难的负样本);② 聚类后排除同簇负样本(ProPos、NNCLR);③ 跨视频采样时只用不同语义类别的视频。
R3M/VIP 的机器人专用 insight:它们不用「图像增广」(crop/color 这些对机器人没用),改用时间增广(同一任务的时间相邻帧是天然的「语义相近」),更适合机器人「同一动作的多视角」分布。
跨本体表征(cross-embodiment)
更深层的问题:不同机器人(机械臂、人形、四足)的视觉表征能共享吗?
数学定义
设本体集合 $\mathcal{E} = \{e_1, \dots, e_K\}$(如 Franka、Sawyer、H1、G1、Spot……),每个本体 $e \in \mathcal{E}$ 有自己的观测空间 $\mathcal{O}_e$ 和动作空间 $\mathcal{A}_e$。跨本体共享表征指存在一个映射 $\phi: \mathcal{O} \to \mathbb{R}^d$($\mathcal{O} = \bigcup_e \mathcal{O}_e$,对所有本体的视觉观测统一编码),使得对任何本体 $e$,下游任务都可写为:
$$a = g_e(\phi(o), \ell)$$
其中 $g_e: \mathbb{R}^d \times \mathcal{L} \to \mathcal{A}_e$ 是本体特化的 policy head,$\ell$ 是语言指令。表征 $\phi$ 跨本体不变,只有 $g_e$ 随本体变。
OpenX-Embodiment 的发现:能。22 种本体共用一个 $\phi$(统一的 ViT 视觉 backbone;后续 VLA 如 OpenVLA/π0 在此基础上换用 PaliGemma / SigLIP),只在 action head(最后几层 + 本体特化的归一化/padding)做本体分支($g_e$ 各不同)。这验证了「视觉-语义」跨本体是可学的,是 RT-X / OpenVLA / π0 的理论基础。
但物理跨本体(不同 morphology 的运动学)仍难——22 种本体的 URDF/动力学不同,VLA 学到的是「语义-视觉」跨本体(同一杯子的视觉表征跨本体一致),不是「运动学」跨本体(机械臂 vs 人形手抓杯子的轨迹完全不同,需要 $g_e$ 分别学)。
形式化:跨本体泛化误差 $\Delta(e, e') = \|g_e \circ \phi - g_{e'} \circ \phi\|_{\text{task}}$。OpenX 的结论是 $\phi$ 跨本体可共享(视觉对齐好),但 $g_e$ 不可——所以 RT-X 走「混合本体数据训一个 $\phi$ + 每个本体的 action token 归一化分支」,而非「一个 policy 通吃」(⚠️ RT-X 实际是单 policy + per-embodiment action 归一化,并非字面意义的多个 head,此处的 $g_e$ 是抽象记法)。
LAPA:latent action 预训练的跨本体表征
LAPA(Ye 2024, arxiv:2410.11758,站内深笔记待补)是另一条跨本体路线:用 latent action 作为跨本体的桥梁。
核心想法:不同本体动作空间 $\mathcal{A}_e$ 不同,但「意图」是跨本体一致的。把每个本体的动作编码成统一 latent $z$:
$$z = E_e(a, o) \in \mathbb{R}^{d_z}, \quad \hat{a} = D_e(z, o) \in \mathcal{A}_e$$
其中 $E_e, D_e$ 是本体特化的 latent action encoder/decoder(VAE 形式),$z$ 维度固定(如 $d_z=16$)。预训练阶段先在大规模跨本体视频(EgoExo4D、OpenX)上学「预测下一帧的 latent action」:
$$\mathcal{L}_{\text{LAPA}} = \|\hat{z}_{t+1} - E_e(a_{t+1}, o_{t+1})\|^2 + \beta \, D_{\mathrm{KL}}(q(z|o,a) \| \mathcal{N}(0, I))$$
第一项是 latent 重构,第二项 KL 把 latent 压向标准正态(信息瓶颈,防止 latent 退化成直接复制 $a$)。预训练后,policy 直接在 latent 空间决策:$\pi(z \mid o, \ell)$,再用 $D_e$ 解码到具体本体动作。
与 R3M/VC-1 的区别:R3M/VC-1 只学视觉表征 $\phi(o)$,不管 action;LAPA 学视觉-动作联合表征,让 latent $z$ 同时承载「图像里有什么」和「下一步怎么动」。在跨本体泛化上比纯视觉表征更鲁棒(因为 $z$ 已经隐式编码了「意图」),是 GR-2、LAWM 等 2025 后续 VLA/世界模型采用的预训练范式(π0.5、GR00T N1 是否在内部使用 latent action 预训练待核)。
何时用什么(实用指南)
| 场景 | 推荐表征 |
|---|---|
| 小 policy + 少数据 | R3M/VC-1 预训练表征(提升明显) |
| 大 VLA(7B+) | 直接用 VLM 自带表征(如 PaliGemma/Gemma),不需额外预训练 |
| 需要空间精度(操作) | SigLIP + DINOv2 双流(OpenVLA 式) |
| 需要语言理解 | CLIP/SigLIP(语言对齐) |
| 跨本体 | OpenX 预训练的 VLA(自动学跨本体表征) |
| 灵巧手/触觉 | 还要加触觉编码器(DIGIT/GelSight 的表征学习,目前不成熟) |
与相关线索的关系
- T05 Diffusion Policy:DP 用 1D CNN 编码图像,没用 fancy 表征——因为任务简单
- T06 VLA:OpenVLA 的 SigLIP+DINOv2 双流是表征学习的集大成
- T10 VLA+WBC:分层接口里 latent 也是一种「动作表征」
- T02 数据集:OpenX 跨本体表征的数据基础
关键论文
- [Nair 2022, arxiv:2203.12601] R3M —— 时间对比 + 视频-语言对齐 + L1 稀疏(站内深笔记待补)
- [Majumdar 2023, arxiv:2303.18240] VC-1 —— MAE + MoCo-v3 多源预训练 + CortexBench 17 任务(站内深笔记待补)
- [Karamcheti 2023, arxiv:2302.12766] Voltron —— 语言-视频对齐预训练(站内深笔记待补)
- [Ma 2022, arxiv:2210.00030] VIP —— value-implicit 表征 + reward(站内深笔记待补)
- [Xiao 2022, arxiv:2203.06173] MVP / Masked Visual Pre-training for Motor Control —— MAE 式 motor 预训练(站内深笔记待补)
- [Ye 2024, arxiv:2410.11758] LAPA —— latent action 预训练(站内深笔记待补)
- [Brohan 2023, arxiv:2310.08864] OpenX-Embodiment —— 跨本体表征的数据基础
- [Kim 2024, arxiv:2406.09246] OpenVLA —— SigLIP+DINOv2 双流
复盘:误区、检查点与 FAQ
常见误用
- ❌ 「用 ImageNet 编码器就够了」——对精细操作不够,机器人关心的细节(接触点、姿态)ImageNet 不学
- ❌ 「越大越好的 VLM 自带好表征」——不一定,7B VLA 在某些任务上不如专用小表征 + 小 policy
- ❌ 「表征和 policy 分开学」——端到端(VLA 式)往往更好,因为表征能为 policy 专门优化
- ❌ 「跨本体就是换个 URDF」——视觉/语义跨本体可以,运动学跨本体仍是开放问题
常见误区
"拿通用图像分类器就够了" —— 不一定。通用编码器为分类优化,对物体姿态、接触点不敏感。精细操作任务上明显不够用。
通用表征是起点,机器人专用表征能显著提升精细任务。
"越大越好的视觉模型自带好表征" —— 不一定。某些任务上,小表征配小策略反而更好。表征的价值随下游模型规模递减。
要匹配任务和模型规模,不是一味求大。
"表征和策略分开学就行" —— 端到端一起学往往更好。表征能为策略专门优化。
分离式是历史做法,端到端才是当前主流。
检查点
表征学习在解决什么共同问题?
💡 显示参考答案
- 入门层「是什么·为什么」段直接说明。
三种主流路线分别是什么思路?
💡 显示参考答案
- 相应段落 + 直觉层 类比共同支撑。
"菜评"这个类比里,"把整盘菜压成几个维度"对应表征学习的什么操作?
💡 显示参考答案
- 常见误区或 入门层 关键句直接说明。
为什么通用图像分类器在机器人精细操作上不够用?
💡 显示参考答案
- 入门层 关键句或常见误区直接说明。
假如你只有小数据训一个小策略,会选哪种路线?为什么?
💡 显示参考答案
- 入门层 应用提示。
FAQ
Q1:表征学习和大模型的视觉编码器是什么关系?
大模型自带的视觉编码器就是一种"通用表征"。表征学习研究的是怎么让它更适合下游任务,或专门为机器人训一个。
Q2:跨机器人(机械臂、人形、四足)的视觉表征能共享吗?
视觉语义层可以共享。同一杯子的视觉表征跨本体一致。但运动学层不能共享。不同本体的动作轨迹完全不同。
Q3:端到端视觉-语言-动作模型出来后,表征学习还重要吗?
相关
- 概念:C-action-representations.md(action 的表示)、C-diffusion-flow-matching.md(action 生成)
- 线索:T06-vla-five-stages.md、T02-dataset-infrastructure.md