VLM/VLA:数据与策略学习
这一页关注的是 VLA 最硬的一层问题:模型不只是“看懂”世界,而是要把视觉和语言最终变成可执行动作。
因此它和普通 VLM 的区别是,错误不只会体现在回答上,还会直接体现在碰撞、抓空、卡住、抖动、超时上。
VLA 学的不是静态答案,而是一条从观测到动作的策略。数据质量决定它见过哪些状态,动作表示决定它能输出什么,闭环反馈决定它出错后能不能修正。
看懂“把蛋打进锅里”还不够。你需要知道锅多热、手离锅多远、什么时候翻面、破了怎么补救。VLA 数据如果只记录成功动作,不记录失败和恢复,模型就很难学会真实操作。
1. 统一建模:带语言条件的部分可观测控制
VLA 常被写成带语言条件的策略:
其中 是当前观测,可包含 RGB、深度、关节状态和力传感器; 是语言指令; 是连续动作,如末端位姿增量、夹爪开合或底盘速度。
若考虑部分可观测环境,可写成 POMDP:
策略实际上只能看到观测历史 ,而不能直接看到真实状态 。
这就是为什么 VLA 常常需要记忆模块,而不是只看单帧图像。
2. 最基础的方法:行为克隆
给定专家示范数据集:
最常见目标是最大化动作似然:
若动作建模为高斯分布:
则最大似然在固定协方差下可转化为均方误差:
一个直观例子:抓起桌上的勺子
若专家轨迹里,末端执行器始终先从上方接近勺柄,再轻轻闭合夹爪,然后抬起,行为克隆就会学到这种“视觉到动作”的直接映射。
但问题在于,只要测试时桌面光照、勺子角度或相机位置稍有变化,模型就可能偏离专家分布,开始出现抓偏或抖动。
3. 为什么纯行为克隆很快会碰到上限
行为克隆的核心问题是 covariate shift。
训练时模型总看到专家分布:
但部署时观测来自模型自己产生的状态分布:
一旦模型在某一步略偏,后续输入就和训练分布越来越不一样,误差会滚雪球式积累。
例子:开抽屉
训练数据里,机械臂总能稳稳对准把手中央。
实际运行时,如果第一步偏了两厘米,第二步看到的把手位置就和训练集不同。之后模型可能为了修正误差来回抖动,最后既抓不住把手,也拉不开抽屉。

图源:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion,Figure 2。原论文图意:展示 Diffusion Policy 如何在视觉观察条件下,通过多步去噪生成未来动作序列,并支持 CNN-based 和 Transformer-based 两类策略结构。
传统行为克隆常把策略看成“观察进来,动作出来”。Diffusion Policy 的图提醒我们,动作分布可能是多峰的:同一个场景里,专家可以从左边绕,也可以从右边绕,直接用均值回归会把两种行为平均成一条不合理轨迹。扩散策略把动作序列当成要去噪的对象,在视觉条件下逐步生成一段未来动作,因此更适合复杂、接触丰富、需要短时一致性的操作任务。
4. 动作表示是成败关键
VLA 训练不只是换个损失函数,更重要的是动作怎么表示。
4.1 绝对动作与相对动作
绝对动作:
相对动作:
通常相对动作更容易学,因为它减轻了不同机器人、不同工作空间原点带来的分布差异。
4.2 笛卡尔空间与关节空间
若直接预测关节角:
模型要自己学复杂的运动学几何。
若预测末端位姿增量,则更符合任务语义,例如“向前推一点”“向下压一点”。
4.3 离散化动作 token
像 RT-1 这类方法会把连续动作离散成 token 序列,让 Transformer 直接做序列建模:
优点是可以借用语言模型训练框架,离散动作 token 能直接接自回归 loss、teacher forcing 和序列并行工具链,图像 token、语言 token 与动作 token 也更容易放进同一序列建模框架。缺点是连续动作被分桶后会引入量化误差,执行轨迹可能出现台阶感或抖动,插接、旋拧、微小力控等精细任务也常需要更高分辨率动作。
5. 为什么动作分块几乎是必选项
机器人实际控制常不是“每帧只吐一个动作”,而是一次输出未来一段动作序列:
这里 是 chunk horizon。这样做能减少高频抖动,让模型学更完整的微技能,也降低视觉噪声对单步控制的敏感性。
例子:开抽屉
若一次预测未来 8 步,前几步可以先把末端执行器移动到可抓取位置,中间几步在对准后闭合夹爪,最后几步保持抓握并沿抽屉打开方向平滑后拉。
这比“每 40ms 重新想一下该不该往前挪 2 毫米”要合理得多。
例子:把杯子放到托盘上
单步策略常出现“靠近时忽快忽慢”的问题。
动作分块后,模型更容易学出“对准托盘中心、下降、松手、抬升离开”这样连续而完整的动作原语。
这更像一个完整动作原语。
6. 视觉输入怎么组织
VLA 训练的难点之一,是观测本身往往比 NLP 和普通 CV 更杂。
常见输入包括手眼相机、场景第三视角、深度图、末端位姿、关节角和力觉 / 触觉。手眼相机适合精细抓取和接触判断,第三视角提供全局布局与障碍物,深度图补充几何距离,末端位姿和关节角描述机器人自身状态,力觉或触觉则感知接触、滑动和阻力,弥补纯视觉盲区。
可以把它们记成:
然后通过不同编码器融合成一个状态表征:
一个生动例子:洗碗机装盘
若只有单个正面 RGB,相机可能根本看不到盘子是否卡进卡槽。
加入侧视角和末端力信号后,模型才能区分盘子是否已经插入、是否被挡在外面,或是否因为边缘刮到金属架而需要轻微调整姿态。很多 VLA 任务失败并不是因为模型不会“理解语言”,而是因为观测不够。
7. 从行为克隆走向更强策略
7.1 序列建模策略
把轨迹看成一个大序列:
然后用 Transformer 自回归建模:
这类方法擅长利用长历史和上下文依赖。
7.2 扩散策略
扩散思想也被用于动作序列建模。
若将未来动作块 当成生成目标,则训练时对动作加噪:
学习去噪器:
好处是对多峰动作分布更友好:同一观测下可以保留多条合理动作模式,而不是被 MSE 平均掉;从左侧、右侧或不同接近角度完成任务时,模型也能生成其中一种可行动作。
例子:叠衣服
对一件软布来说,“从左边抓起”与“从右边抓起”都可能是合理策略。
若只用 MSE 回归,模型容易学出一个折中的、谁也不像的动作。扩散策略则更容易保留多模态解。
7.3 价值学习与离线强化学习
若除了示范数据外还有奖励信号,可以学条件价值函数:
然后令策略偏向高价值动作。
但机器人离线 RL 往往比行为克隆更不稳,因为分布外动作评估很容易出错。
8. 数据难点不在“量少”,而在“异构”
8.1 同一任务有多种风格
有人喜欢先抬高再接近,有人喜欢平移接近;有人抓杯子偏上缘,有人抓杯身中部。
这些都可能成功,但从监督学习看,动作标签存在多峰性。
8.2 坐标系不统一
不同平台的数据可能来自不同机械臂、不同相机外参、不同 gripper 定义。
若不统一,模型学到的不是技能,而是混乱坐标。
8.3 语言粒度差异
同一个任务可能被描述成“打开抽屉”“拉开左侧木抽屉”或“抓住把手后向自己方向拉”。
若指令粒度不统一,模型会在“高层目标”和“低层操作细节”之间来回混淆。
8.4 失败样本很重要
很多机器人数据集只保存成功演示,但实际部署最缺的是失败分布。
如果没有失败样本,模型往往不知道抓偏后要重新观察、松开并微调位置,遮挡时该暂停观察还是移动视角,拉不动抽屉时也难以区分没抓住、方向不对、卡住或需要更大但安全的力。
9. 三个更接近现实的例子
9.1 整理冰箱
任务“把酸奶放到上层架子靠左边”。
模型要同时处理玻璃架反光、前排物品遮挡后排空间、夹爪不能碰倒鸡蛋盒等问题:视觉证据需要更稳,路径规划不能只看目标物,还要看可达通道,动作也必须考虑脆弱物体和安全边界。
这里真正难的是空间关系和安全边界,而不是语言本身。
9.2 折叠毛巾
软体物体观测高度不确定,动作结果对初始抓点极敏感。
如果策略没有显式保留多模态动作分布,就很容易学出“平均动作”,导致抓空或拽皱。
9.3 按电梯按钮
这是个看似简单但极易暴露缺陷的任务:按钮很小,需要高分辨率视觉和精确末端定位;面板布局不同,模型不能只记固定位置;干扰按钮很多,目标识别和点击动作都必须避免邻近误触;误按代价高,执行前最好有二次确认或安全约束。
这类任务强烈依赖高分辨率视觉、精细定位和低延迟闭环控制。
10. 工程上如何提高可迁移性
使用相对动作和统一坐标系
尽可能把不同机器人数据归一到共同表示。
引入多视角和状态传感器
只靠单视角 RGB,很多接触任务很难稳。
做动作 chunk 和闭环重规划
不要让模型每帧都重新发散式思考,也不要让它一次承诺过长轨迹。
保留失败与恢复示范
真实机器人不是只会一次成功,而是要会纠错。
11. 总结
VLA 学习的核心矛盾是:语言想表达高层意图,控制却需要低层连续动作。
因此一个强 VLA 系统通常不是简单“视觉模型 + 语言模型 + 动作头”,而是同时拥有完整观测表示、稳定动作接口、多峰轨迹建模、统一坐标与任务语义,以及能及时纠正小误差的推理闭环。
如果这些条件里有两三项没做好,模型看起来像会执行任务,实际上只是在演示集附近模仿动作。
工程收束
VLA 学习的验收要同时看数据、接口和闭环。示范数据要覆盖关键状态,动作接口要让策略输出稳定可执行,轨迹建模要能表达多种合理动作,实机或回放闭环要能暴露分布偏移。缺任意一环,模型都可能只是在演示集附近“看起来会做”。
- Title: VLM/VLA:数据与策略学习
- Author: Charles
- Created at : 2026-04-04 09:00:00
- Updated at : 2026-04-04 09:00:00
- Link: https://charles2530.github.io/2026/04/04/ai-files-vla-data-and-policy-learning/
- License: This work is licensed under CC BY-NC-SA 4.0.