🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。
🚀 探索专栏:学步_技术的首页 —— 持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。
🔍 技术导航:
- 人工智能:深入探讨人工智能领域核心技术。
- 自动驾驶:分享自动驾驶领域核心技术和实战经验。
- 环境配置:分享Linux环境下相关技术领域环境配置所遇到的问题解决经验。
- 图像生成:分享图像生成领域核心技术和实战经验。
- 虚拟现实技术:分享虚拟现实技术领域核心技术和实战经验。
🌈 非常期待在这个数字世界里与您相遇,一起学习、探讨、成长。不要忘了订阅本专栏,让我们的技术之旅不再孤单!
💖💖💖 ✨✨ 欢迎关注和订阅,一起开启技术探索之旅! ✨✨
1. 背景介绍
Xiang J, Wang X E, Wang W Y. Learning to stop: A simple yet effective approach to urban vision-language navigation[J]. arXiv preprint arXiv:2009.13112, 2020.
🚀以上学术论文翻译由ChatGPT辅助。
视觉与语言导航(Vision-and-Language Navigation,VLN)是一项自然语言语义对齐任务,目标是让智能体能够根据语言指令在真实世界环境中导航至指定位置。该任务的一个关键挑战在于智能体不仅要识别路线,还必须准确地在目标位置停下,这在复杂的户外环境中尤为困难。
现有方法通常将“停止”(STOP)动作与其他导航动作同等处理,导致智能体即使路径正确,也经常无法在目标处准确停下。为此,我们提出了一种简单而有效的策略模块 L2STOP(Learning to Stop),该模块区分“停止”与其他动作的建模方式,从而提升停靠精度。
在具有挑战性的城市级 VLN 数据集 TOUCHDOWN 上,L2STOP 实现了新的 SOTA 结果,在 Success weighted by Edit Distance (SED) 指标上相比基线实现了 6.89% 的绝对提升。
视觉与语言导航(Vision-and-Language Navigation, VLN)任务旨在训练智能体根据自然语言指令在真实环境中进行导航。相比于室内场景(如 Anderson 等人于 2018 年提出的任务),城市级 VLN 面临更高的挑战(Chen et al., 2019),这主要由于城市环境通常更加复杂、多样。已有研究(Mirowski et al., 2018;Li et al., 2019;Bruce et al., 2018)尝试应对此问题。本文同样聚焦于城市级 VLN。
如图 1 所示,给定一条自然语言导航指令,智能体通过感知本地视觉场景,在每一个时间步做出动作选择,并学习将指令与轨迹进行匹配,从而成功导航至目的地。
然而,当前 VLN 模型(Wang et al., 2019;Tan et al., 2019;Ke et al., 2019;Ma et al., 2019a,b;Fried et al., 2018;Wang et al., 2018)普遍忽略了“停止”(STOP)动作的重要性,将其与其他方向动作一视同仁。这导致智能体经常未能在目标点准确停下,即便路径判断正确。这一问题也在 Cirik et al. (2018) 和 Blukis et al. (2018) 中被观察到。根本原因在于:STOP 动作往往被严重低估。
我们认为,STOP 动作在城市级 VLN 中至关重要,必须进行差异化建模。其原因包括:
- 相比于普通动作错误可在路径中纠正,STOP 一旦出错将直接终止导航过程,错误不可逆;
- 在数据统计中,STOP 每个导航指令中只出现一次,其出现频率远低于其他动作,若一视同仁则学习不足;
- STOP 与普通动作在视觉与语言对齐机制上也有本质区别——STOP 强调“指令完成性”与目标场景匹配,而方向选择则更多依赖未来路径规划。
为此,我们提出了一个Learning to Stop(L2STOP)模块,旨在专门优化 STOP 行为。L2STOP 是一个简单、与模型无关的模块,可以灵活嵌入各种 VLN 模型,提升导航效果。如图 1 所示,L2STOP 由两个组件组成:
- Stop Indicator:判断是否应停止;
- Direction Decider:在关键点选择下一方向。
此外,我们在损失函数中对 STOP 动作引入更高权重,引导智能体更关注何时应停。
我们在街景语言导航数据集 TOUCHDOWN(Chen et al., 2019)上进行实验证明。结果表明,L2STOP 显著提升了导航成功率,在所有评估指标上超越基线,并在 TOUCHDOWN 数据集上实现新的 SOTA。
2 方法:L2STOP 模型结构与训练
我们提出的 L2STOP 模型结构如图 2 所示。整体框架由文本编码器、视觉编码器、轨迹编码器和策略模块组成,区别于以往的 VLN 模型使用单分支策略模块,L2STOP 引入两分支策略模块:专门处理停止(STOP)与方向选择(GO)两类动作,从而更细致地建模导航行为。
2.1 视觉与文本编码器
如图 2 所示,我们采用 Chen et al. (2019) 中的方法,分别使用视觉编码器与文本编码器对当前环境和自然语言指令进行建模。
-
视觉编码器:使用 CNN(Krizhevsky et al., 2012)提取当前时刻 t t t 的视觉表示 v t v_t vt。
-
文本编码器:使用 LSTM(Hochreiter & Schmidhuber, 1997)编码指令 X = { x 1 , x 2 , . . . , x l } X = \{x_1, x_2, ..., x_l\} X={x1,x2,...,xl},结合 soft attention(Vaswani et al., 2017)获得当前时刻对应的语言特征 x t x_t xt:
α t , l = softmax ( ( W x h t − 1 ) T x l ) \alpha_{t,l} = \text{softmax}((W_x h_{t-1})^T x_l) αt,l=softmax((Wxht−1)Txl)
x t = ∑ l α t , l x l x_t = \sum_l \alpha_{t,l} x_l xt=l∑αt,lxl
-
最后,将视觉特征 v t v_t vt、语言特征 x t x_t xt 和上一步动作 a t − 1 a_{t-1} at−1 拼接后输入轨迹编码器(LSTM)得到当前时刻的上下文隐藏状态 h t h_t ht:
h t = LSTM ( [ x t , v t , a t − 1 ] ) h_t = \text{LSTM}([x_t, v_t, a_{t-1}]) ht=LSTM([xt,vt,at−1])
2.2 L2STOP 策略模块
与传统将所有动作一视同仁的方法不同,L2STOP 将策略模块拆分为两个分支:
Stop Indicator
该模块用于判断当前时刻是否应该执行 STOP 动作。输入为当前上下文 h t h_t ht 与时间嵌入 t t t,输出为停或不停的概率:
s t , 1 , s t , 2 = softmax ( g 2 ( [ h t , t ] ) ) s_{t,1}, s_{t,2} = \text{softmax}(g_2([h_t, t])) st,1,st,2=softmax(g2([ht,t]))
其中 g 2 g_2 g2 为线性层, s t , 1 s_{t,1} st,1 为不停止的概率, s t , 2 s_{t,2} st,2 为停止的概率。若 s t , 2 s_{t,2} st,2 较高,则模型立即停止导航。
Direction Decider
若 Stop Indicator 判断为“继续前进”,则由 Direction Decider 负责方向动作选择。该模块只在**交叉路口(key points)**激活,即图结构中邻接节点数超过两个的地方。
输入同样为 [ h t , t ] [h_t, t] [ht,t],输出每个方向动作(前进、左转、右转)的概率分布:
p t , k = softmax ( g 1 ( [ h t , t ] ) ) p_{t,k} = \text{softmax}(g_1([h_t, t])) pt,k=softmax(g1([ht,t]))
其中 g 1 g_1 g1 为线性层, p t , k p_{t,k} pt,k 表示在时间 t t t 各个方向动作的选择概率。
2.3 模型训练
我们使用 Teacher-Forcing(Luong et al., 2015)方式训练模型,整体损失由两部分构成:
方向动作损失 L direction L_\text{direction} Ldirection
这是标准的交叉熵损失,用于训练方向选择器:
L direction = − ∑ t ∑ k q t , k log ( p t , k ) L_\text{direction} = - \sum_t \sum_k q_{t,k} \log(p_{t,k}) Ldirection=−t∑k∑qt,klog(pt,k)
其中 q t , k q_{t,k} qt,k 表示第 t t t 时刻的方向动作标签。
停止动作损失 L stop L_\text{stop} Lstop
由于 STOP 动作在训练集中仅出现一次且难以学习,我们采用加权交叉熵,对 STOP 动作引入更高权重:
L stop = ∑ t − o t log ( s t , 1 ) − λ ( 1 − o t ) log ( s t , 2 ) L_\text{stop} = \sum_t -o_t \log(s_{t,1}) - \lambda (1 - o_t) \log(s_{t,2}) Lstop=t∑−otlog(st,1)−λ(1−ot)log(st,2)
其中 o t o_t ot 为非 STOP 标签( 1 1 1 表示继续, 0 0 0 表示 STOP), λ \lambda λ 为 STOP 加权因子。
总损失 L loss L_\text{loss} Lloss
我们使用加权和的方式整合两个损失:
L loss = γ L direction + ( 1 − γ ) L stop L_\text{loss} = \gamma L_\text{direction} + (1 - \gamma) L_\text{stop} Lloss=γLdirection+(1−γ)Lstop
其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 控制两个任务的权重平衡。
该训练策略使得模型能同时优化方向动作与停止判断,进而提升导航成功率并减少错误停止或错过目标的情况。
3 实验与分析
3.1 实验设置
TOUCHDOWN 数据集
我们在 TOUCHDOWN 数据集(Chen et al., 2019)上评估所提出的方法。该数据集聚焦真实世界的城市环境导航,包含来自纽约市的
29
,
641
29,641
29,641 个全景图节点和
61
,
319
61,319
61,319 条边,共有
9
,
326
9,326
9,326 个导航任务(每个任务由自然语言指令与其对应轨迹组成),划分为训练集 (
6
,
526
6,526
6,526)、验证集 (
1
,
391
1,391
1,391) 和测试集 (
1
,
409
1,409
1,409)。
评估指标
我们遵循原始论文设定,使用以下指标评估模型性能:
- TC(Task Completion):任务是否完成。
- SPD(Shortest-path Distance):预测路径与最短路径的距离。
- SED(Success weighted by Edit Distance):成功率乘以编辑距离相似度。
另外,我们还引入两个度量指令与轨迹对齐程度的指标:
- CLS(Coverage weighted by Length Score)(Jain et al., 2019)
- SDTW(Success weighted by normalized Dynamic Time Warping)(Magalhaes et al., 2019)
实现细节
我们在 PyTorch 中实现了模型,平均训练时间约为 6 小时,优化器使用 Adam(学习率为
0.00025
0.00025
0.00025)。
模型结构参数如下:
- 文本编码器:32 维词嵌入,256 单元双向 RNN。
- 注意力机制:通过 512 维全连接层获得 soft attention。
- 视觉编码器:三层 CNN,依次使用:
- 32 32 32 个 8 × 8 8 \times 8 8×8 卷积核,步幅 4;
- 64 64 64 个 4 × 4 4 \times 4 4×4 卷积核,步幅 4;
- 全连接层(256 维)。
- 动作嵌入:16 维,用于表示前一时刻动作。
- 轨迹编码器:256 维单层 RNN。
- 时间嵌入:32 维全连接层。
- Stop Indicator 和 Direction Decider:均为单层感知机 + Softmax。
3.2 实验结果
我们将所提出方法与以下基线模型进行对比:
- Random:随机动作选择;
- GA 与 RCONCAT:原始论文中提供的基线方法;
- ARC:在 RCONCAT 基础上加入注意力机制的新模型;
- ARC + L2STOP:将 L2STOP 模块接入 ARC 模型。
结果如表 1 所示,我们的模型在各项指标上显著优于基线,SED 从 9.45% 提升至 16.34%。不仅在任务完成率(TC, SED)上提升显著,在路径-指令对齐性(CLS, SDTW)方面也取得优势,表明 L2STOP 模型有效提升了“去哪”和“何时停”的双重能力。
3.3 模块通用性分析(Modularity)
表 2 显示,在不改变原有 VLN 架构的前提下,将 L2STOP 模块接入 GA 和 RCONCAT 等模型,均能带来全方位性能提升。这验证了我们方法的**模型无关性(model-agnostic)**和良好的通用性。
3.4 消融实验(Ablation Study)
我们在验证集上逐步移除关键组件,评估每部分对整体性能的贡献,结果见表 3:
- Row 2:移除双分支结构,方向与停止动作共用同一策略模块。此时在非关键点无法选择“左转/右转”,性能明显下降,验证了 STOP 与其他动作分开建模的必要性。
- Row 3:让 Direction Decider 在每个时间步都决策,而非仅在关键路口激活,结果下降,说明仅在关键节点做方向选择更有效。
- Row 4:停止信号与非停止信号在损失函数中权重相等。该设定下性能最差,说明 STOP 动作的罕见性和重要性需要特别强调。
3.5 STOP 与方向哪个更关键?
表 4 进一步分析 STOP 与方向选择对性能的影响,分别将其替换为 Oracle(即使用真实标签):
- Oracle Stop:一旦到达目标位置,停止判断完美;
- Oracle Direction:每次方向判断完美。
结果显示:
- STOP 判断问题是性能主要瓶颈,表 3 第三行(Oracle Stop)远好于第一行(原模型);
- 当前模型在 STOP 判断上的提升仍有不足,错误停止(wrong stop)问题仍需重视。
3.6 案例分析(Case Study)
图 3 展示了两个定性分析示例。我们的模型与基线均走在正确路径上,但基线模型在如下方面失败:
- 示例 (a):未能正确识别目标黑色消防栓,而在非目标处停止。
- 示例 (b):识别到了“停车缴费机”,但忽视了“稍微超过它”这一指令描述,提前停止。
相比之下,我们的模型在两个场景中都做出了更合理的停止判断。
4 结论
本研究关注 Vision-and-Language Navigation 任务中被忽视的 STOP 动作问题。我们提出了 L2STOP 模块,通过引入独立的 STOP 判断机制与方向决策模块,在不依赖具体模型的前提下,显著提升了导航成功率与目标定位能力。实验表明,L2STOP 不仅能提升“去哪”,更重要的是提升“何时停”的准确性,为城市环境中的导航任务提供了新的解决方案。
🌟 在这篇博文的旅程中,感谢您的陪伴与阅读。如果内容对您有所启发或帮助,请不要吝啬您的点赞 👍🏻,这是对我最大的鼓励和支持。
📚 本人虽致力于提供准确且深入的技术分享,但学识有限,难免会有疏漏之处。如有不足或错误,恳请各位业界同仁在评论区留下宝贵意见,您的批评指正是我不断进步的动力!😄😄😄
💖💖💖 如果您发现这篇博文对您的研究或工作有所裨益,请不吝点赞、收藏,或分享给更多需要的朋友,让知识的力量传播得更远。
🔥🔥🔥 “Stay Hungry, Stay Foolish” —— 求知的道路永无止境,让我们保持渴望与初心,面对挑战,勇往直前。无论前路多么漫长,只要我们坚持不懈,终将抵达目的地。🌙🌙🌙
👋🏻 在此,我也邀请您加入我的技术交流社区,共同探讨、学习和成长。让我们携手并进,共创辉煌!