在部署机器学习系统时,检测异常的输入非常重要。更大、更复杂的输入,加大了区分异常examples和分布内example的难度。与此同时,各种各样的图像和文本数据也大量存在。我们建议利用这些数据来改进异常检测方法,方法是利用一个辅助的异常数据集训练异常检测器,我们称之为异常暴露(OE)。这使得异常检测器能够泛化并检测没有见过的异常样本。在大量的自然语言处理实验和小尺度和大尺度视觉任务中,我们发现OE显著提高了检测性能。我们还观察到,在CIFAR-10上训练的尖端生成模型可能会给SVHN图像分配比CIFAR-10图像更高的可能性;我们使用OE来缓解这个问题。我们还分析了OE的灵活性和鲁棒性,并分析了提高性能的辅助数据集的特征。
在本文中,我们研究了一种补充的方法(常接在别的自监督模型后面),我们训练模型来检测未建模的数据(即异常数据),通过学习,提示是否输入是未建模的。虽然很难为完整的数据分布建模,但我们可以通过将模型暴露于OOD examples 来学习检测OOD输入,从而学习更保守的Inliers,并能够检测新的异常形式。为此,我们建议利用不同的、真实的数据集,使用一种我们称为离群值暴露(OE)的方法。OE提供了一种简单有效的方法来持续改进现有的OOD检测方法。
OE有助于异常检测器泛化OOD数据的未曾见过的分布,甚至在大规模图像上也能表现良好。我们还证明了异常暴露比现有的几种OOD检测方法有所提高。我们的结果还显示了异常暴露的灵活性,因为我们可以用不同的异常分布源来训练各种模型。此外,我们确定OE可以使OOD样本的密度估计对OOD检测更加有用。最后,我们证明了OE改善了神经网络分类器在真实环境中的校准,其中一部分数据是OOD的。
我们考虑决定一个任务,即样本是否来自 D i n D_{in} Din的已知分布,或来自 D o u t D_{out} Dout。
在实际应用中,可能很难提前知道异常值的分布。因此,我们认为现实环境中的 D o u t D_{out} Dout是未知的。
给定一个参数化的OOD检测器和一个与 D o u t t e s t D_{out}^{test} Douttest不相交的OE数据集,我们训练模型来发现信号,并学习算法来检测query来自于 D i n D_{in} Din还是 D o u t O E D_{out}^{OE} DoutOE。
我们发现我们的算法可以推广到未曾见过的分布 D o u t D_{out} Dout。
深度参数化异常检测器通常从辅助任务中进行表示学习,例如分类或密度估计。(意思就是说将异常检测任务转化为一个辅助任务,即分类或者检测)给定一个模型 f f f和最初的学习目标 L L L,我们可以通过调参 f f f将OE最小化目标
在此案例中,由于label是不可获取的,所以 y y y可以被忽略
OE可以被应用在许多类型的数据集和原始任务上,因此 L O E L_{OE} LOE的具体公式依据任务和OOD检测器的使用而定
例如当使用基于maximum softmax probability的检测器时,我们设置 L O E L_{OE} LOE为 f ( x ′ ) f(x') f(x′)和均匀分布的cross-entropy;
当原始目标 L L L是密度估计并且label无法获取时,我们将 L O E L_{OE} LOE设置为对数似然 f ( x ′ ) f(x') f(x′)和 f ( x ) f(x) f(x)的margin ranking loss
我们在广泛的数据集上评估OOD检测器, 通过设置有无OE。每个评估都包括一个用于训练初始模型的ID数据集 D i n D_{in} Din、一个异常样本数据集 D o u t O E D_{out}^{OE} DoutOE和一个我们应用了OE的baseline detector。OOD检测器和 L O E L_{OE} LOElosses根据具体情况进行描述。
在第一个实验中,我们表明OE可以帮助检测器泛化新的文本和图像异常。不同于以前的工作,这一切都是在训练或调优过程中不需要访问测试分布的情况下完成的。在置信度分支实验中,我们表明OE是灵活的,并且补充了二元异常检测器。然后,我们证明使用合成异常值不如使用真实和多样的数据有效;以前,人们普遍认为需要合成数据或精心挑选的接近分布的数据,但真实多样的数据就足够了。我们以密度估计的实验作为结论。在这些实验中,我们发现一个尖端的密度估计器出人意料地给分布外的样本分配了比分布内的样本更高的密度,并且我们通过OE改善了这种令人惊讶的行为。
为此,我们将OOD example视为阳性类别,并评估三个指标:
AUROC、AUPR和N%真阳性率下的假阳性率(FPRN)。
AUROC和AUPR是综合指标,总结了一种检测方法在多个阈值下的性能。
AUROC可以被认为是一个异常例子被给予比分布内例子更高的OOD分数的概率。
当异常例子不常见时,AUPR函数是有用的,因为它考虑了异常的基本比率。
在使用这些指标进行评估的过程中,我们所有实验中测试示例的 D o u t t e s t 与 D i n t e s t D_{out} ^{test}与D_{in}^{test} Douttest与Dintest的基本比率是1:5。
FPRN指标代表一个严格阈值下的性能。通过在严格的阈值下观察性能,我们可以在强检测器之间进行清晰的比较。
在接下来的内容中,我们使用OE来增强以多分类为原始任务的OOD检测技术的性能。
考虑MSP,对于一个输入x,OOD分数为 m a x c f c ( x ) max_{c}f_{c}(x) maxcfc(x)。OOD样本取自各种没有见过的分布。用第4.1节中描述的指标来判断OOD检测器的质量。对于这种多类设置,我们对一个训练好的分类器加入OE来进行fine-tuning,以便它的后验更均匀。
具体来说,微调目标是
其中 H H H是交叉熵, U U U是k类上的均匀分布。当类别不平衡时,我们可以鼓励 f ( x ) f(x) f(x)匹配 ( P ( y = 1 ) , 。 。 。 , P ( y = k ) ) (P(y = 1),。。。,P(y = k)) (P(y=1),。。。,P(y=k))(意思就是说:当k个类样本数据个数相近时,f(x)和参数为k的均匀分布做交叉熵,当不相近时,如上)然而,对于我们所考虑的数据集来说, U U U匹配足够好。此外,请注意,使用OE从头开始的train可能会比微调带来更好的性能,这种方法也适用于不同的架构。
与前任不同,我们不会为每个 D o u t t e s t D^{test}_{out} Douttest 调整我们的超参数,这样 D o u t t e s t D^{test}_{out} Douttest就保持未知。
然而, λ λ λ系数是在实验早期通过附录A中描述的验证分布 D o u t v a l D_{out}^{val} Doutval确定的。特别是,我们使用λ = 0.5进行视觉实验,λ = 1.0进行自然语言处理实验。像以前涉及网络微调的OOD检测方法一样,我们选择 λ λ λ,以便对分类精度的影响可以忽略不计。
最近提出的一种OOD检测技术
Terrance DeVries and Graham W Taylor. Learning confidence for out-of-distribution detection in neural networks.
涉及将OOD评分分支b: X → [ 0 , 1 ] X → [0,1] X→[0,1]附加到深度网络上。该分支仅用 D i n D_{in} Din的样本进行训练,估计任何输入的置信度。我们使用他们的公开代码来训练新的40-4 Wide-ResNet分类器。我们通过向网络的原始优化目标添加 0.5 E x ∼ D O E o u t [ l o g b ( x ) ] 0.5E_{x\sim D_{OE}^{out}}[logb(x)] 0.5Ex∼DOEout[logb(x)]来微调具有OE的置信分支。置信分支比MSP检测器有所改进,加入OE后,置信分支能更有效地检测异常。
OE利用了下载真实数据集的简单性,但也有可能生成合成的离群点。我们试图用噪声扭曲图像,并将这些图像用作OE的异常值,但分类器很快记住了这一统计模式,并没有比以前(2018)更好地检测到新的OOD example。还有人通过训练GAN,产生位于分类器决策边界附近的合成的examples。分类器被鼓励在这些合成例子上具有低的Maximum Softmax Probability。相比之下,我们发现从不同的数据集中提取异常的更简单的方法足以显著改善OOD检测。
我们使用公开代码训练了一个40-4Wide-ResNet,并使用MSP作为我们的基线。
另一个实验将分类器与GAN同时训练,这样分类器给GAN产生的example分配一个高的OOD score。我们希望 D o u t t e s t D_{out}^{test} Douttest都是novel的。因此,我们使用他们代码的默认超参数,并且恰好一个模型应对所有的 D o u t t e s t D_{out}^{test} Douttest外分布。这与他们的工作不同,因为他们对于每个 D o u t t e s t D_{out}^{test} Douttest,都会训练和调整一个新的网络。
最后,我们将网络与GAN一起训练,并使用OE对其进行微调。表4显示了使用真实和多样数据集的OE相对于使用来自GAN的合成样本的巨大收益。
密度估计器学习数据分布 D i n D_{in} Din上的概率密度函数。异常的例子应该具有低概率密度,因为它们在 D i n D_{in} Din中是稀缺的(Nalisnick等人,2019)。因此,密度估计是对异常进行评分的另一种手段(宗等人,2018年)。我们展示了OE改进低概率、外围数据密度估计的能力。
lue
OE可以在更多的分类体系中工作,而不仅仅是上面考虑的那些。例如,在CIFAR-10上训练的多标签分类器在使用最大预测概率作为OOD分数时获得88.8%的平均AUROC。通过用OE来降低分类器在OOD样本上的输出概率,平均AUROC增加到97.1%。这比用OE来调整多分类模型的AUROC略低。另一种OOD检测是给分类器一个“拒绝类”(巴特利特&威格坎普,2008)。
我们发现,即使有OE,具有拒绝选项或多标签输出的分类器也不如具有多类别输出的OOD检测器有竞争力。(多标签是不是指的是自己造的标签呢,比如90°,180°???)
在实验的早期,我们发现选择 D o u t O E D_{out}^{OE} DoutOE对于向未知的 D o u t t e s t D_{out}^{test} Douttest泛化非常重要。例如,将高斯噪声添加到 D i n D_{in} Din的样本中以创建 D o u t O E D_{out}^{OE} DoutOE这一操作,并不能教会网络推广到复杂异常分布。类似地,我们在第4.3节中发现,对于 D o u t O E D_{out}^{OE} DoutOE来说,合成异常并不如真实数据那样有效。相比之下,我们的实验证明,4.2.2节中描述的真实异常的大数据集确实推广到了未曾见过的 D o u t t e s t D^{test}_{out} Douttest分布。
除了规模和真实性,我们发现 D o u t O E D_{out}^{OE} DoutOE的多样性也是一个重要因素。
做了几个关于数据集的接近度的实验。首先,我们发现在带有OE的模型训练阶段, D o u t t e s t , D o u t O E D_{out}^{test},D_{out}^{OE} Douttest,DoutOE不需要接近。
其次,我们发现OE成功的一个重要因素是 D o u t O E 和 D i n t e s t D_{out}^{OE}和D_{in}^{test} DoutOE和Dintest的接近程度。在NLP中,预处理后的 D o u t O E D_{out}^{OE} DoutOE更接近 D i n D_{in} Din,会显著提高了OOD检测性能。如果没有预处理,网络可能会发现易于学习的线索,这些线索揭示了输入是在分布范围内还是分布范围外,因此OE目标可以以意想不到的方式进行优化。这会导致检测器变弱。
在本文中,我们提出了OE,这是一种简单的技术,可以在不同的设置下增强当前的许多OOD检测器。它使用OOD样本来教授网络,以检测新的、未建模的OOD的example。我们表明,这种方法广泛适用于视觉和自然语言设置,即使是大规模的图像任务。OE可以改进模型校准和以前的几种异常检测技术。此外,OE可以教导密度估计模型为分布不均匀的样本分配更合理的密度。最后,OE在计算上是便宜的,并且它可以以低开销应用于现有系统。总之,OE是增强OOD检测系统的一种有效的补充方法