本文介绍行为克隆的局限、Offline RL、Online RL、Reward Model、Critic、候选动作采样和世界模型辅助决策,帮助初学者理解 VLA 为什么还需要强化学习。
摘要
当前很多 VLA 模型主要通过行为克隆学习机器人示范。
行为克隆可以让模型快速获得基本操作能力,但它只是在模仿数据中的动作,并不直接优化任务成功率。
强化学习后训练的目标是:
在已有 VLA 能力基础上,利用奖励信号进一步提升任务成功率、动作稳定性和失败恢复能力。
本文将介绍:
-
行为克隆的局限;
-
VLA 后训练的基本流程;
-
Offline RL 和 Online RL;
-
Reward Model 与 Critic;
-
候选 Action Chunk 采样;
-
世界模型辅助动作选择;
-
VLA-RL 面临的主要困难。
关键词
VLA、强化学习、RL 后训练、行为克隆、Critic、Reward Model
目录
TOC
一、为什么 VLA 还需要强化学习
大多数 VLA 首先使用机器人示范数据进行训练。
训练目标是:
给定观测和语言
预测专家执行的动作
这种方式称为:
Behavior Cloning
行为克隆本质上是监督学习。
例如:
predicted_action = policy(
image,
language,
state,
)
loss = mse_loss(
predicted_action,
expert_action,
)
但行为克隆学习的是:
专家在数据中做了什么。
它不一定直接学习:
哪个动作更容易成功。
这就是强化学习后训练存在的原因。
二、行为克隆的主要局限
2.1 分布偏移
训练数据全部来自专家轨迹。
专家通常处于正确状态:
夹爪位于合理位置
机械臂没有发生碰撞
物体没有被推歪
但模型推理时可能产生小误差。
例如:
预测动作稍微向左偏
↓
下一帧状态偏离专家数据
↓
模型从未见过该状态
↓
继续预测错误动作
↓
误差不断累积
这称为:
Distribution Shift
2.2 数据中缺少失败恢复
专家示范通常只记录成功轨迹。
模型很少看到:
抓空后如何重新抓取
物体滑落后如何恢复
抽屉只打开一半怎么办
因此,行为克隆策略容易在出现意外后彻底失败。
2.3 模仿动作不等于优化结果
专家动作可能并不唯一。
数据中还可能包含:
-
不够平滑的操作;
-
冗余移动;
-
遥操作延迟;
-
操作者习惯;
-
次优路径。
行为克隆会同时模仿这些特点。
三、强化学习的基本目标
强化学习关注:
状态
动作
奖励
长期回报
在机器人任务中,可以定义:
成功完成任务:+1
任务失败:0
发生碰撞:-1
动作过大:负奖励
动作平滑:正奖励
策略的目标不再只是接近专家动作,而是最大化累计奖励:
J(π) = E[Σ γᵗrₜ]
其中:
-
π是策略; -
rₜ是时间t的奖励; -
γ是折扣因子。
对于 VLA,可以将策略表示为:
π(a | image, language, state)
强化学习通过奖励优化这个策略。
四、VLA 后训练的基本流程
一个常见流程可以概括为:
大规模机器人数据
↓
行为克隆预训练
↓
获得基础 VLA 策略
↓
环境交互或离线数据
↓
奖励、Critic 或偏好信号
↓
强化学习后训练
行为克隆负责让模型:
先学会基本动作
强化学习负责让模型:
进一步提高成功率
直接从随机策略开始训练大型 VLA,通常成本很高。
因此,更常见的是:
先模仿,再强化。
五、Offline RL 是什么
Offline RL 指:
只使用已有数据训练,不在训练过程中持续与环境交互。
数据集可能包含:
观测
动作
奖励
下一时刻观测
任务结束标记
即:
(oₜ, aₜ, rₜ, oₜ₊₁, done)
优点
-
不需要训练时控制真实机器人;
-
安全性较高;
-
可以重复使用历史数据;
-
适合真实机器人数据。
缺点
Offline RL 容易遇到分布外动作问题。
Critic 可能错误地认为一个从未在数据中出现过的动作非常好。
但这个动作实际执行后可能失败。
因此,Offline RL 通常需要限制策略不要偏离数据分布太远。
六、Online RL 是什么
Online RL 指:
策略在训练过程中持续与环境交互,并根据新数据更新。
基本流程为:
策略执行动作
↓
环境返回奖励和新状态
↓
数据加入经验池
↓
更新策略
↓
再次交互
优点
-
能够探索新的动作;
-
可以真正根据任务结果优化;
-
能学习失败恢复;
-
可以修正行为克隆的偏差。
缺点
-
需要大量环境交互;
-
真实机器人训练成本很高;
-
存在设备磨损;
-
存在碰撞风险;
-
数据采集速度慢。
因此,很多工作会先在仿真环境中进行 Online RL,再考虑真实机器人迁移。
七、Reward Model 是什么
机器人奖励并不总是容易直接定义。
对于简单任务:
按钮是否按下
抽屉是否打开
物体是否进入目标区域
可以通过环境状态自动判断。
但对于复杂任务:
把桌面整理干净
把物品摆放整齐
以安全方式递给人类
奖励很难用简单规则描述。
Reward Model 的作用是:
根据观测、任务和动作结果,判断当前行为有多好。
输入可能包括:
任务指令
当前图像
动作前后的图像
机器人轨迹
输出一个分数:
reward = 0.82
Reward Model 可以来自:
-
人工偏好标注;
-
成功失败标签;
-
VLM 判断;
-
规则与学习模型结合;
-
自动任务检测器。
八、Critic 是什么
Critic 用于评估:
当前状态下执行某个动作,未来可能获得多少奖励。
常见价值函数包括:
状态价值
V(s)
表示从当前状态开始,未来能够获得的期望回报。
动作价值
Q(s, a)
表示在当前状态执行动作 a 后,未来能够获得的期望回报。
对于 VLA,可以扩展为:
Q(image, language, state, action_chunk)
也就是评估一整段候选动作。
九、Policy 和 Critic 如何配合
VLA Policy 负责生成动作:
Policy:
我认为可以执行这个动作
Critic 负责评估动作:
Critic:
这个动作成功概率较高
可以用一个简单流程表示:
VLA 生成多个候选动作
↓
Critic 分别打分
↓
选择得分最高的动作
↓
发送给机器人执行
这是一种非常直观的 VLA-RL 结合方式。
十、什么是候选动作采样
假设 VLA 使用 Diffusion 或 Flow Matching 生成 Action Chunk。
由于生成过程带有随机性,可以使用不同随机噪声生成多个候选动作:
candidates = []
for k in range(num_candidates):
action_chunk = policy.sample(
observation,
rng_seed=k,
)
candidates.append(action_chunk)
例如生成:
Candidate 0
Candidate 1
Candidate 2
Candidate 3
它们都来自同一个 Policy,只是随机噪声不同。
这不是额外的规划器,也不是搜索树。
它本质上是:
同一个生成策略进行多次随机采样。
十一、候选动作如何选择
Critic 可以对候选动作打分:
scores = []
for action_chunk in candidates:
score = critic(
observation,
action_chunk,
)
scores.append(score)
best_index = scores.argmax()
best_action = candidates[best_index]
整体流程为:
当前观测
↓
VLA 采样 K 个 Action Chunk
↓
Critic 预测每个候选的价值
↓
选择最高价值动作
这种方式可以在不修改底层 VLA 生成机制的情况下,提高动作选择质量。
十二、为什么需要多个候选动作
对于复杂场景,单次采样可能不是最佳方案。
例如,抓取一个杯子时,可能存在:
从左侧接近
从右侧接近
从上方接近
先旋转再接近
VLA 单次输出可能只是其中一种。
多次采样后,Critic 可以比较不同方案。
这类似于:
Policy 负责提出方案,Critic 负责选择方案。
十三、VLA 可以如何直接用强化学习更新
除了候选动作选择,还可以直接更新 Policy 参数。
例如,策略梯度思想为:
高奖励动作:提高生成概率
低奖励动作:降低生成概率
对于自回归 Action Token,可以优化动作 Token 的生成概率。
对于 Diffusion 或 Flow Matching,可以优化动作生成分布,使高奖励 Action Chunk 更容易被采样。
但大型生成模型直接进行 RL 更新容易遇到:
-
训练不稳定;
-
显存占用高;
-
策略快速偏离预训练模型;
-
语言和视觉能力退化;
-
奖励投机。
因此,实际训练中可能采用:
-
冻结大部分主干;
-
只训练 Action Expert;
-
LoRA;
-
小学习率;
-
KL 正则;
-
行为克隆损失混合;
-
Critic 引导采样。
十四、为什么要保留行为克隆损失
如果强化学习只追求奖励,模型可能忘记原有操作能力。
因此,可以使用联合目标:
L = L_RL + λL_BC
其中:
-
L_RL提高任务奖励; -
L_BC保持策略接近专家数据。
也可以加入 KL 约束:
KL(π_new || π_reference)
限制更新后的策略不要偏离原始 VLA 太远。
这与大语言模型后训练中的思想有一定相似性:
保持原模型能力
同时优化新的偏好或奖励
十五、世界模型如何辅助 VLA-RL
世界模型用于预测:
执行一个动作后,环境会发生什么
输入:
当前观测 + 候选动作
输出:
未来图像
未来状态
任务进度
成功概率
因此,可以在真正执行动作前先进行"想象"。
流程为:
VLA 生成候选动作
↓
世界模型预测每个动作的未来结果
↓
Reward Model 或 Critic 评估结果
↓
选择最佳动作
这类似于人类:
先想象动作后果,再决定是否执行。
十六、世界模型和 Critic 有什么区别
Critic 直接输出价值:
当前状态 + 动作 → 分数
世界模型则预测未来:
当前状态 + 动作 → 未来状态
然后可以再对未来状态进行评估。
因此:
Critic:直接判断动作好不好
世界模型:先预测会发生什么
世界模型提供的信息更丰富,但训练和推理成本通常也更高。
十七、稀疏奖励问题
机器人任务的奖励经常非常稀疏。
例如:
完成任务:1
没有完成:0
机器人执行了 200 步,只有最后一步才能知道是否成功。
这会导致学习困难。
解决方式包括:
-
奖励塑形;
-
子任务奖励;
-
视觉进度奖励;
-
Reward Model;
-
Hindsight Experience Replay;
-
任务阶段检测;
-
世界模型预测。
例如,抓杯子任务可以设计:
接近杯子:+0.1
夹爪对准:+0.2
成功抓住:+0.4
移动到目标:+0.2
成功放置:+1.0
但人工设计过多奖励可能让模型钻规则漏洞。
十八、VLA-RL 面临的主要困难
1. 真实机器人交互成本高
机器人每秒只能产生有限数据,无法像游戏环境一样快速运行数百万步。
2. 奖励难以定义
复杂语言任务很难自动判断是否完成。
3. 大模型训练成本高
VLA 通常包含大型视觉语言主干,完整 RL 更新需要大量显存和计算。
4. 安全探索困难
强化学习需要探索,但真实机器人不能随意碰撞和试错。
5. 长任务信用分配
任务可能经过数百步才成功,很难判断前面的哪个动作最重要。
6. 奖励投机
模型可能找到提高奖励但不符合真实目标的行为。
例如:
通过遮挡摄像头欺骗视觉奖励模型
十九、一个简化的 VLA-RL 框架
for episode in range(num_episodes):
observation = env.reset()
done = False
while not done:
candidates = []
for k in range(num_candidates):
action_chunk = policy.sample(
observation,
seed=k,
)
candidates.append(
action_chunk
)
scores = [
critic(
observation,
action_chunk,
)
for action_chunk in candidates
]
best_index = max(
range(len(scores)),
key=lambda i: scores[i],
)
selected_chunk = candidates[
best_index
]
next_observation, reward, done = (
env.step(
selected_chunk[0]
)
)
replay_buffer.add(
observation,
selected_chunk,
reward,
next_observation,
done,
)
observation = next_observation
update_critic(replay_buffer)
update_policy(replay_buffer)
这只是一个概念示例。
真实系统还需要处理:
-
Action Chunk 执行长度;
-
多环境并行;
-
奖励归一化;
-
目标网络;
-
优势估计;
-
KL 正则;
-
混合行为克隆损失;
-
模型冻结策略。
二十、初学者学习路线
建议按照以下顺序学习。
第一步:行为克隆
理解:
Observation → Action
以及分布偏移问题。
第二步:基础强化学习
理解:
-
MDP;
-
Reward;
-
Return;
-
Value;
-
Q Function;
-
Policy Gradient;
-
Actor-Critic。
第三步:Offline RL
理解为什么不能让策略随意偏离离线数据。
第四步:候选动作与 Critic
这是理解 VLA-RL 比较直观的切入点。
第五步:世界模型
理解如何预测候选动作的未来结果。
第六步:生成策略强化学习
进一步研究如何更新 Diffusion 或 Flow Matching Policy。
二十一、常见误区
误区一:强化学习可以替代行为克隆
对于大型 VLA,直接从随机策略开始 RL 通常成本极高。
行为克隆仍然是重要基础。
误区二:Critic 是另一个 Policy
Policy 负责生成动作,Critic 负责评价动作。
二者作用不同。
误区三:候选动作生成就是搜索树
多次使用不同随机噪声采样 Action Chunk,并不等于构建搜索树。
误区四:奖励越复杂越好
过于复杂的人工奖励可能导致奖励投机,甚至偏离真实任务目标。
误区五:仿真中有效就能直接部署真实机器人
仿真与真实环境之间存在视觉、动力学和控制误差。
二十二、总结
VLA 的行为克隆训练解决的是:
如何模仿专家动作
强化学习后训练进一步解决:
如何根据任务结果优化动作
常见 VLA-RL 路线包括:
Offline RL
Online RL
Reward Model
Critic
候选动作选择
世界模型预测
直接优化生成策略
一个容易理解的组合是:
VLA 生成多个候选动作
Critic 对候选动作打分
选择最优动作执行
更进一步,可以使用世界模型预测动作后果,再由奖励模型进行评估。
因此,VLA、Critic 和世界模型可以分别理解为:
VLA:提出动作
Critic:评价动作
世界模型:预测动作后果
强化学习后训练的目标,不只是让机器人模仿得更像,而是让机器人真正完成得更好。