跳转至

Let's Reward Step-by-Step: Step-Aware Contrastive Alignment for Vision-Language Navigation in Continuous Environments

会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/lhy-zjut/SACA
领域: 机器人/具身智能
关键词: 连续视觉语言导航、逐步监督、失败轨迹利用、对比对齐、强化微调

一句话总结

SACA 用冻结的视觉与语言模型定位导航轨迹中“前面做对了什么、从哪里开始出错”,按采样组是否存在成功轨迹分别修复或救援失败样本,在不增加审计器推理开销的情况下,将无额外数据的 R2R-CE / RxR-CE 未见验证集成功率提升至 60.3% / 60.3%。

研究背景与动机

连续环境视觉语言导航(VLN-CE)要求智能体按照自然语言指令,利用第一视角视觉流执行低层动作,而不是只在预定义导航图上选择节点。 指令中的“经过桌子、转入厨房、停在冰箱旁”跨越多个时间步骤,每一步都依赖当前观察与历史进展。 Video-LLM 的监督微调(SFT)可以学会专家轨迹上的动作对应关系,却未必学会如何从自己造成的偏航状态恢复。 一旦早期的小误差改变后续视角,模型会接收到训练示范里少见的状态,错误就可能逐步累积。

强化微调允许策略在环境中自行探索,但导航中的二值终局奖励通常到 STOP 时才揭晓。 标准 GRPO 用同一指令下多条轨迹的相对奖励估计优势;如果全部失败,奖励一致,基于结果的相对学习信号就消失了。 这还混淆了两种失败:一开始就走错,与完成了大部分指令却在最后一个岔路口偏离。 作者报告约 73% 的失败 episode 完成了初始子指令,说明终局失败不等于每个动作都不值得学习;这一比例指向附录 A,当前缓存未含该附录,无法核对统计细节。

本文因此不训练专用过程奖励模型,而是利用已有基础模型检查指令地标是否在视觉中得到支持。 检查结果不仅给整条轨迹排序,还标出可以保留的有效前缀和需要干预的偏离点。 但视觉匹配可能有噪声,“失败里最好的一条”也不是真成功,因此作者另外限制了奖励强度和逐步监督的作用范围。 核心 idea:把失败轨迹拆成可信的局部经验和明确的局部错误,再按组内有没有真实成功,选择不同的学习方式,而不是给所有失败统一打零分。

方法详解

整体框架

输入是一条导航指令、环境中的连续视觉观察,以及当前策略针对同一指令采样的一组轨迹。 策略以 LLaVA-Video-7B 为起点,先通过导航示范完成 SFT,再由 SACA 进行强化微调。 训练循环依次经过感知落地逐步审计、场景条件组构建和稳健逐步优化,输出更新后的导航策略。 审计器是训练侧工具,不是部署时常驻的额外规划器;推理时仍由策略根据观察和指令输出低层动作。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        Input["指令、视觉观察<br/>与采样轨迹组"] --> Audit["感知落地逐步审计"]
        Audit --> Group["场景条件组构建"]
        Outcome["环境终局奖励"] --> Group
        Group -->|"有成功:修复重采样"| Optimize["稳健逐步优化"]
        Group -->|"全失败:全失败救援"| Optimize
        Expert["模拟器最短路动作<br/>仅训练期局部纠错"] -.-> Optimize
        Optimize --> Policy["更新导航策略"]
        Policy --> Inference["推理:观察与指令<br/>直接生成低层动作"]

图中两条组构建分支是互斥的训练情形,并不是每条轨迹都依次经历修复与救援。 同样,终局奖励和视觉过程分数是两个来源不同的信号:前者判断是否成功,后者评估失败内部的进展。 最短路动作只为局部对比纠错提供正例,不能把整套训练描述成完全不依赖专家或模拟器监督。

关键设计

1. 感知落地逐步审计:同时回答进展有多可信与哪里需要纠错

PGSA(Perception-Grounded Step-Aware)先用冻结的小型语言模型,例如 Qwen3-0.6B,将长指令解析成有序中间地标。 对当前激活的地标,CLIP 先提供整帧图像与文本的全局相似度,保留目标尚远时的场景信息。 GroundingDINO 再给出目标框及检测置信度;当置信度达到检测阈值时,SAM3 生成更精确的目标掩码和相应 IoU 分数。 随后在掩码限定的物体区域计算局部 CLIP 语义匹配,减轻背景像素对地标判断的干扰。 这条级联把全局语境、目标检测和局部物体语义综合成逐步 Soft Score,而不是只看整帧是否“像厨房”。 原文式 (1) 的运算符在文本提取中损坏,因此这里不把猜测的加权组合写成作者的精确公式。

轨迹级过程分数采用原文式 (2),先扣除置信阈值,再对正值求平均:

\[ R_{proc}(\mathcal{T})=\frac{1}{T}\sum_{t=1}^{T}\operatorname{ReLU}(S_t-\tau_s). \]

其中 \(T\) 为轨迹长度,\(S_t\) 为逐步 Soft Score,\(\tau_s\) 是过滤低置信匹配的阈值。 ReLU 让阈值以下的观察不贡献奖励,按长度平均则避免简单累加天然偏爱更长的轨迹。 这一分数用于相对排序,不等价于真实的任务完成概率,也不能证明导航动作的方向一定正确。

与此同时,更严格的硬阈值产生结构掩码,见原文第 5–6 页:

\[ M_t=\mathbb{I}(S_t>\tau_h). \]

只有连续 \(c\) 步满足硬匹配,当前地标才切换到下一个,以免一次偶然看见物体就被当成完成子指令。 原文据此把轨迹划为偏离点 \(t_{div}\) 之前的有效前缀,以及从偏离点开始的错误阶段。 这使连续排序分数与离散纠错边界各司其职,而不是拿一个总奖励同时承担两种任务。 不过式 (3) 的分段条件也已损坏,缺失附录又未能补充地标切换边界的实现细节,因此不臆造可直接执行的偏离点判定伪代码。

2. 场景条件组构建:有成功就修复近失,全失败才恢复相对监督

默认每条指令采样 \(K=8\) 条轨迹,先检查是否至少有一条得到真实成功奖励。 在有成功的组中,二值结果仍然是主要监督来源,过程分数不会取代成功定义。 系统另外寻找有效前缀占比较高的失败轨迹,原文用 \(t_{div}/T>\eta\) 表示近失筛选条件。 对于这些近失样本,修复重采样(Repair Resampling,RR)保留前缀,从偏离位置重新规划后缀,最多尝试 \(N_{rep}=3\) 次。 如果修复成功,新的轨迹成为辅助示范;如果所有尝试均失败,则保留原来的失败轨迹。 修复不是无限重试,也不把成功拼接后的轨迹再次递归送入修复流程,因此训练预算被显式限制。 后续辅助模仿只作用于成功修复的后缀,而不是重新把整个前缀当作额外专家示范反复复制。

全组都失败时,SACA 转向全失败救援(All-Failure Rescue,AFR)。 它先选择过程分数最高的失败轨迹作为伪锚点(Pseudo-Anchor),而不是直接宣称这条轨迹是伪成功。 再从其余失败轨迹中挖掘困难负例:原文结合动作级最长公共子序列衡量的前缀相似度,以及与锚点的过程分数差。 两种信息共同参与负例排序,精确组合式 (7) 已损坏,因此这里保留可读文字确定的机制,不猜权重运算。 选出的负例与伪锚点组成至少包含 2 条轨迹的反思子组,过程优势只在这个子组内部归一化。 这样的比较不再问“谁成功了”,而是问“相似失败尝试中哪条更值得保留局部经验”。 RR 的近失集合仅用于有成功分支,AFR 的反思子组仅用于全失败分支,不能混成统一的伪正负样本池。

3. 稳健逐步优化:信任有效前缀,但不把整条失败轨迹扶正

全失败分支首先根据反思子组内的过程分数均值和标准差构造相对优势,再进行保守缩放。 边际救援(Margin-Based Rescue)检查伪锚点分数相对困难负例平均分的领先幅度。 当领先幅度小于阈值 \(\delta\) 时,用 \(\kappa<1\) 缩小优势,避免视觉证据不足却做出很强的策略更新。 负优势单独缩放(Negative-Only Scaling)再仅将负优势乘以 \(s\in(0,1]\),保留正向偏好,同时减弱对其他可行路线的惩罚。 两者针对不同风险:前者减少弱证据下的整体更新强度,后者限制噪声排序导致的过度否定。

轨迹级更新之外,逐步约束只施加到伪锚点,而不扩大到所有质量参差不齐的失败样本。 一致性对齐(Consistency Alignment)对有效前缀做行为克隆,提高那些被掩码认定为正确的动作概率。 对比纠错(Contrastive Correction)则只作用于偏离点,让该处的策略隐状态更匹配正例动作,而不是错误动作。 正例 \(a^+\) 来自模拟器最短路动作,负例 \(a^-\) 是策略在该偏离点实际选择的错误动作。 这不是对失败轨迹全程做专家模仿,而是在保留前面有用行为的同时,明确压制那个导致分叉的局部决策。 原文式 (12)–(16) 存在符号缺失,笔记据可读文字解释优化方向,不尝试修复损失正负号与完整对比归一化形式。

一个完整示例

沿用原文图 2 的场景:经过玻璃门,向岛台方向移动,转入厨房,最后停在微波炉前。 冻结语言模型将其解析为玻璃门、岛台、厨房和微波炉等有序地标,审计器随着视觉证据推进当前地标。 假设一条失败轨迹已完成前面的行走,却在厨房入口处转错方向;下面是机制示意,不是新增实验记录。 若同组另有成功轨迹,RR 可保留到该局部偏离前的经验,并从偏离位置重新采样进入厨房的后缀。 若同组全部失败,就不会把这条近失自动标成成功,而是看它是否成为过程分数最高的伪锚点。 成为锚点后,其有效前缀获得一致性约束,入口处的错误动作与最短路正例进行对比,其余反思子组轨迹提供相对过程监督。 这解释了为什么 SACA 既不丢掉整次失败,也不无条件模仿一次看起来很接近目标的失败。

损失函数 / 训练策略

有成功分支对原始组使用基于结果优势的 GRPO,并加入成功修复后缀的辅助模仿项。 全失败分支对反思子组使用保守的过程优势 GRPO,再加入锚点专属的一致性对齐与对比纠错。 论文第 10 页报告,SFT 在 8 张 NVIDIA A6000 上约需 36 小时,学习率为 \(1\times10^{-5}\),采用余弦调度和 10% warmup。 强化微调约需 24 小时,学习率为 \(1\times10^{-6}\),weight decay 为 0.01,KL 惩罚系数为 \(\beta=0.04\)。 PGSA 内部模型全部冻结,因此“不训练专用奖励模型”不意味着训练时没有额外模型调用成本。 原文将审计阈值等默认参数指向附录 C,但当前缓存止于参考文献;无法提供未读到的阈值、损失权重或更细实现参数。

实验关键数据

主实验

表 1(原文第 9 页)比较 R2R-CE 和 RxR-CE 的 Val-Unseen,环境来自 Matterport3D,并在 Habitat 中运行。 下表保留单 RGB 策略的直接对比;† 表示使用额外训练数据,SACA† 使用 ScaleVLN,不能与无额外数据结果混为同一条件。 SR 是成功率,SPL 是按路径长度加权的成功率,两者越高越好;NE 是导航误差,单位为米,越低越好。 nDTW 衡量预测轨迹与参考路径的空间一致性,越高越好;SR、SPL、nDTW 均沿用论文的百分数尺度。

方法与数据条件 R2R NE ↓ R2R SR ↑ R2R SPL ↑ RxR NE ↓ RxR SR ↑ RxR SPL ↑ RxR nDTW ↑
StreamVLN,无额外数据 5.43 52.8 47.2 6.72 48.6 42.5 60.2
SACA,无额外数据 4.57 60.3 55.1 4.90 60.3 49.8 62.1
StreamVLN† 4.98 56.9 51.9 6.22 52.9 46.0 61.9
SACA† 4.19 64.7 56.9 4.75 62.1 51.7 66.0

无额外数据时,SACA 相对 StreamVLN 的 R2R SR 提升 7.5 个百分点,SPL 提升 7.9 个百分点。 RxR SR 提升 11.7 个百分点,SPL 提升 7.3 个百分点,表明收益不只体现在较短指令场景。 这些是绝对百分点差,不是相对增长百分比;跨论文的预训练、实现和总算力也并未因此完全控制一致。

消融实验

表 2(原文第 11 页)逐步加入组件,下表保留两个 Val-Unseen 的主要指标,均为无额外数据设置。 SS 是连续 Soft Score,AFR 是全失败救援,RR 是修复重采样;这是累加消融,不是三个组件独立的因果贡献估计。

配置 R2R SR ↑ R2R SPL ↑ RxR SR ↑ RxR SPL ↑ RxR nDTW ↑
SFT 基线 52.8 47.2 48.6 42.5 60.2
标准 GRPO 54.1 48.8 49.9 43.0 60.3
GRPO + SS 55.4 49.6 51.8 44.3 60.7
GRPO + SS + AFR 58.2 52.4 56.4 47.6 61.3
完整 SACA:再加 RR 60.3 55.1 60.3 49.8 62.1

表 3(原文第 13 页)进一步从完整模型移除目标约束或稳健机制,评估条件与上表一致。

配置 R2R SR ↑ R2R SPL ↑ RxR SR ↑ RxR SPL ↑
完整 SACA 60.3 55.1 60.3 49.8
去掉一致性对齐 58.0 51.6 57.1 46.2
去掉对比纠错 57.3 52.8 56.4 46.5
去掉边际救援 58.5 53.0 57.8 47.9
去掉负优势单独缩放 59.1 54.0 58.6 48.5

关键发现

  • 表 2 中加入 AFR 将 RxR SR 从 51.8 提高到 56.4,增加 4.6 个百分点;随后加入 RR 再提高到 60.3,增加 3.9 个百分点。
  • 表 3 中去掉一致性对齐使 R2R SPL 从 55.1 降到 51.6,下降 3.5 个百分点;去掉对比纠错使 RxR SR 下降 3.9 个百分点。
  • 表 4(第 13 页)中 \(K=4\)\(N_{rep}=3\) 的 RxR SR 为 55.2,默认 \(K=8\) 时为 60.3,\(K=16\) 时为 59.9;更大采样组并不持续获益。
  • 表 5(第 14 页)中仅全局 CLIP、再加目标框、再加掩码的 R2R SR 分别为 57.6、59.2、60.3,支持物体级落地的增益,但没有单独给出审计器偏离点定位准确率。

亮点与洞察

  • 区分排序与边界。 连续过程分数负责比较轨迹,硬掩码负责决定哪些步骤可以保留,避免把“总体看起来不错”误当成每一步都可信。
  • 训练策略取决于信息是否存在。 有真实成功时不让代理分数喧宾夺主,全失败时才用过程信号恢复相对监督;这种分工比统一替换奖励更克制。
  • 局部纠错比整轨迹扶正更可信。 最好的失败仍然失败,值得复用的是前缀和明确纠错点,而不是它的全部动作。

局限与展望

  • 感知正确不保证动作正确。 地标可见性、遮挡、重复物体与空间关系可能让视觉分数偏离真实导航进度,这是读者对代理监督的风险分析,而非论文提供的错误率结论。
  • 训练依赖模拟器能力。 后缀重采样需要恢复局部状态,最短路正例需要环境监督;这些条件限制直接迁移到不可重置的真实机器人在线训练。
  • 训练成本仍需细分。 论文给出 SFT / RFT 时长,但未在主文报告审计器各组件耗时或等算力基线;无额外推理成本不能推出无额外训练成本。
  • 泛化证据集中于仿真基准。 当前实验覆盖两个 MP3D / Habitat 导航基准,没有在所读主文中看到真实机器人或动态场景验证。
  • 复现信息有读取边界。 缓存包含主文和参考文献,不含引用的附录 A–C,且多处公式损坏;73% 统计口径、精确阈值及受损公式需要查原始材料,不能凭常见实现补齐。

相关工作与启发

  • 与 StreamVLN 相比: StreamVLN 强调视频上下文建模,SACA 聚焦强化微调时怎样利用失败;本文表 2 以标为 StreamVLN 的 SFT 基线展开,主要创新不应概括成新的推理期记忆架构。
  • 与 VLN-R1 / GRPO 相比: SACA 保留组相对优化,但为全失败组额外建立过程分数比较,并对可信前缀与局部错误分别约束,直接对应稀疏奖励下的信息缺口。
  • 与专用过程奖励模型相比: 冻结感知模型减少了任务奖励模型训练需求,却把可靠性问题转移到目标检测、语义匹配与阈值选择,不能把“零样本审计”理解成无噪声监督。
  • 可延伸方向: 读者可考虑用审计不确定性决定哪些局部前缀值得克隆,并检验不依赖最短路动作的替代纠错监督;这些是研究建议,不是本文已经完成的实验。

评分

  • 新颖性: 4/5。将失败轨迹的结构信息、条件重采样和保守过程优势连成明确的训练机制。
  • 实验充分度: 4/5。两个未见验证集及多层消融支持方法,但真实部署、审计准确率和等算力比较仍不足。
  • 写作质量: 4/5。主线清晰,分支作用范围较明确;缓存公式损坏限制了精确数学复核,不据此推断原 PDF 排版质量。
  • 价值: 4/5。为稀疏奖励的具身任务提供可复用的失败利用思路,实际收益仍依赖审计可靠性与训练环境能力。