赞
踩
论文:CVPR 2022 | ViM:使用虚拟分对数匹配的分布外检测
1、OOD检测基本概念
OOD检测问题是检验开放世界识别的一个基准问题。一个直观的例子如下图:一个对于螃蟹和猫的分类网络,可能会把从未见过的拍手(在训练集数据分布之外的测试样本,out-of-distribution sample)错分为螃蟹,把从未见过的狗错分为猫。OOD detection算法是用来判断输入数据是否属于已有训练集分布的方法。由此,深度神经网络不会受到从未学习过的种类的样本的干扰。
2、OOD检测器的核心:得分函数
OOD(Out-of-Distribution)检测器的核心是一个得分函数φ,它将输入特征x映射到R中的一个标量,表示样本有多大可能性是OOD。在测试中,决定一个阈值τ,以确保验证集至少保留一个给定的真阳性率(TPR),例如典型值0.95。如果φ(x) > τ,则将输入样本视为OOD,否则视为ID(即In-Distribution)。在某些情况下,如果需要一个表示ID的分数,我们可以将OOD得分取负作为ID得分。
通过寻找ID样本自然具有而OOD样本容易违反的属性可以设计相当多的得分函数:
3、提出问题
大多数现有的分布外 (OOD) 检测算法依赖于单一输入源:特征、logit 或 softmax 概率,这导致其无法应对分布多种多样的OOD样本:有些 OOD 样本在特征空间中很容易识别,但在 Logit 空间中很难区分,反之亦然。
1、提出了名为Virtual-logit Matching (ViM) 的新型OOD检测方法
特征空间:模型中用来表示输入数据的特征的空间。
logit空间:模型输出层(一般是softmax层之前)的输出。每个logit对应于模型预测的一个类别,因此logit空间反映了模型对不同类别的置信度。
特征空间中的类不可知分数通常指的是从输入样本中提取的特征向量后,计算出的一个分数或者指标。这个分数通常不依赖于具体的类别标签,而是反映了输入样本在特征空间中与训练数据的相似度或者异常度。在OOD检测中,类不可知分数通常用来衡量输入样本与模型在训练时见过的数据分布之间的差异。较高的类不可知分数可能表明输入样本具有与训练数据显著不同的特征,可能是OOD样本的指示。
2、为 ImageNet1K 创建了一个新的 OOD 数据集
3、进行了广泛的实验,包括 CNN 和视觉Transformer,以证明所提出的 ViM 评分的有效性
OOD/ID 评分设计:
我们的方法通过虚拟 logit 的新颖机制结合了基于特征的评分和基于 logit 的评分的优点,并得到了实质性的改进。
网络/损失设计:
许多方法通过重新设计训练损失或添加正则化项使网络对OOD更敏感。而我们的方法不需要模型重新进行训练,因此不仅更容易应用,而且还保留了 ID 分类的准确性。
OOD数据暴露:
有些方法利用辅助的OOD数据集(例如Outlier Exposure)来提升OOD检测性能。我们的方法不需要额外的 OOD 数据,从而避免了对引入的 OOD 样本的偏差 。
一系列基于logits或softmax概率的OOD检测方法的性能是有限的。
1、原始logits
对于一个C类分类器模型,其logit分数为
l
=
W
T
x
+
b
l=W^Tx+b
l=WTx+b,预测概率为
p
(
x
)
=
s
o
f
t
m
a
x
(
l
)
p(x)=softmax(l)
p(x)=softmax(l)。为推导方便,设置
o
:
=
−
(
W
T
)
+
b
o:=-(W^T)^+b
o:=−(WT)+b,此时logit分数即为:
l
=
W
T
x
′
=
W
T
(
x
−
o
)
l=W^Tx'=W^T(x-o)
l=WTx′=WT(x−o)
从几何角度来说,每个 logit l i l_i li 是特征 x ′ x′ x′ 和类向量 w i w_i wi ( W W W 的第 i i i 列)之间的内积。
2、虚拟logits
将特征分解为 x = x W ⊥ + x W x=x^{W\perp}+x^W x=xW⊥+xW,其中 x W ⊥ x^{W\perp} xW⊥和 x W x^W xW分别是 x x x在 W ⊥ W^\perp W⊥和 W W W上的投影, W ⊥ W^\perp W⊥是 W T W^T WT的零空间,而 W W W是 W W W的列空间。 x W ⊥ x^{W\perp} xW⊥不影响分类,但是对于OOD检测有重要作用。
N u S A ( x ) = ∣ ∣ x ∣ ∣ 2 − ∣ ∣ x W ⊥ ∣ ∣ 2 ∣ ∣ x ∣ ∣ NuSA(x)=\frac{\sqrt{||x||^2-||x^{W\perp}||^2}}{||x||} NuSA(x)=∣∣x∣∣∣∣x∣∣2−∣∣xW⊥∣∣2
NuSA得分实际上是特征向量在主空间上的能量占总能量的比例。NuSA得分在0到1之间。当特征向量完全在主空间时,NuSA得分为1;当特征向量完全在零空间时,NuSA得分为0。OOD样本在零空间上的能量较大,因此其NuSA得分较低。
低维流形 (Low-Dimensional Manifold) 是指数据或特征在高维空间中实际位于一个相对较低维度的子空间上。这一概念广泛应用于机器学习和数据分析中,特别是在降维、特征提取和异常检测等领域。
假设特征向量分布在一个低维流形上,并使用通过原点 O O O的线性子空间作为模型。定义主空间为由矩阵 X T X X^TX XTX的最大 D D D个特征值对应的特征向量所张成的 D D D维子空间 P P P。偏离主空间的特征可能是OOD样本。因此考虑计算特征与主空间的偏差:
R e s i d u a l ( x ) = ∣ ∣ x P ⊥ ∣ ∣ Residual(x)=||x^{P\perp}|| Residual(x)=∣∣xP⊥∣∣
与 logit/概率方法相比,NuSA 和 Residual 都不考虑特定于各个 ID 类的信息,即它们是类不可知的。因此,这些分数忽略了与每个 ID 类别的特征相似性,并且不知道输入最类似于哪个类别。
Logits 包含与类相关的信息,但特征空间中存在无法从 Logits 恢复的与类无关的信息。为了统一 OOD 检测的类不可知和类相关信息,提出了通过 Virtual-logit 匹配(缩写为 ViM)的 OOD 评分。
具体步骤包含三步,分别针对特征、logit和概率进行操作:
首先,通过向量
o
=
−
(
W
T
)
+
b
o=-(W^T)^+b
o=−(WT)+b 偏移特征空间,以便在 Logits 计算中无偏差:
l
=
W
T
x
′
=
W
T
(
x
−
o
)
l=W^Tx'=W^T(x-o)
l=WTx′=WT(x−o)。主子空间 P 由训练集 X 定义,其中行是原点为 o 的新坐标系中的特征。假设矩阵
X
T
X
X^T X
XTX 的特征分解为
X
T
X
=
Q
Λ
Q
−
1
X^TX=Q\Lambda Q^{-1}
XTX=QΛQ−1
其中
Λ
\Lambda
Λ 中的特征值按降序排序,则前
D
D
D 列的跨度是
D
D
D 维主子空间
P
P
P 。残差
x
P
⊥
x^{P⊥}
xP⊥ 是
x
x
x 在
P
⊥
P^⊥
P⊥ 上的投影,设第
(
D
+
1
)
(D + 1)
(D+1) 列到方程中
Q
Q
Q 的最后一列为新矩阵
R
∈
R
N
×
(
N
−
D
)
R ∈ R^{N×(N−D)}
R∈RN×(N−D),则
x
P
⊥
x^{P⊥}
xP⊥ =
R
R
T
x
RR^T x
RRTx。
虚拟logit是由每个模型常数 α α α 重新调整的残差范数。
l 0 : = α ∣ ∣ x P ⊥ ∣ ∣ = α x T R R T x l_0:=\alpha||x^{P\perp}||=\alpha\sqrt{x^TRR^Tx} l0:=α∣∣xP⊥∣∣=αxTRRTx
范数“ x P ⊥ x^{P⊥} xP⊥ ”不能直接用作新的logit,因为后者的softmax将在logits的指数上进行归一化,因此对logits的尺度非常敏感。如果残差与最大 logit 相比非常小,那么经过 softmax 后,残差将被埋在 logit 的噪声中。所以作者定义 α \alpha α为匹配系数:
α : = ∑ i = 1 K m a x j = 1 , . . , C { l j i } ∑ i = 1 K ∣ ∣ x i P ⊥ ∣ ∣ \alpha:=\frac{\sum_{i=1}^Kmax_{j=1,..,C}\{l_j^i\}}{\sum_{i=1}^K||x_i^{P\perp}||} α:=∑i=1K∣∣xiP⊥∣∣∑i=1Kmaxj=1,..,C{lji}
将虚拟 logit 附加到原始 logit 并计算 softmax。虚拟logit对应的概率定义为ViM。从数学上讲,设 x x x 的第 i i i 个 logit 为 l i l_i li,则得分为
V i M ( x ) = e α x T R R T x ∑ i = 1 C e l i + e α x T R R T x ViM(x)=\frac{e^{\alpha \sqrt{x^TRR^Tx}}}{\sum_{i=1}^Ce^{l_i}+e^{\alpha \sqrt{x^TRR^Tx}}} ViM(x)=∑i=1Celi+eαxTRRTx eαxTRRTx
对
V
i
M
ViM
ViM分数应用一个单调递增函数:
t
(
x
)
=
−
ln
(
1
x
−
1
)
t(x)=-\ln (\frac{1}{x}-1)
t(x)=−ln(x1−1),可以得到一个等价的表达式:
α
∣
∣
x
P
⊥
∣
∣
−
ln
∑
i
=
1
C
e
l
i
\alpha ||x^{P\perp}||-\ln \sum_{i=1}^Ce^{l_i}
α∣∣xP⊥∣∣−lni=1∑Celi
ViM 通过从特征中提供额外的剩余信息来完成能量方法。性能远优于能量和残差。
为 ID 数据集 ImageNet-1K 构建了一个名为 OpenImage-O 的新 OOD 数据集:
1、图像级注释的必要性
过去的一些工作仅仅根据类别标签从其他数据集中选择部分数据来进行OOD检测。虽然类别级别的注释成本较低,但生成的数据集可能包含大量不符合预期的噪音。因此,简单地通过查询标签创建OOD数据集是不可靠的,需要对每个图像进行人工检查以确认其有效性。
2、小覆盖范围的可破解性
如果 OOD 数据集有一个中心主题,例如纹理,其分布不太多样化,那么它可能很容易被“黑客攻击”。
3、OpenImage-O 的构建过程
基于 OpenImage-v3 数据集构建 OpenImage-O:
为了进一步提高标注质量,我们设计了几种方案:
模型:使用基于 CNN 和基于 Transformer 的模型对算法进行基准测试
ID数据集:ImageNet-1K
OOD 数据集: 四个 OOD 数据集(表 1)用于对算法进行全面的基准测试。
评估指标:AUROC、FPR95
表中显示了有关信息源的有趣模式:
ViT 模型的两种性能最好的方法是 ViM 和 Mahalanobis。他们的 AU-ROC 在所有四个数据集上都很接近。然而,马氏距离需要计算类的马氏距离,这使得其计算成本很高。相比之下,ViM方法轻量且快速。 ReAct、Energy、MaxLogit 和 ODIN 四种方法排名第二,其余三种方法的 AUROC 相对较低。
我们展示了各种模型架构的更多结果。结果表明,ViM 对模型架构变化具有鲁棒性。
1、主空间的维度D
2、匹配参数 α :控制不同 OOD 特征之间权衡的相对重要性
与利用了大规模语义空间中的分组结构的 MOS 进行比较: (1) MaxGroup是MSP的分组版本,它首先通过对组成类求和来获得分组概率,然后将最大分组概率作为ID分数。 (2) ViM+Group 也将最大组概率作为 ID 分数,只不过概率取自 (C + 1) 维向量,并额外有一个 ViM 虚拟类参与 softmax 归一化。 MaxGroup和ViM+Group是在BiT的预训练权重上进行评估的,而MOS需要使用基于组的学习来微调模型。结果显示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。