Deep anomaly detection

1. 厘清 deep learning-based anomaly detection(DAD) 的类型

1.1 数据的输入类型

你需要根据 input 的特性来选择对于的网络架构。总的来说,input data 可以分为时序数据(voice,text,video,protein sequences)和非时序数据(images,)。此外还可以根据数据维度分为高/低维类别。DAD 模型的深度往往取决于数据的维度。

1.2 label 是否可用

根据 label 是否可用可以将 DAD models 分为 3 类:1)supervised DAD 2)semi-supervised DAD 3)unsupervised DAD

1.2.1 supervised DAD

需要 label,performance 不错。但是实际生产活动中基本没 label,即使有也是正负样本极度不平衡。所以其实还是 semi-supervised 用的多。

1.2.2 semi-supervised DAD

利用已有的 normally positive class 来分来 outliers。常用的做法是通过半监督的方式训练一个自编码器(note that there shouldn’t have anomalies)。这样的话,在大量训练数据的加持下,normal class 的 reconstruction error 应该远小于 anomalous events。

1.2.3 unsupervised DAD

U-DAD 只能依靠数据的内在属性来 detect outliers 了。很多 U-DAD models 已经优于传统方法(PCA,SVM,Isolation Forest),自编码器是这些无监督 models 的核心部件。

1.3 基于训练损失函数(training objective)

1.3.1 Deep hybrid models(DHM)

DHM 通常使用深度网络来做 feature extractor,然后将学到的 hidden representations 输入传统的 anomaly detection 算法(one-class SVM 等)。

也有些研究将特征提取和异常检测进行 joint training,这样会最大化 performance。然而这种方法有一个很明显的 bug — 没有适合的优化函数可以用。为了解决这一问题,一些研究员提出了 Deep one-class classification 以及 One class neural network。

1.3.2 One-class neural network(OC-NN)

类似细分类。

1.4 anomaly 类型

异常广义上可以分为点异常(point anomalies)、contextual(or conditional)anomalies、collective(or group)anomalies

1.4.1 point anomalies

大部分的研究专注于此类型。Point anomalies often represent an irregularity or

deviation that happens randomly and may have no particular interpretation. 以下图为例,Monaco 的高消费显然就是一个 point anomaly。

1.4.2 contextual anomalies

也叫 conditional anomalies。通过分析上下文及行为特征进行识别(上下文,通常就是指时空上的连续区间的信息; 行为特征,一般指用来描述/量化 normal 行为模式)。

1.4.3 collective anomalies

也叫 group anomalies,即指一组异常的数据点集合,其中的每个点单独看都挺正常,但是放在一起看就很奇怪了。以上图 10 为例,单独看每一条 MISC 的消费记录,正常!!但是一连串的同样消费就很不正常了。

1.5 DAD 的输出格式

一般 DAD 的输出有两种格式:1)anomaly score 2)binary labels

1.5.1 anomaly score

每个实例都会根据这个 score 来排序决定其异常的程度。通常会有一个 decision score 来判别异常与否。通常认为比 binary label 揭露的信息更多

1.5.2 labels

部分技术采用为每个输入打上一个类别 label 来表明其异常与否。无监督方法先使用自编码器来评估数据的 residual vector (i,e reconstruction error) 为输入打分(anomaly score),然后根据分数排名/阈值来给数据打上异常与否的 label。

 2. DAD 的应用

2.1 anomaly detection in time series

时序数据多出 collective outliers。当前有一些研究方法在时序数据上取得了不错的成效(见图 16)。

但是挑战任然存在:

  1. 没有统一的模式来定义何处会出现 anomaly
  2. 输入数据也因为是时序的,引入更多的噪音(相对于非时序)
  3. 时序长度大大增加了计算复杂度
  4. 时序数据通常不稳定,非线性,波动剧烈。因此 DAD models 应该要做到 real time

2.2 video surveillance

VS 也以 Closed-circuit television(cctv)著称。主要应用于安防领域。

3. DAD models

所有的 model 都从以下四点展开讨论:

  1. assumption
  2. type of model architecture
  3. computational complexity
  4. advantages and disadvantages

3.1 监督 DAD

目前的监督方法性能优于无监督方法(其实不仅在 anomaly detection 任务上如此)。这主要归功于大量的标记数据。先在大量的标注训练集上学出决策边界,然后将测试实例按预测 assumption 打上异常与否的 label。

设想:监督学习依赖于大量的标注数据,而无监督技术专注于解释并理解数据的特性。基于多分类的异常检测方法假设训练数据包含多个 normal class 实例的标注。多分类异常检测算法来学习一个可以在多个类中分辨出 anomaly 的分类器。一般的监督 anomaly detection 网络包括俩子网络,一个特征提取器,一个分类器(这不是分类网络的标配么。。)。深度监督网络需要大量的标注数据,正是这个硬性需求导致有监督异常检测算法不如半监督/无监督算法受欢迎。

computational complexity:取决于输入数据的维度及隐藏层的数量和通道数。优化策略也有较大影响。

advantages and disadvantages

advantages:

  • 精度高
  • 测试速度快

disadvantages:

  • 数据标注要求高
  • 如果特征空间高度复杂且非线性,分类易失败

3.2 semi-supervised DAD

半监督 DAD 算法认为每个训练实例只需要一个 class label。

assumption:半监督算法主要基于下列设想之一:

  • 相邻性及连续性:在输入空间和特征空间上相邻的数据应该 share a same label。
  • 深度隐藏层学到的 robust 特征可以作为判别属性来进一步判断数据异常与否

computational complexity:半监督学习类似于监督学习算法。都主要看输入数据维度以及隐藏层数量。

advantages and disadvantages:优势如下:

  • GANs 在半监督任务上已经表现了令人欣喜的开端
  • 使用部分标注数据,相较于彻底的无监督学习有不错的性能提升

劣势:

  • 大部分深度网络的毛病(复杂度高,难debug…)它都有
  • 因为 anomaly 毕竟占极少数,所以更容易导致过拟合

3.3 混合 DAD

在混合模型中,仍然是由深度模型来提取数据表征,然后将该表征输入到传统的 one-class Radial Basis Function 或者 SVM 中。混合模型采用 two-stage learning 且取得了 SOTA 的效果。

Assumption

  • 深度网络提取的鲁棒的特征有助于分离那些掩盖 anomaly 的特征。
  • 在复杂的高维数据空间上构建一个鲁棒的 anomaly detection 系统需要一个特征提取器和一个异常提取器。多个流行的 anomaly detectors 在下图可见

computational complexity:显然,混合模型的复杂度涉及到两个方面:深度模型以及选择的传统算法。此外搜索超参数也会引入额外的复杂度。而线性 SVM 的预测复杂度跟输入维度 d 正相关 O(d)。对于多数核函数来说(包括多项式核函数以及 RBF)时间复杂度是O(nd),n 就是支持向量的个数。但通常也会用 O(d2) 近似代替。

advantages and disadvantages:

优势如下:

  • 特征提取器可以大幅降低输入特征维度,这对高维输入空间绝对利好
  • 混合模型的可延展性最好,且计算高效(主要体现在降维后的数据在传统算法上的提速)

劣势如下:

  • 混合模型是次优的(因为它无法影响特征提取器的表征学习),而且使用的是通用的损失函数(只为提取特征),而不是针对 anomaly detection 自定义的优化函数
  • 混合模型越深,表现越好。如果每一层都要训练,就会引入大量的时间消耗

3.4 one-class neural network

OC-NN 的创新点在于:1)针对 anomaly detection 设计了自定义优化函数。

assumption

  • OC-NN 模型可以在隐藏层中提取数据分布中的多数数据(variation)的共同特征。
  • 进行联合表征学习然后为每个测试实例输入一个 outlier score
  • anomalous 样本不含有 variation 的共同特征,所以特征提取器无法捕获到 outliers 的表征。

computational complexity:混合模型与 OC-NN 的复杂度区别只在 deep model 的选择上。OC-NN 不需要保存数据,因此空间复杂度低,但是训练时间还是与输入维度呈正比。

advantages and disadvantages

优势:

  • OC-NN 与一个深度模型联合训练,在输出空间上学习一个数据闭环的超平面/球面
  • OC-NN 提出了一个可交替最小化 OC-NN 模型可学习参数的算法。研究者发现 OC-NN 的优化的子问题等同于一个明确定义的分位数(quantile)选择问题

劣势:

  • 如果输入空间变动,model 更新需要花费很长的时间

3.5 无监督 DAD

无监督 DAD 是机器学习研究及商业应用领域的重要一环。一些领先的无监督算法被提出并取得了 STOA 的表现,详见图 20。自编码器是无监督 anomaly detection 深度网络的基础架构。

assumptions

  • 不论原始数据空间还是特征空间,都能分割开 normal regions 和 anomalous regions
  • 大多数数据实例都是 normal
  • 无监督学习基于数据的本质属性(distance/densities..)给每个实例一个 outlier score。深度网络其实就是要挖掘出训练数据中的这种属性。

computational complexity:自编码器是大多数配置二次损失函数的网络架构标配,跟其它神经网络一样,这些优化问题本质是非凸的。计算复杂度取决于网络涉及的运算,网络参数个数以及隐藏层参数。(训练一个自编码器的时间成本远高于基于矩阵分解的 PCA 降维。

advantages and disadvantages:

优势:

  • 学习数据的内在属性来分离 normal data 与 anomaly data。就是学到 normal data (数据中 anomaly 实在少到没有共性)的共性,进而实现 anomaly detection。
  • 定制的损失函数(因为没有 label)有利于找到 anomalies。

劣势:

  • 复杂且高维数据的共性其实很难学习
  • 使用自编码器时要选择合适的降维尺度。(维度下降可以看做一个需要手动调整的超参数)
  • 无监督技术对噪音,脏数据非常敏感,而且表现不出有监督学习算法

截图中引用论文请参考 《Deep Learning for Anomaly Detection: A Survey》

Share this to:

发表评论

电子邮件地址不会被公开。 必填项已用*标注