目录
1.Background: Out-of-Distribution Detection
2.Post-Hoc Methods
2.1 MSP
2.2 ODIN
2.3 Energy
2.4 GradNorm
2.5 Class Prior
3.实验结果
3.1评价指标
3.2实验结果
4.总结
5.参考文献
1.Background: Out-of-Distribution Detection
在深度学习模型的部署过程中,模型通常会在训练数据集上表现出卓越的性能。然而,当面对超出训练分布之外的数据时,模型的预测往往不再可靠。这类超出模型训练分布之外的样本被称为Out-of-Distribution (OOD)数据。OOD问题不仅影响模型的泛化能力,还可能在关键领域如自动驾驶、医疗诊断等产生严重后果。OOD Detection 即为识别出这些不符合训练数据分布的样本,并避免对其作出高置信度的预测。
如下图所示,在OOD检测中,数据分布的偏移通常分为两类:语义偏移 (Semantic Shift)和协变量偏移 (Covariate Shift)。语义偏移是指样本的类别超出了模型的训练范围,例如猫狗分类器遇到了鸟类图片;协变量偏移则是指输入特征发生变化,但类别本身未变,例如图片风格发生改变。
如下图所示,广义上的OOD检测任务还可以延伸至多个子领域:异常检测(Anomaly Detection, AD)、新颖性检测(Novelty Detection, ND)、开放集识别(Open-Set Recognition, OSR) 以及离群点检测(Outlier Detection, OD) 等[1]。
狭义上的 OOD 检测与 OSR 任务非常相似,二者的目标都是识别出未知类别的样本,不同之处在于 OSR 不会借助额外的 OOD 数据进行训练。本文将介绍一些经典的 OOD Detection Post-Hoc Methods,这些方法大多无需额外训练即可取得良好 ID/OOD 判别效果。
2. Post-Hoc Methods
本章将介绍几种经典 OOD Detection 方法:MSP[2]、ODIN[3]、Energy[4]、GradNorm[5]与Class Prior[6],这些方法有助于模型更有效地区分 ID 和 OOD 样本,提升模型的鲁棒性。
2.1MSP
MSP[2] 是最基础的 OOD Detection 方法, 构建了本领域的 Benchmark。该方法通过计算模型预测 Softmax 概率分布的最大值,并将其作为指标判断输入样本属于 ID/OOD 数据。理论上,对于 ID (In-Distribution) 数据,最大 Softmax 得分会远高于平均水平,对于OOD数据,模型预测 Softmax 分布则会趋于平均。其数学表达如下:
神经网络对第i类的网络输出,i=1,2,...,C
神经网络对第i类的Softmax得分,i=1,2,...,C
MSP 方法简单高效,但是模型有时会对 OOD 数据预测过于自信(最大 Softmax 得分很高),作为 OOD Detection 指标不够 Robust。
2.2ODIN
ODIN[3] 方法在 MSP 的基础上进行了两项改进,分别是引入温度系数 (Temperature Scaling) 和添加输入扰动 (Input Perturbation),以增强分布内 (ID) 和分布外 (OOD) 样本的区分能力:
•引入温度系数ODIN 引入了温度系数 T 来调节 Softmax 输出,Softmax 得分经过温度缩放后更新为:
其中,T 通常大于1,这会使模型的预测分数更加分散,能够更好地区分 ID 和 OOD 样本。对于上式进行 Taylor 展开,忽略高阶项:
其中
得分 S 与 U1 正相关,与 U2 负相关。作者通过实验分析了 U1 和 U2 在 ID 和 OOD 数据上的表现,总结如下:
A. ID 数据的 U1 普遍大于 OOD 数据的 U1。
B. 在 U1 相同时,ID 数据的 U2 通常大于 OOD 数据的 U2。
由于得分 S 与 U2 负相关,因此增大温度系数 T 可以削弱 U2 对得分的负面影响,增强 ID 和 OOD 数据的区分能力。然而,当 T 无限大时,得分 S 将趋近于 1/N,ID 数据和OOD 数据的区分能力会减弱,如下图所示。
•输入添加扰动
其中,sign(x) 为符号函数,x>0 时返回 1,x<0 返回 -1,x=0 返回 0.
扰动幅度,超参数
符号函数
得分S的对数相对于输入x的梯度
对于任意输入,保证扰动幅度 ε>0,即可确保输入沿着得分 S 增大的方向变化。模型在 ID 数据上训练,ID 数据得分会集中在峰值附近,而 OOD 数据偏向于平坦区域,添加扰动,ID 数据带来的提升会更大,如下图所示:
尽管 ODIN 通过调整温度系数和对输入进行扰动改善了 OOD 检测性能,但它依旧局限于利用模型在 ID 任务上的 Softmax 得分来判别 ID/OOD 样本,这可能会限制其在更复杂场景中的表现。
2.2 Energy
Energy[4]通过构建能量函数 E(x),将输入样本映射为能量值,并利用 Gibbs 分布来推导出概率密度函数p(x)。该方法的核心思想是利用输入数据点 x 的边际能量或自由能来衡量其不确定性。对于任意输入数据 x,首先通过下式定义能量模型:
其中,E(x,y) 表示输入数据 x 与标签 y 的联合能量,T 是温度参数,用于控制分布的平滑程度,分母为配分函数。亥姆霍兹自由能 E(x) 是给定数据点x的能量表达式,可以通过对数配分函数的负数表示:
在分类模型中,模型输出通过 Softmax 推导出类别分布概率:
则输入x的自由能可以表达为:
自由能的概率密度分布函数为:
分母为配分函数,两边取对数:
自由能 E(x) 越低,类别似然越高,越容易被划分为已知的类别,ID数据的可能性也就越大。
原文对 Softmax 得分进行了剖析,阐述了使用 Softmax 得分作为 OOD Detection 评分的弊端。如下,对于 Softmax,当 T=1 时有:
因此:
对于 ID 数据,希望 p(x) 变大,但是同时希望 Softmax 得分也变大,二者冲突。
Energy[4] 的第二个贡献是在训练时加入 OOD 数据,引入边际损失做正则化。训练总 Loss 为:
其中
这里用 margin loss 来惩罚能量高于 _ 的ID数据和能量低于 _ 的OOD数据。
原文在这里提供了pretrained和fine-tuning两种模式,二者的区别在于后者使用了边际损失。下图为ID 和 OOD 数据的得分分布图。
2.4GradNorm
GradNorm[5] 是一种通过计算模型预测概率分布 Q 与参考均匀分布 P 之间的 KL 散度相对于网络参数 θ 的梯度来检测 OOD 样本的方法。KL 散度定义如下:
P 是参考的概率分布,Q 是模型预测的类别概率分布:
对于分类任务,模型预测概率分布为 Softmax 分布,而参考概率分布为均匀分布,则 KL 散度可表示为:
KL 散度对模型参数求梯度,取其模长作为得分即为 GradNorm:
θ 为网络层参数,L1 表示 L1 范数。对于 ID 数据而言,KL 散度的梯度会更大,反之,OOD数据的梯度会更小,如下图所示:
作者同时也对比了使用 KL 散度和 KL 散度的梯度作为 OOD Detection 得分的结果,如下图所示:
2.5Class Prior
Class Prior[6] 主要探讨了如何在 OOD 得分中引入 ID 数据的先验分布,并提出了两种策略:RP( RePlacing,适用于 MSP 和 GradNorm) 和RW(ReWeighting,适用于 ODIN 和 Energy),这里主要介绍 RP+GradNorm 方法。KL 散度中,Q 保持不变,用 ID 数据的类别先验分布:
来替换均匀分布,则有:
KL 散度的梯度为:
3.试验结果
3.1评价指标
OOD Detection常用指标有以下几种:
•ROC(Receiver Operating Characteristic curve)曲线:伪阳性率(FPR,OOD 识别成 ID 比例)定义为 X 轴,真阳性率(TPR,ID 识别成 OOD 比例)定义为 Y 轴;
•AUROC↑(Area Under the Receiver Operating Characteristic curve) :ROC曲线下面积,取值0-1之间,越大越好;
•FPR95↓:TPR达到0.95时对应阈值计算出的FPR,越低越好.
3.2实验结果
•实验结果1来自Class Prior[6]
其中,训练数据集参考Liu等人[7]工作,基于Pareto分布从ImageNet-1k数据集中采样生成一系列不平衡的数据集。测试OOD数据集来自Huang等人[8],包括iNaturalist、SUN、Textures、Places等。
经过ID数据先验分布 RePlacing 或 ReWeighting 的 Post-Hoc Methods 效果提升显著,其中 RP+GradNorm 取得了平均指标综合最优的结果。
•实验结果2来自SURE-OOD[9]
其中,训练数据来自 ImageNet-1k,测试 OOD 数据来自 ImageNet-21k 验证集,测试基于[SSB Benchmark](https://github.com/sgvaze/SSB/blob/main/DATA.md#supported-datasets),实验结果如下:
实验结果与1基本相符合,RP+GradNorm取得了最优效果。
4.总结
本文介绍了多种Post-Hoc Methods,这些方法实际应用中效果往往依赖于多种因素,包括但不限于训练数据集的分布、不平衡程度、预训练模型,以及具体的训练方式。虽然理论上提供了各自的优势和改善方向,但在实际应用中,仍需根据具体任务和数据集进行实验调优,才能获得最优结果。因此,在实现这些方法时,需要综合考虑数据特征和模型参数,灵活调整以匹配特定场景。
5.参考文献
[1] Yang, Zhou, et al. "Generalized Out-of-Distribution Detection: A Survey." IJCV, 2024.
[2] MSP: Dan, Kevin, et al. "A baseline for detecting misclassified and out-of-distribution examples in neural networks." ICLR, 2017.
[3] ODIN: Liang, Li, et al. "Enhancing the reliability of out-of-distribution image detection in neural networks." ICLR, 2018.
[4] Energy: Liu, Wang, et al. "Energy-based Out-of-distribution Detection." NeurIPS, 2020.
[5] GradNorm: Huang, Geng, et al. "On the Importance of Gradients for Detecting Distributional Shifts in the Wild." NeurIPS, 2021
[6] Class Prior: Jiang, Liu, et al. "Detecting Out-of-distribution Data through In-distribution Class Prior." PMLR, 2023
[7] Liu, Miao, et al. "Large-scale long-tailed recognition in an open world." CVPR, 2019.
[8] Huang, Li. "MOS: towards scaling out-ofdistribution detection for large semantic space." CVPR, 2021
[9] SURE-OOD: Li, Sha, Wu, et al. "SURE-OOD:Detecting OOD samples with SURE."
热门跟贴