Mahalanobis
0. 摘要
在许多现实世界的机器学习应用中,检测从训练分布中统计或对抗性偏离的测试样本是部署一个良好分类器的基本要求。然而,已知带有 softmax 分类器的深度神经网络即使对于此类异常样本也会产生高度自信的后验分布。本文提出了一种简单而有效的方法,用于检测任何异常样本,该方法适用于任何预训练的 softmax 神经分类器。我们在高斯判别分析下获得了深度模型的(低层和高层)特征的类条件高斯分布,从而基于马氏距离得出了一个置信度分数。虽然大多数先前的方法仅针对检测分布外样本或对抗样本中的一种进行评估,但所提出的方法在我们的实验中在这两种情况下都达到了最先进的性能。此外,我们发现所提出的方法在极端情况下更加鲁棒,例如当训练数据集具有噪声标签或少量样本时。最后,我们展示了所提出的方法在类增量学习中的广泛应用:每当检测到分布外样本时,我们的分类规则可以在不进一步训练深度模型的情况下很好地纳入新类。
1. 引言
深度神经网络(DNNs)在许多分类任务中取得了高准确率,例如语音识别 [1]、目标检测 [9] 和图像分类 [12]。然而,测量预测的不确定性仍然是一个具有挑战性的问题 [20, 21]。获得良好校准的预测不确定性是必不可少的,因为它可以用于许多机器学习应用(例如主动学习 [8] 和新颖性检测 [18]),以及在现实世界系统中部署 DNNs 时 [2],例如自动驾驶汽车和安全认证系统 [6, 30]。
DNNs 的预测不确定性与检测从分布内(即训练样本的分布)统计或对抗性偏离的异常样本问题密切相关。为了检测分布外(OOD)样本,最近的工作利用了后验分布的置信度 [13, 21]。例如,Hendrycks & Gimpel [13] 提出了分类器后验分布的最大值作为基线方法,并通过处理 DNNs 的输入和输出来改进它 [21]。为了检测对抗样本,提出了基于密度估计器的置信度分数,以在 DNNs 的特征空间中表征它们 [7]。最近,Ma 等人 [22] 提出了局部内在维度(LID),并经验性地展示了使用 LID 可以有效地估计测试样本的特征。然而,大多数先前的工作通常不会同时评估 OOD 和对抗样本。据我们所知,目前没有已知的通用检测器在这两个任务上都能很好地工作。
贡献。在本文中,我们提出了一种简单而有效的方法,适用于任何预训练的 softmax 神经分类器(无需重新训练),用于检测包括 OOD 和对抗样本在内的异常测试样本。我们的高级思想是利用“生成”(基于距离的)分类器的概念来测量测试样本在 DNNs 特征空间上的概率密度。具体来说,我们假设预训练的特征可以通过类条件高斯分布很好地拟合,因为其后验分布在高斯判别分析下可以证明与 softmax 分类器等价(见第 2.1 节的论证)。在这一假设下,我们使用马氏距离定义了置信度分数,该距离与最接近的类条件分布相关,其中其参数选择为训练样本的经验类均值和共享经验协方差。与传统的观点相反,我们发现使用相应的生成分类器并不会牺牲 softmax 分类的准确性。也许令人惊讶的是,其置信度分数在多个其他任务中显著优于基于 softmax 的分数:检测 OOD 样本、检测对抗样本和类增量学习。
我们使用深度卷积神经网络(如 DenseNet [14] 和 ResNet [12])在各种数据集(包括 CIFAR [15]、SVHN [28]、ImageNet [5] 和 LSUN [32])上展示了所提出方法的有效性。首先,对于检测 OOD 样本的问题,所提出的方法在所有测试案例中都优于当前最先进的方法 ODIN [21]。特别是,与 ODIN 相比,当 95% 的分布内(例如 CIFAR-100)样本被正确检测时,我们的方法在 ResNet 上将检测到的 OOD(例如 LSUN)样本的真负率(TNR)从 45.6% 提高到 90.9%。其次,对于检测对抗样本的问题,例如由 FGSM [10]、BIM [16]、DeepFool [26] 和 CW [3] 四种攻击方法生成的对抗样本,我们的方法优于最先进的检测度量 LID [22]。特别是,与 LID 相比,当 95% 的正常 CIFAR-10 样本被正确检测时,我们的方法在 ResNet 上将 CW 的 TNR 从 82.9% 提高到 95.8%。
我们还发现,所提出的方法在超参数的选择上更加鲁棒,并且在极端情况下也表现出更强的鲁棒性,例如当训练数据集具有一些噪声、随机标签或少量数据样本时。特别是,Liang 等人 [21] 使用 OOD 样本的验证集来调整 ODIN 的超参数,这通常是不可能的,因为关于 OOD 样本的知识无法事先获得。我们展示了所提出方法的超参数可以仅使用分布内(训练)样本进行调整,同时保持其性能。我们进一步展示了所提出方法在简单攻击(即 FGSM)上调优后,可以用于检测其他更复杂的攻击,如 BIM、DeepFool 和 CW。
最后,我们将我们的方法应用于类增量学习 [29]:新的类逐步添加到预训练的分类器中。由于新类样本来自训练分布之外的分布,可以自然地期望在不重新训练深度模型的情况下使用我们提出的度量对其进行分类。基于这一动机,我们提出了一种简单的方法,通过简单地计算新类的类均值并更新所有类的共享协方差,可以随时容纳新类。我们展示了所提出的方法优于其他基线方法,如基于欧氏距离的分类器和重新训练的 softmax 分类器。这证明了我们的方法在许多其他相关的机器学习任务中具有潜在的应用价值,例如主动学习 [8]、集成学习 [19] 和少样本学习 [31]。
2. 基于生成分类器的马氏距离分数
给定带有 softmax 分类器的深度神经网络(DNNs),我们提出了一种简单而有效的方法来检测异常样本,如分布外(OOD)和对抗样本。我们首先提出了基于高斯判别分析(GDA)下诱导生成分类器的置信度分数,然后介绍了改进其性能的附加技术。我们还讨论了置信度分数如何适用于增量学习。
2.1 为什么使用基于马氏距离的分数?
从 softmax 分类器推导生成分类器。设
为了从预训练的 softmax 神经分类器中估计生成分类器的参数,我们计算训练样本
其中
基于马氏距离的置信度分数。使用上述诱导的类条件高斯分布,我们定义置信度分数
请注意,该度量对应于测量测试样本的概率密度的对数。我们指出,异常样本在 DNNs 的表示空间中比在 softmax 后验分布的“标签过拟合”输出空间中更能被表征。这是因为从后验分布获得的置信度度量即使对于远离 softmax 决策边界的异常样本也可能显示高置信度。Feinman 等人 [7] 和 Ma 等人 [22] 在某种意义上处理 DNN 特征以检测对抗样本,但没有使用基于马氏距离的度量,即他们仅在其分数中使用欧氏距离。在本文中,我们展示了马氏距离在各种任务中比欧氏距离显著更有效。
生成分类器的实验支持。为了评估我们的假设,即 DNNs 的训练特征支持 GDA 的假设,我们测量分类准确率如下:
我们指出,这对应于使用生成分类器的后验分布预测类标签。有趣的是,我们发现基于马氏距离的分类器(蓝色条)也达到了 softmax 准确率(红色条),而传统知识认为从头训练的生成分类器通常比 softmax 等判别分类器表现差得多。为了视觉解释,图 1(a) 展示了通过 t-SNE [23] 构建的 CIFAR-10 测试样本的最终特征的嵌入,其中点的颜色表示相应对象的类别。可以观察到,所有十个类在嵌入空间中明显分离,这支持了我们的直觉。此外,我们还展示了基于马氏距离的度量在检测分布外样本中非常有用。为了评估,我们使用简单的基于阈值的检测器通过计算测试样本

2.2 校准技术
输入预处理。为了使分布内和分布外样本更易分离,我们考虑在测试样本中添加小的受控噪声。具体来说,对于每个测试样本
其中
特征集成。为了进一步提高性能,我们考虑不仅从最终特征中测量和组合置信度分数,还从 DNNs 的其他低层特征中测量和组合。形式上,给定训练数据,我们提取 DNNs 的第


2.3 使用基于马氏距离的分数进行类增量学习
作为自然扩展,我们还展示了基于马氏距离的置信度分数可以用于类增量学习任务 [29]:预训练在基类上的分类器在出现新类及其样本时逐步更新。这个任务被认为具有挑战性,因为必须在有限的内存中处理灾难性遗忘 [24]。为此,最近的工作致力于开发涉及生成模型或数据采样的新训练方法,但采用此类训练方法可能会带来昂贵的来回成本。基于所提出的置信度分数,我们开发了一种无需复杂训练方法的简单分类方法。为此,我们首先假设分类器在基类上进行了良好的预训练,这一假设在许多实际场景中是合理的。在这种情况下,可以预期分类器不仅能够很好地检测 OOD 样本,还可能很好地判别新类,因为使用基类学习的表示可以表征新类。基于这一动机,我们提出了一种基于公式 (3) 的基于马氏距离的分类器,它试图通过简单地计算和更新类均值和协方差来容纳新类,如算法 2 所述。我们置信度分数的类增量适应展示了其在未来广泛应用中的潜力。

3. 实验结果
在本节中,我们使用深度卷积神经网络(如 DenseNet [14] 和 ResNet [12])在各种视觉数据集(包括 CIFAR [15]、SVHN [28]、ImageNet [5] 和 LSUN [32])上展示了所提出方法的有效性。由于篇幅限制,我们在补充材料中提供了更详细的实验设置和结果。我们的代码可在 https://github.com/pokaxpoka/deep_Mahalanobis_detector 获取。
3.1 检测分布外样本
设置。对于检测分布外(OOD)样本的问题,我们训练了 100 层的 DenseNet 和 34 层的 ResNet 来分类 CIFAR-10、CIFAR-100 和 SVHN 数据集。训练中使用的数据集是分布内(正)数据集,其他数据集被视为 OOD(负)。我们仅使用测试数据集进行评估。此外,TinyImageNet(即 ImageNet 数据集的子集)和 LSUN 数据集也被测试为 OOD。为了评估,我们使用基于阈值的检测器来测量测试样本的某个置信度分数,然后如果置信度分数高于某个阈值,则将测试样本分类为分布内。我们测量以下指标:在 95% 真阳率(TPR)下的真阴率(TNR)、接收者操作特征曲线下面积(AUROC)、精确率 - 召回率曲线下面积(AUPR)和检测准确率。为了比较,我们考虑了基线方法 [13],其将置信度分数定义为后验分布的最大值,以及最先进的 ODIN [21],其将置信度分数定义为处理后后验分布的最大值。对于我们的方法,我们从 DenseNet(或 ResNet)的每个密集(或残差)块末尾提取置信度分数。为了计算效率,每个卷积层上的特征图大小通过平均池化减少:
每种技术的贡献及与 ODIN 的比较。表 1 验证了在与基线方法和 ODIN 的比较下,我们提出的技术的贡献。我们使用在 CIFAR-10 上训练的 ResNet 测量检测性能,当 SVHN 数据集用作 OOD 时。我们逐步应用我们的技术,以查看每个组件的逐步改进。可以注意到,即使在没有特征集成和输入预处理的情况下,我们的方法也显著优于基线方法。这表明,与后验分布相比,我们的方法能够更有效地表征 OOD 样本。通过利用特征集成和输入预处理,检测性能进一步得到提升,超越了 ODIN。表 2 的左侧列报告了在所有分布内和分布外数据集对中使用 ODIN 的检测性能。我们的方法在所有测试案例中均优于基线和 ODIN。特别是,与 ODIN 相比,当 95% 的 CIFAR-100 样本被正确检测时,我们的方法在检测 LSUN 样本的真负率(TNR)上从 41.2% 提高到 91.4%(使用 DenseNet)。

鲁棒性比较。为了评估我们方法的鲁棒性,我们测量了仅使用分布内样本和由 FGSM [10] 生成的对抗样本来调整所有超参数时的检测性能。如表 2 的右侧列所示,ODIN 在某些情况下(例如,在 SVHN 上训练的 DenseNet)表现不如基线方法,而我们的方法仍然一致地优于基线和 ODIN。我们指出,即使在没有 OOD 样本但使用对抗样本进行验证的情况下,我们的方法也优于使用 OOD 样本验证的 ODIN。我们还在各种训练设置下验证了我们方法的鲁棒性。由于我们的方法使用训练样本的经验类均值和协方差,因此它可能会受到训练数据特性的影响。为了验证鲁棒性,我们通过在 CIFAR-10 数据集上改变训练数据的数量和为训练数据分配随机标签来测量检测性能。如图 3 所示,我们的方法(蓝色条)即使在训练数据量少或噪声数据的情况下也保持高检测性能,而基线(红色条)和 ODIN(黄色条)则不然。最后,我们指出,使用标准交叉熵损失训练的 softmax 神经分类器的检测器通常优于使用置信度损失 [20] 训练的 softmax 神经分类器的 ODIN 检测器,尽管训练此类模型的成本更高(详见补充材料)。


3.2 检测对抗样本
设置。对于检测对抗样本的问题,我们训练 DenseNet 和 ResNet 来分类 CIFAR-10、CIFAR-100 和 SVHN 数据集,并使用相应的测试数据集作为正样本。我们使用对抗图像作为负样本,这些图像由以下攻击方法生成:FGSM [10]、BIM [16]、DeepFool [26] 和 CW [3],其详细解释可在补充材料中找到。为了比较,我们使用了基于核密度(KD)[7] 和预测不确定性(PU)组合的逻辑回归检测器,即后验分布的最大值。我们还比较了最先进的局部内在维度(LID)分数 [22]。遵循 [7, 22] 中的类似策略,我们随机选择 10% 的原始测试样本来训练逻辑回归检测器,剩余的测试样本用于评估。使用训练集内的嵌套交叉验证,所有超参数(包括 KD 的带宽参数、LID 的最近邻数量以及我们方法的输入噪声)都进行了调整。
与 LID 的比较及泛化分析。表 3 的左侧列报告了逻辑回归检测器在所有正常和对抗样本对中的 AUROC 分数。可以注意到,所提出的方法在大多数情况下优于所有测试方法。特别是,当我们在 CIFAR-10 数据集上训练的 ResNet 上检测 CW 样本时,我们的方法将 LID 的 AUROC 从 82.2% 提高到 95.8%。类似于 [22],我们还评估了所提出的方法在简单攻击上调优后是否能够泛化以检测其他更复杂的攻击。为此,我们使用 FGSM 生成的样本来训练逻辑回归检测器,并测量检测性能。如表 3 的右侧列所示,我们使用 FGSM 训练的方法能够准确地检测更复杂的攻击,如 BIM、DeepFool 和 CW。尽管 LID 也能够较好地泛化,但我们的方法在大多数情况下仍然优于它。一个自然的问题是 LID 是否可以用于检测 OOD 样本。我们确实在补充材料中比较了我们的方法与 LID 的性能,其中我们的方法在所有测试案例中仍然优于 LID。

3.3 类增量学习
设置。对于类增量学习任务,我们训练了 34 层的 ResNet 来分类 CIFAR-100 和下采样的 ImageNet [4]。如第 2.3 节所述,我们假设分类器在基类上进行了预训练,并且新的类及其数据集逐步提供。具体来说,我们测试了两种不同的场景:在第一个场景中,CIFAR-100 的一半类是基类,其余的是新类。在第二个场景中,CIFAR-100 的所有类都被视为基类,ImageNet 的 100 个类是新类。所有场景都进行了五次测试并取平均值。类划分在每次试验中随机生成。为了比较,我们考虑了 softmax 分类器,它在有新类数据时进行微调,以及欧氏距离分类器 [25],它通过仅计算类均值来容纳新类。对于 softmax 分类器,我们仅更新 softmax 层以实现近零成本训练 [25],并遵循 Rebuffi & Kolesnikov [29] 中的内存管理:保留少量旧类样本在有限的内存中,其中内存大小与用于保持基于马氏距离分类器参数的内存大小匹配。为了评估,类似于 [18],我们首先通过调整新类分数的额外偏置来绘制基类 - 新类准确率曲线,并测量曲线下面积(AUC),因为平均基类和新类准确率可能会导致基类和新类之间的性能不平衡。
与其他分类器的比较。图 4 比较了在上述两个场景中方法的增量学习性能,以 AUC 为衡量标准。在每个子图中,绘制了相对于学习类数量的 AUC(左)和添加最后一个新类后的基类 - 新类准确率曲线(右)。我们提出的基于马氏距离的分类器随着新类数量的增加显著优于其他方法,尽管在图 4(b) 的右侧图中存在小范围的交叉(由于灾难性遗忘问题)。特别是,在所有新类添加后,我们提出方法的 AUC 为 40.0%(22.1%),优于 softmax 分类器的 32.7%(15.6%)和欧氏距离分类器的 32.9%(17.1%)。我们还在补充材料中报告了当 CIFAR-100 的类是基类而 CIFAR-10 的类是新类时的实验结果,其中总体趋势相似。实验结果进一步证明了我们的置信度分数相对于其他合理分数的优越性。

4. 结论
在本文中,我们提出了一种简单而有效的方法来检测包括分布外样本和对抗样本在内的异常测试样本。本质上,我们的主要思想是在 LDA 假设下诱导生成分类器,并基于此定义新的置信度分数。通过输入预处理和特征集成等校准技术,我们的方法在多个任务中表现非常出色:检测分布外样本、检测对抗攻击和类增量学习。我们还发现,所提出的方法在超参数的选择上更加鲁棒,并且在极端情况下也表现出更强的鲁棒性,例如当训练数据集具有一些噪声、随机标签或少量数据样本时。我们相信,我们的方法在许多其他相关的机器学习任务中具有潜在的应用价值,例如主动学习 [8]、集成学习 [19] 和少样本学习 [31]。