想象一辆在繁忙城市街道上行驶的自动驾驶汽车。它已经接受过数千小时驾驶视频的训练——包括汽车、行人、骑自行车的人和交通信号灯。突然,一个人穿着巨大的充气恐龙服装跑过人行横道。
汽车的摄像头看到的是一个“行人”,但形状不对劲。激光雷达传感器检测到了障碍物,但其尺寸与人类不符。系统感到困惑。这就是 分布外 (Out-of-Distribution, OOD) 问题: 识别那些与模型训练时所见数据显著不同的异常情况的挑战。
在安全至关重要的应用中,识别这些异常情况与识别正常数据同样重要。现代系统试图通过使用 多模态数据 (结合视频、音频和光流) 来解决这个问题。逻辑很简单: 如果视频传感器感到困惑,也许音频传感器能更清楚地识别。
然而,一篇题为 “DPU: Dynamic Prototype Updating for Multimodal Out-of-Distribution Detection” (DPU: 用于多模态分布外检测的动态原型更新) 的新研究论文指出了目前处理这些多模态系统的一个关键缺陷。现有的方法假设所有“正常”的训练数据都是完全一致的,这在无意中破坏了它们自身的准确性。
在这篇深度文章中,我们将探讨其提出的解决方案: 动态原型更新 (Dynamic Prototype Updating, DPU) 。 我们将看看它是如何帮助模型区分已知物体的“怪异”版本和真正的未知威胁的。
问题所在: 当“正常”并不统一时
要理解这篇论文的贡献,我们需要先了解多模态 OOD 检测的现状。
多模态差异的直觉
最近的进展利用了一种被称为 预测差异 (prediction discrepancy) 的现象。当一个多模态模型看到一个熟悉的物体 (分布内,或 ID) 时,它的所有感官通常是一致的。如果它看到一只狗在叫,视频会说是“狗”,音频会说是“狗”,动作 (光流) 也会说是“狗”。
然而,当模型遇到未知事物 (OOD) 时,各模态之间往往会产生分歧。视频可能不确定,而音频则确信是其他东西。先前的 SOTA (最先进) 方法,如“求同存异 (Agree-to-Disagree)”框架,正是利用了这一点。它们在训练过程中故意放大这种分歧,使 OOD 样本更加突出。
缺陷: 类内变异
问题在于,现有的方法将特定类别的每个样本都视为该类别的“完美”示例。它们假设数据具有高度的凝聚性。
但在现实世界中, 类内变异 (intra-class variation) 是巨大的。以“游泳”这个类别为例。
- 样本 A: 一位职业游泳运动员在清澈的奥运会泳池中游泳。
- 样本 B: 一个孩子在黑暗、浑浊的湖里戏水。
两者都是“游泳”。然而,样本 B 比样本 A 更“嘈杂”,且距离该类别的数学平均值更远。如果我们盲目地强迫模型在样本 B (本身这就很难识别) 上放大差异,我们可能会迫使模型将这个有效的游泳视频归类为异常。
![在使用 SOTA 框架 [11] (表示为 ‘AN’;中间的柱状图) 采用统一差异强化后,ID 准确率下降,而使用我们要提出的 DPU (右侧柱状图) 后准确率有所提高。该图展示了 MSP 和 ReAct 在使用 HMDB51 作为 ID 数据集的远 OOD 检测任务中的结果。](/en/paper/2411.08227/images/028.jpg#center)
如上图 A 所示,当研究人员应用统一差异强化 (“AN” 柱状图) 时,已知数据 (ID 准确率) 的准确率实际上比原始模型有所下降。通过将困难的 ID 样本视为离群值,模型变得困惑了。
解决方案: 动态原型更新 (DPU)
研究人员提出了一个适应数据的框架。DPU 不是对每个训练样本应用“一刀切”的规则,而是根据样本与类别“理想”版本的接近程度来区别对待样本。
该框架建立在三大支柱之上:
- 内聚-分离对比训练 (Cohesive-Separate Contrastive Training, CSCT): 组织特征空间。
- 动态原型逼近 (Dynamic Prototype Approximation): 寻找类别的真实“中心”。
- 按比例差异强化 (Pro-ratio Discrepancy Intensification): 智能施加压力。
在拆解数学原理之前,让我们先看看高层架构:

步骤 1: 内聚-分离对比训练 (CSCT)
在计算距离之前,我们需要一张稳定的地图。步骤 1 的目标是组织模型对世界的理解,使得:
- 所有“游泳”的片段都聚集在一起 (类内凝聚性) 。
- “游泳”片段与“跑步”片段相距甚远 (类间分离) 。
研究人员使用了 对比学习 (Contrastive Learning) 。 他们获取一批视频并查看其特征嵌入。他们希望将同类样本拉近,将不同类样本推远。
他们使用了一种改进的损失函数,称为 鲁棒边缘对比学习 (Robust Marginal Contrastive Learning, RMCL) 。

这里,\(f_{pos}\) 代表正匹配 (同类) 的相似度得分,而 \(f_{neg}\) 代表负匹配 (不同类) 的相似度得分。为了使模型更鲁棒,他们为正样本对添加了一个“角度间隔 (angular margin)” \(m\)。这迫使模型不仅要勉强学会区别,还要带着安全缓冲区去学习。

然而,仅靠对比学习是不够的。如果一批数据具有高方差,它有时会变得不稳定。为了解决这个问题,DPU 结合了 不变风险最小化 (Invariant Risk Minimization, IRM) 。 他们测量批次内损失的 方差 并试图将其最小化。

通过最小化方差 (\(\text{Var}(\mathcal{L}^j)\)),模型确保它学到的表示是一致的,无论哪些特定样本出现在训练批次中。这一步的最终损失结合了对比损失和方差惩罚:

步骤 2: 动态原型逼近
现在我们有了一个组织良好的特征空间,我们需要找到每个类别的“原型 (Prototype)”。原型本质上是特定类别的数学重心 (例如,一只狗的“完美”代表) 。
在标准方法中,原型可能只是所有样本的移动平均值。但还记得那个“泥潭游泳”的例子吗?如果我们让那个离群样本过多地影响我们的原型,类别的中心就会向离群值偏移,使得原型无法代表常态。
DPU 通过 基于方差动态更新 原型来解决这个问题。

这是一个移动平均更新公式。\(P^y\) 是类别 \(y\) 的原型。\(H^y_{av}\) 是当前批次的平均值。
奥妙在于 更新率 (Update Rate) 项:
\[ \frac{1}{\gamma + \operatorname{Var}(\mathcal{L}^j) N^y} \]注意分母。它包含了当前批次的方差 \(\operatorname{Var}(\mathcal{L}^j)\)。
- 低方差: 批次数据干净且一致。分母小。更新率 高。原型会显著更新,因为我们信任这些数据。
- 高方差: 批次数据混乱或嘈杂。分母大。更新率 低。原型几乎不动,防止其被离群值破坏。
步骤 3: 按比例差异强化 (PDI)
这是直接改善 OOD 检测的核心贡献。
我们希望训练模型对模态之间的差异 (例如视频与音频) 敏感。但如前所述,我们不应该惩罚难以分类的 ID 样本。
DPU 为每个样本计算一个 动态强化率 (\(\mu\))。它查看样本 (\(F_i^v\)) 与其类原型 (\(P^y\)) 之间的距离。
- 样本接近原型: 这是一个“教科书式”的例子。我们希望模型在这里非常自信。我们保持较低的差异强化,以便模型专注于学习特征,而不是对抗噪声。
- 样本远离原型: 这是一个边缘情况。我们 增加 差异强化。这教导模型,随着数据离中心越远,各模态可能会开始产生分歧,而这种分歧是离群值的信号。

这里,Sigmoid 函数用于缩放相似度。如果相似度高 (接近 1) ,\((1 - \text{Sigmoid})\) 项变小,从而减少惩罚。如果样本不相似 (距离远) ,该项增大,从而强化差异损失 Discr。
额外功能: 自适应异常值合成 (AOS)
为了进一步帮助模型识别“未知事物”,DPU 在训练期间生成假的 OOD 数据。它提取两个不同类别的原型 (例如“拳击”和“鼓掌”) ,并将它们融合在一起,创造一个“弗兰肯斯坦”式的原型。

然后,模型被训练为最大化这些合成离群值的不确定性 (熵) ,有效地教导它: “如果你看到看起来像是拳击和鼓掌的怪异混合体,不要自信——标记它。”
实验结果
理论听起来很扎实,但它有效吗?研究人员在五个不同的数据集上测试了 DPU,包括 HMDB51 (电影/YouTube) 、UCF101 (动作识别) 和 Kinetics-600 (大规模动作) 。
他们评估了两种类型的任务:
- 近 OOD (Near-OOD): 未知样本与已知样本有些相似 (例如,不同的运动) 。
- 远 OOD (Far-OOD): 未知样本完全不同 (例如,区分卡通片和现实生活视频) 。
定量性能
结果显示,相较于现有方法有显著提升。在 OOD 检测中,我们关注:
- FPR95 (95% 召回率下的假阳性率): 越低越好。这衡量了模型将 OOD 样本错误地称为“正常”的频率。
- AUROC: 越高越好。检测准确性的综合指标。
近 OOD 结果 (表 1) :
![表 1. 使用视频和光流的多模态近 OOD 检测结果 (↑ 越高越好;↓ 越低越好) 。‘A2D’ 指的是 Agree-to-Disagree 基线 [11],而 ‘AN’ 结合了 Agree-to-Disagree 和 NP-Mix。DPU 在各种数据集和 OOD 检测模型中一致地提升了所有指标,展示了其在多模态 OOD 检测中的有效性和适应性。](/en/paper/2411.08227/images/015.jpg#center)
在表 1 中,查看 Energy 或 VIM (流行的基础 OOD 方法) 所在的行。
- 在 HMDB51 数据集上,基础 Energy 方法的 FPR95 为 43.36 。
- 添加先前的 SOTA 方法 (+AN) 将其降至 36.38 。
- 添加 +Ours (DPU) 将其进一步降至 35.07 。
这一趋势在几乎所有方法和数据集中都是一致的。DPU 始终降低了假阳性率,同时保持或提高了 ID 准确率。
远 OOD 结果 (表 2) :

远 OOD 的结果更加引人注目。看最底行的 VIM 方法。
- FPR95 基本上降到了 0.01 。
- AUROC 达到了 99.99 。
- 这表明 DPU 在区分完全陌生的数据和已知数据方面表现极其出色。

图 1 直观地总结了这一收益。与蓝色圆圈 (无 DPU) 相比,红色方块 (DPU 增强) 始终位于左上角 (高 AUROC,低假阳性率) 。
为什么它有效? (消融实验)
研究人员不仅仅相信最终的数字;他们还分解了 为什么 它有效。
“动态”部分是必要的吗? 他们使用固定的强化率 (例如,总是强化 0.3 或 0.7) 而不是自适应的、基于原型的方法测试了模型。

表 3 显示,没有单一的固定比率适用于所有数据集。低比率 (0.1) 对 UCF101 有效,但在 Kinetics-600 上表现糟糕。DPU (底行) 自动适应,在两者上都取得了最佳分数。
特征空间可视化 最后,我们可以通过使用 t-SNE 可视化特征嵌入来看到 DPU 的效果。

在图 4(a) (左) 中,没有 DPU 时,分布内样本 (橙色) 是混乱的,OOD 样本 (蓝色) 混杂其中或距离危险地接近。在图 4(b) (右) 中,有了 DPU,橙色簇更紧密、更具凝聚力,而蓝色 OOD 样本被清晰地推到了外围。这种清晰的分离正是模型能够自信地说“我不知道这是什么”的原因。
结论
DPU 框架代表了我们在处理多模态 OOD 检测方面的成熟。它超越了“所有训练数据都是完美的”这一幼稚假设。通过承认 类内变异——即“狗”可以看起来像一千种不同的东西——并动态调整其学习策略,DPU 取得了最先进的结果。
对于学生和研究人员来说,关键的收获是 自适应训练 的力量。
- CSCT 确保了游乐场是有序的。
- 动态原型 确保我们知道“安全区”在哪里,而不会被离群值左右。
- 按比例强化 确保我们仅在真正重要的时候因差异而惩罚模型。
随着人工智能系统被部署在日益复杂、开放的世界环境中 (如自动驾驶或医疗诊断) ,像 DPU 这样的方法对于确保这些系统不仅知道它们看到了什么,还要知道它们何时感到困惑至关重要。
](https://deep-paper.org/en/paper/2411.08227/images/cover.png)