异常检测,又称异常值检测或新奇检测,几十年来一直是各个研究团体持久而活跃的研究领域。仍有一些独特的问题、复杂性和挑战需要先进的方法。近年来,深度学习使异常检测,即深度异常检测,已成为一个重要的方向。本文对深度异常检测方法的研究进行了全面的分类,包括3个高级别分类和11个细级别分类的研究进展。我们回顾了它们的主要 key intuitions, objective functions, underlying assumptions、优点和缺点,并讨论了它们如何应对上述挑战。我们进一步讨论了一系列未来可能的机遇和应对挑战的新视角。
Unknownness 未知
异常与许多未知相关,例如,具有未知突然行为、数据结构和分布的实例。它们在实际发生之前都是未知的,例如新型恐怖袭击、欺诈和网络入侵。
Heterogeneous anomaly classes 异构异常类别
异常是不规则的,因此,一类异常可能表现出与另一类异常完全不同的异常特征。例如,在视频监控中,抢劫、交通事故和入室盗窃等异常事件在视觉上有很大的不同。
Rarity and class imbalance 稀有以及类别不平衡
异常通常是罕见的数据实例,而正常实例通常占数据的绝大部分。因此,即使不是不可能,也很难收集到大量标记异常实例。
这导致在大多数应用程序中无法使用大规模的标记数据。类别不平衡的另一个原因是,对异常情况的错误分类通常比对正常情况的错误分类代价更大。
异常类型的多样化
已经发现了三种完全不同类型的异常。点异常是指与大多数其他个别情况不同的个别情况,例如病人的异常健康指标。条件异常,也称为上下文异常,也指在特定上下文中的个别异常实例,即数据实例在特定上下文中是异常的,否则是正常的。
在现实世界的应用中,上下文可能有很大的不同,例如,在特定的时间背景下,温度突然下降/上升,或者在不寻常的空间背景下,快速信用卡交易。组异常,又称集体异常,是数据实例的一个子集。集体异常中的个体成员不一定是异常,例如社交网络中由假账号组成的异常密集的子图作为一个集合是异常,但这些子图中的个体节点可以和真实账号一样正常。
上述复杂的问题本质导致了许多检测挑战。近年来,一些挑战,如可伸缩性w.r.t.数据大小,已经得到了很好的解决,而以下问题在很大程度上尚未解决,深度异常检测可以发挥一些重要作用。
CH1:异常检测召回率低。 由于异常是非常罕见和异质的,很难识别所有的异常。许多正常的实例被错误地报道为异常,而真实的异常却被遗漏了。尽管多年来已经引入了大量的异常检测方法,但目前最先进的方法,特别是无监督方法(例如,参考文献[17,84]),仍然经常在真实世界的数据集上产生高假阳性[20,115]。如何减少误报和提高检测召回率是最重要也是最困难的挑战之一,特别是对于未能发现异常的巨大代价。
CH2:高维 and/or 非独立数据中的异常检测。
异常往往在低维空间中表现出明显的异常特征,而在高维空间中则隐藏起来,难以察觉。高维异常检测是一个长期存在的问题[178]。在由原始特征或新构造特征的一小部分组成的降低的低维空间中执行异常检测是一种简单的解决方案,例如,在基于子空间的[70,77,84,123]和基于特征选择的方法[12,109,111]中。然而,识别复杂的(如高阶、非线性和异构)特征相互作用和耦合在高维数据中是必不可少的,但它仍然是异常检测的主要挑战。
CH3:正常/异常的数据高效学习。 由于收集大规模标记异常数据的难度和成本,全监督异常检测通常是不切实际的,因为它假设有正常和异常类的标记训练数据可用。在过去的十年中,主要的研究工作集中在不需要任何标记训练数据的无监督异常检测上。然而,无监督方法没有任何真实异常的先验知识。他们在很大程度上依赖于对异常分布的假设。然而,收集标记的正常数据和一些标记的异常数据往往并不困难。在实践中,通常建议尽可能多地利用这些易于访问的标记数据[2]。因此,利用这些标记的数据来学习正常/异常的表达形式对于准确的异常检测至关重要。半监督异常检测,假设一组标记正常训练数据,是这一问题的研究方向。另一个研究方向是弱监督异常检测,它假设我们对异常类有一些标签,但类标签是部分/不完整的(即,它们不跨越整个异常类集)、不准确的(即,粗粒度标签)或不准确的(即,某些给定的标签可能是不正确的)。两个主要挑战是如何用少量标记异常数据学习获得具有表达性的正常/异常表示,以及如何学习能够推广给定标记异常数据然后所发现的新异常的检测模型。
CH4:抗噪声异常检测。许多弱/半监督异常检测方法假设标记的训练数据是干净的,这可能容易受到误标记为相反类标签的噪声实例的影响。在这种情况下,我们可以使用无监督的方法,但这不能利用真正的标记数据。此外,还经常存在大规模异常污染的未标记数据。噪声弹性模型可以利用这些未标记的数据进行更准确的检测。因此,这里的噪声可能是错误标记的数据或未标记的异常。主要的挑战是噪声的数量可能与数据集有很大的不同,并且噪声实例可能不规则地分布在数据空间中。
CH5:复杂异常检测。现有的方法大多是针对点异常,不能用于条件异常和群异常,因为它们表现出与点异常完全不同的行为。这里的一个主要挑战是将条件/组异常的概念纳入异常测量/模型中。此外,目前的方法主要集中在单个数据源的异常检测上,而许多应用需要多个异构数据源的异常检测,如多维数据、图形、图像、文本和音频数据。一个主要的挑战是,只有在考虑两个或多个数据源时才能检测到一些异常。
CH6:异常解释。在许多安全关键领域,如果将异常检测模型直接用作黑盒模型,可能会存在一些重大风险。例如,报告为异常的罕见数据实例可能导致对数据中所列少数群体的算法偏见,例如在欺诈侦查和犯罪侦查系统中代表性不足的群体。减轻此类风险的一种有效方法是使用异常解释算法,该算法提供关于为什么将特定数据实例标识为异常的直接线索。然后,人类专家可以调查并纠正这种偏见。在某些应用程序中,提供这样的解释可能与检测准确性一样重要。然而,大多数异常检测研究只关注探测的准确性,而忽略了对已识别的异常现象提供解释的能力。由特定的检测方法得到异常解释仍然是一个很大的未解决的问题,特别是对于复杂的模型。开发固有的可解释的异常检测模型也是至关重要的,但是要很好地平衡模型的可解释性和有效性仍然是一个主要的挑战。
深度方法可以实现整个异常检测管道的端到端优化,并且还可以学习专门为异常检测量身定制的表示。这两种能力对于解决上述六个挑战至关重要,但传统方法不具备。
特别是,无论数据类型如何,它们都有助于在很大程度上提高标记正常数据或一些标记异常数据的利用率,减少了在完全监督设置(CH2, CH3, CH4和CH5)中对大规模标记数据的需求。这随后导致更明智的模型,从而更好的召回率(CH1)。对于异常解释挑战,尽管深层方法通常是黑盒模型,但它们提供了将异常检测和解释统一到单个框架中的选项,从而对特定模型发现的异常进行更真实的解释(参见第8.5节)。深度方法还擅长从不同类型的数据(如高维数据、图像数据、视频数据、图形数据等)中学习复杂的结构和关系。
这种能力对于应对各种挑战(如CH1、CH2、CH3和CH5)非常重要。此外,它们还提供了许多有效且易于使用的网络体系结构和原则框架,以无缝地学习异构数据源的统一表示。这使得深度模型能够应对一些关键挑战,如CH3和CH5。尽管有处理这些复杂数据的浅层方法,但它们通常比深层方法弱得多,适应性也差得多。表1给出了这个讨论的摘要。
深层神经网络利用线性/非线性函数的复杂组合,可以用计算图表示来学习表达式表示[49]。深度学习的两个基本构件是激活函数和层次。激活函数决定给定一些输入的计算图节点(即神经网络中的神经元)的输出。它们可以是线性函数或非线性函数。一些流行的激活函数包括linear, sigmoid,tanh, Rectified Linear Unit (ReLU) 及其变体。神经网络中的一层是指一组以某种形式叠加的神经元。通常使用的层包括完全连接的、卷积和池以及循环层。可以利用这些层构建不同的流行神经网络。例如,多层感知机(MLP)网络由完全连接的层组成,卷积神经网络(CNN)以不同的卷积和汇集层组为特征,并且循环神经网络(RNN) ,例如,vanilla RNN,门控循环单元和长期短期记忆(lSTM) ,是建立在循环层之上的。有关这些神经网络的详细介绍,请参阅参考文献[49]。
给定一个数据集:
其中是一个表示空间。
那么深度异常检测的目的是学习一个特征表示映射函数或异常分数学习函数:
以一种可以很容易地将异常与由和τ函数产生的空间中的正常数据实例区分开来的方式,其中Γ和τ都是具有H∈N个隐藏层及其权重矩阵的神经网络使能映射函数。在学习特征映射φ(·)的情况下,需要额外的步骤来计算新表示空间中每个数据实例的异常分数,而τ(·)可以直接推断原始数据输入的异常分数。τ输出越大,异常程度越大。
为了深入了解这一领域,我们引入了一种层次分类法,从建模的角度将深度异常检测方法分为三个主要类别和11个细粒度类别。方法的分类法概述如图1所示。具体而言,深度异常检测由三个概念范式组成:用于特征提取的深度学习、学习正常性的特征表示、端到端的异常评分学习。
这三个范例的过程如图2所示。如图2(a)所示,深度学习和异常检测完全分开在第一个主要类别(第4部分) ,所以深度学习技术只作为一些独立的特征提取器使用。这两个模块在图2(b)所示的第二个主要类别(第5部分)中以某种形式相互依赖,目的是学习正态的表达表示。这一类方法可以根据表示是如何学习的进一步分为两个子类,即是否使用现有的浅异常度量(例如,基于距离和聚类的度量)来指导学习。这两个子类别包括七个细致的方法类别,每个类别采取不同的方法来规定其目标功能。这两个模块在图2©所示的第三个主要类别(第6部分)中完全统一,其中方法致力于通过神经网络以端到端的方式学习异常分数。根据异常评分学习的公式,这一类别进一步细分为四个子类别。在接下来的三个部分中,我们将详细回顾这三个范例。
这类方法旨在利用深度学习从高维和/或非线性可分离数据中提取低维特征表示,用于下游异常检测。特征提取和异常评分是完全不相交的,并且彼此独立。因此,深度学习组件的工作纯粹是降维。形式上,该方法可以表示为 z=Φ(x;Θ),其中,是一个基于深度神经网络的特征映射函数,其中,且通常D>>K,然后将与特征映射无关联的异常评分方法应用于新空间以计算异常评分。
与异常检测中流行的降维方法(如主成分分析[21,140,180]和随机投影[80,112,123])相比,深度学习技术在提取丰富语义的特征和非线性特征关系方面表现出了更好的能力[14,49]。
假设。 深度学习模型提取的特征表示保留了有助于将异常与正常实例分离的判别信息。
一个研究路线是直接使用流行的预先训练的深度学习模型,如 AlexNet [75]、 VGG [143]和 ResNet [58] ,来提取低维特征。这条线异常检测在复杂的高维数据(如图像数据和视频数据)中进行了探索。这条线的一个有趣的工作是在线异常检测的揭示框架。其核心思想是通过迭代训练二值分类器,在滑动窗口中将一组视频帧从其后续的视频帧中分离出来,并在每个迭代步骤中去除最多的鉴别特征。这类似于揭开面纱的过程。该框架假设第一组视频帧是正常的,并评估其与后续视频帧的可分离性。因此,如果后续视频帧异常,则训练分类精度预计会很高,否则训练分类精度会很低。很明显,揭开框架的威力在很大程度上取决于特征的质量,因此使用高质量的特征来表示视频帧是至关重要的。在ILSVRC基准[134]上预训练的VGG模型被证明可以有效地提取表达性外观特征[66]。在参考文献[88]中,掩蔽框架被公式化为两个样本的测试任务,以理解其理论基础。他们还表明,使用从动态更新的视频帧采样池中提取的特征可以提高框架的性能。此外,与许多其他任务类似,从源数据集上预先训练的深度模型中提取的特征表示可以转移到目标数据集上的微调异常检测器。如参考文献[6]所示,一类支持向量机(SVM)可以首先用在ILSVRC上预训练的VGG模型进行初始化,然后进行微调以改进MNIST数据的异常分类[78]。类似地,在MNIST上预训练的ResNet模型可以在各种视频监控数据集中实现异常事件检测[117,176]。
另一条研究路线是明确训练深度特征提取模型,而不是用于下游异常评分的预训练模型[44,65,163,168]。特别是,在参考文献[163]中,训练了三个独立的自动编码器网络,以学习用于视频异常检测的相应外观、运动和外观-运动联合表示的低维特征。在这些学习的特征表示中的每一个上独立地训练三个一类SVM的集合,以执行异常评分。与参考文献[163]类似,线性一类SVM用于对深度置信网络[44]产生的高维表格数据的低维表示进行异常检测。参考文献[65]中使用了无监督分类方法,而不是一类SVM,以实现投影空间中的异常评分。特别地,他们首先对卷积自动编码器产生的视频帧的低维特征进行聚类,然后将聚类标签视为伪类标签来执行一对一-其余分类。分类概率用于定义逐帧异常分数。在图异常检测[168]中也可以找到类似的方法,其中在潜在表示空间中使用基于无监督聚类的异常度量来计算图顶点或边的异常。为了学习图顶点的表达表示,以图顶点的一次热编码为输入,通过最小化基于自动编码器的重建损失和相邻图顶点的成对距离来优化顶点表示。
优势。
这种方法的优点如下。
(i) 大量先进的(预训练的)深度模型和现成的异常探测器随时可用。
(ii)深度特征提取提供了比流行的线性方法更强大的降维。
(iii)考虑到深度模型和检测方法的公开可用性,它很容易实现。
缺点。
它们的缺点如下。
(i) 完全不相交的特征提取和异常评分通常会导致次优的异常评分。
(ii)预先训练的深度模型通常仅限于特定类型的数据。
面对的挑战。 这类方法将高维/非独立数据投射到低维空间,使现有的异常检测方法能够处理更简单的数据空间。低维空间通常有助于揭示隐藏的异常并减少假阳性(CH2)。然而,这些方法未必能为异常检测保存足够的资料,因为数据推算与异常检测完全脱钩。此外,这种方法允许我们利用多种类型的特征并学习语义丰富的检测模型(例如,References [65,66,163]中的各种预定义的图像/视频特征) ,这也有助于减少假阳性(CH1)。
Leaning feature representations of normality
这一类中的方法在某些方面将特征学习与异常评分相结合,而不是像上一节中那样将这两个模块完全解耦。这些方法通常分为两类:一般特征学习[generic feature learning]和异常度量相关特征学习[anomaly measure-dependent feature learning]。
Generic Normality Feature Learning
这类方法通过优化通用特征学习目标函数来学习数据实例的表示,该目标函数不是主要为异常检测设计的,但学习的表示仍然可以增强异常检测,因为它们被迫捕捉一些关键的潜在数据规律。
从形式上讲,这个框架可以表示为:
其中,将原始数据映射到表示空间上,由参数化的ψ是一个在空间上操作的代理学习任务,致力于加强对底层数据规律的学习是一个相对于基本建模方法的损失函数,是一个评分函数,它利用来计算异常分数
这种方法包括由多个角度驱动的方法,包括数据重建、生成建模、可预测性建模和自监督分类。可预测性建模和自监督分类都建立在自监督学习方法的基础上,但它们有不同的假设、优点和缺陷,因此分别进行了综述。
Autoencoders 自动编码器。这种类型的方法旨在学习一些低维特征表示空间,在该空间上可以很好地重建给定的数据实例。这是一种广泛使用的数据压缩或降维技术[61,69,150]。在异常检测中使用该技术的启发式方法是,强制学习特征表示来学习数据的重要规律,以最小化重建误差;很难从所得到的表示中重建异常,并且因此具有大的重建误差。
假设。 与异常情况相比,可以更好地从压缩空间重构正常实例。
自动编码器(AE)网络是这一类中常用的技术。AE由编码网络和解码网络组成。编码器将原始数据映射到低维特征空间上,而解码器试图从投影的低维空间中恢复数据。这两个网络的参数是用重建损失函数学习的。瓶颈网络体系结构通常用于获得比原始数据更低维的表示,这迫使模型保留在重建数据实例中重要的信息。为了最小化总体重建误差,所保留的信息需要尽可能与主要实例(例如,正常实例)相关。结果,诸如偏离大部分数据的异常之类的数据实例重建得很差。因此,数据重建误差可以直接用作异常分数。该方法的基本公式如下:
其中,是具有参数的编码网络,而是具有参数的解码网络。编码器和解码器可以共享相同的权重参数,以减少参数并使学习规则化。是x的基于重建误差的异常分数。
已经引入了几种类型的正则化自动编码器来学习更丰富、更具表现力的特征表示[38,95,128,153]。特别地,稀疏AE以鼓励隐藏层的激活单元稀疏的方式进行训练,例如,通过保持前K个最活跃的单元[95]。去噪AE[153]旨在通过学习从一些预定义的损坏数据实例而不是原始数据重建数据,来学习对小变化具有鲁棒性的表示。收缩AE[128]进一步学习对其邻居周围实例的小变化具有鲁棒性的特征表示。这是通过添加基于编码器激活的雅可比矩阵的Frobenius范数的惩罚项来实现的。变分AE[38]相反,通过使用潜在空间上的先验分布对数据实例进行编码,将正则化引入表示空间,防止过拟合,并确保学习空间的一些良好财产,以生成有意义的数据实例。
AE易于实现,并且在检测异常方面具有直截了当的直观性。因此,它们在文献中得到了广泛的探讨。Replicator神经网络[57]是探索数据重建以检测异常的想法的第一项工作,实验集中在静态多维/表格数据上。Replicator网络建立在具有三个隐藏层的前馈多层感知器上。它使用参数化双曲正切激活函数来获得不同输入值的不同激活级别,这有助于将中间表示离散化为一些预定义的bin。因此,隐藏层自然地将数据实例聚类为多个组,从而能够检测聚类异常。在这项工作之后,有许多研究致力于进一步提高这种方法的性能。例如,RandNet[29]通过学习AE集合进一步增强了基本AE。在RandNet中,训练一组独立的AE,每个AE具有一些随机选择的恒定丢弃连接。通过指数增加小批量的样本量来使用自适应采样策略。RandNet专注于表格数据。参考文献[71]将自动编码器集成的思想扩展到了时间序列数据。
受稳健主成分分析(RPCA)的启发,RDA[175]试图通过迭代将原始数据分解为两个子集,即正常实例集和异常集,来提高AE的稳健性。它的实现是通过添加稀疏性惩罚或者分组处罚转换为其类似RPCA的目标函数,以正则化异常集的系数。
AE也被广泛用于检测表格数据以外的数据中的异常,如序列数据[91]、图形数据[37]和图像/视频数据[163]。一般来说,AE对这些复杂数据的适应有两种类型。最直接的方法是遵循与AE的传统使用相同的程序,通过使网络架构适应输入数据的类型,如CNN-AE[56172]、LSTM-AE[96]、Conv-LSTM AE[92]和图卷积网络AE[37]。这种类型的AE将编码器-解码器方案嵌入到这些方法的整个过程中。另一种基于AE的方法是首先使用AE来学习复杂数据的低维表示,然后学习预测这些学习的表示。AE和表示预测的学习通常是两个独立的步骤。这些方法与第一类方法的不同之处在于,表示的预测是围绕AE产生的低维表示进行的。
例如,在参考文献[91]中,去噪 AE 与 RNN 结合以学习多变量序列数据的正常模式,其中首先使用具有两个隐藏层的去噪 AE 来学习每个时间步骤中多维数据输入的表示,然后训练具有单个隐藏层的 RNN 来预测由去噪 AE 产生的表示。类似的方法也用于检测声学异常[97] ,其中使用了更复杂的 RNN,双向 LSTM。
优势。
基于数据重建的方法的优点如下。
(i) AE的概念简单明了,适用于不同类型的数据。
(ii)可以利用不同类型的强大AE变体来执行异常检测。
缺点。
它们的缺点如下。
(i) 学习到的特征表示可能会因不频繁的规律性和训练数据中异常值或异常的存在而产生偏差。
(ii)数据重建的目标函数被设计用于降维或数据压缩,而不是异常检测。因此,所得到的表示是对潜在规律的一般概括,这些规律没有被优化用于检测不规则性。
有针对性的挑战。
在AE框架下可以使用不同类型的神经网络层和架构,使我们能够检测高维数据中的异常,以及非独立数据,如属性图数据[37]和多变量序列数据[91,97](CH2)。如果学习到的表示更具表达性(CH1),则与建立在手工特征上的传统方法相比,这些方法可以减少误报。AE通常容易受到训练数据中出现的数据噪声的影响,因为它们可以被训练来记住这些噪声,从而导致严重的过拟合和较小的异常重建误差。RPCA的思想可以用于AE,以训练更稳健的检测模型[175](CH4)。
(PCA对于异常值非常敏感,当数据中存在较多的异常值(噪点数据)时对结果会产生较大影响。这是由于PCA的假设是数据是高斯分布的,而引进RPCA则是将假设扩散到存在噪点的数据也可以使用。RPCA鲁棒主成分分析应用于矩阵低秩任务中,将矩阵D视为低秩矩阵A和稀疏矩阵E两者之和。)
基于GAN的异常检测在参考文献[138]中早期使用后,迅速成为一种流行的深层异常检测方法。这种方法通常旨在学习生成网络G的潜在特征空间,以便该潜在空间很好地捕捉给定数据的正态性。然后将真实实例和生成的实例之间的某种形式的残差定义为异常分数。
假定。 在GANs中,正常数据实例可以比来自生成网络的潜在特征空间的异常更好地生成。
早期的方法之一是AnoGAN[138]。关键点是,给定任何数据实例x,其目的是在生成网络G学习的潜在特征空间中搜索实例z,使得对应的生成实例G(z)和x尽可能相似。由于潜在空间被强制用于捕获训练数据的潜在分布,因此与正常情况相比,异常情况不太可能具有高度相似的生成对应物。具体而言,GAN首先以以下常规目标进行训练:
其中G和D分别是由和参数化的生成器和鉴别器网络(为简洁起见,省略了参数),V是两人最小最大博弈的值函数。之后,对于每个x,为了找到其最佳z,使用两个损失函数残差损失和判别损失来指导搜索。剩余损失定义为
而判别损失是基于特征匹配技术[136]来定义的:
其中是搜索迭代步骤的索引,h是来自鉴别器的中间层的特征映射。搜索从随机采样的z开始,然后根据总损失得出的梯度更新,α是一个超参数。在整个搜索过程中,经过训练的GAN的参数是固定的;
损失仅用于更新下一次迭代的z的系数。根据在最后一步中获得的x和z之间的相似性,相应地定义了异常分数:
AnoGAN的一个主要问题是z的迭代搜索中的计算效率低下。解决这个问题的方法是添加一个额外的网络,学习从数据实例到潜在空间的映射,即生成器的逆,从而产生EBGAN[170]和快速AnoGAN[137]等方法。这两种方法有着相同的精神。在这里,我们重点关注建立在双向GAN**(BiGAN)[39]之上的EBGAN。特别地,BiGAN具有编码器E以将x映射到潜在空间中的z,并同时学习G、D和E的参数。BiGAN的目的不是区分x和G(z),而是区分实例对*(x,E(x))和实例对(G(z,z))*:
训练后,受AnoGAN中方程(10)的启发,EBGAN将异常分数定义为:
这消除了在AnoGAN中迭代搜索z的需要。EBGAN被扩展到一种称为ALAD[171]的方法,方法是再添加两个鉴别器,其中一个鉴别剂试图将*对(x,x)与(x,G(E(x)))区分开来,另一个鉴别剂试图将这对(z,z)与(z,E(G(z)))*区别开来。
GANomaly[3]通过将网络更改为编码器-解码器-编码器网络并添加另外两个额外的损失函数,进一步改进了生成器。
这个生成器在概念上可以表示为: 其中G是编码器和解码器的组合。除了常用的特征匹配损失外:
这个生成器包括上下文损失和编码损失以生成更真实的实例:
上图第一个方程中的上下文损失迫使生成器在生成时考虑输入x的上下文信息。上图第二个方程中的编码损失有助于生成器学习如何对生成的实例的特征进行编码。总损失定义为
其中,α、β和γ是确定每个个体损失重量的超参数。由于训练数据主要包含正常实例,编码器G和E针对正常实例的编码进行优化,因此,异常分数可以定义为
其中如果x是异常,则预期Sx较大。
多年来,已经引入了许多其他GAN,如Wasserstein GAN[10]和Cycle GAN[177]。它们可用于进一步增强上述方法的异常检测性能,例如用Wasserstein GAN[137]取代标准GAN。
另一个相关的研究方向是对抗性学习端到端的一类分类模型,该模型被分类到端到端异常分数学习框架中,并在第6.4节中进行了讨论。
优势。 这些方法的优点如下。
(i) GANs在生成真实实例方面表现出了卓越的能力,尤其是在图像数据上,能够检测从潜在空间重建不良的异常实例。
(ii)大量现有的基于GAN的模型和理论[32]可以适用于异常检测。
缺点。 它们的缺点如下。
(i) GANs的训练可能会遇到多种问题,如无法收敛和模式崩溃[99],这导致训练基于GANs的异常检测模型的难度很大。
(ii)生成器网络可能会被误导,并从正态实例的流形中生成数据实例,特别是当给定数据集的真实分布复杂或训练数据包含意外的异常值时。
(iii)基于GAN的异常分数可能是次优的,因为它们建立在生成器网络上,目标是设计用于数据合成而不是异常检测。
有针对性的挑战。类似于AE,基于GAN的异常检测能够通过检查从所学习的低维潜在空间(CH2)的重建来检测高维异常。当潜在空间保留了重要的异常判别信息时,与原始数据空间(CH1)中的检测精度相比,它有助于提高检测精度。
有针对性的挑战。 类似于AE,基于GAN的异常检测能够通过检查从所学习的低维潜在空间(CH2)的重建来检测高维异常。当潜在空间保留了重要的异常判别信息时,与原始数据空间(CH1)中的检测精度相比,它有助于提高检测精度。
基于可预测性建模的方法通过使用时间窗口内的先前实例的表示作为上下文来预测当前数据实例来学习特征表示。在本节中,数据实例被称为序列中的单个元素,例如视频序列中的视频帧。该技术广泛用于序列表示学习和预测[63,82,98,146]。为了实现准确的预测,强制表示以捕捉给定序列长度内的时间/顺序和递归依赖性。正常实例通常很好地遵循这些依赖关系,并且可以很好地预测,而异常通常违反这些依赖关系并且是不可预测的。因此,可以使用预测误差来定义异常分数。
假定。 在时间上正常情况比异常情况更容易预测。
这条研究路线在视频异常检测中很受欢迎[186,167]。视频序列涉及复杂的高维时空特征。在预测目标函数中需要对外观和运动特征的不同约束,以确保视频帧的忠实预测。这种深层异常检测方法在参考文献[86]中进行了初步探讨。
形式上,给定具有连续t个帧x1、x2、…、xt的视频序列,则学习任务是使用所有这些帧来生成未来的帧,使其尽可能接近基本事实其一般目标函数可以公式化为
其中,是帧预测损失,用来衡量均方误差,是一种对抗性的损失。流行的网络体系结构 U-Net [129]被用来实例化用于帧生成的 ψ 函数。由一组三个独立的损失组成,它们分别增强了三个关键图像特征描述符和之间的接近度: 强度、梯度和光流。是由于使用对抗性训练来增强形象的生成。经过训练后,对于给定的视频帧 x,使用基于预测差的归一化峰值信噪比[98]来定义异常评分。在相同的框架下,在参考文献[167]中增加了一个基于自动编码器的重建网络,以进一步细化预测的帧质量,这有助于扩大正常和异常帧之间的异常评分差异。
这一方向的另一条研究路线是基于自回归模型[50],该模型假设序列中的每个元素线性依赖于先前的元素。参考文献[1]中利用自回归模型来估计潜在空间中训练样本的密度,这有助于避免特定分布族的假设。具体而言,给定x及其潜在空间表示自回归模型将*p(z)*因子分解为
其中表示在所有先前实例条件下的概率质量函数,K是潜在空间的维数。
参考文献[1]中的目标是联合学习自动编码器和配备有自回归网络层的密度估计网络。总损失可以表示为
其中第一项是由MSE测量的重建误差,而第二项是由在估计的条件概率密度先验下的表示的对数似然测量的自回归损失。最大限度地减少这种损失可以学习常见且易于预测的特征。在评估阶段,将重建误差和对数似然性相结合来定义异常分数。
优势。 这类方法的优点如下。
(i) 许多序列学习技术可以被调整并结合到这种方法中。
(ii)这种方法能够学习不同类型的时间和空间依赖性。
缺点。 它们的缺点如下。
(i) 这种方法仅限于序列数据中的异常检测。
(ii)顺序预测在计算上可能是昂贵的。
(iii)学习的表示对于异常检测可能是次优的,因为其基本目标是用于顺序预测而不是异常检测。
有针对性的挑战。 这种方法特别设计用于学习表达性的时间依赖性低维表示,这有助于解决高维和/或时间数据集(CH1和CH2)中异常检测的误报问题。这里的预测是以一些经过的时间实例为条件的,因此这类方法能够检测基于时间上下文的条件异常(CH5)。
5.1.4 Self-supervised Classification
这种方法通过建立自监督分类模型来学习正态性的表示,并将与分类模型不一致的实例识别为异常。这种方法植根于基于交叉特征分析或特征模型的传统方法[64,105,149]。这些浅层方法通过数据实例与一组预测模型的一致性来评估数据实例的正态性,每个模型都学习基于其他特征的其余部分来预测一个特征。给定所有特征的分类/回归模型,测试实例的一致性可以通过平均预测结果[64]、基于对数损失的推测[105]或二元决策的多数投票[149]来衡量。与这些专注于表格数据并使用原始数据构建特征模型的研究不同,基于深度一致性的异常检测专注于图像数据,并通过使用基于特征变换的增强数据构建预测模型。为了有效地区分转换后的实例,分类模型被强制用于学习特征,这些特征对于描述训练数据中实例的基本模式非常重要。因此,一般实例通常与分类模型有较强的一致性。
假设。 与异常情况相比,正常情况与自监督分类器更一致。
这种方法在参考文献[48]中进行了初步探讨。为了建立预测模型,首先将包括水平翻转、平移和旋转在内的几何变换操作的不同组合应用于正常训练图像。在扩充数据上训练深度多类分类模型,用来自同一类(即合成类)的特定转换操作来处理数据实例。在推理时,用每个变换组合来扩充测试实例,并且通过将所有softmax分类分数聚集到扩充的测试实例来定义它们的正态性分数。其损失函数定义为
其中是由变换运算类型扩充的实例x的低维特征表示,ψ是用W参数化的多类分类器,是使用变换运算扩充实例的合成类的单热编码,CE是标准的交叉熵损失函数。
通过最小化方程(上图方程),我们获得了针对分类器ψ优化的表示。然后,我们可以应用特征学习器和分类器以获得用变换操作扩充的每个测试实例的分类分数。为了实现这一点,假设以每个Tj为条件的分类分数遵循参考文献[48]中的狄利克雷分布,以估计测试实例与分类模型ψ的一致性;与不同Tj相关联的分类分数的简单平均值也很好地工作。
参考文献[48]中假设了半监督设置,即训练数据仅包含正常实例。参考文献[157]中的无监督设置也探讨了类似的想法,其中变换集包含四种变换操作,即旋转、翻转、移位和路径重排。
参考文献[157]中揭示的两个关键见解是:
(i)在这种自我监督的多类分类模型的训练过程中,正常实例引起的梯度幅度通常远大于异常值;
(ii)网络更新方向也偏向于正常情况。由于这两个财产,与异常相比,正常实例通常与分类模型具有更强的一致性。评估了使用分类分数来定义异常分数的三种策略,包括平均预测概率、最大预测概率和所有预测概率的负熵[157]。他们的结果表明,基于负熵的异常评分通常比其他两种策略表现更好。
优势。 基于深度一致性的方法的优点如下。
(i) 它们在无监督和半监督环境中都能很好地工作。
(ii)异常评分是以梯度幅度的一些固有财产及其更新为基础的。
缺点。 它们的缺点如下。
(i) 特征转换操作通常依赖于数据。上述变换操作仅适用于图像数据。
(ii)尽管分类模型是以端到端的方式训练的,但基于一致性的异常分数是基于分类分数而不是优化中的集成模块得出的,因此它们可能是次优的。
有针对性的挑战。 该方法学习的正态性的低维表达有助于比在原始高维空间(CH1和CH2)中更好地检测异常。由于自监督分类器中出现的异常和正常实例之间的一些内在差异,该方法也能够在无监督环境中工作[157],证明了对训练数据(CH4)中的异常污染具有良好的鲁棒性。
Anomaly Measure-dependent Feature Learning
依赖于异常度量的特征学习旨在学习针对一个特定的现有异常度量专门优化的特征表示。从形式上讲,这组方法的框架可以表示为
其中 f 是在表示空间上操作的现有异常评分度量。注意, f 是否可能涉及可训练参数 W 取决于所使用的异常度量。与方程:
中的一般特征学习方法不同,该方法在获得学习的表示后基于一些启发式算法计算异常分数,该研究线将现有的异常测度 f 合并到特征学习目标函数中,以优化专门针对 f 的特征表示。下面我们回顾了专门为三种流行的异常测量设计的表示学习,包括基于距离的测量、一类分类测量和基于聚类的测量。
基于深度距离的异常检测旨在学习针对特定类型的基于距离的异常测量而专门优化的特征表示。基于距离的方法简单易行。已经引入了许多基于距离的有效异常测量,例如,DB异常值[72,73]、knarest近邻距离[125,126]、平均k近邻距离[9]、相对距离[173]和随机近邻距离[116,144]。这些传统的基于距离的异常测量的一个主要局限性是,**由于维数的诅咒,它们无法在高维数据中有效工作。**由于基于深度距离的异常检测技术在应用距离测量之前将数据投影到低维空间,因此可以很好地克服这一限制。
假定。 异常分布在远离其最近邻居的地方,而正常实例位于密集的邻居中。
参考文献[112]首次探讨了这种方法,其中利用基于随机邻居距离的异常测量[116,144]来推动从超高维数据中学习低维表示。关键思想是对表示进行优化,使得随机子样本中伪标记异常的最近邻距离显著大于伪标记正常实例的最近邻距。伪标签是由一些现成的异常检测器生成的。设是从数据集X中随机采样的数据实例的子集,分别是伪标记异常和正态实例集,其中和,其损失函数建立在铰链损失函数[130]上:
其中,m是由产生的两个距离之间的差值的预定义常数,f 是在表示空间中操作的随机最近邻距离函数:
上上图最小化方程中的损失可以保证异常的随机最近邻距离至少比投影表示空间中的正常实例的最近邻距离大m。在评估阶段,直接使用上图方程中的随机距离来获得每个测试实例的异常分数。根据这种方法,我们还可以通过上图方程替换等式其他度量,例如k最近邻距离[126]或平均k最近邻距[9],来导出针对其他基于距离的度量定制的类似表示学习。然而,这些措施在计算上的成本明显高于等式(25)。因此,这种适应的一个主要挑战是高得令人望而却步的计算成本。
与参考文献[112]相比,参考文献[111]受参考文献[19]的启发,要求查询随机数据子集中的最近邻距离,参考文献[155]中探索的一个更简单的想法使用相同实例的优化表示和随机投影表示之间的距离来指导表示学习。该方法的目标如下:
其中是一个随机映射函数,该函数由具有固定随机权重的中使用的神经网络实例化,f 是同一数据实例的两个表示之间距离的度量。如参考文献[19]所述,求解方程(26)相当于从随机神经网络中提取知识,有助于学习数据中不同底层模式的频率。然而,方程(26)忽略了数据实例之间的相对接近性,并且对数据中出现的异常很敏感。如参考文献[155]所示,这种邻近信息可以通过借口任务来学习,在该任务中,我们旨在预测随机实例对之间的距离。增强过程也可以用于迭代地过滤潜在的异常并建立鲁棒的检测模型。在评估阶段,用于计算异常分数。
优势。 这类方法的优点如下。
(i) 基于距离的异常是直接的,并且在文献中得到了丰富的理论支持。因此,由于先前相关工作奠定了坚实的基础,基于深距离的异常检测方法可以很好地扎根。
(ii)它们在低维表示空间中工作,可以有效地处理传统的基于距离的异常测量失败的高维数据。
(iii)他们能够学习专门为自己量身定制的表达方式。
缺点。 它们的缺点如下。
(i) 大多数基于距离的异常测量中涉及的大量计算可能是将基于距离的反常测量纳入表示学习过程的障碍。
(ii)它们的能力可能受到基于距离的异常测量的固有弱点的限制。
有针对性的挑战。 这种方法能够学习为现有的基于距离的异常测量量身定制的低维表示,解决了基于距离的检测[178](CH1和CH2)中臭名昭著的维数诅咒。如参考文献[112]所示,可以设计自适应的三重态损失,以利用一些标记的异常示例来学习更有效的正态表示(CH3)。得益于伪异常标记,方法[112,155]对潜在的异常污染具有鲁棒性,并在完全无监督的环境(CH4)中有效工作。
这类方法旨在学习为后续基于一类分类的异常检测定制的特征表示。一类分类被称为学习一组数据实例的描述以检测新实例是否符合训练数据的问题。这是最受欢迎的异常检测方法[101,131,139,148]之一。大多数一类分类模型都受到SVM的启发[31],例如两种广泛使用的一类模型:一类SVM(或v-SVC)[139]和支持向量数据描述(SVDD)[148]。这里的一个主要研究方向是学习专门为这些传统的一类分类模型优化的表示。这是本节的重点。另一条线是学习端到端对抗性一类分类模型,这将在第6.4节中讨论。
假定。 所有正常的实例都来自一个(抽象的)类,可以用一个紧凑的模型来概括,异常不符合这个模型。
有许多研究致力于将一类SVM与神经网络相结合[27,104,161]。传统的一类SVM是学习超平面,该超平面最大化训练数据实例和原点之间的裕度。深度一类SVM的关键思想是从神经网络支持的低维表示空间而不是原始输入空间学习一类超平面。设则参考文献[27,104,161]中关键思想的一般公式可以表示为
这里Φ是再生核希尔伯特空间相关映射,*k(·,·)*是核函数;v是可以被视为训练数据中的异常部分的上界的超参数。有任何具有的实例都可以被报告为异常。
该公式带来了两个主要好处:
(i)它可以利用(预训练的)深度网络来学习更具表现力的特征,用于下游异常检测,以及(iii)它还有助于消除核函数中计算成本高昂的成对距离计算。如[104161]所示,AE中的重建损失可以添加到方程(27)中,以增强表示z的表达性。如参考文献[124]所示,许多核函数可以用随机傅立叶特征来近似。因此,在之前, 可以将某种形式的随机映射h应用于z以生成傅立叶特征,从而得到,这可以进一步改进一类SVM模型。另一条研究线研究SVDD的深层模型[132,133]。SVDD旨在学习以中心c和半径r为特征的最小超平面。
与深度一类SVM类似,深度SVDD[132]还旨在利用神经网络将数据实例映射到最小体积的球体中,然后使用铰链损失函数来保证球体中心和投影实例之间的裕度。然后,可以通过最小化以下损失来联合训练特征学习和SVDD目标:
这假设训练数据在无监督环境中包含一小部分异常污染。在半监督设置中,损失函数可以简化为
这直接最小化了训练数据实例的表示与中心c之间的平均距离。注意,在方程(31)中包括c作为可训练参数可能导致平凡的解。如参考文献[132]所示,c可以固定为通过执行单个初始前向传递产生的特征表示的平均值。深度SVDD也可以进一步扩展,以解决另一个半监督设置,其中有少量标记的正常实例和异常可用[133]。关键思想是最小化标记的法线实例到中心的距离,同时最大化已知异常到中心的间距。这可以通过添加代入上述方程,其中是一个标记实例,当它是一个正常实例时,,否则。
优势。 这类方法的优点如下。
(i) 基于一类分类的异常在文献中得到了很好的研究,并为基于深层分类的方法提供了坚实的基础。
(ii)表示学习和一类分类模型可以统一,以学习定制的和更优化的表示。(iii)它们使用户不用在传统的单类模型中手动选择合适的内核函数。
缺点。 它们的缺点如下。
(i) 单类模型在正态类内具有复杂分布的数据集中可能无效工作。
(ii)检测性能取决于基于一类分类的异常测量。
有针对性的挑战。 这类方法通过学习针对一类分类模型(CH1和CH2)优化的低维表示空间来提高检测精度。这些方法[133]可以利用少量标记的正常和异常数据来学习更有效的一类描述模型,该模型不仅可以检测已知异常,还可以检测新的异常类别(CH3)。
基于深度聚类的异常检测旨在学习表示,以便在新学习的表示空间中明显偏离聚类。聚类和异常检测的任务自然是相互联系的,因此有大量的研究致力于使用聚类结果来定义异常,例如聚类大小[67]、到聚类中心的距离[59]、聚类中心之间的距离[68]和聚类成员身份[141]。基于高斯混合模型的异常检测[43,94]由于其与聚类的一些内在关系而被包括在这一类别中,例如,高斯混合模型(GMM)中的似然拟合对应于数据实例到高斯聚类/分量中心的距离的聚合[2]。
*假设。*与异常情况相比,正常情况对集群的依从性更强。
深度聚类旨在学习为特定聚类算法量身定制的特征表示,是这种异常检测方法的最关键组成部分。近年来,许多研究对这个问题进行了探讨[25,36,47,151,162,165,166]。主要动机是由于聚类方法的性能高度依赖于输入数据。专门为聚类算法量身定制的学习特征表示可以很好地保证其在不同数据集上的性能[5]。
一般来说,这里有两个关键的直觉:(i)良好的表征能够实现更好的聚类,良好的聚类结果可以为表征学习提供有效的监督信号,以及(ii)由于聚类算法所做的基本假设的差异,针对一个聚类算法优化的表示对于其他聚类算法不一定有用。
深度聚类方法通常由两个模块组成:在前向传递中执行聚类和在后向传递中使用聚类分配作为伪类标签来学习表示。其损失函数通常是最关键的部分,通常可以公式化为
其中是聚类损失函数,其中,是由参数化的特征学习器,f是由W参数化的聚类分配函数,表示聚类产生的伪类标签,是非聚类损失函数,用于对所学习的表示实施附加约束;α和β是控制这两种损失重要性的两个超参数。可以用k-均值损失[25,162]、光谱聚类损失[115,166]、凝聚聚类损失[165]或GMM损失[36]实例化,从而实现目标聚类算法的表示学习通常被实例化为具有基于自动编码器的重建损失[47,166],以学习鲁棒和/或局部结构保留的表示。
在深度聚类之后,可以利用所得f函数中的聚类分配来基于参考文献[59,67,68,141]计算异常分数。然而,应该注意的是,如果训练数据被异常污染,则深度聚类可能会因异常而产生偏差。
因此,上述方法可以应用于半监督设置,其中训练数据仅由正常实例组成。在无监督设置中,是否需要一些额外的约束以消除潜在异常的影响。
上述深度聚类方法专注于学习最优聚类结果。尽管它们的聚类结果适用于异常检测,但所学习的表示可能无法很好地捕捉异常的异常。利用聚类技术来学习表示是很重要的,这样异常对聚类的依赖性就明显弱于正常实例。参考文献[83179]中显示了这类方法的一些有希望的结果,其中他们旨在学习基于GMM的模型的表示,该模型的表示经过优化以突出异常。这两项研究的一般形式类似于方程(32),其中分别被指定为GMM损失和基于自动编码器的重建损失,但为了学习异常的偏差表示,他们将基于重建误差的一些手工制作的特征与自动编码器的学习特征连接起来,以一起优化组合的特征。由于基于重建误差的手工特征捕获了数据的正态性,因此与其他深度聚类方法相比,所得到的表示对于异常检测更为优化。
优势。 基于深度聚类的方法的优点如下。
(i) 许多深度聚类方法和理论可以用来支持异常检测的有效性和理论基础。(ii)与传统的基于聚类的方法相比,基于深度聚类的方法学习专门优化的表示,这有助于比原始数据更容易发现异常,尤其是在处理复杂的数据集时。
缺点。 它们的缺点如下。
(i) 异常检测的性能在很大程度上取决于聚类结果。
(ii)聚类过程可能会因训练数据中受污染的异常而产生偏差,这反过来又导致无效的表示。
有针对性的挑战。 将基于聚类的异常度量应用于新学习的数据输入的低维表示;当新的表示空间保留了足够的判别信息时,深度方法可以实现比原始数据空间(CH1和CH2)更好的检测精度。一些聚类算法对异常值很敏感,因此当给定的数据被异常污染时,深度聚类和随后的异常检测可能会被很大程度上误导。使用自动编码器[179]重建误差的手工特征进行深度聚类可能有助于学习关于污染(CH4)的更稳健的模型。
END-TO-END ANOMALY SCORE LEARNING
这条研究线旨在以端到端的方式学习标量异常分数。与依赖于异常测量的特征学习相比,这种方法中的异常评分不依赖于现有的异常测量;它有一个直接学习异常的神经网络分数。通常需要新的损失函数来驱动异常评分网络。从形式上讲,这种方法旨在学习端到端的异常分数学习网络:底层框架可以表示为
与第5.1节中使用某种启发式方法在获得学习的表示后计算异常分数的方法不同,这一类别中的方法同时学习特征表示和异常分数。这极大地优化了异常分数和/或异常排名。从这个角度来看,它们与第5.2节中的方法有一些相似之处。
然而,依赖于异常测量的特征学习方法往往受到合并的异常测量的固有缺点的限制,而这里的方法并不具有这样的弱点;它们还代表了设计模型的两个完全不同的方向:一个侧重于如何综合现有的异常测量和神经网络模型,而另一个则侧重于为直接异常分数学习设计新的损失函数。
下面我们回顾了这一类别中的四种主要方法:排名模型、先验驱动模型、softmax似然模型和端到端一类分类模型。该框架的关键是将有序或判别信息纳入异常评分网络。
这组方法旨在直接学习排序模型,从而可以基于与异常的绝对/相对排序关系相关联的可观察序数变量对数据实例进行排序。异常评分神经网络是由可观察的序数变量驱动的。
假设。 存在一个可观察的序数变量,它捕捉一些数据异常。
这种方法的一个研究方向是设计基于有序回归的损失函数来驱动异常评分神经网络[114,117]。在参考文献[117]中,引入了一种自训练的深度有序回归模型,以直接优化无监督视频异常检测的异常分数。特别地,它假设了一个可观测的序数变量 y={c1,c2},其中 c1>c2 ,设A和N分别是伪异常和正态实例集,并且则目标函数公式化为
其中是一个基于MSE/MAE的损失函数,这里 y只取两个标量序数,因此它是一个两类有序回归。
端到端异常评分网络将A和N作为输入,并学习优化异常分数,使得与A(N)中的行为相似的行为的数据输入接收到尽可能接近c1(c2) 的大(小)分数,从而导致分配给异常帧的异常分数比正常帧大。由于捕捉图像数据外观特征的卓越能力,ResNet-50[58]用于指定特征网络然后是由完全连接的两层神经网络构建的异常评分网络η。η由一个具有100个单元的隐藏层和一个具有单个线性单元的输出层组成。与参考文献[112]类似,A和N通过一些现有的异常测量进行初始化。然后以自训练的方式迭代地更新和增强异常评分模型。在等式(35)中使用基于MAE的损失函数来减少A和N中的伪标签带来的负面影响。
与解决无监督设置的参考文献[117]不同,在参考文献[114,145]中假设了弱监督设置。在参考文献[114]中,假设在训练期间可以获得极少量的标记异常以及大规模的未标记数据。为了利用已知的异常,异常检测问题被公式化为成对关系预测任务。具体而言,设计了一个双流有序回归网络来学习随机采样的数据实例对的关系,即,区分实例对是否包含两个标记的异常、一个标记的反常或仅包含未标记的数据实例。
设A是小标记异常集,U是大的未标记数据集,首先生成。这里P是一组具有合成序数类标签的随机实例对,其中是序数变量。合成标签意味着具有分别从A和U采样的实例的任何实例对的序数。是预定义的,使得成对预测任务等效于异常得分学习。然后可以将该方法形式化为
其能够以端到端的方式进行训练。通过最小化方程(36),对模型进行优化,以学习两个异常对的异常分数比具有一个异常或没有异常对的更大。在推断时,将每个测试实例与来自A或U的实例配对,以获得异常分数。
参考文献[145]中的弱监督设置解决了帧级视频异常检测问题,但在训练期间只有视频级类标签可用,即视频是正常的或在我们不知道哪些特定帧是异常的地方包含异常帧。参考文献[145]中引入了一种基于多实例学习(MIL)的排名模型,以利用高级类别标签直接学习每个视频片段(即少量连续视频帧)的异常分数。其关键目标是确保视频中某个地方包含异常的片段的最大异常分数大于正常视频中的对应片段。为了实现这一点,每个视频都被视为MIL中的一个实例包,包含异常的视频被视为阳性包,正常视频被视为由阴性包。
每个视频片段都是包中的一个实例。异常分数的排序信息通过铰链损失函数被强制作为相对成对的排序顺序。总体目标函数定义为
其中x是视频片段,B包含视频片段的袋,Bp和Bn分别表示正袋和负袋。第一项是保证相对异常分数顺序,即正实例包中最异常的视频片段的异常分数大于负实例包中的异常分数。最后两项是额外的优化约束,其中前者强制连续视频片段之间的分数平滑,而后者强制异常稀疏,即每个视频只包含几个异常片段。
优势。 深度排序模型库方法的优点如下。
(i) 异常分数可以通过调整的损失函数直接优化。
(ii)通过在异常和正常情况之间强加一个弱序假设,它们通常不受异常定义的限制。
(iii)这种方法可以建立在学习排名等领域公认的排名技术和理论的基础上[85,87158]。
缺点。 它们的缺点如下。
(i) 这些方法中至少需要某种形式的标记异常,这可能不适用于无法获得此类标记异常的应用。参考文献[117]中的方法是完全无监督的,并获得了一些有希望的性能,但与半监督方法相比仍有很大差距。
(ii)由于模型仅适用于检测少数标记异常,因此它们可能无法推广到表现出与标记异常不同的异常特征的看不见的异常。
有针对性的挑战。 使用伪标签或噪声类标签等弱监督提供了可疑异常的一些重要知识,从而能够学习更具表现力的低维表示空间和更好的检测精度(CH1和CH2)。MIL方案[145]和成对关系预测[114]提供了一种将粗粒度/有限异常标签结合到检测模型学习(CH3)中的简单方法。更重要的是,端到端异常分数学习通过反向传播异常分数的激活权重或梯度来定位导致大异常分数的特征,从而提供了直接的异常解释[117](CH6)。此外,参考文献[1141117]中的方法在具有异常污染或噪声标签(CH4)的数据中使用也非常好。
这种方法使用先验分布来编码和驱动异常分数学习。由于异常分数是以端到端的方式学习的,因此可以将先验强加给分数学习函数τ的内部模块或学习输出(即异常分数)。
假设。 强加的先验捕获了数据集的基本(ab)正态性。
最近一项基于贝叶斯逆强化学习(IRL)的方法研究[107]举例说明了将先验引入内部异常评分函数。关键的直觉是,给定一个以一组序列数据为输入的代理,该代理的正常行为可以通过其潜在的奖励函数来理解,因此,如果该代理为测试序列分配低奖励,则该测试序列被识别为异常。IRL方法[102]用于推断奖励函数。为了更有效地学习奖励函数,使用了基于样本的IRL方法。具体来说,IRL问题被公式化为以下后验优化问题:
其中是一个由参数化的潜在奖励函数,(o,a)是序列s中的一对状态和作用,Z表示在所有与底层马尔可夫决策过程动力学一致的序列上作为的积分的配分函数,是Θ的先验分布,S是一组观测到的序列。由于τ产生的奖励的倒数被用作异常分数,因此上图最大化方程等效于直接学习异常分数。
在训练阶段,假设奖励函数学习网络的权重参数上的高斯先验分布,即分区函数Z是使用由样本生成策略π生成的序列集来估计的,
策略 π 也表示为一个神经网络。Τ 和 π 交替优化,即用一个固定的策略 π 优化奖励函数 τ,用更新的奖励函数 τ 优化 π。在参考文献[107]中,τ是用具有多个输出头的bootstrap神经网络实例化的; 方程(38)为简洁性提供了一个简化的 τ。
参考文献[115]探讨了在异常分数上强制执行先验的想法。参考文献[74]中的大量实证结果表明,各种真实世界数据集中的异常分数非常符合高斯分布,这项工作利用高斯先验对异常分数进行编码,并能够直接优化分数。也就是说,假设正常实例的异常分数聚集在一起,而异常的异常分数远离该聚类。先验被用来定义一个损失函数,称为偏差损失,它建立在众所周知的对比损失[55]的基础上,
其中分别是先前的估计平均值和标准差,如果 x异常,如果x为正常对象,m相当于Z-Score置信区间参数。是使用从每批实例的*N(μ,σ)中提取的一组值{r1,r2,…,rl}*来估计的,以学习正态和异常的鲁棒表示。
检测模型由偏差损失驱动,使正常实例的异常分数尽可能接近μ,同时保证μ与异常的异常分数之间至少有m个标准差。当x是一个异常并且具有负dev(x)时,这个损失将特别大,从而导致所有异常的大的正偏差。因此,偏差损失相当于在上尾部强制执行异常的异常分数与正常实例的异常分数的统计显著偏差。此外,这种高斯先验驱动的损失也导致了可解释的异常分数,即,给定任何异常分数τ(x),我们可以使用Z分数置信区间来解释实例x的异常。这是现有方法所不具备的一个重要且非常实用的特性。
优势。 先验驱动模型的优点如下。
(i) 对于给定的先验,可以直接优化异常分数。
(ii)它提供了一个灵活的框架,用于将不同的先验分布合并到异常分数学习中。不同的贝叶斯深度学习技术[156]可以适用于异常检测。
(iii)与其他方法相比,先验方法还可以产生更多可解释的异常分数。
缺点。 它们的缺点如下。
(i) 对于不同的异常检测应用场景,即使不是不可能,也很难设计出一种普遍有效的先验。
(ii)如果先前的模型不能很好地适应潜在的分布,则模型的工作效率可能会降低。
目标挑战。 先验使模型能够学习不同复杂数据的低维表示,如高维数据和序列数据(CH1和CH2)。通过施加先验的过度异常评分,偏差网络方法[115]在利用有限数量的标记异常数据来增强正常和异常的表示方面具有良好的性能,从而大大提高了检测召回率(CH1和CH3)。这里的检测模型由先验分布*w.r.t.*异常评分函数驱动,并且在训练数据(CH4)中具有异常污染的数据中工作良好。
这种方法旨在通过最大化训练数据中事件的可能性来学习异常分数。由于异常和正常实例分别对应于罕见和频繁的模式,从概率的角度来看,正常实例被认为是高概率事件,而异常则倾向于低概率事件。因此,事件可能性的负值可以自然地定义为异常分数。Softmax似然模型通过噪声对比估计(NCE)[54]等工具被证明在实现这一目标方面是有效的。
*假设。*异常和正常情况分别是低概率事件和高概率事件。
[30]中引入了通过直接建模事件可能性来学习异常分数的想法。特别是,这个问题被定义为
其中是实例x(即事件空间中的事件)的概率,其中参数为要学习的Θ。为了简化优化,使用softmax函数对进行建模:
其中τ(x;Θ) 是一个异常评分函数,旨在捕捉成对的特征交互:
其中zi是表示空间Z中x的第i个特征值的低维嵌入,wij是添加到交互的权重,并且是可训练的参数。自从为归一化项,学习似然函数p相当于直接优化异常评分函数τ。该显式归一化项的计算成本高得令人望而却步,参考文献[30]中使用了公认的NCE来学习以下近似可能性:
和对于每个实例x,k个噪声样本是由一些合成的已知“噪声”分布Q生成的。参考文献[30]中,通过对观察到的实例x进行单变量外推,使用了一种上下文相关的方法来生成k个负样本。
该方法主要用于检测分类数据中的异常[30]。受此应用的启发,类似的目标函数适用于检测异质属性二分图中的异常事件[45]。参考文献[45]中的问题是检测跨越二分图的两个分区的异常路径。因此,方程(43)中的x是包含一组异构图节点的图路径,zi和zj是路径中每对节点的表示。为了将属性节点映射到表示空间Z中,将多层感知器网络和自动编码器分别应用于节点特征和图拓扑。
优势。 基于softmax模型的方法的优点如下。
(i) 不同类型的交互可以被合并到异常分数学习过程中。
(ii)相对于我们旨在捕捉的特定异常交互作用,异常分数得到了忠实的优化。
缺点。 它们的缺点如下。
(i) 当每个数据实例中的特征/元素的数量很大时,交互的计算可能非常昂贵,即,对于D个特征/元件的n阶交互,每个实例的时间复杂度为。(ii)异常分数学习在很大程度上取决于负样本生成的质量。
有针对性的挑战: 这类方法的公式化为学习具有异构数据源(CH2和CH5)的数据集的低维表示提供了一种很有前途的方法。所学习的表示通常从不同的数据源捕获更多的正常/异常信息,从而能够比传统方法(CH1)更好地进行检测。
这类方法旨在训练一类分类器,该分类器学习以端到端的方式区分给定实例是否正常。与第5.2.2节中的方法不同,该方法不依赖于任何现有的一类分类措施,如一类SVM或SVDD。这种方法的出现主要是由于GANs和一类分类概念的结合,即对抗性学习的一类分类。关键思想是学习正常实例的一类鉴别器,以便很好地将这些实例与敌对生成的伪异常区分开来。由于两个关键差异,该方法与第5.1.2节中基于GAN的方法也有很大不同。首先,基于GAN的方法旨在学习生成分布,以最大限度地近似真实数据分布,从而实现能够很好地捕捉训练正态实例的正态性的生成模型;而本节中的方法旨在优化判别模型,以将正常实例与对抗性生成的条纹实例分离。其次,基于GAN的方法基于真实实例和相应生成实例之间的残差来定义异常分数,而这里的方法直接使用鉴别器来对异常进行分类,即鉴别器D在方程(33)中充当τ。本节与第5.1.2节和第5.2.2节分开,以突出上述差异。
假设。
(i) 可以有效地合成近似于异常的数据实例。
(ii)所有正常的实例都可以用一个有区别的一类模型来概括。
参考文献[135]首次研究了对抗性学习一类(ALOCC)分类的概念。关键思想是训练两个深度网络,其中一个网络被训练为一类模型,以将正常实例与异常分离,而另一个网络则被训练为增强正常实例并生成失真的异常值。通过GANs方法对这两个网络进行了实例化和优化。一类模型建立在鉴别器网络上,生成器网络基于去噪AE[153]。AE的目标授权GAN被定义为
其中,表示被高斯噪声破坏的X的数据分布,即,具有的。该目标与以下AE中的数据构造误差共同优化,
方程(45)的直觉是AE可以很好地重建(甚至增强)正常实例,但它可能会被输入异常值混淆,从而产生失真的异常值。
通过最小-最大优化,鉴别器D学会了比使用原始数据实例更好地区分正常实例和异常值。因此,可以直接用于检测异常。在参考文献[135]中,异常值是从一些类中随机抽取的,而不是正常实例所处的类。
然而,在许多领域中,获得超出参考文献[135]中给定训练数据的参考异常值可能是不可用的。我们可以基于给定的训练数据生成边缘数据实例,并将其用作负参考实例,以实现对一类鉴别器的训练,而不是从其他数据集中提取随机异常值。[103174]中探讨了这一想法。参考文献[174]中引入了一类对抗性网络(OCAN),以利用坏GAN[33]的思想,基于正常训练数据的分布生成边缘实例。与GANs中的传统生成器不同,坏GANs中生成器网络被训练为生成与训练数据互补而非匹配的数据实例。
这个补码生成器的目标如下:
其中H(·)是熵,是指示函数,是阈值超参数,H是从鉴别器的中间层导出的特征映射。前两个术语被设计为在原始特征空间中生成低密度实例。然而,获得训练数据的概率分布在计算上是不可行的。相反,密度估计由正则GAN的鉴别器近似。最后一个术语是广泛使用的特征匹配损失,它有助于在原始数据空间内更好地生成数据实例。OCAN中鉴别器的目标通过额外的条件熵项来增强,以实现高置信度的检测:
在参考文献[103]中,引入了Fence GAN,其目的是生成紧位于训练数据分布边界的数据实例。这是通过在生成器中引入两个损失函数来实现的,这两个函数强制生成的实例沿着训练数据的球体边界均匀分布。形式上,生成器的目标定义为
其中α∈(0,1)是一个超参数,用作生成器生成边界实例的判别参考分数,μ是生成的数据实例的中心。第一个术语被称为包围损失,它强制生成的实例具有相同的判别分数,理想情况下会导致实例紧紧包围训练数据。第二项称为分散损失,它强制生成的实例均匀覆盖整个边界。已经引入了一些其他方法来有效地生成引用实例。例如,可以生成均匀分布的实例,以强制普通实例在潜在空间上均匀分布[120];参考文献[89]中使用了生成器集合,每个生成器为一个特定的正常实例簇合成边界实例。
优势。 这类方法的优点如下。
(i) 其异常分类模型是以端到端的方式进行对抗性优化的。
(ii)它可以通过丰富的对抗性学习技术和理论以及一类分类来发展和支持。
缺点。 它们的缺点如下。
(i) 很难保证生成的参考实例与未知异常非常相似。
(ii)GANs的不稳定性可能导致生成具有不同质量的实例,从而导致异常分类性能不稳定。最近在参考文献[169]中对这一问题进行了研究,该文献表明,这种类型的异常检测器的性能在不同的训练步骤中可能会大幅波动。
(iii)其应用仅限于半监督异常检测场景。
有针对性的挑战: 对抗性学习的一类分类器学习生成真实的边缘/边界实例,从而能够学习表达性的低维正态性表示(CH1和CH2)。
为了更深入地了解这一领域的方法,在表2中,我们总结了每类方法中代表性算法的一些关键特征。由于这些方法在不同的数据集上进行评估,很难对其实证表现进行普遍的荟萃分析。相反,关于模型设计的一些主要观察结果总结如下:
(i)大多数方法在无监督或半监督模式下运行;
(ii)深度学习技巧,如数据扩充、辍学和预训练,探索不足;
(iii)所使用的网络架构没有那么深,大多数方法具有不超过五个网络层;
(iv)(泄漏)ReLU是最流行的激活函数;
(v)可以使用不同的骨干网络来处理不同类型的输入数据。大多数这些算法的源代码都是可以公开访问的。我们在附录A的表A1中总结了这些源代码,以便于访问。
30种代表性算法的关键特征
DA、DP、PT和Archit。分别是数据扩充、丢弃、预训练和体系结构的缩写。#层说明除输入层之外的所有层。lReLU表示leakly ReLU。
异常检测发展的一个主要障碍是缺乏具有真实异常的真实世界数据集。由于这个原因,许多研究(例如,参考文献[3,48103132157170175])评估了他们提出的方法在从流行分类数据转换的数据集上的性能。这种方式可能无法反映该方法在真实世界的异常检测应用中的性能。我们在表3中总结了21个具有真实异常的公开可用的真实世界数据集,以促进对这些数据集的性能评估。数据集涵盖了以各种数据类型呈现的广泛的流行应用领域。
这里只包括大规模和/或高维度的复杂数据集,以便为深度异常检测提供具有挑战性的测试平台。此外,我们亦不断更新广泛使用的异常检测数据集(包括表3的部分预处理数据集) ,供 https://git.io/jts93参考。
具有真实异常的可公开访问的真实世界数据集
在这项工作中,我们回顾了利用深度学习技术进行异常检测的12种不同建模视角。我们还讨论了这些方法如何解决一些臭名昭著的异常检测挑战,以证明深层异常检测的重要性。通过这样的回顾,我们发现了一些令人兴奋的机会,如下所示。
信息性监督信号是深度异常检测的关键,以学习准确的异常分数或正常/异常的表达形式。虽然已经探索了广泛的无监督或自监督监督信号,如第5.1节所述,为了学习表示,这些公式的一个关键问题是它们的目标函数是通用的,但没有专门针对异常检测进行优化。第5.2节中的异常度量相关特征学习通过施加来自传统异常度量的约束来帮助解决这个问题。然而,这些约束可能具有一些固有的局限性,例如,异常测量中的隐含假设。探索异常监测信号的新来源至关重要,这些信号超出了广泛使用的公式,如数据重建和GAN,并且对异常分布的假设较弱。另一种可能性是通过利用领域知识[23]来开发领域驱动的异常检测,例如异常的特定应用知识和/或专家规则作为监督来源。
深度弱监督异常检测[114]旨在利用深度神经网络学习具有弱监督异常信号的异常信息检测模型,例如,部分/不精确/标记不准确的异常数据。这些标记数据提供了有关异常的重要知识,并可能是提高检测召回率的主要驱动力[112,114,115,145,147]。一个令人兴奋的机会是利用少量准确标记的异常示例来增强检测模型,因为它们在现实世界的应用中经常可用,例如,来自已部署的检测系统/终端用户并经人类专家验证的一些入侵/欺诈。然而,由于异常可能是高度异质的,因此可能存在未知/新的异常,这些异常位于给定异常示例的跨度集之外。因此,这里的一个重要方向是未知异常检测,我们的目标是建立从有限的标记异常到未知异常的检测模型。最近的一些研究[113-151,133]表明,深度检测模型能够学习超出给定异常示例范围的异常。重要的是要进一步理解和探索可推广性的程度,并开发模型来进一步提高准确性。
为了检测属于给定异常的相同类别的异常,示例可以与检测新的/未知的异常一样重要。因此,另一个重要方向是开发数据高效的异常检测或少炮异常检测,其中我们的目标是在仅给定有限异常示例的情况下学习已知异常类别的高度表达的表示[112,114,151,152]。应该注意的是,有限的异常示例可能来自不同的异常类别,因此表现出完全不同的流形/类别特征。这种场景与一般的少镜头学习[159]有根本不同,在一般的少拍学习中,有限的例子是特定于类的,并假设共享相同的流形/类结构。此外,如表2所示,网络架构大多不如其他机器学习任务中的深度。这可能部分是由于标记的训练数据大小的限制。探索利用这些小标记数据来学习更强大的检测模型和更深层次的架构的可能性是很重要的。此外,在一些应用程序中,不精确或不准确(例如,粗粒度)的异常标签通常收集起来很便宜[145];在这种弱监督下学习深度检测模型在这些场景中很重要。
大规模无监督/自监督表示学习在实现下游学习任务方面取得了巨大成功[35,122]。这对于学习任务尤其重要,因为在学习任务中很难获得足够的标记数据,例如异常检测(见第2.1节)。
目标是首先在无监督/自监督模式下从大规模未标记数据中学习可转移的预训练表示模型,然后在半监督模式下微调检测模型。第5.1.3节中基于自我监督分类的方法可以为正常学习提供一些初始监督来源。然而,必须采取预防措施,以确保(i)未标记的数据没有异常污染和/或(ii)表示学习方法对于可能的异常污染是稳健的。这是因为第5节中的大多数方法隐含地假设训练数据是干净的,并且不包含任何噪声/异常实例。这种鲁棒性在预训练的建模和微调阶段都很重要。此外,不同领域中的异常和数据集差异很大,因此大规模的正态性学习可能需要是特定于领域/应用程序的。
大多数深度异常检测方法都专注于点异常,表现出比传统方法更好的性能。然而,对条件/群体异常的深层模型的探索却少得多。深度学习在捕捉复杂的时间/空间依赖性和学习一组无序数据点的表示方面具有卓越的能力;探索深度学习是否也能在检测此类复杂异常方面获得类似的成功是很重要的。可能需要新的神经网络层或目标函数。
与传统方法类似,目前的深层异常检测主要集中在单个数据源上。多模式异常检测在很大程度上是一个尚未探索的研究领域。传统方法很难弥补这些多模态数据所带来的差距。深度学习在从不同类型的原始数据中学习特征表示以进行异常检测方面取得了巨大成功[37,65,91,112,135];它还能够连接来自不同数据源的表示来学习统一的表示[49],因此深度方法为多模式异常检测提供了重要的机会。
目前深部异常检测主要集中在检测精度方面。可解释的深度异常检测和可操作的深层异常检测对于理解模型决策和结果、减轻对人类用户的任何潜在偏见/风险以及实现决策行动至关重要。近年来,有一些研究[7,8,42,142,154],通过搜索使报告的异常最为异常的特征子集来探索异常解释问题。异常特征选择方法[12,110,111]也可以用于异常解释目的。这些方法中的异常特征搜索独立于异常检测方法,因此,可以用于解释由任何检测方法识别的异常,包括深度模型。然而,这种模型不可知的方法可能会使解释变得不那么有用,因为它们无法提供对特定检测模型背后机制的真正理解,导致可解释性和可操作性较弱(例如,量化检测到的异常和缓解措施的影响)。具有提供异常解释的内在能力的深层模型很重要,如参考文献[117]。为了实现这一点,可以使用深度异常检测模型来探索深度模型解释[41]和可操作的知识发现[23]的方法。
已经出现了一些令人兴奋的新兴研究应用和问题设置,其中可能有一些扩展深度检测方法的重要机会。首先,分布外(OOD)检测[60,79127]是一个密切相关的领域,它检测远离训练分布的数据实例。这是一种使机器学习系统能够在开放世界环境中处理新类实例的基本技术。OOD检测也是一项异常检测任务,但在OOD检测中,通常假设在训练期间可以使用细粒度的正常类标签,并且我们需要在执行准确的OOD检测的同时保持这些正常类的分类精度。
其次,好奇心学习[18,19,118]旨在学习稀疏奖励的强化学习中的奖励-奖励函数。特别是,强化学习算法在奖励非常稀少的环境中往往无法工作。好奇心学习解决了这个问题,除了来自环境的原始稀疏奖励外,还通过奖励来增强环境。这种奖金奖励通常是基于状态的新颖性或稀有性来定义的,即,如果代理发现新颖/稀有状态,则会收到大量奖金奖励。新态/稀有态是类似于异常的概念。因此,探索如何利用深度异常检测来增强这一具有挑战性的强化学习问题将是一件有趣的事情;相反,也有机会利用好奇心学习技术进行异常检测,例如参考文献[155]中的方法。第三,大多数用于异常检测的浅层和深层模型都假设数据实例的异常是独立且同分布的(IID),而实际应用中的异常可能会受到一些非IID特性的影响,例如,不同实例/特征的异常是相互依赖和/或异构的[108]。例如,多种同步疾病症状的异常在疾病的早期检测中是相互加强的。这需要非IID异常检测[108]这是专门用于学习这种非IID的异常。这项任务在复杂的场景中至关重要,例如,异常只有细微的偏差,如果不考虑这些非IID异常特征,就会在数据空间中被掩盖。最后,其他有趣的应用包括对抗性示例的检测[5119]、生物识别系统中的反欺骗[46121]以及罕见灾难性事件(例如,金融危机[24]和其他黑天鹅事件[11])的早期检测。
外(OOD)检测[60,79127]是一个密切相关的领域,它检测远离训练分布的数据实例。这是一种使机器学习系统能够在开放世界环境中处理新类实例的基本技术。OOD检测也是一项异常检测任务,但在OOD检测中,通常假设在训练期间可以使用细粒度的正常类标签,并且我们需要在执行准确的OOD检测的同时保持这些正常类的分类精度。
其次,好奇心学习[18,19,118]旨在学习稀疏奖励的强化学习中的奖励-奖励函数。特别是,强化学习算法在奖励非常稀少的环境中往往无法工作。好奇心学习解决了这个问题,除了来自环境的原始稀疏奖励外,还通过奖励来增强环境。这种奖金奖励通常是基于状态的新颖性或稀有性来定义的,即,如果代理发现新颖/稀有状态,则会收到大量奖金奖励。新态/稀有态是类似于异常的概念。因此,探索如何利用深度异常检测来增强这一具有挑战性的强化学习问题将是一件有趣的事情;相反,也有机会利用好奇心学习技术进行异常检测,例如参考文献[155]中的方法。第三,大多数用于异常检测的浅层和深层模型都假设数据实例的异常是独立且同分布的(IID),而实际应用中的异常可能会受到一些非IID特性的影响,例如,不同实例/特征的异常是相互依赖和/或异构的[108]。例如,多种同步疾病症状的异常在疾病的早期检测中是相互加强的。这需要非IID异常检测[108]这是专门用于学习这种非IID的异常。这项任务在复杂的场景中至关重要,例如,异常只有细微的偏差,如果不考虑这些非IID异常特征,就会在数据空间中被掩盖。最后,其他有趣的应用包括对抗性示例的检测[5119]、生物识别系统中的反欺骗[46121]以及罕见灾难性事件(例如,金融危机[24]和其他黑天鹅事件[11])的早期检测。