OpenOOD框架
1 | . |
训练命令:
1 | python main.py / |
验证命令:
1 | python scripts/eval_ood.py --id-data plankton50 --save-score --save-csv --root ./results/plankton50_resnet50_base_e100_lr0.1_default --postprocessor "styleaugment" |
1 | . |
训练命令:
1 | python main.py / |
验证命令:
1 | python scripts/eval_ood.py --id-data plankton50 --save-score --save-csv --root ./results/plankton50_resnet50_base_e100_lr0.1_default --postprocessor "styleaugment" |
研究人员通过寻找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倍。
将特征分解为 $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得分较低。
低维流形 (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$投影到比特征空间更低的维度空间。
与 logit/概率方法相比,NuSA 和 Residual 都不考虑特定于各个 ID 类的信息,即它们是类不可知的。因此,这些分数忽略了与每个 ID 类别的特征相似性,并且不知道输入最类似于哪个类别。
这解释了为什么它们在iNaturalist OOD基准上的表现更差,因为iNaturalist样本需要区分细粒度类别之间的细微差异。
Logits 包含与类相关的信息,但特征空间中存在无法从 Logits 恢复的与类无关的信息。为了统一 OOD 检测的类不可知和类相关信息,提出了通过 Virtual-logit 匹配(缩写为 ViM)的 OOD 评分。
具体步骤包含三步,分别针对特征、logit和概率进行操作:
为 ID 数据集 ImageNet-1K 构建了一个名为 OpenImage-O 的新 OOD 数据集:
为了进一步提高标注质量,我们设计了几种方案:
(1)如果标注者无法确定图像是否属于10个类别中的任何一个,则可以选择“困难”;
(2)每张图像由至少两个标注器独立标注,并取两者一致的OOD图像集;
(3)抽查检验,确保质量。
Energy-based Out-of-distribution Detection(NeurIPS 2020)
motivation:
使用softmax置信度分数会导致模型对OOD data的预测有较高的置信度(这与softmax的特性有关,也有深度神经网络训练的特性有关),这显然是不合理的。同时,有研究表明通过深度生成模型估计得到的密度函数对于OOD data的检测并不可靠。基于此,作者提出了energy score。
idea:
基于energy的模型将每个输入映射为一个标量,这个标量对于见过的数据(ID data)较低,对于未见过的数据(OOD data)较高。
一、使用energy score的一些优点:可以直接根据分类模型推导得到,而不依赖密度估计;可以解决模型对OOD data的预测过度自信的问题;使用方便,是一个无参数度量。
二、作者提出了一个训练框架,能够利用分布内数据和辅助数据集数据,使得ID data和OOD data的energy score有一个较为明显的差距。
三、基于energy的fine tune model不仅可以提高OOD data的检测效果,对ID data进行分类的准确率也不会因此下降。
同样使用后处理 #post-hoc
基于能量的模型(EBM)的本质是建立一个函数$E(\mathbf{x}):R^D \to R$,将输入空间的每个点x映射到一个称为能量的单一非概率标量。能量值的集合可以通过吉布斯分布转化为概率密度$p(\mathbf{x})$:
其中分母称为配分函数,它在$y$上边缘化,$T$是温度参数。
由上式的分母部分可以推出,给定数据点$x \in R^D$的亥姆霍兹自由能$E(\mathbf{ x})$可以表示为对数配分函数的负值:
综述:基于能量的模型 - yearn的文章 - 知乎
LeCun 的Lessons:yann.lecun.com/exdb/publis/pdf/lecun-06.pdf
补充:ICLR2020的论文:解读 Your Classifier is Secretly an Energy Based Model and You Should Treat it Like One-CSDN博客
基于能量的模型与现代机器学习,尤其是判别模型有着内在的联系。为了看到这一点,我们考虑一个判别神经分类器$f(\mathbf{x}):R^D\to R^K$,它将输入$x \in R^D$映射到K个称为logits的实数值。这些logits用于使用softmax函数推导分类分布:
softmax:
通过连接Eq.1和Eq.3,我们可以将给定输入$(\mathbf{x},y)$的能量定义为$E(\mathbf{x},y)= f_{y}(\mathbf{x})$。更重要的是,在不改变神经网络$f_{y}(\mathbf{x})$的参数化的情况下,我们可以用softmax激活的分母来表示$x \to R^D$上的自由能函数$E(x; f)$:
论文尝试在分类模型上接入energy函数,通过energy进行OOD检测。energy较小的为ID数据,energy较大的为OOD数据。当负能量评分大于阈值时,OOD检测器将该输入分类为OOD。
实际上,通过负对数似然(negative log-likelihood,NLL))损失训练的模型本身就倾向于拉低ID数据的energy,负对数似然损失可表示为:
定义energy函数 $E(x,y) = -f_{y}(x)$并将$\log$里面的分数展开,NLL损失可转换为:
从损失值越低越好的优化角度看,公式6的第一项倾向于拉低目标类别$y$的energy,而公式6第二项从形式来看相当于输入数据的free energy。第二项导致整体损失函数倾向于拉低目标类别$y$的energy,同时拉高其它标签的energy,可以从梯度的角度进行解释:
上述式子是对两项的梯度进行整合,分为目标类别相关的梯度和非目标相关的梯度。可以看到,目标类别相关的梯度是倾向于更小的energy,而非目标类别相关的梯度由于前面有负号,所以是倾向于更大的energy。另外,由于energy近似为$-f_y(x)=E(x,y)$,通常都是目标类别的值比较大,所以NLL损失整体倾向于拉低ID数据的energy。
分布外检测是一个二元分类问题,它依赖于一个分数来区分分布内和分布外的例子。评分函数应产生可区分分布内和分布外的值。一个自然的选择是使用数据$p(\mathbf{x})$的密度函数,并考虑具有低可能性的示例是OOD。可以通过诉诸基于能量的模型来获得判别模型的密度函数:
归一化密度函数$Z$(分母)(相对于x)可能难以计算,甚至在输入空间上可靠地估计。
为了减轻这一问题,我们的关键观察结果是,缺乏标准化根本不会影响OOD检测。具有较高出现概率的数据点相当于具有较低能量。要看到这一点,我们可以采取对数化方程:
正(分布内)样本具有更高的分数
能量分数本质上是非概率性的,可以通过 logsumexp 方便地计算
我们的方法不需要显式估计密度Z,因为Z与样本无关,并且不影响整体能量分数分布。
Energy Score与Softmax的关系:
可见,直接优化softmax等价于同时优化energy score和fmax
从上述式子可以看出,softmax置信度的对数实际上是free energy的特例,先将每个energy减去最大的energy进行偏移(shift),再进行free energy的计算,导致置信度与输入的概率密度不匹配。随着训练的进行,通常$f^{max}(x)$会变高,而$E(x;f)$则变低,所以softmax是有偏评价函数,置信度也不适用于OOD检测。
对比:
因此,与密度 p(x) 很好地对齐的能量得分不同,softmax 置信度得分不太能够可靠地区分分布内和分布外的示例。 为了通过一个真实的示例进行说明,图 2 显示了 SVHN 数据集 (OOD) 中的一个示例和分布内数据 CIFAR-10 中的另一个示例。 虽然它们的 softmax 置信度分数几乎相同(1.0 与 0.99),但负能量分数更容易区分(11.19 与 7.11)。 因此,在原始 Logit 空间(能量得分)而不是移动 Logit 空间(softmax 得分)中工作可以为每个样本产生更多有用的信息。 我们在 4.2 节的实验结果中表明,对于 OOD 检测,能量得分是比 softmax 得分更好的指标。
左边是softmax,右边的是energy。发现softmax得到的置信度几乎相等,但是energy得到的差值会大一些,提供了更多信息。
虽然能量得分对于预训练的神经网络很有用,但虽然能量得分对于预训练的神经网络很有用,但分布内和分布外之间的能量差距可能并不总是对于分类来说是最佳的。 因此,我们还提出了一个能量有限(energy-bounded)的学习目标,其中神经网络经过微调,通过将较低的能量分配给分布内数据,将较高的能量分配给 OOD 数据来显式地创建能量间隙。 学习过程在对比塑造能量表面方面提供了更大的灵活性,从而产生更可区分的分布内和分布外数据。 具体来说,我们的基于能量的分类器是使用以下目标进行训练的:
其中 $F(x)$ 是分类模型的 softmax 输出,$D^{train}_{in}$ 是分布内训练数据。 总体训练目标结合了标准交叉熵损失以及以能量定义的正则化损失:
其中 $D^{\text{train}}_{\text{out}}$ 是未标记的辅助 OOD 训练数据。特别是,我们使用两个平方 Hinge 损失项以及独立的边界超参数 $m_{\text{in}}$ 和 $m_{\text{out}}$ 对能量进行正则化。
一方面,模型会惩罚产生能量高于 $m_{\text{in}}$ 的分布内样本;另一方面,模型会惩罚能量低于 $m_{\text{out}}$ 的分布外样本。换句话说,损失函数惩罚能量为 $E(x) \in [m_{\text{in}}, m_{\text{out}}]$ 的样本。模型微调后,下游 OOD 检测流程与 3.1 节的描述一致。
我们使用 SVHN [28]、CIFAR-10 [18] 和 CIFAR-100 [18] 数据集作为分布内数据。 我们使用标准分割,并分别用 $D_{train}^{in}$ 和 $D_{test}^{in}$ 表示训练集和测试集。
ID数据集包含CIFA-10、CIFAR-100,并且分割训练集和测试集。OOD测试数据集包含Textures、SVHN、Places365、LSUN-Crop、LSUN_Resize和iSUN。辅助用的OOD数据集则采用80 Million Tiny Images,去掉CIFAR里面出现的类别
对于 OOD 测试数据集 Dtest out ,我们使用六个常见基准:Textures [5]、SVHN [28]、Places365 [49]、LSUN-Crop [46]、LSUN-Resize [46] 和 iSUN[45]。 所有图像的像素值通过 z 归一化进行归一化,其中参数取决于网络类型。 对于辅助异常数据集,我们使用 8000 万张微小图像 [38],这是从网络上抓取的大规模、多样化的数据集。 我们删除了该数据集中出现在 CIFAR-10 和 CIFAR-100 中的所有示例。
我们测量以下指标:
(1)当分布内示例的真阳性率为95%时,OOD示例的误报率(FPR95);
(2) AUROC;
(3) 精确率-召回率曲线下面积 (AUPR)。
可以提高
原位浮游生物图像检索(IsPlanktonIR)框架主要由左侧基于CBIR的识别部分和右侧人机交互部分组成。 前者可以自动识别原位捕获的海洋浮游生物和颗粒的感兴趣区域(ROI)图像,后者支持对识别结果进行手动验证和校正,以在必要时提高或恢复性能。 下面介绍框架中关键组件的功能、结构和原理。
自动识别部分主要由四个模块组成,包括参考图库、图像特征提取器、图像相似性度量和决策策略。 图库中预先存储了大量手动标记的ROI,它们都被特征提取器转换为特征向量并写入查找表(LUT)。 当任何查询ROI图像输入到框架进行识别处理时,首先由特征提取器将其转换为特征向量,然后与LUT中的所有特征向量进行比较。 最后,利用得分最高的前k张图像的标签来确定查询ROI的识别结果。
采用50层结构的SEResNeXt(Hu et al., 2018),丢弃其网络末端的全连接层,仅保留特征提取部分作为图像检索框架中的特征提取器,如图2所示。SEResNeXt 基于 ResNeXt 网络(Xie et al., 2017),并结合了Squeeze-and-Exitation注意力模块。 它已被证明在许多图像分类任务中表现良好(Hu et al., 2018;Olsvik et al., 2019; Han et al., 2020)。 这种结构使得网络具有很强的抽象能力,其注意力机制也帮助网络关注对图像表示贡献更大的部分。
由于 SEResNeXt 仅接受 224 x 224 像素 RGB 彩色图像输入,因此首先使用填充和重新缩放操作对每个 ROI 进行预处理,以实现无失真尺寸归一化(Li et al., 2022)。 之后,将训练数据集中所有ROI的像素值转换为[0, 1],然后根据公式(1)进行归一化,以加速训练收敛
$$
I_{norm}=\frac{1-mean}{SD}
$$
其中mean和SD分别表示所有训练ROI的像素值平均值和标准差。 特征提取后,输入图像被转换为长度为2048的特征向量
接下来,我们使用 SCL 来训练特征提取器。 训练过程如图3所示。SLC使用Siamese网络结构,一对对称分支共享相同的网络结构和权重。 除了特征提取器之外,每个分支最后还有一个由两层全连接网络组成的投影仪,以进一步降低输出特征向量的维数。 在每次训练迭代期间,从训练集中随机选择一批 N 个图像,然后将每个图像随机增强两次以生成总共 2N 个图像。
图像增强可以是剪切、旋转、翻转、灰度、亮度调整、对比度调整和饱和度调整。 然后增强的 ROI 形成总共 N × (2N−1) 个图像对,没有任何组合重复。 根据它们的标签,属于同一类别的每对 ROI 构成正对,而属于不同类别的每对 ROI 构成负对。 经过特征提取和投影后,一对 ROI 都被简化为两个 128 维向量,并通过 SupCon 损失(Khosla et al., 2020)进一步进行比较,如公式(2)所示,
其中 I 描述了所有索引 输入 ROI 批次的,P(i) 是增强 ROI 批次中除 i 之外的所有正例的索引集,A(i) 是增强批次中除 i 之外的所有 ROI 的索引集,zi 描述第 i 个 L2归一化后的特征向量,τ是一个温度超参数,它控制正负值之间的平衡(在我们的例子中τ = 0.07)。 通过这样对不同图像对进行迭代后的SCL,网络最终达到了特征空间中压缩正片、推开负片的效果。
特征提取器的训练使用在 ImageNet 上预训练的权重进行初始化。 使用动量为 0.9、小批量为 128 的 SGD 进行优化。学习率在前 10 个 epoch 中从 0 线性增加到 0.2,然后通过余弦衰减函数逐渐降低到 0.0001。 我们使用 PyTorch 以分布式数据并行模式训练四个 NVIDIA RTX 3090 GPU 的网络,训练最终在 150 个 epoch 后收敛。
所有图库图像都会转换为特征向量,组成存储在计算机硬盘中的 LUT。 识别时,将LUT加载到内存中进行比较,无需重复计算参考特征。 由于每张查询图像的特征都要与所有参考特征进行比较,因此LUT的特征数量将影响检索效率。 因此,对LUT进行更好的细化,在保留实例多样性的前提下去除冗余实例,即只有那些在特征空间中的相似度低于阈值的实例才值得保留。 最后,可以在测试数据集上确定每个类的相似度阈值,以去除冗余示例并最小化LUT大小,从而平衡检索精度和效率。
如图5所示,为了更好地利用有限的数据来模拟天然海水中可能的DSS和OOD情况,我们将构建的数据集进一步分为$D_{gallery}$和$D_{test}$两个子集,并具有$C_1$、$C_2$和$C_{OOD}$三个标签组 训练特征提取器并评估 IsPlanktonIR 框架。
子集 Dgallery 由 DYB-PlanktonNet 中每个类别的 $4/5$ ROI 组成,Dgallery 中的所有 90 个目标标签被随机分为 $|C1|= 60$ 和 $|C2|= 30$ 两组。
IsPlanktonIR 框架中的画廊,也用于为以下实验提供训练数据。 子集$D_{test}$包含DYBPlanktonNet的其余1/5左侧ROI和所有长江数据,用于构建各种测试集以评估IsPlanktonIR框架的识别性能。
除了$C1$和$C2$的目标类别外,$D_{test}$中长江数据的标签被标记为$C_{OOD}$。
在实验1中,整个Dgallery被用来训练第一个特征提取器,Dtest(C1∪C2)中的例子被用作测试集来评估IsPlanktonIR的性能 框架。 该实验的结果被用作基线,模仿理想的独立同分布情况。 此外,还使用相同的数据集来训练和测试(Li et al., 2022)中使用的 ResNet18 分类模型,以进行性能比较。
接下来,仅使用Dgallery(C1)中的示例来训练第二个特征提取器,并使用这个新的特征提取器重建图像检索框架。 通过设置与Dtest不同的测试集组成,设计了以下实验2-5的四个实验,以进一步测试IsPlanktonIR在不同模拟数据条件下的性能。
实验2中,使用Dtest(C1∪C2)样本来测试IsPlanktonIR的识别性能。
实验3中,我们在测试集中添加了Dtest(COOD)数据,即用整个Dtest来测试IsPlanktonIR的识别性能。
在实验4中,我们进一步对Dtest(C1∪C2)进行重新采样,生成50个测试集,并按照(González et al., 2017)中推荐的方式使用它们来测试IsPlanktonIR在处理DSS问题时的识别性能。在数据重采样过程中,我们参考了已知的“非浮游生物颗粒>桡足类>其他”的相对数量关系,使测试集的分布更接近真实天然海水中的分布(Suthers等,2019)。 因此,每个测试集中非浮游生物颗粒的比例为其样本总数的50%~90%,其余样本的50%~90%为桡足类,其余样本构成其余样本。 另一方面,我们使用均匀分布率对每个类进行随机重采样,并在每个测试集中将非浮游生物颗粒、桡足类等的分类样本数大小分别限制在 600、200 和 100,以最大限度地 确保人工生成的测试集和训练集之间存在分布差异。
在实验5中,我们将Dtest(COOD)数据添加到实验4中生成的50个测试集,以进一步评估IsPlanktonIR框架。 由于OOD数据独立于Dgallery,我们直接使用全部或随机子采样它们进行测试。此外,实验5中的数据集也用于训练和测试AD分类器,如(Pu et al., 2021)中提出的 进行比较。 由于AD模型无法对测试集中的Dtest(C2)示例进行分类,因此我们仅测试其在Dtest(C1)分类和Dtest(COOD)示例检测上的性能。
对于测试集中 OOD 数据的实验 3 和 5,我们将相似度值设置为 0.75 作为 IsPlanktonIR 拒绝识别的阈值。
最后,为了测试LUT剪枝对图像检索框架的影响,我们在实验2的设置下,进一步评估了不同LUT压缩率下相似度阈值变化的性能。
在所有实验中,准确率(ACC)、精度、召回率和 F1 用作表征 IsPlanktonIR 框架性能的指标。
ICML 2024
根据 OOD 样本到决策边界的特征距离来检测它们
采用的也是后处理方法 #post-hoc
[!info] OOD介绍
Out-of-distribution,分布外检测。在实际情况下,由于通常不满足封闭性、类别平衡性、独立同分布假设,因此需要进行识别,哪些是In-distribution样本,哪些是Out-of-distribution样本。通常考虑为一个二分类问题,采用指标为AUROC、FPR95、AUPR等
文章简要概述:
后处理方法(post-hoc method):与训练无关(training-agnostic),适合在预训练模型上立即实施
先前方法的问题:它们对根据训练特征构建的辅助模型的依赖会产生额外的计算成本
ID 和 OOD 样本的特征相对于决策边界位于哪里?
为了回答这个问题,我们首先将特征距离到类决策边界的概念形式化。 我们将距离定义为特征空间中改变分类器对类别的决策的最小扰动,如图 1 左图所示。
我们特别关注倒数第二层,即线性分类头之前的层。 由于非凸性,倒数第二层上的距离无法轻易计算。
为了最大限度地减少测量距离的成本,该文章引入了一种有效的封闭式估计,经过分析证明可以严格限制距离。 直观上,特征到决策边界的距离反映了改变模型决策的难度,并且可以量化特征空间中的模型不确定性。
与输出空间 softmax 置信度(常见的MSP)不同,该文章的特征空间距离使用特征空间中嵌入的丰富信息进行 OOD 检测。
直观上,ID 样本的特征比 OOD 样本更远离决策边界,因为分类器在 ID 样本中可能更具决定性。当与训练特征平均值的偏差水平相等时,ID 和 OOD 可以更好地分开
我们考虑一个数据空间$X$,一个类集$C$和一个分类器$f: X→C$,该分类器是在从联合分布$P_{XC}$ 中提取的样本 $i.i.d.$ 上训练的。我们表示$P_{XC}$在$X$上的边际分布为$P^{in}$。我们将从$P^{in}$中抽取的样本称为分布内(ID)样本。在实践中,分类器$f$可能会遇到$x∈X$,且它不是从$P^{in}$中提取的。我们称这样的样品为分布外(OOD)。
由于分类器无法对训练期间未见的类别的OOD样本做出有意义的预测,因此区分此类OOD样本和ID样本对于部署可靠性非常重要。此外,对于时间紧迫的应用,及时检测OOD样品以采取预防措施至关重要。与现有技术中使用ID特征聚类和构建辅助模型不同(Lee et al., 2018;Sun et al., 2022),我们可以从决策边界的角度研究OOD-ness,这本质上捕获了训练ID统计。
第三章主要讲述了使用决策边界检测离群分布(OOD)的相关内容
测量到决策边界的特征距离(3.1)
基于快速决策边界的OOD检测器(3.2)
基于决策边界的假设与验证:从决策边界的角度研究OOD检测,假设由于模型对ID样本更确定,ID特征相比OOD特征更可能远离决策边界。通过大量验证(如附录J中的图展示了ID/OOD到决策边界的特征距离)以及可视化ID/OOD样本到决策边界的平均特征距离(图2左),证实了该假设。
深入探究ID/OOD重叠区域:研究在平均距离到决策边界这一度量下ID/OOD的重叠区域(图3),发现ID和OOD样本的平均特征距离到决策边界都会随着特征偏离训练特征均值而增加,这导致具有较高偏差水平的OOD样本与较低偏差水平的ID样本难以区分,而在相同偏差水平内,OOD与ID样本可更好地分离。
设计OOD检测分数与检测器:基于上述理解,设计OOD检测分数$regDistDB$,它是到决策边界的平均特征距离,并由到训练特征均值的特征距离进行正则化,该分数近似在相同偏差水平比较ID和OOD样本,可增强ID/OOD分离(图2)。通过对$regDistDB$设置阈值,提出基于快速决策边界的OOD检测器($fDBD$),将低于阈值的样本识别为OOD。$fDBD$无超参数且无需辅助模型,计算效率高,计算 $\tilde{D}_f(z_x,c)$ 为常数时间,计算 $regDistDB$ 中的 $|z_x - \mu_{train}|_2$ 时间复杂度为 $O(P)$ ( $P$ 为倒数第二层维度),整体 $fDBD$ 时间复杂度为 $O(|C| + P)$ ,对大规模数据集和模型具有计算可扩展性。
regDistDB:一种经过正则化处理的 OOD 检测分数,计算方式为:
$$
\begin{aligned}
\text{regDistDB} := \frac{1}{|C| - 1} \sum_{\substack{c \in C \ c \neq f(x)}} \frac{\tilde{D}_{f}(z_{x}, c)}{\parallel z_{x} - \mu_{\text{train}} \parallel_{2}}
\end{aligned}
$$
其中 $\tilde{D}_{f}(z_{x}, c)$ 是到决策边界的估计距离,$\mu_{\text{train}}$ 表示训练特征的均值。该分数通过正则化特征到训练均值的距离,实现在相同偏差水平下比较 ID/OOD 样本,增强检测效果。
论文的第四章主要是通过实验展示了fDBD(Fast Decision Boundary based Out-of-Distribution Detector)在不同的OOD(Out-of-Distribution)基准测试中的高效性和有效性。具体内容如下:
在基于Transformer的ViT模型和DenseNet上进行实验,评估了fDBD、ViM和KNN在使用交叉熵损失对ImageNet - 1k进行微调的ViT - B/16上的性能(分类器准确率为81.14%),还在DenseNet上进行了扩展实验,结果表明fDBD在不同网络架构上的有效性。
研究了激活整形算法(ReAct、ASH、Scale)对fDBD性能的影响,将这些算法作为标准ReLU激活的替代操作。fDBD作为无超参数方法,可以与这些算法无缝结合。在ResNet - 50上进行实验,结果表明应用激活整形后性能有所提高,验证了fDBD与这些算法的兼容性,且fDBD与Scale结合在该基准测试中达到了最先进的性能。