Self-Supervised Anomaly Detection A Survey and Outlook

本文是异常检测综述的另一篇文章,《Self-Supervised Anomaly Detection: A Survey and Outlook》,只对文字部分进行翻译,图表请查看原文。

自监督异常检测:综述与展望

  • 摘要
  • 1. 引言
  • 2. 相关工作
  • 3. 异常检测:术语和常见做法
    • A. 异常类型
    • B. 数据标签的可用性
    • C. 异常、离群值、新颖性、分布外检测
  • 4. 异常检测中的半监督学习
    • A. 算法
    • B. 假设与评估
    • C.应用领域
  • 5. 异常检测中的自预测方法
  • 6. 对比方法
  • 7. 比较评价与讨论
  • 8. 未来方向与结论
    • A. 对比模型中的负采样
    • B. 结合标签数据
    • C. 超越视觉异常检测
    • D. 结论

摘要

在过去几年中,异常检测是机器学习的一个子领域,主要关注罕见事件的检测,随着深度学习模型的空前增长,异常检测得到了极大的改进。
最近,自监督学习的出现引发了新的异常检测算法的发展,其精度大大超过了最先进的水平。本文旨在回顾自监督异常检测的现有方法。我们介绍了常用方法的技术细节,并讨论了它们的优缺点。我们还将这些模型的性能与其他最先进的异常检测模型进行了比较。最后,我们讨论了改进现有算法的各种新方向。

1. 引言

异常检测(AD)的任务是识别与大多数数据显著不同的样本,并经常表现成不规则、虚假、罕见或欺诈性观察的信号。在文献中,也使用了其他术语,如异常值、新颖性、分布外和偏差,而不是异常。异常检测在训练期间无法定义所有现有类的情况下特别有用。这使得AD算法可用于广泛的应用,包括但不限于网络安全中的入侵检测、金融和电信中的欺诈检测、声学新颖性检测、股票市场分析、地球科学领域中的事件检测、物理学、天文学,医学诊断和疾病检测、生物信息学和遗传学。
在过去的几十年里,为异常检测开发了一系列机器学习模型。核密度估计(KDE)、一类支持向量机(OCSVM)和孤立森林(IF)是异常检测中流行的经典(非深度)方法。这些算法仍然广泛用于解决异常检测任务,但在高维问题中其精度会下降。
近年来,深度模型已变得流行,并在大范围的应用中得到广泛应用。这些方法可以显著优于传统的基于非深度学习的算法,并在诸如对象识别和机器翻译等任务实现近乎人类水平的准确度。深度模型的一个关键优势在于,它们能够从原始数据中自动学习低维表示。因此,它们通常用于代替传统机器学习框架中使用的手动特征提取过程。
基于深度学习的AD模型可以大致分为三类:第一类包括使用深度神经网络学习高维数据的低维表示的模型,然后将经典异常检测算法(如OCSVM)应用于获得的低维表达。通过将数据映射到低维空间,传统的非深度学习AD方法不会面临维数诅咒问题,因此可以提供相当好的检测精度。第二组方法使用深度神经网络来重建输入数据,并基于数据重建损失直接计算异常分数。最常用的网络架构基于自编码器(AEs)和生成对抗网络(GANs)。基本假设是,如果网络被训练为仅重建正常数据,则当网络面临异常时,会出现严重的重建错误。第三类包括结合上述两种方法的算法。它们联合训练用于特征提取的神经网络和网络潜在空间上的异常检测器。异常检测器为输入数据提供异常分数。
尽管上述方法对AD使用不同的方法,但概念保持不变,即正常样本在训练网络的潜在空间中具有相似的特征分布,异常实例不符合正常的正常预期行为。
异常检测算法由于所处理任务的性质而面临独特的挑战。例如,在许多异常检测问题中,我们有一个具有大量正常数据和少量异常的不平衡数据集。这是因为在现实环境中,异常通常很少发生或发生的成本很高。即使在某些情况下,这些小部分异常样本也受到噪声污染,这使得检测任务更加复杂。另一个重要问题是,不能将异常视为一类数据,检测系统可能会暴露于其训练过程中从未遇到过的新类型异常。在设计适当的算法时,应仔细考虑这些挑战。
在文献中,有监督和无监督学习技术都用于异常检测。自监督学习(SSL)是无监督学习的一个子类别。最近的研究表明,在视觉表示学习、目标检测和自然语言处理等具有挑战性的任务中,自监督学习可以实现与完全监督基线相当的出色性能。受此启发,提出了几种用于异常检测的自监督方法,这大大改进了现有技术。SSL通过解决受监督的代理任务从未标记数据中学习可概括表示,该代理任务通常与目标任务无关,但可以帮助网络学习更好的表示。一组不同的任务,如去噪、旋转预测、分割或着色,可以用作监督代理任务。
有许多综述论文对现有的异常检测模型进行了回顾和分类。然而,据我们所知,还没有一篇综述论文探讨自监督异常检测方法。本文旨在首次回顾基于SSL的异常检测方法,并对最新技术进行分类。我们可以将我们工作的贡献总结如下:
•我们简要回顾了当前异常检测方法,以便在异常检测研究的背景下定位自监督异常检测。
•我们讨论了自监督异常检测的当前方法及其应用领域。
•我们根据训练期间对负样本的要求,将现有的自监督异常检测算法分为两个高级类别。基于SSL的模型基于其代理任务和架构而彼此不同。因此,以涵盖所有方法的方式对这些方法进行分类很重要。对于每种类型的方法,我们描述了技术和假设,并强调了优点和缺点。
•我们讨论了自监督异常检测研究的未来可能方向。

2. 相关工作

在过去的几十年中,异常检测问题在各个研究和应用领域得到了广泛的探索。一些综述文章试图将异常检测算法分为不同的类别。Hodge和Austin(2004)和Agyemang等人(2006)是早期研究的两个例子,这些研究将现有算法分为四组,并广泛讨论了每个类别中使用的技术。在另一项杰出的工作中,Chandola等人(2009)综述了现有的异常检测算法,并将其分为六个不同的类别。除了描述每种方法的技术细节外,Chandola等人还确定了关于异常隐含的基本假设。他们还讨论了每种技术的优点、缺点和计算复杂性。此外,他们广泛调查了这些方法的应用领域,并强调了每个领域面临的挑战。
最近,深度学习方法激发了异常检测研究人员的灵感,并在该领域提出了许多新算法。近年来,深度异常检测是几篇综述论文的主题。Chalapathy和Chawla(2019)是第一篇全面回顾深度异常检测方法的论文之一。他们根据基本假设对现有方法进行了分类,并解释了每种方法的优缺点。Chalapathy和Chawla(2019)还深入探讨了深度异常检测的应用,并评估了每种方法的有效性。在另一项类似调查中,Pang等人(2020)回顾了当代深度AD方法。他们首先讨论了异常检测面临的挑战和复杂性,然后将现有的深度方法分为三个高级类别和十一个细粒度子类别。Pang等人(2020)描述了各类方法如何应对异常检测中的现有挑战。此外,他们还确定了每个模型的关键假设和直觉。他们工作的另一个重要方面是,他们收集了一系列公开可用的代码和包含异常的真实数据集,可用于对现有算法进行基准测试。
在过去几年中,该领域的大多数综述文章都集中在特定的算法集上,例如深度或浅层方法。然而,Ruff等人(2021)对异常检测方法进行了广泛调查。他们将经典的浅层方法与最近的深度方法结合起来,并强调了这两种算法之间的联系和相似性。Ruff等人(2021)还对异常检测中的常见做法和挑战进行了详细描述和准确分类。
除上述研究外,该研究领域还发表了其他几篇综述论文,这些论文要么侧重于特定的应用领域,要么侧重于某一特定类型的方法。例如,Di Mattia等人(2019)和Xia等人(2022)的两篇综述论文致力于回顾基于GAN的异常检测方法。他们讨论了这些模型的理论基础和实际应用,并详细描述了基于GAN的异常检测的现有挑战和未来方向。两篇论文还进行了实证评估,以比较不同算法的性能。在另一项研究中,Villa Perez等人(2021)实证评估了29种半监督异常检测算法的性能。

3. 异常检测:术语和常见做法

“异常检测”通常用作所有旨在识别偏离正常模式的样本的算法的总括术语。根据数据标签的可用性、异常类型和应用,开发了各种异常检测模型。此外,异常检测的命名在文献中并不一致。为了避免混淆,在下文中,我们定义并描述了贯穿本文的相关术语。

A. 异常类型

在经典异常检测文献中,异常根据其性质分为三类:
1) 点异常:点异常是单个异常样本,通常显示不规则或偏离标准模式。狗图像数据集中的单个猫图像或欺诈性保险索赔是点异常的示例。关于异常检测文献的大多数研究都集中在这种类型的异常。
2) 上下文异常:上下文异常也称为“条件异常”,是在特定上下文中被视为异常的数据点。上下文应定义为问题表述的一部分。例如,120 km/h的值被视为自行车速度的异常记录,而不被视为汽车速度的异常纪录。
3) 集体异常:集体或组异常是相对于整个数据集集体异常的数据点的子集。集体异常的每个单独样本本身可能不是异常点。例如,一系列快速发生的高价值信用卡交易可能是信用卡被盗的一个指标,而这些交易中的每一笔都可能是正常的。
随着深度异常检测方法的兴起,为了区分深度模型旨在检测的不同异常类型,Ruff等人(2021)提出了另外两种异常类型:
4) 感官(低级)异常:低级或感官异常是指在低级特征层次结构中出现的不规则性,如图像的纹理或边缘。低层异常的一个例子是断裂结构。低水平异常检测有助于检测工业应用中的缺陷和伪影。最新发布的MVTecAD数据集包含了大量工业应用中的感官异常和缺陷示例。
5) 语义(高级)异常:高级或语义异常是与正常数据相比来自不同类别的样本。例如,当我们训练我们的网络以检测猫图像作为正常样本时,除猫以外的任何对象的图像都被视为语义异常。
值得注意的是,感官和语义异常可能与其他类型的异常重叠。然而,区分语义异常和感官异常仍然是至关重要的,以避免在本文的讨论中出现混淆。

B. 数据标签的可用性

为了设计适当的算法,考虑标签的可用性是至关重要的。根据标签可用性,我们可以将AD算法分为三种设置:
1) 无监督异常检测:在这种情况下,这可能是异常检测中最常见的情况,我们假设只有未标记的数据可用于训练模型。在无监督学习的简化形式中,我们通常假设数据是无噪声的,其分布与正常数据相同,比如 P ≡ P + . \mathbb{P}\equiv\mathbb{P}^+. PP+.如果训练数据集中存在噪声数据或未检测到的异常,则违反了这些假设,因此开发的模型不可靠。更现实的方法是假设数据分布 P \mathbb{P} P是正态数据和具有污染率 η ∈ ( 0 , 1 ) \eta\in(0,1) η(0,1)的异常的混合,比如 P = ( 1 − η ) P + + η P − . \mathbb{P}=(1-\eta)\mathbb{P}^++\eta\mathbb{P}^-. P=(1η)P++ηP.在这种方法中,关键是确定 η \eta η并对异常 P − \mathbb{P}^- P的分布作出先验假设,这可能会降低方法的泛化。总体而言,异常检测的无监督设置在从复杂和高维空间学习数据的共性方面获得了极大的兴趣,而无需访问带注释的训练样本。请注意,本文重点讨论的自监督学习方法可以看作是无监督学习技术的一个子组。
2) 半监督异常检测:在这种情况下,我们假设训练数据集是部分标记的,并且包括标记和未标记的样本。半监督算法适用于注释整个数据成本较高的场景。这种设置在异常检测领域也很普遍,因为通常同时存在标记和未标记数据,但标记数据通常需要专家知识,或者在某些情况下,例如工业和生物医学应用,异常发生的成本很高。在训练期间合并一组小的异常示例可以显著提高检测性能并最大化模型的鲁棒性,尤其是与无监督学习技术相比。然而,由于标记异常样本的可用性不足,半监督设置可能会出现过拟合。因此,对异常( P − \mathbb{P}^- P)分布做出正确的假设,对于在训练过程中准确地合并标记异常至关重要。
现有的一些论文将“从正面和未标记示例中学习”(LPUE)的任务称为半监督学习。注意,基于上述定义,LPUE是一种无监督学习技术,其中整个训练数据属于正常类。当使用流行数据集(如CIFAR-10和MNIST)对异常检测算法进行基准测试时,文献中通常使用LPUE。在本任务中,数据集的一个类的样本被视为正常,并在训练期间使用,而其他类的样本则被视为异常。“一类AD”是另一个用于指LPUE任务的术语。
3) 监督异常检测:在监督异常检测中,我们假设数据集已完全标记。当异常易于注释时,采用监督方法更为有利。在这一点上,有必要区分有监督异常检测和二进制分类问题。有人可能会声称,如果在训练阶段可以获得正常和异常数据,则该问题可以表示为有监督的二元分类问题,不再是异常检测任务。然而,我们应该注意,从形式上讲,异常是不属于正态类分布 P + \mathbb{P}^+ P+的样本。异常类包括在训练阶段不可访问/未知的大量数据点。AD方法中的常见做法是假设在训练阶段,正常类中有足够的标记样本可以揭示 P + \mathbb{P}^+ P+而有限的可用异常样本只能部分揭示 P − \mathbb{P}^- P. 因此,与二元分类不同,二元分类旨在学习将两个类分开的决策边界,AD的目标是发现正常的类边界。
尽管有监督设置可以实现更高的精度和更快的检测速度,但与无监督和半监督模型相比,它们很少用于描述异常检测问题。这是因为,在大多数实际应用程序中,不可能知道并访问所有现有的异常类。

C. 异常、离群值、新颖性、分布外检测

一些研究将术语异常、新颖性、异常值和分布外互换使用,而其他研究则将它们区分开来。虽然大多数检测这些的算法相似,但它们的意义和应用可能不同。在本文中,我们遵循Ruff等人(2021)提出的术语,并将每项任务定义如下:
1) 异常检测:如果我们用 P + \mathbb{P}^+ P+表示正常态实例的分布,异常检测可以定义为识别从 P + \mathbb{P}^+ P+以外的任何分布中提取的样本的任务。例如,如果我们将 P + \mathbb{P}^+ P+表示为马的分布,斑马被认为是异常的。
2) 离群点检测:离群点是来自 P + \mathbb{P}^+ P+的低概率样本. 在马检测的例子中,法拉贝拉是马种中的一个异常值。
3) 新颖性检测:新颖性是从正态样本 P + \mathbb{P}^+ P+的非平稳分布的新区域中提取的样本。这通常是一个样本,即网络在训练阶段没有遇到该样本。例如,在马的检测任务中,新品种的马被认为是新奇的。
4) 分布外检测:在分布外(OOD)检测中,目标是识别不属于任何训练集类的样本。这个问题也被称为“开放类别检测”,通常被描述为一个监督学习问题,其中我们在训练过程中有K个类的标记数据。我们将所有K类视为正常样本,我们的目标是在推理阶段确定样本是否不是来自这些类。最近的研究表明,在K类上训练监督分类器,并使用Softmax概率计算异常得分,可以在OOD检测任务中产生最先进的性能。OOD检测任务的一个示例是使用在动物数据集上训练的分类器来检测来自其他数据集的样本,例如,花。
图1给出了正态样本对异常、异常值、新颖性和分布外数据的示例。

4. 异常检测中的半监督学习

在本文的剩余部分,我们描述了自监督异常检测论文的一般方法和贡献。此外,我们描述了采用这些方法的应用领域。表一总结了这些论文的关键方面。在该表中,我们确定了每篇论文试图解决的任务、用于评估的度量,以及论文如何从表示中量化异常得分。此外,在图2中,我们说明了每组方法使用的方法。此外,在图3中,我们说明了与自监督AD算法及其应用相关的论文的时间线。该图显示了该领域的快速发展及其在解决现实问题中的广泛适用性。

A. 算法

自监督算法可以借助于定义的前置监督任务从未标记数据集中学习适当的数据表示。前置任务引导模型学习数据的一般表示,这有助于后续任务,如分类和异常检测。
自监督学习的文献中提出了广泛的前置任务和模型。它们包括但不限于着色、低级和高级表示之间的互信息最大化以及预测几何变换。这些方法在各种任务中显示了有希望的结果,如语音表示学习、视觉特征学习和医疗保健应用。
近年来,对比学习方法成为自监督学习的最重要的方法之一。在对比学习中,目标是通过将同一样本的不同视图拉到一起,并将它们从其他样本中推开,来学习正确的数据表示。这一目标可以通过定义适当的损失来实现,如对比损失或三重态损失。提出了几种对比学习模型的变体,它们甚至可以在特定任务中实现接近完全监督模型的精度。
尽管自监督模型最近取得了成功并具有广泛的适用性,但仍存在一些重要的缺点。
他们最重要的问题之一是计算效率低下。与完全监督模型相比,它们需要更多的时间和数据来训练,并获得与监督模型相当的精度。
在过去几年中,自监督模型在异常检测中也很流行。先前的研究表明,如果适当定义异常得分和前置任务,从自监督中学习到的表征可以用于异常检测。受早期工作的启发,我们根据其前置任务将自监督AD模型分为两组:
•自我预测方法:这些模型为每个样本创建前置任务。通常,他们将变换应用于输入样本,并尝试预测所应用的变换或重构原始输入。即使只有“正”样本,即分布(IND)样本可用,这些模型也是有效的。在训练期间,它们不一定需要来自其他分布的样本,也称为“负”样本。
•对比方法:对比模型定义了样本对之间关系的代理任务。它们通常通过应用不同的几何变换生成样本的正视图。然后,他们的目标是将正样本拉到一起,同时将它们从负样本中推出来。在对比学习中,当前批次的样本(锚样本及其增强样本除外)被视为“负”样本,而“正”样本是来自锚的增强样本。从技术上讲,对比模型也可以被视为自预测模型。本质上,他们还需要学习预测变换,以便将同一样本的增强相互关联。然而,最近对比学习算法的快速发展促使我们将其视为一个独立的类别。
图2直观地示出了这两个不同类别的表示学习过程。如图所示,与自预测算法不同,对比学习方法使用负样本。该图还描述了不同SSL方法的伪标签生成过程。自预测模型将变换应用于正样本,并尝试预测所应用的变换或重构原始输入。另一方面,对比方法并不明确预测转换或重构输入,而是旨在区分正样本和负样本。第五节和第六节介绍了图2中描述的方法的更多细节。

B. 假设与评估

基于数据集的性质和数据标签的可用性,异常检测任务在过去的研究中有不同的表述。最常见的形式化是一类异常检测(又名LPUE),其中一类数据集被训练为正常类,而其余类被视为异常。此任务的一个示例是将CIFAR-10的一个类(如猫)视为正常,其余的视为异常。另一方面,在多类异常检测任务中,同一数据集中的多个类在训练期间被视为正常,而一个或多个剩余类是异常。
自监督模型能够从输入数据中学习良好的特征表示。然而,这种表示对于异常检测不太有用。定义合适的评分函数以量化来自该表示的异常程度是设计异常检测框架的基本步骤。以前的研究基于下游任务使用不同的评分函数来检测异常。例如,对于一类异常检测,两个广泛使用的异常分数是正态性分数和重建误差。正态性得分在应用不同变换后,估计推断时新样本的正态性。此类分数的示例包括Dirichlet分数和旋转分数。重建误差通常由原始图像和重建图像之间的欧几里得距离测量,是另一类评分函数。使用该分数背后的假设是,来自潜在空间的异常的重构特征具有比正常样本更高的重构误差。对于多类异常检测,还使用了异常分数,如类密度估计(负马氏距离)和数据似然准则。最后,为了解决分布外检测问题,自监督异常检测文献中使用了几种其他度量,包括基于概率的度量(旋转分数、混淆对数概率(CLP)、加权软最大概率和马氏距离。
为了评估异常检测器的性能,使用了几个标准。在实际应用中,误报(I型错误)和漏检异常(II型错误)的成本通常不同。大多数异常检测器将决策函数定义为:
O u t p u t = { n o r m a l i f S c o r e ( x ) < ζ , a b n o r m a l i f S c o r e ( x ) ≥ ζ Output= \begin{cases} normal & if Score(x)<\zeta, \\ abnormal & if Score(x)\geq\zeta \end{cases} Output={normalabnormalifScore(x)<ζ,ifScore(x)ζ
其中 S c o r e ( x ) Score(x) Score(x)是新样本x的异常得分,选择决策阈值 ζ \zeta ζ以最小化与类型I和II错误相对应的成本,并适应环境施加的其他约束。然而,成本和约束随时间不稳定或在各种场景中未完全指定是常见的。例如,考虑一个接收异常警报以调查潜在欺诈活动的金融欺诈检测器。探测器只能处理有限数量的报警,其工作是根据精度度量最大化包含这些报警的异常数量。同时,错误报告的异常警报可能会导致信用卡机构扣留客户的信用卡。因此,目标是通过使用召回度量,在给定假警报百分比约束的情况下,最大化真实警报的数量。
接收机工作特性(ROC)曲线下面积(AUROC或简称AUC)因其在广泛的决策阈值 ζ \zeta ζ范围内评估模型性能的能力而闻名。AUROC曲线是在所有可能阈值下的所有精确召回对集合的指示符。这使得AUROC能够解释各种场景中模型的性能。如表1所示,大多数异常检测使用AUROC度量进行评估。无论正常和异常子集之间的不平衡,随机基线的AUC达到0.5,而优秀模型的AUC接近1,这表明模型在区分正常和异常类别方面的稳健性。

C.应用领域

异常检测系统广泛应用于各个领域,如医学、工业、基础设施、社会医疗、金融安全等。尽管自监督异常检测是一个相对较新的领域,但它现在与其他流行方法(如半监督学习、GAN及其变体)一起广泛应用于实际应用中。
自监督学习算法通常用于医学研究中,用于检测患者记录中的异常情况。他们成功地用于检测癫痫发作、肺部疾病、帕金森病和视网膜疾病。此外,它们还应用于医学数据的不同模式,包括计算机断层扫描(CT)、三维体积CT数据、X射线扫描、光学相干断层扫描(OCT)、光谱域光学相干断层图像(SDOCT)和MRI图像。
自监督异常检测方法也用于工业应用中的缺陷检测和故障预测,以及监测基础设施。
自监督AD的应用不限于上述领域。一些领域,如金融欺诈检测、文本异常检测和拼接检测也受益于SSL算法。

5. 异常检测中的自预测方法

自预测方法可以通过在单个样本上定义有监督的代理任务来学习数据嵌入。这种方法侧重于样本与其自身内容或其增强视图之间的内在关系。自预测任务的一个示例是掩盖图像的一部分,并尝试使用神经网络重建图像。
在大多数自预测方法中,目标是预测应用变换的标签,例如预测图像的旋转程度。在这种情况下,通常基于监督分类器的Softmax概率来定义异常得分。然而,一些方法的目标是从其转换版本重建原始输入。解决拼图难题和去自动编码器就是这种方法的例子。在这种情况下,模型的重建误差通常用作异常分数。几何变换是最早用于视觉表示学习的变换类型之一。Doersch等人(2015)表明,预测图像块的相对位置是改进对象检测表示的一个有用的前置任务。在随后的工作中,Gidaris等人(2018)使用旋转预测来学习更好的表示。
几何变换模型首先通过对正常样本应用不同的几何变换来创建自标记数据集。应用的转换用作每个样本的标签。让 T = { T 1 , T 2 , ⋯   , T K } \mathcal{T}=\{T_1,T_2,\cdots,T_K\} T={T1,T2,,TK}表示为几何变换的集合。新的标记数据集 S \mathcal{S} S可以从原始数据集 D \mathcal{D} D构造如下:
S : = { ( T j ( x ) , j ) ∣ x ∈ D , T j ∈ T } , (1) \mathcal{S}:=\{(T_j(x),j)|x\in\mathcal{D},T_j\in\mathcal{T}\},\tag{1} S:={(Tj(x),j)xD,TjT},(1)
其中原始数据点由x表示。在数据集 S \mathcal{S} S上训练多类网络以检测应用于样本的变换。在推理阶段,将训练模型应用于样本的变换版本,并将Softmax输出的分布用于异常检测。与自编码器和基于GAN的方法不同,几何变换模型是有区别的。这些模型背后的直觉是,模型通过学习识别应用的几何变换来学习提取输入的重要特征。这些特征也有助于异常检测。
Golan等人(2018)的论文是首次将几何变换学习用于异常检测的工作。他们将他们的方法命名为GEOM,并表明它可以在异常检测方面显著优于最新技术。他们表明,他们的模型可以分别比CIFAR-10和CatsVSDogs数据集中表现最好的基线高出32%和67%。
为了根据Softmax概率计算样本的异常得分,Golan等人(2018)结合了每个应用变换的条件概率的对数似然:
n S : = ∑ k = 1 K log ⁡ p ( y ( T k ( x ) ) ∣ T k ) (2) n_S:=\sum\limits_{k=1}^K\log p(y(T_k(x))|T_k)\tag{2} nS:=k=1Klogp(y(Tk(x))Tk)(2)
然后,他们通过狄利克雷分布近似 p ( y ( T k ( x ) ) ∣ T k ) p(y(T_k(x))|T_k) p(y(Tk(x))Tk)
n s = ∑ k = 1 K ( α ~ k − 1 ) log ⁡ y ( T k ( x ) ) . (3) n_s=\sum\limits_{k=1}^K(\tilde\alpha_k-1)\log y(T_k(x)).\tag{3} ns=k=1K(α~k1)logy(Tk(x)).(3)
GEOM的一个重要问题就是分类器 p ( y ( T k ( x ) ) ∣ T k ) p(y(T_k(x))|T_k) p(y(Tk(x))Tk)只对网络训练期间使用的样本有效。对于其他样本包括异常, p ( y ( T k ( x ) ) ∣ T k ) p(y(T_k(x))|T_k) p(y(Tk(x))Tk)有非常高的方差。为了解决这个问题,Hendrycks等人(2018)[104]建议在训练期间使用一些异常样本,以确保对异常来说 p ( y ( T k ( x ) ) ∣ T k ) = 1 M p(y(T_k(x))|T_k)=\frac{1}{M} p(y(Tk(x))Tk)=M1。这种方法也称为异常值暴露(OE),将问题描述为受监督的任务,对于某些实际应用程序可能不实用,因为它们无法访问异常。
尽管自预测模型显示了令人满意的结果,但在分布外检测方面,其性能仍明显低于完全监督模型。然而,最近的一些研究暗示,将SSL模型与监督方法结合使用可以以不同方式提高模型的鲁棒性。因此,即使在我们可以访问异常数据和标签的情况下,使用自监督代理任务也可以提高异常检测器的性能。
几何模型的一个显著缺点是,它们只使用非常适合图像数据集的变换,不能推广到其他数据类型,例如表格数据。为了解决这个问题,伯格曼和霍森提出了一种称为GOAD的方法。在GOAD中,数据通过若干仿射变换 T = { T 1 , T 2 , ⋯   , T K } \mathcal{T}=\{T_1,T_2,\cdots,T_K\} T={T1,T2,,TK}进行随机变换。与几何变换不同,仿射变换不限于图像,可以应用于任何数据类型。此外,我们还可以证明几何变换是仿射变换的特例,而GEOM算法是GOAD的特例。在GOAD中,网络通过最小化以下三重态损失来学习将每个变换映射到一个超球面:
L = ∑ i max ⁡ ( ∣ ∣ f ( T m ( x i ) ) − c m ∣ ∣ 2 + s − m i n m ′ ≠ m ∣ ∣ f ( T m ( x i ) ) − c m ′ ∣ ∣ 2 , 0 ) , (4) L=\sum\limits_i\max(||f(T_m(x_i))-c_m||^2+s\\-min_{m^\prime\ne m}||f(T_m(x_i))-c_{m^\prime}||^2,0),\tag{4} L=imax(∣∣f(Tm(xi))cm2+sminm=m∣∣f(Tm(xi))cm2,0),(4)
其中 f ( ⋅ ) f(\cdot) f()是网络,s是超球面之间距离的正则化项, c m c_m cm是对应于超球面中心的第m个变换。上述目标鼓励网络学习具有低内变换和高内变换方差的超球。这是为了提供一个特征空间,即 f ( ⋅ ) f(\cdot) f()的最后一层,其中不同的变换被分离。在推理阶段,通过所有变换对测试样本进行变换,并将预测正确变换的可能性用作异常得分。
尽管基于分类的方法在数据集(如CIFAR-10)上的语义异常检测方面有了显著改进,但它们在真实数据集(例如MVTecAD)上的性能较差。这是因为这些模型可以通过学习原始数据及其增强版本(例如旋转实例)中存在的模式来学习数据的高级特征。然而,这些算法可能不太适合于感官水平异常检测任务,例如检测物体中的裂纹。这是因为某些类型的低级异常(如纹理异常)通常对变换是不变的。为了缓解这个问题,提出了几种更适合于低级异常检测的其他代理任务。例如Salehi等人(2020)使用解决拼图的思想来学习可用于像素级异常检测的有效表示。他们提出的方法,他们称之为拼图AE,训练一个U-Net自编码器来重建被拼图的输入。重建目标确保模型对像素级异常敏感,而解决谜题的前置任务使网络能够捕获高级语义信息,如图2所示。他们通过引入对抗性训练进一步提高了模型的性能。
最近,李等人(2021)开发了一种称为CutPaste的自监督方法,该方法显著提高了缺陷检测的技术水平。剪切粘贴变换随机剪切图像的局部补丁,并将其粘贴回不同的图像位置。新的增强数据集更能代表真实异常。因此,可以容易地训练模型以识别和定位局部不规则性(如图2中黑色背景中的白色区域所示)。为了从未变换样本中检测增强样本,网络的目标定义如下:
L C P = E x ∈ X { C E ( g ( x ) , 0 ) + C E ( g ( C P ( x ) ) , 1 ) } , (5) \mathcal{L}_{CP}=\mathbb{E}_{x\in\mathcal{X}}\{\mathbb{CE}(g(x),0)+\mathbb{CE}(g(CP(x)),1)\},\tag{5} LCP=ExX{CE(g(x),0)+CE(g(CP(x)),1)},(5)
其中 C P ( ⋅ ) CP(\cdot) CP()是剪切粘贴增强, X \mathcal{X} X是正常数据的集合, C E ( ⋅ , ⋅ ) \mathbb{CE}(\cdot,\cdot) CE(,)是交叉熵损失,g是可以通过深度网络参数化的二元分类器。为了从表示中计算异常得分,可以使用类似KDE或GDE的算法。
剪切粘贴还可以学习片表示,并在应用剪切粘贴增强之前通过剪切片来计算图像片的异常分数。这有助于定位缺陷区域。在这种情况下,目标损失函数修改为:
E x ∈ X { C E ( g ( c ( x ) ) , 0 ) + C E ( g ( C P ( c ( x ) ) ) , 1 ) } , (6) \mathbb{E}_{x\in\mathcal{X}}\{\mathbb{CE}(g(c(x)),0)+\mathbb{CE}(g(CP(c(x))),1)\},\tag{6} ExX{CE(g(c(x)),0)+CE(g(CP(c(x))),1)},(6)
其中 c ( x ) c(x) c(x)在x的随机位置裁剪了一个块。
在另一项类似工作中,Schluter等人(2021)引入了一项新的自我监督任务,称为自然合成异常(NSA),以仅使用正常训练数据检测和定位异常。他们提出的方法通过将具有不同大小的补丁从源图像无缝克隆到目标图像来创建合成异常。特别是,NSA在源图像中选择随机矩形片,随机调整片大小,将片从不同图像混合到目标位置,并创建像素级掩模。NSA生成的新样本在大小、形状、纹理、位置、颜色等方面有所不同。换句话说,NSA动态生成范围广泛的异常,与CutPaste通过在不同位置粘贴片创建的样本相比,更接近自然异常。NSA的示例如图2所示,其中来自源猫图像的随机补丁被无缝克隆到另一个猫图像上。NSA方法在多个真实数据集(如MVTecAD)上的性能优于最先进的算法。

6. 对比方法

对比自监督学习的主要目的是学习一个特征空间或表示,其中正样本更接近,而负样本更远离。经验证据表明,SimCLR和MoCo等对比学习模型在计算机视觉任务中特别有效。SimCLR是最近最流行的对比学习算法之一,通过最大化同一图像的不同增强版本之间的一致性来学习表示,同时将它们从批次中的其他样本中排除。随机采样批次 B = ( { x i , y j } ) i = 1 N \mathcal{B}=(\{x_i,y_j\})^N_{i=1} B=({xi,yj})i=1N中的每一张照片 x i x_i xi被增强了两次,生成一对独立视图 { x ^ 2 i − 1 , x ^ 2 i } \{\hat x_{2i-1},\hat x_{2i}\} {x^2i1,x^2i},增强的批次 B ^ = ( { x ^ i , y ^ j } ) i = 1 2 N \mathcal{\hat B}=(\{\hat x_i,\hat y_j\})^{2N}_{i=1} B^=({x^i,y^j})i=12N,其中增强数据 { y ^ 2 i − 1 , y ^ 2 i } \{\hat y_{2i-1},\hat y_{2i}\} {y^2i1,y^2i}的标签与原始标签 y i y_i yi相等。通过执行选自之前定义增强函数池中 T \mathcal{T} T的独立转换 T T T T ′ T^\prime T,增强的成对视图 { x ^ 2 i − 1 = T ( x i ) , x ^ 2 i = T ′ ( x i ) } \{\hat x_{2i-1}=T(x_i),\hat x_{2i}=T^\prime(x_i)\} {x^2i1=T(xi),x^2i=T(xi)}被生成了。然后 { x ^ 2 i − 1 , x ^ 2 i } \{\hat x_{2i-1},\hat x_{2i}\} {x^2i1,x^2i}依次通过编码器和投影头产生潜在向量 { z 2 i − 1 , z 2 i } \{z_{2i-1},z_{2i}\} {z2i1,z2i}。SimCLR通过最小化正对示例 ( m , n ) (m,n) (m,n)的以下损失来学习表示:
l ( m , n ) = − log ⁡ exp ⁡ ( s i m ( z m , z n ) / τ ) ∑ i = 1 2 N 1 i ≠ m exp ⁡ ( s i m ( z m , z n ) / τ ) (7) l(m,n)=-\log\frac{\exp(sim(z_m,z_n)/\tau)}{\sum^{2N}_{i=1}1_{i\ne m}\exp(sim(z_m,z_n)/\tau)}\tag{7} l(m,n)=logi=12N1i=mexp(sim(zm,zn)/τ)exp(sim(zm,zn)/τ)(7)
其中 s i m ( z m , z n ) sim(z_m,z_n) sim(zm,zn)表示隐向量对 ( z m , z n ) (z_m,z_n) (zm,zn)之间的余弦相似度, 1 i ≠ m 1_{i\ne m} 1i=m是一个指示函数如果 i ≠ m i\ne m i=m取值为1否则为0, τ \tau τ表示决定排斥程度的温度超参数。最终目标是最小化(8)中定义的小批量中所有正样本对的对比损失:
L S i m C L R = 1 2 N ∑ i = 1 N [ l ( 2 i − 1 , 2 i ) + l ( 2 i , 2 i − 1 ) ] . (8) \mathcal{L}_{SimCLR}=\frac{1}{2N}\sum\limits^N_{i=1}[l(2i-1,2i)+l(2i,2i-1)].\tag{8} LSimCLR=2N1i=1N[l(2i1,2i)+l(2i,2i1)].(8)
对比学习模型已成为强有力的表征学习工具。尽管如此,它们在异常检测方面仍面临重大挑战。最广泛使用的对比学习算法,如SimCLR和MoCo,需要负样本来操作。然而,在许多异常检测任务中,我们要么只能访问一个类的样本,要么类的分布高度不平衡。此外,所学习的表示并不容易适用于异常检测任务,我们需要定义合适的异常分数。
尽管存在这些挑战,近年来出现了几种对比异常检测模型。Tack等人(2020)提出的CSI方法是在异常检测中使用对比学习的首次尝试。CSI方法基于实例区分的思想,将每个数据点视为一个单独的类,相对于数据集中的其他样本为负。这一思想已被证明在分类的视觉表示学习中是实用的,但其在异常检测中的性能尚未探索。他们还表明,如果特定的变换用于从给定点生成负样本,则学习的表示可以更适合于异常检测。这些分布移位变换可以用一个集合表示为 S \mathcal{S} S。与SimCLR不同,SimCLR将扩增样本视为彼此正,如果扩增是从 S \mathcal{S} S提取的,则CSI尝试将其视为负。CSI方法的一个重要结论是,尽管使用移位变换并没有改善,甚至在某些情况下会损害其他下游任务(如分类)中表示的性能,但它可以改善异常检测的性能。
如果我们用 S = { S 0 = I , S 1 , ⋯   , S K − 1 } \mathcal{S}=\{S_0=I,S_1,\cdots,S_{K-1}\} S={S0=I,S1,,SK1}表示移位变换集,其中I为单位函数,K为不同的(随机或确定性)变换,则CSI损失可以写成:
L c o n − S I : = L S i m C L R ( ⋃ S ∈ S B S ; T ) (9) \mathcal{L}_{con-SI}:=\mathcal{L}_{SimCLR}(\bigcup_{S\in\mathcal{S}}\mathcal{B}_S;\mathcal{T})\tag{9} LconSI:=LSimCLR(SSBS;T)(9)
其中 B S : = { S ( x i ) } i = 1 B . \mathcal{B}_S:=\{S(x_i)\}^B_{i=1}. BS:={S(xi)}i=1B.简单地说, L c o n − S I \mathcal{L}_{con-SI} LconSI与SimCLR损失基本相同,但在con-SI中,增强的样本被视为彼此为负。
除了区分每个移位实例之外,辅助任务还添加了Softmax分类器 p c l s − S I ( y S ∣ x ) p_{cls-SI}(y^S|x) pclsSI(ySx),该分类器预测对给定输入 x i x_i xi应用哪个移位变换 y S ∈ S y^S\in\mathcal{S} ySS。分类移位实例(cls-SI)损失定义如下:
L c l s − S I : = 1 2 B 1 K ∑ S ∈ S ∑ x ^ S ∈ B ^ S − log ⁡ p c l s − S I ( y S = S ∣ x ^ s ) (10) \mathcal{L}_{cls-SI}:=\frac{1}{2B}\frac{1}{K}\sum\limits_{S\in\mathcal{S}}\sum_{\hat x_S\in\mathcal{\hat B}_S}-\log p_{cls-SI}(y^S=S|\hat x_s)\tag{10} LclsSI:=2B1K1SSx^SB^SlogpclsSI(yS=Sx^s)(10)
CSI最终的损失定义为:
L C S I : = L c o n − S I + λ L c l s − S I (11) \mathcal{L}_{CSI}:=\mathcal{L}_{con-SI}+\lambda\mathcal{L}_{cls-SI}\tag{11} LCSI:=LconSI+λLclsSI(11)
CSI作者通过经验证明,表示 ∣ ∣ z ( x ) ∣ ∣ ||z(x)|| ∣∣z(x)∣∣的范数确实是一个很好的异常分数,其中z是表示向量, ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣∣∣代表着第二范式。这可以通过考虑对比损失增加分布样本的范数来直观地解释,以最大化从同一锚生成的样本的余弦相似性。因此,在测试时间内,分布样本被映射到距离z空间原点更远的位置,而其他数据点(即异常)的表示具有较小的范数,因此更接近原点。这是一个重要的观察结果,因为它有助于解决在以无监督方式学习的表示上定义异常分数的问题。作者还发现,与 { x m } \{x_m\} {xm}中最近训练点的余弦相似性可以是另一个良好的异常得分。他们将模型的得分定义为以下两个指标的组合:
s c o n ( x ; { x m } ) : = max ⁡ m s i m ( z ( x m ) , z x ) ⋅ ∣ ∣ z ( x ) ∣ ∣ (12) s_{con}(x;\{x_m\}):=\max\limits_m sim(z(x_m),z_x)\cdot||z(x)||\tag{12} scon(x;{xm}):=mmaxsim(z(xm),zx)∣∣z(x)∣∣(12)
其中 z x z_x zx是测试样本x的表示向量, z ( x m ) z(x_m) z(xm)是训练集中最接近的表示向量。
和Tack等人(2020)平行,Winkens等人(2020)开发了一种用于检测分布外实例的对比模型。他们在几个基准OOD任务上评估了他们的方法,并表明对比模型也能用于OOD。本文的关键思想是,完全监督模型可能无法捕获对分布外检测有用的模式。然而,通过使用对比学习技术,该模型学习高级和任务不可知的特征,这些特征也有助于检测OOD。当我们将这些技术与监督学习技术相结合时,所得模型可以学习语义分类和面向对象检测的更可靠特征。
CSI算法表明,通过对比学习学习的任务不可知表示适用于异常检测。然而,特定于任务的方法更适合于异常检测。(任务可以定义为AD任务本身或其他下游任务,如数据分类。)对比模型,如SimCLR,对于学习单个数据点的表示非常有用。他们还可以学习每个类的可分离聚类,而无需访问任何标签。然而,生成的集群可能具有模糊的边界,对下游任务而言通常需要进行微调。
为了克服这一障碍,Cho等人(2021)开发了一种专门用于异常检测的对比模型。他们的模型称为掩码对比学习(MCL),根据数据点的标签修改排斥程度。在vanilla SimCLR中,所有其他批次样本,无论其类别标签如何,都被视为相对于锚定样本为负,并以相等的幅度排斥。然而,在MCL中,排斥比由以下类别条件掩码(CCM)定义:
C C M ( m , n ) = { α i f   y ˉ m = y ˉ n 1 τ i f   y ˉ m ≠ y ˉ n , (13) CCM(m,n)= \begin{cases} \alpha & if\ \bar y_m=\bar y_n \\ \frac{1}{\tau} & if\ \bar y_m \ne \bar y_n \end{cases},\tag{13} CCM(m,n)={ατ1if yˉm=yˉnif yˉm=yˉn,(13)
其中 0 < α < 1 τ . 0<\alpha<\frac{1}{\tau}. 0<α<τ1.基本上,CCM将相同标记视图的温度 τ \tau τ调整为较小的 α \alpha α值。这意味着,如果负样本具有与锚相同的类别,则与其他数据点相比,其被排斥的幅度较小。SimCLR损失函数根据此掩码修改如下:
L C C M = 1 2 N ∑ i = 1 N [ l C C M ( 2 i − 1 , 2 i ) + l C C M ( 2 i , 2 i − 1 ) ] , (14) \mathcal{L}_{CCM}=\frac{1}{2N}\sum\limits^N_{i=1}[l_{CCM}(2i-1,2i)+l_{CCM}(2i,2i-1)],\tag{14} LCCM=2N1i=1N[lCCM(2i1,2i)+lCCM(2i,2i1)],(14)
p C C M ( m , n ) = exp ⁡ ( s i m ( z m , z n ) / τ ) ∑ i = 1 2 N 1 { i ≠ m } exp ⁡ ( s i m ( z m , z i ) ⋅ C C M ( m , i ) ) , (15) p_{CCM}(m,n)=\frac{\exp(sim(z_m,z_n)/\tau)}{\sum^{2N}_{i=1}1_{\{i\ne m\}}\exp(sim(z_m,z_i)\cdot CCM(m,i))},\tag{15} pCCM(m,n)=i=12N1{i=m}exp(sim(zm,zi)CCM(m,i))exp(sim(zm,zn)/τ),(15)
l C C M ( m , n ) = − log ⁡ p C C M ( m , n ) , (16) l_{CCM}(m,n)=-\log p_{CCM}(m,n),\tag{16} lCCM(m,n)=logpCCM(m,n),(16)
虽然所提出的掩码导致更细粒度的表示空间,但损失函数的排斥性质可能导致散射簇的形成。为了防止这种现象,MCL算法随机地将每个样本吸引到具有相同类标签的实例。
为了进一步改进[39]中的MCL模型,还使用了预测应用变换的辅助分类器。然后根据样本的标签及其变换修改掩码函数。与具有相同类别但不同变换标签的样品相比,同时具有相同类别标签和变换标签的样本的排斥比更小。具有后一种特性的样本的排斥比负值小。
为了对[39]中的异常进行评分,采用了(17)中所示的马氏距离。
M D ( x ) = ( z x − μ ) T Σ − 1 ( z x − μ ) , (17) MD(x)=(z_x-\mu)^T\Sigma^{-1}(z_x-\mu),\tag{17} MD(x)=(zxμ)TΣ1(zxμ),(17)
其中 z x z_x zx是x的表示, μ \mu μ是样本均值, Σ \Sigma Σ是分布内训练数据特征的样本协方差。马哈拉诺比斯距离是根据其表示对异常进行评分的标准度量。它不需要任何标记数据,这使得它成为许多异常检测算法的常见选择。除此距离外,辅助分类器的得分还用于增强模型的鲁棒性。
在另一项类似的工作中,Sehwag等人(2021)探讨了对比自监督学习对分布外(OOD)和未标记数据异常检测的适用性,并提出了一种称为SSD的方法。他们还将其算法扩展到在两种场景下处理标记数据:第一种情况是假设存在几个标记的分布外样本(即k-shot学习设置,其中k设置为1或5),第二种情况是在训练阶段提供分布内数据的标签的情况。
在SSD中,SimCLR用于学习表示,并结合马氏距离来检测异常。对于存在标记数据的情况,作者建议使用(18)中定义的SupCon损失,这是对比损失的监督变量,以便更有效地选择每个图像的正样本和负样本。在SupCon中,来自同一类别的样本被视为正样本,其他样本被视作为负样本。
L S u p C o n = 1 2 N ∑ i = 1 2 N − log ⁡ 1 2 N y m − 1 ∑ i = 1 2 N 1 ( i ≠ m ) 1 ( y i = y m ) e u m T u i / τ ∑ i = 1 2 N 1 ( i ≠ m ) e u m T u i / τ , (18) \mathcal{L}_{SupCon}=\\ \frac{1}{2N}\sum\limits^{2N}_{i=1}-\log\frac{\frac{1}{2N_{ym}-1}\sum^{2N}_{i=1}1(i\ne m)1(y_i=y_m)e^{u^T_mu_i/\tau}}{\sum^{2N}_{i=1}1(i\ne m)e^{u^T_mu_i/\tau}},\tag{18} LSupCon=2N1i=12Nlogi=12N1(i=m)eumTui/τ2Nym11i=12N1(i=m)1(yi=ym)eumTui/τ,(18)
其中 N y m N_{y_m} Nym指的是一个批次中标签为 y m y_m ym图像的数量, u i = h ( f ( x ) ) ∣ ∣ h ( f ( x ) ) ∣ ∣ 2 u_i=\frac{h(f(x))}{||h(f(x))||_2} ui=∣∣h(f(x))2h(f(x))带投影头 h ( ⋅ ) h(\cdot) h()和一个编码器 f ( ⋅ ) f(\cdot) f()。与对比损失相比,使用SupCon损失在他们从标记数据集进行OOD检测的整个实验中产生了更好的性能。总的来说,Sehwag等人(2021)表明,对比方法在标记和未标记环境下的OOD检测中都优于其他方法。
对比模型也与一类模型一起用于异常检测。一类分类器是异常检测中应用最广泛的模型之一。他们可以在从一类示例中学习后检测异常。Sohn等人(2020)采用两阶段框架,使用自监督学习模型检测异常。在该框架中,使用基于SSL的神经网络来学习输入的表示。将一类分类器(如OCSM或KDE)应用于学习表示以检测异常。两阶段框架消除了定义异常分数的需要,并且,如本文中的经验证明,它可以优于其他最先进的方法。
尽管他们的实验结果很可观,但一类分类器仍面临一个被称为灾难性崩溃的关键问题。当网络收敛到将所有输入映射到单个点的平凡解时,无论输入样本值x如何,都会发生这种现象,比如 ϕ ( x ) = c \phi(x)=c ϕ(x)=c其中 ϕ ( ⋅ ) \phi(\cdot) ϕ()代表着网络的输出。当最小化中心损耗(定义为 L = ∣ ∣ ϕ ( x ) − c ∣ ∣ 2 \mathcal{L}=||\phi(x)-c||^2 L=∣∣ϕ(x)c2)时,可获得该平凡解。在这种情况下,网络学习的特征是无信息的,不能用于区分异常和正常数据。这个问题也被称为“超球面崩溃”。
为了克服超球面塌陷问题,Reiss等人(2021)提出了一种新的损失函数,称为均值偏移对比损失(MSCL)。与传统的对比损失不同,在传统对比损失中,相对于原点计算角距离,MSCL测量相对于提取特征的归一化中心的角距离。MSCL的一个示例如图2所示。形式上,对于样本x,均移表示定义为:
θ ( x ) = ϕ ( x ) − c ∣ ∣ ϕ ( x ) − c ∣ ∣ , \theta(x)=\frac{\phi(x)-c}{||\phi(x)-c||}, θ(x)=∣∣ϕ(x)c∣∣ϕ(x)c,
然后,均值偏移对比损失由下式给出::
L M S C L ( x ′ , x ′ ′ ) = L C O N S ( θ ( x ′ ) , θ ( x ′ ′ ) ) = − log ⁡ e x p ( ( θ ( x ′ ) ⋅ θ ( x ′ ′ ) ) / τ ) ∑ i = 1 2 N 1 [ x i ≠ x ′ ] ⋅ e x p ( ( θ ( x ′ ) ⋅ θ ( x ) ) / τ ) , (19) \mathcal{L}_{MSCL}(x^\prime,x^{\prime\prime})=\mathcal{L}_{CONS}(\theta(x^\prime),\theta(x^{\prime\prime}))\\ =-\log\frac{exp((\theta(x^\prime)\cdot\theta(x^{\prime\prime}))/\tau)}{\sum^{2N}_{i=1}1[x_i\ne x^\prime]\cdot exp((\theta(x^\prime)\cdot\theta(x))/\tau)},\tag{19} LMSCL(x,x′′)=LCONS(θ(x),θ(x′′))=logi=12N1[xi=x]exp((θ(x)θ(x))/τ)exp((θ(x)θ(x′′))/τ),(19)
其中 L C O N S \mathcal{L}_{CONS} LCONS是正样本对的典型对比损失,在SimCLR中展示, x , x ′ ′ x,x^{\prime\prime} x,x′′是输入x的两个增强值。MSCL损失的一个限制是它隐含地鼓励网络增加特征距中心的距离。因此,正常数据位于远离中心的区域。为了解决这个问题,通过添加角中心损失来修改损失函数,这缩小了正常样本与中心的距离。Reiss等人(2021)表明,与常规中心损失相比,综合MSCL和角度损失的整体损失可以实现更好的训练稳定性和更高的异常检测精度。
总之,最近的论文表明,通过自监督学习学习的表示对于异常检测确实非常有用。一个有趣的观察是,即使是一个简单的评分函数,如表示 ∣ ∣ z ∣ ∣ ||z|| ∣∣z∣∣的范数,也可以用于从表示中检测异常。这是合理的,因为在基于CL的模型中,正常数据分布在超球面上。此属性有助于将异常分数定义为表示与中心的距离。距离越小意味着点属于异常类的概率越高。

7. 比较评价与讨论

为了深入了解自监督算法的性能,我们根据其原始论文中报告的结果对这些方法进行了比较评估。
大量数据集用于对自监督异常检测算法进行基准测试。CIFAR-10和MVTecAD是最近异常检测论文使用的两个最常见的数据集。CIFAR-10包括十个不同对象的图像。为了在此数据集上对AD算法进行基准测试,我们假设在训练期间我们只能访问其中一个类的数据。在测试期间,其他类别被视为异常。
表二显示了针对CIFAR-10数据集上一类AD的常用浅基线和深基线的几种最先进SSL模型的结果。该任务可以评估算法在语义(高级)异常检测中的性能。查看该表,我们可以很容易地确认,自监督方法可以在很大程度上优于其他浅层和深层异常检测算法。这种显著的改进导致SSL算法作为异常检测的关键类别出现。
除了语义异常检测外,自监督方法在缺陷检测和检测感官异常方面表现出令人满意的性能。图4示出了MVTecAD数据集上的自监督模型相对于其他广泛使用的算法(包括浅模型、深模型和生成模型)的性能。更具体地,比较的浅层模型为高斯[、MVE、SVDD、KDE,kPCA、patch-SVDD和IGD。比较的深度模型为CAVGA、ARNet、SPADE、MOCCA、DSVDD、FCDD、DFR、STFPM、高斯AD、InTra、PaDiM和DREAM。图4中包括的生成模型是AnoGAN、LSA、GANomaly、AGAN、Normalizing Flowsbased DifferNet、CFLOW和CS-Flow。查看该图,我们可以推断基于SSL的模型可以在该数据集上实现良好的性能。然而,与一类AD相比,自监督算法相对于其他基线的优越性在该任务中不太明显。此外,一些算法,如GEOM和CSI,在CIFAR-10上显示了最先进的性能,在该异常检测任务中实现了较弱的精度。
上述论点表明了在自我监督学习中选择正确的前置任务的重要性。基于几何变换的GEOM和RotNet以及基于对比方法的CSI和SSD等方法都能很好地检测语义异常,但它们不太适合于缺陷检测。另一方面,基于像素级转换的SSL方法(如剪切粘贴)可以在MVTecAD数据集上实现良好的精度。根据下游目标和异常类型选择正确的代理任务是SSL模型成功的关键。这使得研究人员能够通过提出有效的前置任务来改进最新技术。
分布外检测是SSL模型广泛应用的另一项任务。表III显示了一些SSL模型(如前10行所示)相对于监督方法的实验结果,如表最后一行所示。监督方法实际上是一个ResNet-50网络,该网络被训练用于对CIFAR-10中来自其他OOD数据集的可用数据进行分类——即,ResNet-50被训练为一个十一向分类器,其中十个用于CIFAR-20,一个用于OOD数据集中。为了对OOD算法进行基准测试,通常在CIFAR-10数据集上训练模型,并使用另一个数据集测试模型。如果测试数据集的样本在某种程度上与CIFAR-10相似,则该任务称为近OOD检测(例如,CIFAR-10vs.CIFAR-100)。否则,它被称为远OOD检测(例如,CIFAR-10 vs.SVHN,或CIFAR-10vs.LSUN)。我们观察到,SSL甚至可以实现比监督基线更好的性能。这表明,没有必要访问OOD检测任务的数据真值。
表III中报告的结果表明,所有基于SSL的方法在远-OOD检测(即,CIFAR-10 vs.SVHN)上的准确度都可以达到94%以上。这表明SSL模型可以学习数据集的有意义的特征。几乎所有的算法在近OOD检测中都表现良好,有些甚至可以超过监督基线。

8. 未来方向与结论

尽管自监督模型在异常检测方面已成为最先进的,但在这一研究领域仍有很大的改进空间。本节简要讨论了基于SSL的异常检测器所面临的一些关键挑战,并提出了解决这些问题的一些高级思路。

A. 对比模型中的负采样

近年来,对比模型主导了自监督AD算法。为了学习有效的表示,CL算法需要利用负样本。在标准设置中,假设其他批处理样本为负值,即使它们的类标签与查询样本的类标签相同。然而,如果同类样本的数量增加,学习表示的质量会下降。在一些异常检测任务中,其中训练数据包括一类样本,这种负采样偏差可能会变成一个大问题。这促使研究人员设计对比损失的无偏见版本。
有趣的是,以前的研究表明,即使在一类环境中,实例区分对比学习也可以为异常现象提供合适的表示。这可能是因为所有的训练数据都分布在一个超球面上,并且异常被映射到空间的中心,正如我们在第六节中讨论的那样。
继SimCLR的成功之后,开发了其他几种对比模型。这些方法可以很好地用于一类异常检测,因为它们可以仅使用正样本进行训练。最近的一些模型,如BYOL和Barlow Twins,在训练期间不需要负样本。据我们所知,没有研究评估这些异常检测模型的性能。

B. 结合标签数据

在大多数异常检测研究中,假设在训练阶段没有可用的标记异常。然而,在某些应用中,我们可能会有一些标记异常。如果适当地合并,这些标记样本可以显著改进算法。最近,Sehwag等人(2021)探索了fewshot异常检测问题,他们假设存在一些标记异常。他们表明,即使是少量异常也可以显著提高检测精度。zheng等人(2022)提出了一种多尺度对比学习的扩展算法,称为“ANEMONE”,将其与少数基准异常结合起来。
由于在训练期间内访问少数异常样本的假设在许多任务中是可行的,我们认为,具有合并这些样本的能力的模型在提高检测性能方面具有很大的潜力。这些方法在实际问题中也有更多的应用。

C. 超越视觉异常检测

传统上,自监督学习文献集中于视觉表征学习。甚至最新的异常检测算法也被开发用于视觉异常检测。因此,视觉异常检测器可以主导自监督AD领域也就不足为奇了。受这些算法成功的启发,几篇论文开始提出用于检测其他数据类型异常的自监督框架。例如,zheng等人(2021)开发了一种基于SSL的CL方法,用于检测两个社交网络和四个引用网络数据集中的图异常。关于语音数据,Zhang等人(2022)提出了一种自监督学习和自适应记忆融合模块,分别学习一般正常模式和丰富特征表示。这支持检测多变量时间序列中存在的异常。Hojjati和Armanfard还提出了一种检测异常工业声音的对比方法。由于异常检测的应用跨越了广阔的应用领域,探索针对其他输入类型(如医疗信号)的自监督学习思想也很重要。为这些数据类型开发合适的前置任务可能是研究人员面临的重大挑战。

D. 结论

在本文中,我们讨论了自监督异常检测的最新方法,并强调了每种方法的优缺点。我们还比较了它们在基准数据集上的性能,并指出了它们的应用。总之,我们可以认为,自监督模型非常适合解决异常检测问题。然而,仍有许多未充分探讨的问题和改进的余地。尽管如此,SSL算法的巨大成功为实现自动异常检测的新里程碑提供了光明的前景。

你可能感兴趣的:(异常检测,图神经网络,机器学习,人工智能,深度学习)