引言
想象一下你正在测试一辆新的自动驾驶汽车。你在晴朗的日子里通过模拟器运行它,它能完美地为行人停车。你在雨中测试它,它也工作正常。但是,当你把它部署到现实世界中时,它突然在黄昏时分未能为骑自行车的人刹车,尤其是当路边停放的汽车在路上投下阴影时。
这就是情境故障 (contextual failure) 。 系统的失败并不是因为它在一般意义上坏了;它之所以失败,是因为环境情境 (光照) 、任务约束 (制动距离) 和系统状态 (传感器噪声) 的特定组合共同“欺骗”了它。
发现这些“边缘情况 (edge cases) ”是机器人测试的圣杯。然而,找到它们极其困难。你不可能简单地测试所有可能的时间、天气和交通组合——这将需要几乎无限的时间和金钱。此外,与数学题不同,我们通常没有一个明确的方程来定义“故障”。机械臂的奇怪振动或汽车的险些碰撞是主观的,很难编码成成本函数。
在麻省理工学院 (MIT) 信息与决策系统实验室 (LIDS) 最近发表的一篇题为 “Cost-aware Discovery of Contextual Failures using Bayesian Active Learning” (利用贝叶斯主动学习对情境故障进行成本感知发现) 的论文中,研究人员提出了一种复杂的新框架来解决这个问题。他们将人类专业知识 (或作为专家的 LLM) 与 贝叶斯主动学习 相结合,以便在不耗尽预算的情况下高效地搜寻这些罕见且危险的场景。
在这篇深度文章中,我们将剖析这种方法是如何工作的,为什么“覆盖率”是测试的秘诀,以及他们如何使用这种技术来破解——并修复——机械臂和自动驾驶算法。
核心问题: 为什么传统的证伪方法会失败
在工程学中,“证伪 (falsification) ”是试图破坏你的系统以证明它不安全的过程。传统方法通常分为三类:
- 基于模型的方法: 假设你有一个完美的机器人数学模型。 (剧透: 在现实世界中,你很少有) 。
- 基于优化的方法: 试图最小化特定的成本函数。如果成本降至零以下,就算发现了故障。但这需要你编写一个完美描述“故障”的数学函数,而对于细微的行为来说,这通常是不可能的。
- 随机采样: 只是掷骰子,希望你能发现一个错误。这种方法效率低下,很少能发现复杂的、“深藏角落”的故障。
这篇论文的作者解决了一个更现实的、“黑盒”场景,其中:
- 我们不知道系统的内部工作原理。
- 评估系统是昂贵的 (运行真实的机器人需要时间并有损坏的风险) 。
- 我们需要一位专家 (人类或 AI) 来判断是否发生了故障。
解决方案概览
研究人员提出了一个整合实验、专家反馈和概率建模的循环。

如 图 1 所示,该过程按循环进行:
- 实验 (Experiments) : 系统运行测试场景 (例如,特定的路况) 。
- 情境推理 (Contextual Reasoning) : 专家 (人类或 ChatGPT) 观察结果并进行评估。
- 代理模型 (Surrogate Model) : 一个概率模型 (高斯过程) 更新其对故障可能隐藏位置的理解。
- 主动学习 (Active Learning) : 算法计算下一个最佳测试场景,以最大化发现率和多样性。
方法论: 如何搜寻故障
让我们拆解一下这个框架内部的机制。目标是找到一组导致系统失败的场景参数 \(z\) (如天气、速度、障碍物位置) 。
1. 定义目标
首先,我们需要定义我们在寻找什么。研究人员定义了一个“目标集” \(\Omega\)。这个集合包含所有故障严重程度 (\(\gamma\)) 高于特定阈值 (\(\delta\)) 的场景。

通俗地说: 我们正在参数空间中搜寻那些会出问题的区域。
2. 环中专家 (The Expert in the Loop)
由于我们无法用数学方程写出“汽车开得很别扭”,框架依赖于专家评估函数 \(g\)。这位专家为不同的“故障模式”打分。
例如,在机械臂任务中, 模式 1 可能是“达到关节极限”,而 模式 2 可能是“错过目标物体”。专家为每种模式提供分数。有趣的是,论文证明你并不总是需要人类来做这件事。他们成功地使用 大型语言模型 (LLMs) (如 GPT-3.5) 来分析模拟日志并充当“专家”裁判。
3. 代理模型 (大脑)
因为运行真实的机器人很昂贵 (高“评估成本”) ,我们不能测试所有东西。我们需要一个模型,它可以在不实际运行的情况下猜测测试结果。这被称为代理模型 (Surrogate Model) 。
作者使用了 高斯过程 (GPs) 。 GP 是一种强大的概率工具,它不仅预测结果,还预测结果的不确定性。
- 如果 GP 确信某个区域是安全的,系统就不会浪费时间在那里测试。
- 如果 GP 不确定,或者预测故障几率很高,系统就会标记该区域进行调查。
4. 通过“覆盖率”进行主动学习
这是论文中最具创新性的部分。大多数测试算法只想找到一个故障。一旦找到,它们就会停止,或者不断地发现完全相同的故障。
但是,知道汽车在 50 英里/小时时会撞车是没有用的,如果你不知道它在雨中 10 英里/小时时也会撞车。我们需要多样性 。
研究人员引入了一个称为 期望覆盖率提升 (Expected Coverage Improvement, ECI) 的指标。他们希望以两种方式覆盖搜索空间:
- 参数空间覆盖 (\(C_p\)) : 探索多样化的输入。不要只测试晴天;也要测试雨天、雪天和雾天。
- 度量空间覆盖 (\(C_m\)) : 探索多样化的严重程度。找到灾难性的故障,也要找到轻微的小故障。
采集函数 (选择下一个测试的逻辑) 如下所示:

在这里,算法平衡了探索物理参数 (\(\mathbb{N}_p\)) 和故障结果 (\(\mathbb{N}_m\)) 。通过最大化这个函数,系统始终选择那个能为我们对系统弱点的理解增加最多新信息的测试用例。
实验验证
为了证明这比单纯的猜测更有效,研究人员在三个不同的领域进行了广泛的实验。
案例研究 1: “Push-T” 机器人任务
在这个任务中,机械臂必须将一个 T 型块推到目标位置。这是一个经典的控制问题,但具有欺骗性的难度。

研究人员将他们的方法 (ECI) 与随机采样 (Random Sampling) 和置信区间上界 (UCB,一种标准的优化技术) 进行了比较。
结果: 标准优化 (UCB) 会“卡住”。它找到一个机器人失败的点,然后不断地钻研那里。随机采样则太分散了。然而,提出的 ECI 方法描绘出了整个故障地形。

请看上面的 图 2 。
- UCB (左) : 将所有的测试都集中在一个微小的红点上。它发现了一个故障,但错过了全局。
- ECI (中) : 将样本沿着故障的“边界”展开。它有效地描绘了危险区域的轮廓。
- 随机 (右) : 只是噪音。
虚实迁移差距 (Sim-to-Real Gap)
他们不仅在代码中运行,还将其实际部署在真实的 UR3E 机器人上。他们发现,真实的机器人存在模拟器中不存在的故障模式,特别是与关节极限和线缆张力相关的故障。

图 9 展示了这些故障的实际轨迹。该框架能够明确区分 模式 1 (关节极限) 和 模式 2 (训练数据不足) 。后来,它甚至发现了一个令人惊讶的 模式 3 (工作空间限制) ,这是研究人员最初没有考虑到的,证明了该系统适应新的、意外故障类型的能力。
案例研究 2: 自动驾驶感知 (CARLA)
接下来,他们处理了一个高保真的自动驾驶模拟器 (CARLA) 。目标: 测试 YOLO 目标检测器。场景涉及行人过马路,同时两辆车 (自车和前车) 进行机动。
参数 (\(z\)) 包括汽车的制动距离和太阳的位置 (亮度) 。
挑战: 我们能找到 YOLO 无法看到汽车或人的场景吗? “专家”: 他们没有让人类观看数小时的录像,而是使用了 LLM。他们将模拟数据 (物体列表和字幕) 输入 GPT-3.5,并询问: “感知系统是否因为光线不好而失败?”

图 4 可视化了发现的故障。系统成功找到了特定的“情境故障”:
- 模式 1: 由于距离远导致的误检。
- 模式 2: 由于光线差 (眩光/阴影) 导致的误检。
主动学习代理意识到仅仅让环境“变暗”是不够的;它必须找到距离和光线的特定组合来破坏神经网络。
案例研究 3: 自动紧急制动 (AEB)
最后一个实验在 Simulink 环境中测试了自动紧急制动系统,涉及骑行者、行人和停放的汽车。

这个场景是高维的 (许多变量: 速度、位置、开始时间) 。
- 模式 1: 骑行者被停放的汽车遮挡 (隐藏) ,导致制动延迟。
- 模式 2: 行人进入场景较晚,导致紧急停车。
表 6 突出显示了性能指标。提出的 ECI 方法在发现“正样本” (实际故障) 方面显着优于随机采样。

因为搜索空间如此巨大,随机采样就像大海捞针。贝叶斯方法就像金属探测器,引导搜索走向高不确定性和高故障概率的区域。
为什么这很重要: 形成闭环
发现故障只是战斗的一半。最终目标是修复它们。
在 Push-T 机器人实验中,研究人员提取了算法发现的故障——特别是机器人离开工作空间的“模式 3”故障——并使用它们来生成新的训练数据。

图 15 展示了“之前和之后”。
- 左: 原始策略将机械臂驱动到界外 (故障) 。
- 右: 使用算法发现的特定“边缘情况”重新训练策略后,机器人学会了保持在安全限制内的修正轨迹。
这展示了完整的流程: 发现 \(\rightarrow\) 分析 \(\rightarrow\) 修复。
结论
自主系统的安全性取决于我们要找到“未知的未知 (unknown unknowns) ”的能力——那些在标准测试中不会出现的奇怪的情境故障。
这篇研究论文对该领域做出了三个主要贡献:
- 成本感知: 它承认测试是昂贵的,并珍视每一个样本。
- 情境推理: 它超越了简单的数学成本,允许专家 (或 AI 代理) 根据情境定义故障。
- 多样性优先: 通过使用具有覆盖率指标的贝叶斯主动学习,它确保我们不仅仅是找到一个错误,而是描绘出错误的整个图景。
随着我们迈向一个充满机器人和自动驾驶汽车的世界,像这样的工具——能够在故障在道路上发生之前高效地根除它们——对于部署安全将是必不可少的。引入 LLM 作为评估者的举措也为自动化机器中主观的、类似人类行为的测试开辟了令人兴奋的可能性。
](https://deep-paper.org/en/paper/670_cost_aware_discovery_of_co-2600/images/cover.png)