VIM
Introduction
技术回顾
研究人员通过寻找ID样例自然拥有而OOD样例容易违反的属性(反之亦然),设计了不少评分函数。得分主要来源于三个来源:
(1)概率,如最大softmax的概率[13]和最小softmax与平均类别(mean class conditional)的kl -散度[12];
(2)logit,如最大logit [12], logsumexp函数超过logit [25];
(3)特征,如特征与其低维嵌入的预像[27]之间的残差的范数、特征与类质心[23]之间的最小马氏距离等。
在这些方法中,OOD分数可以直接从现有模型中计算出来,而无需重新训练,使得部署变得轻松。
然而,如图所示,它们的性能受到其信息源的单一性的限制:单独使用特征忽略了具有类相关信息的分类权重;使用logit或softmax只会忽略零空间[3]中的特征变化,该空间携带与类无关的信息;softmax进一步抛弃了对数范数。
矩形使用的是特征空间,三角形使用的是Logit,菱形使用的是softmax
[!question] 为了应对OOD样本中表现出的巨大多样性,我们提出了一个问题,设计一个使用多种来源的OOD分数是否有帮助?
在现有技术成功的基础上,我们设计了一个新的评分函数,称为虚拟logit匹配(ViM)分数,这是一个构建的虚拟OOD类的softmax分数,其logit由特征和现有logit共同决定。具体来说,评分函数首先提取特征对主子空间的残差,然后通过将其在训练样本上的均值与平均最大logits匹配,将其转换为有效logit。最后,所设计的OOD类的softmax概率就是OOD分数。 从ViM的构造中,我们可以直观地看到,原始logits越小,残差越大,它越有可能是OOD。
与上述方法不同的是,另一项研究通过施加专门的正则化损失[5,16,18,40]或通过暴露生成的或真实收集的OOD样本[22,37],对网络学习到的特征进行调整,以更好地识别ID和OOD。由于它们都需要对网络进行再训练,我们在这里简单地提到它们,而不深入研究细节。(training 方法)
数据集介绍
近年来,大规模语义空间中的OOD检测受到越来越多的关注[12,15,18,29],将OOD检测方法推向了现实应用。然而,目前缺乏用于大规模ID数据集的干净、真实的OOD数据集成为该领域的一个障碍。
以前的OOD数据集是从公共数据集中挑选出来的,这些数据集是用预定义的标签列表收集的,如iNaturalist、Texture和ImageNet-21k(表1)。这可能会导致有偏差的表现比较,特别是第5节中描述的小覆盖率的可黑客性。为了避免这种风险,我们从具有自然类分布的OpenImage数据集[21]中为ImageNet-1K[4]模型构建了一个新的OOD基准OpenImage-o。它包含17,632张手动过滤的图像,比最近的ImageNet-O[15]数据集大7.8倍。
Motivation: Logit中缺失的信息
- 基于特征的OOD分数(例如Mahalanobis和Residual)擅长检测ImageNet-O中的OOD,而所有基于logit/概率的方法都落后。
- 最先进的基于概率的方法 KL 匹配的 AUROC 仍然低于纹理数据集特征空间中直接设计的 OOD 分数。
基于零空间的OOD评分
将特征分解为 $x = x^{W⊥} + x^W$,其中$x^{W⊥}$和$x^W$分别是$x$在$W^⊥$和$W$上的投影,$W^⊥$是$W^T$的零空间,而$W$是$\mathbf{W}$的列空间,$x^{W⊥}$不影响分类,但是对OOD检测有重要作用
$$
NuSA(x)=\frac{\sqrt{ \lvert \lvert x \rvert \rvert ^2-\lvert \lvert x^{W⊥} \rvert \rvert ^2 }}{\lvert \lvert x \rvert \rvert }
$$
NuSA得分实际上是特征向量在主空间上的能力占总能量的比例。NuSA得分在0到1之间。当特征向量完全在主空间时,NuSA得分为1,当特征向量完全在零空间时,NuSA得分为0.OOD样本在零空间上的能量较大,因此其NuSA得分较低。
基于主空间的OOD评分
低维流形 (Low-Dimensional Manifold) 是指数据或特征在高维空间中实际位于一个相对较低维度的子空间上。这一概念广泛应用于机器学习和数据分析中,特别是在降维、特征提取和异常检测等领域。
假设特征向量分布在一个低维流形上,并使用通过原点$O$的线性子空间作为模型。定义主空间为由矩阵 $X^TX$ 的最大$D$个特征值对应的特征向量所张成的$D$维子空间$P$。偏离主空间的特征可能是OOD样本。因此考虑计算特征与主空间的偏差:
$$
Residual(x)=\lvert \lvert x^{P⊥} \rvert \rvert
$$
这里的$x^{P⊥}$是$x$到$P⊥$的投影。残差分数与[27]中的重构误差相似,只不过它们采用了非线性流形学习进行降维。注意,在投影到logits之后,这种偏差被破坏了,因为矩阵$W^T$投影到比特征空间更低的维度空间。
NuSA 和 Residual的缺点
与 logit/概率方法相比,NuSA 和 Residual 都不考虑特定于各个 ID 类的信息,即它们是类不可知的。因此,这些分数忽略了与每个 ID 类别的特征相似性,并且不知道输入最类似于哪个类别。
这解释了为什么它们在iNaturalist OOD基准上的表现更差,因为iNaturalist样本需要区分细粒度类别之间的细微差异。
虚拟logit匹配
Logits 包含与类相关的信息,但特征空间中存在无法从 Logits 恢复的与类无关的信息。为了统一 OOD 检测的类不可知和类相关信息,提出了通过 Virtual-logit 匹配(缩写为 ViM)的 OOD 评分。
具体步骤包含三步,分别针对特征、logit和概率进行操作:
- 提取残差:提取输入特征 $x$ 相对于主子空间(即主要成分分析得到的低维子空间)的残差$x^{P\perp}$。这意味着将输入特征分解为主成分和残差两部分。
- 转换为logit:通过将这些残差的均值匹配到训练样本中的平均最大logit,将残差转换为有效的logit。这一步的目的是使得残差能反映出与现有logit相当的概率信息。
- 计算softmax概率:计算这个虚拟OOD类别的softmax概率,这个概率即为ViM得分。
OpenImage-O 数据集
为 ID 数据集 ImageNet-1K 构建了一个名为 OpenImage-O 的新 OOD 数据集:
- 它是手动注释的,具有自然多样化的分布,并且具有17,632张图像的大规模。
- 它的构建是为了克服现有 OOD 基准的几个缺点。
- OpenImage-O 是从 OpenImageV3 的测试集中逐图像选择的,包括从 Flickr 收集的 125,436 张图像,没有预定义的类名称或标签列表,从而实现自然的类统计并避免初始设计偏差。
- 图像级注释的必要性
过去的一些工作仅仅根据类别标签从其他数据集中选择部分数据来进行OOD检测。虽然类别级别的注释成本较低,但生成的数据集可能包含大量不符合预期的噪音。因此,简单地通过查询标签创建OOD数据集是不可靠的,需要对每个图像进行人工检查以确认其有效性。 - 小覆盖范围的可破解性
如果 OOD 数据集有一个中心主题,例如纹理,其分布不太多样化,那么它可能很容易被“黑客攻击”。 - OpenImage-O 的构建过程
基于 OpenImage-v3 数据集构建 OpenImage-O:
- 对于测试集中的每张图像,我们让人工标注人员确定它是否是 OOD 样本。
- 为了辅助标记,我们将任务简化为将图像与 ImageNet-1K 分类模型预测的前 10 个类别区分开来,即,如果图像不属于这 10 个类别中的任何一个,则该图像为 OOD。
- 提供类别标签以及每个类别中与测试图像最相似的图像(通过特征空间中的余弦相似度来测量)以进行可视化。
为了进一步提高标注质量,我们设计了几种方案:
(1)如果标注者无法确定图像是否属于10个类别中的任何一个,则可以选择“困难”;
(2)每张图像由至少两个标注器独立标注,并取两者一致的OOD图像集;
(3)抽查检验,确保质量。