当前位置:   article > 正文

异常检测(Anomaly Detection)_异常目标检测

异常目标检测

1. 异常检测的定义

  异常检测,是一种用于识别不符合预期行为的异常模式的技术,称为异常值。通常为无监督学习问题,其中先验未知异常样本,并且假定大多数训练数据集由 “ 正常 ” 数据组成。

  通常,异常检测也称为 Novelty Detection 或 Outlier Detection,Forgery Detection 和 Out-of-distribution Detection,每个术语的含义略有不同。在这里插入图片描述
  当训练数据集中不存在异常的数据,此问题被特称为 One Class Classification 或 One Class Segmentation。


2. 异常检测的分类

2.1 按照应用目标数据分类

  异常检测的应用目标数据基本可分为三种类型:Time-series data, Image dataVideo data。对于目标数据而言,作为异常检测模型的输入数据可以大致分为连续的(如语音、文本、音乐、时间序列等)和非连续的(如图像等)。

  在时间序列数据中,其目的为检测异常部分。在图像、视频数据中,旨在对异常图像或区域进行分类分割。

2.2 按照异常类型分类

  1. 点异常(Piont)
  2. 组异常(Collective)
  3. 上下文异常(Contextual)

2.3 按照数据标签可用性分类

  1. 无监督(Unsupervised)
      无监督异常检测:基于数据实例的固有属性(通过隐藏层捕捉内在属性,识别数据共性),无监督技术对未标记数据样本进行自动标记。自动编码器是无监督模型的核心,这些模型假设正常实例的发生率高于异常实例。现有的无监督学习算法包括RBM、DBM、DBN、RNN、LSTM等比传统的PCA、SVM和IF等方法具有更好的性能。但无监督技术对噪声十分敏感,往往不如有监督和半监督准确。
  2. 半监督(Semi-supervised)
      半监督异常检测:由于正常实例的标签更容易获得,半监督技术利用单个类的现有标签分离异常值,即半监督或One Class问题假定所有训练实例都只有一个类标签。常见的方法是在正常数据样本上,利用部分有标签的“正常”数据和无标签数据(学习无标签数据中的信息辅助“监督学习”),半监督训练出一个对正常数据重构误差小的AE。即使在标记数据很少的情况下,以半监督训练GAN的方法,使用少量正常训练GAN得到一个精确度尽可能高的排除异常的D。与无监督技术相比显著提高性能,其缺点是,隐藏层提取出的分层特征可能出现过拟合问题。
  3. 有监督(Supervised)
      有监督异常检测:使用正常和异常数据实例的标签,学习分离边界训练一个监督二分类或多分类器。例如普通的神经网络,输入带标签的数据,利用反向传播算法训练纠正神经网络权值,用作多分类。虽然在深度神经网络的加持下有监督异常检测的性能有所提高,但由于缺乏标记训练样本,这些方法并不想半监督或无监督方法那样受到广泛的应用。此外,有监督异常检测分类器由于 类的不平衡性 (正类实例的总数远远大于负类数据总数),其性能是次优的。
      监督学习方法依赖于分离数据类,而无监督学习方法则专注于解释和理解数据的特征。其计算复杂度取决于输入数据维数和反向传播算法的隐藏层数。当特征空间高度复杂和非线性时,普通神经网络不涉及降维无法对高维数据有很好的理解,此时有监督技术无法将正常数据与异常数据分开。

2.4 按照算法类型分类

  1. 基于统计的异常检测
      其主要思想是假定数据集服从某种分布或概率模型,根据该分布对数据进行建模。随后,对该模型的参数进行学习,通常采用 极大似然估计 技术来获取参数。然后,将模型作为数据的生成模型,可以从该模型计算生成特定数据点的概率,具有非常低概率的数据点作为异常点记录。
  2. 基于距离的异常检测
      基于距离的离群点检测方法的工作原理是:“离群点的 k 最近邻距离远大于正常数据点”。该定义对于参数 k 值的处理具有不同的方法:将 k 指定为一个固定的正整数,或指定 k 值为数据集大小的
    一部分。
  3. 基于密度的异常检测
      基于密度的离群点检测方法的工作原理是低密度区域的数据点被视为离群点。基于密度的离群检测算法都是建立在距离计算的基础上的,所以从距离计算的角度来说,也可以把基于密度的方法归类于基于距离的方法。
  4. 基于聚类的异常检测
      在基于聚类的方法中,首先使用聚类算法对数据进行聚类,然后,任何离簇中心很远的小的簇或点都被认为是异常。
  5. 基于深度的异常检测
      在基于深度的方法中,凸壳分析是为了找到离群点。其思想是,数据外部边界上的点位于
    凸包的角上,这样的点更有可能是离群值。基于深度的算法以迭代的方式进行,在第 k 次迭代中,将数据集的凸包角上的所有点从数据集中移除,并将该层数据点的深度定义为 k,重复上述步骤直到数据集为空。所有深度不超过 p 的点都被报告为离群点,其中 p 是用户指定的参数。

3. 深度异常检测(DAD)

  传统的异常检测广泛使用机器学习作为研究工具,而机器学习是现有很多种方法和模型的总称。近年来,随着计算机性能的提升和大数据技术的发展,神经网络成为了一种比较热的机器学习模型,在此基础上,深度神经网络作为层数比较多的神经网络,成为了深度学习的基础框架。
  深度学习表示学习的一个子领域,它利用具有多个处理层的模型架构来学习具有多个抽象层次的数据表示。多级抽象允许以非常紧凑和分布式的形式表示丰富的特征空间。深度(多层)神经网络特别适合于学习本质上是分层的数据的表示,例如图像或文本。
  我们将深度学习的AD方法分为“混合”或“完全深度”两类。在混合方法中,数据表示在前一步中被单独学习,然后这些数据表示被馈送到经典的(浅)AD方法,如OC-SVM。相反,全深度方法直接使用数据表征来检测异常。
  几乎所有现有的深度AD方法都依赖于重建误差——要么是混合方法,仅用于学习表征,要么直接用于表征学习和检测。1. 深度自动编码器是用于深度AD的主要方法。自动编码器是一种神经网络,它试图学习身份函数,同时具有降维的中间表示(或一些稀疏正则化)作为一个瓶颈来诱导网络提取一些数据集的显著特征。通常,这些网络被训练成最小化重建误差。这些网络应该能够从正常样本中提取出共同的变化因子并进行精确的重构,而异常样本中不包含这些共同的变化因子,因此无法进行精确的重构。这允许在混合方法中使用自动编码器,通过将学习到的嵌入插入到经典AD方法中,2. 也可以在完全深度方法中,通过直接使用重建误差作为异常分数。用于AD的自动编码器的一些变体包括去噪自动编码器、稀疏自动编码器、变分自动编码器和深度卷积自动编码器,最后一个变体主要用于具有图像或视频数据的AD应用。
  自动编码器有降维的目标,不直接针对AD。将自动编码器应用于AD的主要困难在于选择合适的压缩程度,即降维。如果没有压缩,自动编码器只会学习标识函数。在另一个极端的情况下,信息缩减为单一值,平均值将成为最优解。也就是说,数据表示的“紧凑性”是一个模型超参数,由于无监督性质以及数据的内在维度通常难以估计,因此很难选择正确的平衡。
除了自动编码器,2017年提出的基于生成性对抗网络(GANs)的新型深度AD方法,称为AnoGAN。在该方法中,首先训练GAN根据训练数据生成样本。给定一个测试样本,AnoGAN试图在生成器的潜在空间中找到生成最接近所考虑的测试输入的样本的点。直观地说,如果GAN捕捉到了训练数据的分布,那么正样本应该在潜在空间中有很好的表示,而异常样本则不会。为了找到潜在空间中的点,在潜在空间中执行梯度下降,保持生成器的学习权重不变。AnoGAN最后还通过重建误差定义了一个异常分数。与自动编码器类似,这种生成方法的一个主要困难是如何正则化生成器以获得“紧凑性”(对AD针对性降维)。

3.1 按照训练目标分类

  1. 深度混合模型(Deep Hybrid Model)
      特征提取(CNN、LSTM、AE或转移学习) + 传统分类器(OC-SVM、SVDD),但是因为使用的是通用损失函数无法影响特征抽取器隐含层的表征学习,不是为异常检测定制(即提取的特征在区分正常异常上不具有定制性,无法帮助分类器更好的区分)。
  2. 单类神经网络 (One-Class Neural Network)
      OCNN模型训练一个深度神经网络(隐含层的数据表示是根据异常检测定制目标函数进行的)的同时,优化空间中数据封闭超球面或超平面,用以分离正常数据和离群数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/747315
推荐阅读
相关标签
  

闽ICP备14008679号