小明攥着爸爸手写的“寻亭指南”,站在雾气弥漫的森林公园入口。指南上写着:“过石桥左转,遇大榕树右拐,沿溪走到第三个岔路口上坡……”可公园里岔路交错、雾气遮眼,指南不会告诉他每个区域长什么样。小明只能边看边走:把走过的路口记在心里,把特别的地标刻进脑海;走错了路,就退回到最近的岔路口重新判断;若发现又绕回那棵歪脖子树,便知道自己犯了“鬼打墙”。这套“边看边走、记路回头”的生存智慧,正是视觉语言导航(VLN)的核心——让 AI 听懂自然语言指令,用摄像头当眼睛,用记忆模块当路线图,在完全陌生的环境里找到目标。本文就用小明的森林探险,拆解记忆与回溯的全部秘密。
理解视觉语言导航的记忆与回溯机制,是从事多模态导航、具身智能研发的必修课——它直接决定智能体能否在复杂环境中稳定找到目标,也是面试中区分“调包侠”与“真工程师”的高频考点。
可视化演示
交互展示视觉语言导航中的空间探索、记忆存储与回溯决策过程,理解智能体如何在复杂环境中避免迷路。
本节配有交互动效(进入视口后自动加载,约 3KB)。
空间探索:拓扑图遍历 智能体在房间拓扑图中逐步探索新节点 已访问节点标记避免重复探索 Visited ∪ Frontier → Coverage 系统性遍历确保空间覆盖
导航任务总览
小明的第一步,是学会“一边看路一边走路”。他站在岔路口,眼睛扫过路牌和地形(视觉观测),心里默念指南上的句子(读指令),然后在脑内决策:走左边还是右边(动作)。每走一步,世界就变一个样,他又重新观察、重新判断。这不只是“看见——迈腿”这么简单,真正的关键在于:他必须把刚刚看过的地方记下来,否则转两个弯就会彻底搞不清自己在哪。
在 AI 领域,这个任务叫视觉语言导航(Vision-Language Navigation, VLN)。它要求一个智能体(可以想象成小明的数字分身)接收一段自然语言指令,在仿真或真实的视觉环境中自主移动,最终停在指令描述的目标位置。与传统的“给个坐标点导航”不同,VLN 的难点在于指令是模糊、口语化的,环境是未知的,而且智能体只能靠摄像头“看”。
VLN 的每一步都遵循“感知—记忆—决策”闭环:智能体先通过视觉编码器(如 CNN/ViT)把当前画面变成特征向量,再把这个向量和历史观测、指令文本一起送入策略网络,输出可选动作的概率分布,然后采样出动作执行。环境反馈新画面,循环继续。用数学表示:
1. 动作 $a_t$:第 t 步智能体执行的动作,比如前进 0.25 米或左转 30 度。它是策略网络的输出,也是与环境交互的“手脚”。
2. 策略 $\pi_\theta$:以 $\theta$ 为参数的神经网络,相当于小明的决策大脑:输入视觉和语言,输出每个动作的“合适程度”。
3. 条件竖线 |:读作“在……条件下”。它表示动作的选取依赖右侧的所有信息,而不是瞎猜。
4. 观测序列 $o_{1:t}$:从第 1 步到第 t 步的全部视觉观测。这正是“历史记忆”的原始素材——小明一路看见的风景。
5. 指令 $I$:自然语言指令,如“绕过喷泉左转”。它是导航的目标描述,也是回溯时用来对质的“指南原文”。
所以,小明的每一步都是一次“看、记、想、动”的循环。看见的不只是当下这帧画面,还得连同此前的记忆一起进入决策。也就是说,在视觉语言导航里,“记性好”和“眼神好”同样重要——这正是下一节要展开的记忆模块。
记忆模块设计
爸爸教小明,进山第一件事是准备一本“手账”。每到一个岔路口就停下来,画一笔:这条路通向哪、路上有什么特别的树、大概走了多少步。手账不是日记,不能什么都往里写,否则回头翻的时候根本找不到有用的那条。小明逐渐明白:记什么、记多少、怎么更新,本身就是一门学问。
AI 里也有这样一本“手账”,叫记忆模块(Memory Module)。它负责把智能体每一步看到的内容保存下来,供后续决策使用。原始画面是巨大的像素矩阵,直接存既不现实也没必要——于是智能体会先用视觉编码器把每帧画面压缩成几百维的特征向量,再连同位置、朝向、时间戳一起写入记忆库。这相当于小明手账里的一句话:“10:20,石桥岔路口,朝北,河在右手边”。
记忆模块有三个关键设计问题。第一,观测存储:用什么结构存?常用的是滑动窗口队列(只保留最近 N 步,保证实时性)加关键帧缓冲(把岔路口、可疑目标等“重要帧”单独保存)。第二,容量管理:记忆库塞满了怎么办?常见做法是 TopK 裁剪——按“与指令的相关度 + 信息新颖度”打分,只留分数最高的 K 条。第三,更新策略:新观测来了是直接追加,还是与旧记忆合并?如果新观测与某个旧记忆高度相似,就说明回到了老地方,这时应做“循环标记”而非重复存储。
1. 记忆库 $M_t$:第 t 步时智能体保存的全部关键观测的集合,类似于小明手账里的所有条目。
2. 编码函数 $\mathrm{Encode}$:把原始图像压成紧凑特征向量的“摘要器”,只保留与导航相关的语义信息。
3. 并集 $\cup$:把新观测特征与旧记忆合并成一个大集合,代表“先都装进手账再说”。
4. $\mathrm{TopK}$ 裁剪:按重要度分数排序,只保留前 K 条。分数低的旧记忆被丢弃,防止手账越写越厚、找不到重点。
小明后来发现,手账记得好,回头找路就快;记成流水账,等于没记。AI 的记忆模块也是一样——项目里常把“是否记得住关键岔路口”作为判断导航系统好坏的第一印象。但光有手账还不够,他脑子里的“地图”要长什么样?这是空间记忆表示的话题。
空间记忆表示
小明的手账记得再详细,都是一条条孤立的笔记。真正让他不迷路的,是脑子里那张“地图”。爸爸教他三种画法:第一种,把岔路口当成珠子、路当成线,串成一张“绳结图”;第二种,把公园想象成一张巨大的围棋盘,走过的格子涂上色;第三种,在图上给特别的树、亭子、石头贴上名字标签。
这三种画法对应 AI 的三种空间记忆表示。拓扑地图(Topological Map):用节点表示关键位置(岔路口、房间门口),用边表示可达关系与大致距离。它结构紧凑,特别适合“从 A 到 B 怎么走”的路径推理,也是回溯时定位“最近岔路口”的利器。占据栅格地图(Occupancy Grid Map):把环境离散成固定大小的格子,每个格子记录“空闲/占用/未知”三种状态。它擅长避障和覆盖标记——走过的格子标记为“已探索”,规划时优先选未探索方向。
第三种是语义地标(Semantic Landmarks):在记忆条目上附加“红色消防栓”“玻璃门”“收银台”等语义标签。这些标签可以直接与自然语言指令中的描述对齐——指令说“在蓝色招牌处右转”,智能体只需在记忆库中检索带“蓝色招牌”标签的地标。要注意,三种表示并不互斥:实际系统常用拓扑图做高层规划、栅格图做局部避障、语义标签做目标确认。智能体每走一步,都需要把“我看到的局部视角”换算成“地图上的全局坐标”:
1. 世界坐标 $p^{\text{world}}_t$:第 t 步时智能体在地图(世界坐标系)中的位置,是“上帝视角”下的坐标。
2. 上一时刻位置 $p^{\text{world}}_{t-1}$:上一步的全局坐标,作为累加的基准。
3. 旋转矩阵 $R(\theta_t)$:把“以智能体朝向为基准的局部坐标”旋转到世界坐标的变换。$\theta_t$ 是当前朝向角。
4. 局部位移 $\Delta p^{\text{ego}}_t$:这一步相对智能体自身朝向的移动量(比如“向前走了 0.5 米”)。
有了这三层“脑内地图”,小明不仅能回答“我现在在哪”,还能回答“我该往哪走、哪里去过”。地图越准确,回头找路就越从容。但“该不该回头”是个更微妙的判断——我们来聊聊回溯的触发条件。
回溯触发条件
小明在岔路口常常纠结:“我是不是走错了?”爸爸教了他三条判断法则:第一,指南说前方有石桥,你眼前却是断崖——明显对不上;第二,你走了一刻钟,又看见那棵被雷劈过的歪脖子树——八成在兜圈子;第三,心里觉得这条路和指南描述越来越不像,信心越来越低——别硬撑,该回头了。
对应到 AI 系统,回溯触发条件主要有三类。指令冲突检测:把自然语言指令解析成空间约束(方向词、目标词),再看当前可选动作是否满足约束——比如指令要求“左转进入走廊”,但左侧检测到墙体,冲突成立,触发回溯。循环状态识别:利用空间记忆判断当前位置是否与近期访问过的位置高度重合。具体做法是计算当前观测特征与记忆库中近 N 条特征的相似度,若最大值超过阈值,就判定“鬼打墙”。
第三类也是最常用的,是置信度阈值(Confidence Threshold)。模型每一步都会输出一个“当前朝向目标方向的可能性”分数,用最近若干步的滑动平均作为当前置信度。分数低于预设阈值 $\tau$ 时,说明智能体自己都“没底”了,应主动触发回溯:
回溯触发:当且仅当 $\mathrm{Conf}_t < \tau$ 时,转入回溯流程。
1. 余弦相似度 $\cos(\cdot,\cdot)$:衡量两个特征向量方向一致程度的分数,范围 $[-1,1]$。越接近 1 越像,越接近 0 或负数越不像。
2. 视觉特征 $f(o_{t-i})$:第 $t-i$ 帧画面的编码向量,由视觉编码器提取。
3. 指令特征 $g(I)$:自然语言指令的编码向量,由文本编码器(如 CLIP 文本分支)提取。
4. 窗口大小 $N$:取最近多少帧做平均。$N$ 太小容易被单帧噪声干扰,$N$ 太大则反应迟钝。
5. 阈值 $\tau$:经验设定的回溯触发线。$\tau$ 太高容易频繁回头,太低则会错过纠错时机。
这三条判断法则,让小明从“瞎走”变成“会反思”。触发回溯只是第一步——到底怎么回、回到哪、回去之后干什么,才是真正考验策略的地方。
回溯执行策略
一旦决定回头,小明的第一反应是“别慌,打开手账”。他不会沿路哭着重走一遍,而是先定位“最近的那个岔路口”——那是他做出最后一个分叉决策的地方。目标很明确:以最小代价回到那个点,重新读指南,换一条路走。
技术上有三个动作。第一,路径规划回溯:利用拓扑地图和记忆栈,计算出从当前位置回到候选回溯点的最短路径。由于去程路径已被记录,最直接的做法是沿记忆栈反向移动(栈式回溯);若拓扑图中存在已知的捷径,也可以用图搜索(如 Dijkstra)找到更短的返回路线。第二,目标重定位:回到岔路口后,结合当前观测与指令重新估计目标的方位——有时会发现“刚才的路线其实大方向没错,只是入口搞错了”。
第三,探索策略切换:如果回溯后仍无法与指令对齐,智能体应从“跟随指令”模式切换到“系统探索”模式——优先选择记忆中未访问的相邻区域(前沿优先策略),扩大覆盖面直到找到匹配指令的线索。如何选择回溯目标点?一个实用公式是权衡“目标点与指令的匹配度”与“到达该点的路程代价”:
1. 岔路口集合 $\mathcal{B}$:记忆库中所有候选回溯点的集合,如“石桥岔路”“大榕树路口”。
2. 匹配置信度 $\mathrm{Conf}(k)$:回溯点 $k$ 附近观测与指令的匹配分数,反映“这条路是不是更接近目标”。
3. 路径代价 $d_{\text{route}}(p_t, k)$:从当前位置走到回溯点 $k$ 的实际路程(不是直线距离)。路径代价越大,回溯成本越高。
4. 权衡系数 $\lambda$:控制“匹配度”与“路程”的权重。$\lambda$ 大则倾向于选近处的点,$\lambda$ 小则敢跑远路去更靠谱的点。
小明按这套打法,每次回头都又快又准。但回头多了,他发现一个更深层的问题:与其事后补救,不如事前预防。怎么少走冤枉路、怎么算走得好不好?这就是防迷路与评估的话题。
防迷路与评估
爸爸后来给小明两个任务:一是“尽量别迷路”,二是“迷路了也别慌”。小明总结出两个土办法:认准地标——把三棵并排的杉树、红色尖顶的亭子当成“锚点”,每次看到它们就知道自己在哪;另一个是“涂格子”——走过的地方就在脑内地图上涂满颜色,绝不回头逛同一个片区。
对应到技术方案,地标识别(Landmark Detection)是在视觉特征中提取显著、稳定的物体或结构,将其语义标签与空间位置绑定存入记忆。它有两个用途:空间参照——遇到地标就校正自身定位;目标确认——当观测到的地标与指令描述一致时,可以高置信度地判断“到地方了”。覆盖标记(Coverage Marking)则是维护一个“已探索区域集合”,决策时优先选择未覆盖方向,从根源上杜绝重复探索,也显著降低循环回溯的频率。
最后,怎么评价一个导航智能体好不好?业界最常用的三个指标:成功率(SR, Success Rate)衡量智能体是否最终停在目标附近(通常要求距目标 3 米内);导航误差(NE, Navigation Error)计算终点与目标点的平均欧氏距离;路径加权成功率(SPL, Success weighted by Path Length)在成功率的基础上叠加速度惩罚,走的路比专家最短路径越绕,得分越低:
1. 测试任务总数 $N$:验证集里导航任务的数量(如 1000 条指令-环境组合)。
2. 指示函数 $\mathbb{I}[\cdot]$:括号内条件成立则为 1,否则为 0。用来统计成功的任务个数。
3. 专家最短路径 $\ell_i$:人工/专家在已知环境中算出的最短路径长度,作为“理想答案”。
4. 实际路径 $p_i$:智能体真实走过的距离,包含绕路和回溯的部分。
5. 成功指示 $S_i$:第 $i$ 个任务是否成功(与 SR 中的指示函数一致)。
小明最终站在听风亭前,回望来时路:记路、认路、回头、防迷路,每一步都缺一不可。而对 AI 工程师来说,这四件事分别对应记忆模块、空间表示、回溯决策和评价体系——理解了它们,就掌握了视觉语言导航从“理论”到“落地”的全链路。
AI 应用场景
酒店配送机器人
阶段:多模态感知 + 导航决策 + 记忆管理
解决的问题:传统送物机器人只能按预设路径或激光 SLAM 行进,听不懂“把毛巾送到302房间”这种口语指令,一旦遇到临时封路就原地卡死。引入 VLN 记忆与回溯后,机器人把走廊岔路、门牌号、临时障碍都存入记忆,走错楼层时自动回溯到电梯口重新定位。
具体案例:某酒店部署的送物机器人接到“送到302”指令后,在 3 楼走廊发现目标房门被清洁车堵住。它通过记忆模块回溯到电梯厅岔路口,改走另一侧环形走廊到达 302,全程耗时比人工干预方案缩短 60%。
仓库巡检与盘点
阶段:路径规划 + 覆盖标记 + 语义记忆
解决的问题:巡检机器人需要执行“检查所有打开的货箱”这类语义任务,若没有历史记忆,会在同一巷道反复巡逻、漏掉未访问区域。空间记忆(栅格地图 + 语义标签)让它标记已查区域,遇到死胡同自动回溯。
具体案例:某电商仓库的巡检机器人利用栅格地图维护“已探索集合”,执行盘点指令时优先走未覆盖巷道;发现某排货架与任务描述不符(应是饮料区却是日用品区),触发回溯返回主干道重新规划,最终完整巡检 36 条巷道。
视障人群AR导航助理
阶段:实时感知 + 空间记忆 + 回溯提醒
解决的问题:视障用户在陌生商场找电梯时,传统语音导航无法感知动态搬移的障碍物,走错后也没有“回到上次正确位置”的引导。具备记忆回溯的 AR 终端记录用户走过的路径和关键地标,检测到路线偏移时语音提示。
具体案例:某视障辅助项目使用头戴 AR 相机 + 骨传导耳机,用户在商场迷路时,系统通过记忆中的“扶梯口 + 奶茶店”地标计算回溯路径,语音引导返回最近岔路口,再切换到正确路线。
Python 演示
"""历史观测记忆与回溯机制:网格世界演示""" class GridAgent: """在网格世界中边看边走、记路回头的智能体""" def __init__(self, size=6, obstacles=None): self.size = size self.obstacles = set(obstacles or [(2, 2), (3, 2), (4, 2)]) self.pos = (0, 0) self.visited = {(0, 0)} # 历史观测记忆:访问过的格子 self.route = [] # 来路栈:记录每一步的出发位置 self.backtrack_count = 0 # 回溯次数 def is_ok(self, cell): x, y = cell in_bounds = 0 <= x < self.size and 0 <= y < self.size return in_bounds and cell not in self.obstacles def forward(self, direction): """按方向尝试前进,成功返回 True 并记录记忆""" target = (self.pos[0] + direction[0], self.pos[1] + direction[1]) if not self.is_ok(target): return False self.route.append(self.pos) # 把出发位置压入来路栈 self.pos = target self.visited.add(target) # 记忆新格子 return True def rollback(self): """沿来路栈回退一步,模拟回溯到上一个决策点""" if not self.route: return False self.pos = self.route.pop() self.backtrack_count += 1 return True def navigate(self, instructions): """执行指令序列;受阻时回溯并尝试未访问的备选方向""" fallback = [(0, 1), (1, 0), (0, -1), (-1, 0)] for step, (dx, dy) in enumerate(instructions, 1): if self.forward((dx, dy)): print(f"第 {step} 步: 指令({dx},{dy}) -> {self.pos}") continue print(f"第 {step} 步: 指令({dx},{dy})受阻,触发回溯") self.rollback() bp = self.pos moved = False for alt in fallback: target = (bp[0] + alt[0], bp[1] + alt[1]) if self.is_ok(target) and target not in self.visited: self.forward(alt) print(f" 已回到 {bp},改走新方向 {alt}") moved = True break if not moved: print(" 所有方向都已探索,原地等待") return self.pos if __name__ == "__main__": # 指令序列:右、右、上、上、左、上(第 4 步向上会撞到障碍物) instructions = [(1, 0), (1, 0), (0, 1), (0, 1), (-1, 0), (0, 1)] agent = GridAgent() final_pos = agent.navigate(instructions) print(f"结束位置: {final_pos}") print(f"记忆格数: {len(agent.visited)}") print(f"回溯次数: {agent.backtrack_count}")
self.visited = {(0, 0)}历史观测记忆:用集合记录访问过的格子,对应记忆模块的存储与覆盖标记。self.route.append(self.pos)每次移动前把来路压栈,回溯时才有路可回,对应路径规划回溯中的记忆栈。if not self.is_ok(target): return False指令方向与物理环境冲突检测:目标格是障碍或越界即返回失败。self.rollback()触发回溯:弹栈回到上一个决策点,并累计回溯次数。if self.is_ok(target) and target not in self.visited:备选方向必须避开已探索区域,体现“覆盖标记”防重复探索的思想。self.backtrack_count += 1统计回溯次数,相当于评估导航系统的“纠错开销”。
常见误区
误区以为导航记忆就是把摄像头拍的每一帧画面都存进硬盘,回放时逐帧比对,存得越全记得越好。
正解实际存的是压缩后的特征向量 + 关键信息(位置、朝向、语义标签)。原始画面数据量大、冗余高,智能体会先编码成紧凑表示,再用容量管理(滑动窗口、TopK)保留最有用的部分。就像小明的手账只记“岔路口 + 地标”,不会把每片树叶都画下来——记得全不等于记得好。
为何常见:人的直觉认为“记得全”等于“存得全”,忽视了 AI 算力和存储的限制,也不理解特征提取的意义。
误区以为一旦触发回溯,智能体就要一路退回起点、从零开始重新导航,之前的努力全部作废。
正解回溯是退回到“最近的岔路口/决策分歧点”,而不是起点。记忆模块记录了分歧点位置,智能体回到那里后结合指令重新选路即可。全程退回起点既浪费时间,也丢掉了已探索区域的信息。就像小明走错一个岔路,只需退回那个岔路口,不必回到公园门口重新出发。
为何常见:把回溯理解成“整体重来”,是因为不清楚智能体的记忆中保存了分层路径信息,误以为只能靠全局重走纠错。
误区觉得视觉语言导航靠强大的单帧识别模型就够了,看一步走一步,不用记路也不用回头。
正解导航本质上是时序决策问题。单帧观测无法覆盖“我从哪来、附近哪些地方已探索、前方与指令是否一致”这些信息。没有记忆的智能体在环路、重复纹理环境中必然迷路;回溯机制则是纠错的最后保障。好比视力再好的人,闭着眼睛也走不出迷宫——记路和回头缺一不可。
为何常见:初学者容易被“大模型什么都会”的宣传误导,忽略了具身任务中环境交互和状态历史的重要性。
误区以为栅格地图、拓扑地图、语义地标三选一,选对了就万事大吉,其他表示都是多余的。
正解三种表示各有所长:拓扑图擅长路径推理和回溯点定位;栅格图擅长避障和覆盖标记;语义地标擅长与自然语言指令对齐。实际系统往往混合使用——拓扑图做高层规划,栅格图做局部避障,语义标签做目标确认。就像小明既在脑内画路线图,又会记住“大榕树右转”,两种方式不冲突,反而互补。
为何常见:教学资料常单独介绍每种表示,让人误以为彼此互斥;实际工程中多表示融合才是常态。
面试题
Q1. 视觉语言导航(VLN)的核心任务是什么?
- A.让AI依据自然语言指令在视觉环境中导航到目标← 正确答案
- B.让AI识别图片中物体的种类并输出类别标签
- C.让AI把中文文本自动翻译成另一种语言文本
- D.让AI从文字描述中自动生成逼真的人物语音
答案:A。VLN 的本质是“语言 + 视觉 → 动作”,A 完整描述了这一任务。B 是纯视觉识别,不涉及移动和指令跟随;C 是机器翻译;D 是语音合成,三者都不涉及在环境中导航,故排除。
Q2. 在视觉语言导航中,“历史观测记忆”最主要的作用是什么?
- A.提高摄像头拍摄画面的分辨率清晰度
- B.记录去过哪里看过什么避免迷路重复走← 正确答案
- C.减少模型在训练阶段的显存占用大小
- D.加快自然语言指令的解析与生成速度
答案:B。历史观测记忆让智能体知道“从哪来、去过哪、看见过什么”,是避免迷路和重复探索的基础,对应 B。A 属于图像处理,C 属于工程优化,D 属于语言模块,都不是记忆模块的核心职责。
Q3. 记忆模块做“容量管理”时,最常用的手段是什么?
- A.把记忆全部写入磁盘永久保存不删除
- B.用滑动窗口与TopK裁剪保留关键记忆← 正确答案
- C.将记忆复制多份备份以增强系统可靠性
- D.把记忆压缩成单一位向量以节省存储空间
答案:B。记忆不能无限增长,常用“最近 N 步滑动窗口 + 按重要度 TopK 裁剪”保留关键信息,对应 B。A 永久保存会撑爆存储;C 备份不解决冗余问题;D 压缩成单一位向量会丢失导航所需的空间细节。
Q4. 下列哪种空间记忆最适合表达“岔路口A左转20米到达B”?
- A.占据栅格地图把每个格子标记为占用状态
- B.拓扑地图用节点表示位置边表示可达关系← 正确答案
- C.RGB像素图像记录环境的颜色纹理信息
- D.原始激光点云保存环境的三维几何细节
答案:B。拓扑地图用节点表示关键位置、边表示连通关系与距离,天然适合表达“岔路口 A 到 B 怎么走”。栅格地图(A)擅长覆盖与避障,但表达路径语义较笨拙;C、D 是原始感知数据,未抽象出空间拓扑关系。
Q5. 回溯触发条件中“循环状态识别”依据的核心信号是什么?
- A.当前观测与近期记忆中的特征高度相似← 正确答案
- B.当前观测与指令文本的差异非常巨大
- C.电池剩余电量低于某个预设的阈值
- D.网络通信延迟超过预先设定的上限
答案:A。循环识别(防“鬼打墙”)通过比较当前观测与记忆库中近期条目的特征相似度,相似度太高说明回到老地方,对应 A。B 是指令冲突或置信度低的信号;C、D 是工程层面的资源告警,与空间循环无关。
Q6. 当总置信度Conf低于阈值触发回溯时,最先应该执行的动作是什么?
- A.返回记忆中最远的出发点重新开始导航
- B.沿记忆栈回到最近岔路口并重估目标方位← 正确答案
- C.随机选择一个未访问方向继续盲目行走
- D.立即停止导航并等待人工远程的救援
答案:B。回溯的首选动作是沿记忆栈回到最近的决策分歧点,结合当前观测重新估计目标方位(B)。退回最远出发点(A)浪费已探索信息;随机走(C)没有利用记忆,可能再次迷路;停机等待(D)不是自主导航的纠错方式。
Q7. SPL指标相比SR指标增加的惩罚项是什么?
- A.实际路径相对于最短路径的冗余绕路程度← 正确答案
- B.模型推理过程消耗的GPU算力资源大小
- C.导航过程中触发回溯次数的多少与频率
- D.指令文本长度对推理速度的影响程度
答案:A。SPL 在 SR“是否到达”的基础上,用 ℓ / max(p, ℓ) 惩罚路径冗余——实际路径 p 比专家最短路径 ℓ 越绕,得分越低,对应 A。B、C、D 都不是 SPL 的定义成分。
Q8. 以下哪些情形应当触发记忆回溯机制?(选两项)
- A.指令要求左转但左侧检测到墙体障碍物← 正确答案
- B.当前观测与指令匹配的置信度持续偏高
- C.空间记忆显示连续访问同一岔路口多次← 正确答案
- D.系统刚刚上电初始化且没有任何记忆
答案:AC。A 是指令冲突——要求的方向不可达,必须回溯;C 是循环状态识别——重复访问同一区域说明在兜圈子,也应回溯。B 置信度高说明方向正确,无需回头;D 没有记忆时谈不上回溯,应先探索建立记忆。
Q9. 关于空间记忆的三种表示,说法正确的有哪些?(选两项)
- A.拓扑地图适合做回溯时的岔路口定位← 正确答案
- B.栅格地图适合维护已探索区域的覆盖← 正确答案
- C.拓扑地图无法记录位置之间的连通性
- D.栅格地图无需传感器即可自动生成
答案:AB。拓扑图以节点和边记录位置及连通性,天然支持“最近岔路口在哪”的定位(A 对,C 错);栅格图逐格标记占用和探索状态,适合覆盖标记(B 对)。栅格地图必须由传感器观测构建,D 说法错误。
Q10. 在VLN回溯执行策略中,选择回溯目标点 k\* 的公式考虑了两个因素,它们是?
- A.回溯点与指令的匹配置信度高低← 正确答案
- B.当前位置到达回溯点的路径代价← 正确答案
- C.起始点到目标点的欧氏直线距离
- D.模型推理时单帧处理的延迟开销
答案:AB。回溯点选择公式 k* = argmax(Conf(k) - λ·d_route(p_t, k)) 权衡的是候选点与指令的匹配置信度(A)和到达该点的实际路径代价(B)。C 是任务评估用的最短路径长度,与回溯点选择无关;D 是工程性能指标,不属于决策公式的考量因素。