Mean-Shifted Contrastive Loss for Anomaly Detection 用于异常检测的均值偏移对比损失

Tal Reiss Yedid Hoshen

School of Computer Science and Engineering

The Hebrew University of Jerusalem, Israel

2021.0707

摘要:

抽象深度异常检测方法学习正常样本和异常样本之间分离的表示。当强大的外部训练的特征提取器(例如,在ImageNet上预训练的深度残差网络)在由正常样本和无异常组成的训练数据上进行微调时,得到非常有效的表示。然而,这是一项困难的任务,可能会遭受灾难性的崩溃,即容易学习琐碎和非特异性的特征。在本文中,我们提出了一个新的损失函数,它可以同时克服中心损失和对比损失方法的失效模式。此外,我们将其与对预测置信度敏感的置信度不变的角度中心损失相结合,从而取代了之前工作中使用的欧氏距离。我们的改进产生了一种新的基于均值偏移对比损失的异常检测方法,它比以前的方法更准确,对灾难性崩溃的敏感度也更低。在CIFAR - 10数据集上,我们的方法在包括97.5 % ROC - AUC在内的多个基准测试集上取得了先进的异常检测性能。

    • 引言

异常检测是智能代理的一项基本任务,旨在检测观察到的模式是正常的还是异常的(不寻常或不太可能)。异常检测在科学和工业任务中有着广泛的应用,如检测新的物理现象(黑洞,超新星)或基因突变,以及生产线检测和视频监控等。由于任务的重要性,许多工作都集中在自动异常检测,特别是统计和机器学习方法上。许多异常检测方法使用的一种常见范式是测量样本的概率,将高概率样本赋值为正常,低概率样本赋值为异常。密度估计量的质量与用来表示数据的特征的质量密切相关。经典方法在原始特征上使用K近邻( kNN )或高斯混合模型( GMM )等统计估计量,然而这往往导致在图像等高维数据上的次优结果。最近的许多方法,以自监督的方式学习特征并使用它们来检测异常。它们的主要弱点是异常检测数据集通常较小,不包含导致特征较弱的异常样本。另一个取得较好效果的方向是在ImageNet分类等大规模外部数据集上迁移从辅助任务中学习到的特征。研究发现,在正常训练数据上对预训练的特征进行微调可以带来显著的性能提升,但具有相当的挑战性。在异常检测等一类分类器( OCC )任务上进行微调的主要问题是灾难性崩溃,即在效能初步改善后,特征退化并变得无信息。这种现象是由OCC任务所允许的平凡解造成的,例如PANDA [ 1 ]和Deep - SVDD [ 2 ]所使用的中心损失,它可以通过忽略数据或学习简单的1来达到完美的分数。CV ] 7 Jun 202函数的数据。尽管过去的方法[ 1-3 ]试图通过各种技术来缓解这种崩溃,例如:架构修改、额外监督的辅助任务和持续学习,但它们并没有解决灾难性崩溃的问题。

我们的贡献:我们提出了一些显著提高异常检测精度和减少灾难性崩溃的进展。i )我们引入了一个新的损失函数,它依赖于对比学习的思想用于视觉识别任务。与标准对比学习中角度距离是相对于原点测量的不同,我们测量了角度距离相对于提取特征的归一化中心。我们表明,这种修改对于在OCC设置中获得强大的适应特征的性能是至关重要的。ii )我们发现,学习一个深度表示并将其重新缩放到单位球面上可以显著提高准确率。该约束极大地改善了微调设置的性能。我们证明这与从置信度中消除语义相关。iii )我们证明了我们提出的均值偏移对比损失的一个局限性,并表明我们的新损失与角中心损失的组合解决了这个局限性。在大量的实验中,我们证明了我们的方法能够达到顶级异常检测性能( CIFAR - 10的ROC - AUC为97.5 %),并且几乎完全消除灾难性崩溃。

    • 相关工作

经典的异常检测方法:检测图像中的异常已经研究了几十年。这些方法遵循三种主要的范式:i )重构- -该范式首先尝试用一组基函数来表征正常数据,然后尝试用这些基函数来重构一个新的例子,通常是在稀疏性或小范数权重等约束条件下。高重构误差的样本不符合正常数据分布,表现为异常。一些著名的方法包括:主成分分析法[ 4 ]和K近邻法[ 5 ]。ii )密度估计- -另一种范式是先估计正常数据的密度。如果一个新的测试样本的估计密度较低,则称其为异常样本。参数密度估计方法包括高斯混合模型( EGMM ) [ 6 ],非参数方法包括kNN (这也是一种基于重建的方法)和核密度估计[ 7 ]。这两类方法都存在缺点:参数方法对数据性质的参数假设敏感,而非参数方法在高维情况下难以准确估计密度。iii )一类分类器( OCC ) - -该范式试图拟合一个参数分类器来区分正常训练数据和所有其他数据。然后使用分类器将新样本分类为正常或异常。这类方法包括单类支持向量机( OCSVM ) [ 8 ]和支持向量数据描述( SVDD ) [ 9 ]。

自监督深度学习方法:自监督方法不使用监督来学习深度表示,而是训练神经网络来解决获取数据是免费的或至少是非常便宜的辅助任务。学习高质量图像特征的辅助任务包括:视频帧预测[ 10 ]、图像彩色化[ 11、12]和解谜[ 13 ]。RotNet [ 14 ]利用一组图像处理绕图像轴旋转,预测图像真实朝向,学习高质量图像特征。GEOM [ 15 ]使用类似的图像处理任务预测来检测图像中的异常。该方法由文献[ 16 ]改进,并由文献[ 17 ]推广到表格数据。另一种常用的自监督学习范式是对比学习[ 18 ],通过区分相同样本与其他数据样本的相似视图(增强)来学习表示。最近,对比学习的变体也被引入到OCC中。CSI [ 19 ]将增广输入视为正样本,分布偏移输入视为负样本。DROC [ 20 ]与CSI具有相似的技术方案,没有任何测试时间的增加或模型的集成。

单类分类的特征自适应:该工作基于用预训练的权重初始化神经网络的思想,然后通过对训练数据的进一步自适应来获得更强的性能。尽管特征自适应在多类分类场景中得到了广泛的研究,但在OCC场景中的工作却非常有限。Deep SVDD [ 2 ]建议首先在正常训练数据上训练一个自编码器,然后使用编码器作为初始特征提取器。此外,由于编码器的特征并不特别适合异常检测,Deep SVDD采用编码器训练数据。然而,这种幼稚的训练过程导致了灾难性的崩溃。另一个方向是在大规模外部数据集上使用从辅助任务中学习到的特征,如ImageNet分类。在ImageNet数据集上训练的深度特征表示已经由[ 21 ]展示,以显著提高在其他数据集上的性能,这些数据集仅与ImageNet的某些类有模糊关系。文献[ 16 ]提出了迁移ImageNet预训练特征进行失配检测。文献[ 3 ]提出了针对OCC的类预训练,将异常检测与原始任务联合训练,仅获得有限的适应成功。PANDA [ 1 ]提出了基于早期停止和连续学习方法EWC [ 22 ]的技术来缓解灾难性崩溃。尽管PANDA在大多数数据集上取得了先进的性能,但它还没有解决灾难性崩溃的问题。

3 背景:学习用于单类分类的表示

3 . 1预备知识

在单类分类任务中,给定一组训练样本,均为正常的(且不包含任何异常) x1,x2 .. xN∈Xtrain。其目的是将新样本x划分为正常或异常。这里考虑的方法学习一个由神经网络函数

参数化的样本的深层表示,其中d∈N为特征维数。在几种方法中,φ由预训练的权重φ 0初始化,可以使用外部数据集( e.g. ImageNet分类)或使用训练集( e.g. Rot Net )上的自监督任务进行学习。在训练数据上进一步调整表示,形成最终的表示φ。最后,一个异常评分函数s ( x )利用样本φ ( x )的表示,预测样本x的异常程度。通过对s ( x )施加阈值,可以预测二值异常分类。在Sec . 3.2和SEC . 3 . 3,我们回顾最相关的表示φ的学习方法。

3.2中心损失

为OCC自适应初始特征提取器φ 0的一个简单方法是使用中心损失。该思想简单地指出,特征被适应使得仅由正常样本组成的训练数据尽可能靠近中心。具体来说,输入样本x∈Xtrain的中心损失可以写成如下形式:

特征提取器φ由一些预训练的特征提取器φ 0(文献展示了一种ImageNet预训练的ResNet非常有效)初始化。中心可以设置为训练集预训练特征表示的均值:

这种损失会发生灾难性的崩溃,即预训练的提取器φ 0的判别特性可能会因为在简单中心损失任务上的训练而丢失。在功效得到初步改善后,由于存在一个平凡解使得φ ( x ) = c独立于样本x,特征退化并变得无信息。当然,这种表示不能区分正常样本和异常样本

Deep SVDD [ 2 ]提出了多种结构改进方案来提高中心损耗的利用率。然而,所提出的架构过于局限。PANDA [ 1 ]研究表明,Deep SVDD特征自适应并没有比初始特征提取器φ 0的线性后处理表现更好。相反,他们在没有任何架构修改的情况下使用中心损失,并提出了基于早期停止和持续学习的技术来减轻灾难性崩溃。虽然在大多数数据集上实现了最先进的性能,但这并没有完全解决这个问题。

3.3自监督辅助任务

一个备选的工作路线是使用最先进的自监督学习技术来首先学习表示φ。虽然早期的工作基于Rot Net思想[ 14 ],但是现在最好的操作方法是基于对比学习。在对比训练过程中,随机采样一个大小为N的小批量数据,并将对比预测任务定义在由小批量数据衍生的成对增广样本上,产生2N个数据点。下面写正对( i′, i′′)的典型对比损失,其中xi′和xi″是x∈Xtrain的增广:

图1:上图:相对于原点的角表示。Lcon扩大正负样本之间的夹角,从而使它们的欧氏距离增加到c。Bottom:均值偏移表示。Lmsc不影响c和均值偏移表示之间的欧氏距离,同时最大化负对之间的夹角。

其中m∈[ 2N ]:xm是某个x∈Xtrain的增广视图,τ是一个温度超参数,并且它满足:| | φ ( x ) | | = 1 .增强包括裁剪、翻转、颜色抖动、灰度和高斯模糊。对比损失由[ 23 ]给出,它激发了两个性质i ) { φ ( x ) } x∈Xtrain在单位球面上的均匀分布ii )同一样本的不同增强映射到同一表示。

目前,构造性方法在不使用外部训练的网络权重的情况下实现了最高的异常检测性能。我们提醒读者,PANDA使用ImageNet预训练的权重,而对比损失方法,如CSI [ 19 ],只使用正常的训练数据。对比损失比中心损失具有更好的自监督异常检测性能,这表明将预训练的特征与对比方法结合可以导致PANDA的进一步改进。然而,我们实证发现情况并非如此,相反,它导致了非常快的灾难性崩溃,并且与预训练的特征提取器φ 0相比没有任何改进。为了克服Sec中的这一限制,我们将提出一个新的损失函数:均值偏移对比损失。

4均值偏移对比损失

本节介绍了我们提出的OCC特征自适应新方法。在第4.1节中,我们提出了新的损失函数,即均值偏移对比损失,其中我们在相对于提取的特征中心的角度空间中操作。在4.2节中我们解释了使用角距离作为度量代替欧氏距离的优势,并利用它提出了角中心损失。在第4.3节中,我们结合以上内容构建了我们的最终方法。

4 . 1均值漂移损失:

修正OCC迁移学习的对比损失以往的对比学习方法多以类间分离能力来评价。虽然对比方法在视觉识别任务上取得了先进的性能,但它们并不是为适应OCC特征而预先设计的。为了最小化对比损失,负对x,y∈Xtrain的表示之间的夹角需要为最大化,即使x,y都是正常样本,即来自同一类。通过最大化这些角度,到归一化中心的距离也增加了,如图1 (上)所示。这种行为与中心损失(公式1 )的优化相反,它通过最小化正常表示与中心之间的欧氏距离来学习表示。PANDA [ 1 ]已经证明优化的中心损失导致了高的异常检测性能。此外,强制正常训练数据的表示在单位球面上均匀分布并不适合OCC,因为每个异常样本( x /∈Xtrain )都会有一个附近的正常样本x∈Xtrain。

图2:( a )由φ 0导出的初始化特征空间。( b ) Lcon迫使{ φ ( x ) } x∈Xtrain在单位球面上均匀分布,导致每个异常样本[ ( x /∈Xtrain将有一个附近的正常样本;( c ) Lmsc在围绕中心的角度空间内运行,形成{ θ ( x ) } x∈Xtrain在围绕中心的单位球面上均匀分布;( d )将优化Lmsc后的均值偏移特征投影到单位球面上,得到围绕中心的正常样本特征的信息紧凑表示。

我们提出对对比损失的修正来缓解这些问题。我们不是测量样本之间相对于原点的角距离,而是测量相对于正常特征归一化中心的角距离。如图1 (底部)所示,在我们提出的均值偏移表示中,对比损失最大化负对之间的角度,同时保持它们到归一化中心的距离。我们新的损失函数被命名为Mean - Shifted Contrastive Loss

通过略微滥用符号,让我们用c (即方程的' 2规范化形式。2 )表示训练集特征表示的归一化中心。对于每一幅图像x,我们创建图像的两个不同的增强,记为x′,x″。所有图像都经过一个特征提取器,然后,像大多数对比学习方法一样,将提取的特征缩放到单位球(通过' 2归一化)中,得到它们各自的φ特征表示。对于每个表示,我们通过减去中心并归一化到单位球面来定义其均值偏移的对应物。对于样本x,定义了其均值漂移表示:

大小为2N的增广小批图像x的两个增广x′,x′′的均值漂移损失定义如下:

式中:τ为温度超参数。训练过程如图2所示。由于均值偏移表示是在c左右的角度空间中操作的,并不直接鼓励增加中心与训练图像特征之间的距离。进一步,该损失在正常数据的中心周围形成均匀分布,而不是在单位球面上形成正常数据的均匀分布,从而允许异常(往往会离中心较远)的判别。这种行为在很大程度上消除了使用标准对比损失调整φ时遇到的崩溃。

4.2 .异常检测的角度中心损失

均值偏移损失的一个局限性是,虽然它并不直接鼓励增加训练图像的特征到中心的距离,但它仍然可能间接地这样做。具体来说,如果φ ( x′)与c的欧氏距离较小,则角度θ ( x′)很容易受到φ ( x′)变化的影响。事实上,φ ( x′)的一个小的变化会引起角度的一个大的变化,因为它引起敏感行为。这最终可能会增加到c的距离。根据Deep SVDD [ 2 ]和PANDA [ 1 ]使用的中心损失的直观性,我们预期正常数据位于中心周围较小的区域会比允许占据较大的距离时更具判别性。我们提出通过增加一个中心损失来支持正常样本距离中心的收缩

与以前使用中心损失的深度学习方法不同,我们建议使用角度中心损失。角度中心损失促使每个样本与中心之间的角度距离最小。这与标准的中心损失形成了鲜明对比,它选择了与中心的最小欧氏距离。虽然简单的改变,角中心损失取得了比常规中心损失(见Sec . 5.3 )好得多的结果。我们提醒读者,我们的特征提取器φ产生单位矢量,c是归一化中心。因此,角中心损失定义为:

下面我们分析角中心损失性能强的原因。我们的初始特征提取器φ 0是在一个分类任务(特别是ImageNet分类)上预训练的。从特征φ 0 ( x )中获得类别概率,然后与分类器矩阵C相乘并通过softmax层。因此logit由C · φ0 ( x )给出。由于softmax是单调函数,logits的缩放不会改变概率的顺序。然而,标度确实决定了决策的置信度。我们提出将φ 0 ( x )分解为两个分量:

I )语义类φ 0 ( x )‖φ0 ( x )‖,置信度‖φ0 ( x )‖。置信度作为每个样本的温度,决定了类间区分度的置信度。在图3中,我们比较了在CIFAR - 10数据集( '鸟')的特定类别上正常值和异常值的置信度直方图。我们观察到在这个数据集中,置信度并不能区分正常和异常图像。我们进行了深入的研究,结果表明ImageNet预训练特征表示的置信度对异常检测性能没有帮助。这可能部分是由用于将多类数据集转换为异常检测数据集的协议造成的。这激发了角中心损失,它只对与正常图像中心的语义相似性敏感,而不使用分类器置信度,充当干扰因素。

4 . 3两全其美:一种新的OCC特征自适应方法

我们的整个方法由两个损失结合而成:i )均值偏移对比损失(第4 . 1节) ii )角度中心损失(第4 . 2节)。

这种结合使我们可以享受两个部分的最佳,并缓解了每个损失的一些局限性。均值偏移损失任意增大正常样本与中心的特征角度距离的能力由角度中心损失来保证。另一方面,角中心损失的平凡解,其中φ ( x ) = c独立于样本x,通过与均值偏移对比损失的组合来缓解。因此,二者结合损失消除了这些故障,实现了高精度和训练稳定性。事实上,我们在Sec . 5,我们的组合损失在数百个训练历元后几乎没有崩溃。这应该与PANDA [ 1 ]中的标准对比损失在少于十个历元后遭遇的崩溃,以及中心损失在数十个历元后遭遇的崩溃进行比较

表1为在包含500个以上训练样本的数据集上的异常检测性能(平均ROC - AUC %)。对于我们的方法,我们报告了5次运行的平均值和标准差。Bold表示最好的结果。

异常判据:为了将样本分类为正常或异常,我们使用了基于余弦距离的kNN的简单判据。我们首先计算目标图像x的特征与所有训练图像特征之间的余弦距离。异常分数由下式给出:

其中Nk ( x )表示训练特征集{ φ ( z ) } z∈Xtrain中距离φ ( x )最近的k个特征。通过检查异常得分s ( x )是否大于某个阈值,判断图像x是正常还是异常。

5实验

在本节中,我们广泛地评估了我们的方法,并证明了它的性能优于最新的方法。在Sec5.2中,我们报告了我们的OCC结果,并与之前在标准基准数据集上的工作进行了比较。在第5.3节中,我们分析了我们的方法缓解灾难性崩溃的能力,并提出了一个消融研究。

在文献[ 1 ]提出的框架基础上,我们使用在ImageNet分类任务上预训练的ResNet152作为φ 0,并添加一个额外的最后的' 2归一化层- -这是我们初始化的特征提取器φ。我们采用了文献[ 24 ]提出的数据增强模块;我们依次从随机调整大小的图像、随机颜色抖动、随机灰度转换、随机高斯模糊和随机水平翻转中应用224 × 224像素的裁剪。默认情况下,我们使用方程中的损失函数对模型进行微调。7 .对于推断我们使用Sec中描述的准则。4 . 3 .我们采用ROC - AUC度量作为检测性能评分。完整的培训和实施细节见附录A.3。

5.1 .基准

我们在广泛的异常检测基准上评估了我们的方法。在[ 15、16]之后,我们在常用的数据集CIFAR - 10 [ 25 ]、包含20个类的CIFAR - 100粗粒度版本[ 25 ]和CatsVsDogs [ 26 ]上进行实验。为了展示图像异常检测中的不同挑战,我们在不同领域的小数据集上进一步扩展了我们的结果。根据文献[ 1 ]中的设置,我们在102种花卉[ 27 ],加州理工学院-UCSD Birds 200 [ 28 ],MVTec [ 29 ],WBC [ 30 ],DIOR [ 31 ]上进行了测试。遵循标准协议,通过将一个类设置为正常,所有其他类设置为异常,将多类数据集转换为异常检测。这是对所有类进行的,在实际中将一个包含C类的数据集转化为C个数据集。全文数据集描述及详细信息见附录A.1

5.2标准数据集比较

小数据集:在表2中我们给出了( i )基于顶级自监督对比学习的方法- - CSI [ 19 ] ( ii )基于欧氏度量的PANDA [ 1 ] ( iii )我们的方法使用了' 2个归一化表示。我们看到,自监督方法在如此小的数据集上表现不佳,而我们的方法取得了非常强的性能。自监督方法在小数据集上表现不佳的原因,是由于他们看到的唯一训练数据是小数据集,无法利用如此小的数据量学习到强特征。这对于对比方法(对于所有其他的自监督方法也是如此)来说尤为严重。由于预训练的方法从外部数据集中传递特征,因此不具有这种失效模式。需要注意的是,与PANDA [ 1 ]类似,我们的方法并没有从小数据集上的适应中获益- -依赖于初始特征提取器φ 0,在归一化掉置信度‖φ0 ( x )‖之后。此外,不同于PANDA使用欧氏距离的kNN ( DN2 ),我们使用了角度距离。我们发现,我们的置信不变方法在除一个基准外的所有基准中都优于PANDA,在这些基准中我们也取得了相当的性能。

表2:各种小数据集( < 250张图像)上的异常检测准确率(平均ROC - AUC %)。自监督方法失败,而预训练的特征取得了很强的效果。

培训目标:构成我们最终列车损失的每个组成部分的个体效应在表中进行评估。3以及未适应的ImageNet预训练的ResNet特征结合kNN作为异常评分( DN2 )。我们注意到,预训练模型的置信度不变形式和角中心损失分别比原始特征和香草中心损失取得了更好的性能。我们进一步注意到,均值偏移损失优于其余损失,将其与角度中心损失相结合,可以得到进一步的改进。

灾难性崩溃:在图4a中,我们评估了不同训练目标在CIFAR - 10 ' Bird '类上的崩溃情况。我们注意到对比损失不适合OCC特征适应,因为它导致非常快的灾难性崩溃。PANDA-ES ( early-stopping )使得精度有了初步的提高,但是在几个历元之后,特征退化,变得无信息。Panda - EWC具有相同的行程;它延缓了崩溃,但没有阻止崩溃。最后,我们看到均值偏移损失几乎完全消除了灾难性崩溃。在图4 . b - c中,我们放大了构成我们最终损失的不同成分的崩塌斜率。虽然我们的最终损失结果比它的组件具有更高的准确性,但它的特征退化与均值漂移的特征退化类似损失。而且,角中心损失的特征退化比上述更快,但仍远好于标准中心损失。

图4:CIFAR-10 ' Bird '类:( a )当对比损失和PANDA遭受灾难性崩溃时,均值偏移损失几乎完全消除了对比损失和PANDA。( b )根据不同训练目标的历元放大ROC - AUC。( c )我们进一步放大到曲线的最大值,观察到角中心损失精度的下降比其他的更快。

负样本:除了Sim CLR [ 18 ]、Mo Co [ 32 ]等对比自监督学习方法外,其他非对比方法也被提出了只使用正对而不使用负对的( e.g. BYOL 和Sim Siam )。我们使用Sim Siam (使用均值漂移表示)来评估我们的方法,这与使用我们的损失没有负例相同。我们发现该方法经历了立即的灾难性崩溃。这表明在使用均值漂移表示时,负例对于良好的性能是必要的。为了给出一些直觉,注意SimSiam目标(具有或不具有均值迁移表示),实际上可以通过将所有表示映射到一个常数值来优化。虽然Sim Siam从头开始初始化时没有发生,但在OCC情况下,它确实退化为平凡解。这就确立了对比方法的必要性。

6结论

提出了一种新的特征自适应方法用于深度异常检测。我们对PANDA [ 1 ]进行了改进,并通过引入两个新的组分对其进行了超越;首先,我们提出了一种新的用于单类分类的特征自适应损失函数,该损失函数度量了与提取特征的中心而不是原点的角度距离。其次,我们使用角距离代替欧氏距离作为度量,因为后者被证明对预测置信度敏感,而预测置信度与异常无关。我们的方法实现了最高的异常检测性能,并且几乎完全消除了灾难性崩溃。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值