中科院在读博士带你全面了解“异常检测”领域

谁说我不能喝 提交于 2020-10-01 14:26:30
本文作者:张宇欣,中国科学院计算技术研究所博士生,研究方向为异常检测和深度学习。

本文对 异常检测 (Anomaly detection) 领域进行了一个较为全面的概述,主要介绍异常检测的问题定义、研究挑战、应用领域,以及主要研究方法。

什么是异常检测

不同于常规模式下的问题和任务,异常检测针对的是少数、不可预测或不确定、罕见的事件,它具有独特的复杂性,使得一般的机器学习和深度学习技术无效。

异常检测面临的挑战:

  • 未知性:异常与许多未知因素有关,例如,具有未知的突发行为、数据结构和分布的实例。它们直到真正发生时才为人所知,比如恐怖袭击、诈骗和网络入侵等应用;
  • 异常类的异构性: 异常是不规则的,一类异常可能表现出与另一类异常完全不同的异常特征。例如,在视频监控中,抢劫、交通事故和盗窃等异常事件在视觉上有很大差异;
  • 类别不均衡:异常通常是罕见的数据实例,而正常实例通常占数据的绝大部分。因此,收集大量标了标签的异常实例是困难的,甚至是不可能的。这导致在大多数应用程序中无法获得大规模的标记数据。

异常的种类:

  • 点异常(point anomalies)指的是少数个体实例是异常的,大多数个体实例是正常的,例如正常人与病人的健康指标;
  • 条件异常(conditional anomalies),又称上下文异常,指的是在特定情境下个体实例是异常的,在其他情境下都是正常的,例如在特定时间下的温度突然上升或下降,在特定场景中的快速信用卡交易;
  • 群体异常(group anomalies)指的是在群体集合中的个体实例出现异常的情况,而该个体实例自身可能不是异常,例如社交网络中虚假账号形成的集合作为群体异常子集,但子集中的个体节点可能与真实账号一样正常。

异常检测数据集分为三种:

  • 统计型数据static data(文本、网络流)
  • 序列型数据sequential data(sensor data )
  • 空间型数据spatial data(图像、视频)


Volodymyr et al., 2019

异常检测的应用领域 [1] :

  • 入侵检测(Intrusion detection):通过从计算机网络或计算机系统中的若干关键点收集信息并对其执行分析,从中发觉网络或系统中能不能有违反安全策略的行为和遭到袭击的迹象,并对此做出适当反应的流程。最普遍的两种入侵检测系统包括基于主机的入侵检测系统(HIDS)、网络入侵检测系统(NIDS)。
  • 故障检测(Fraud detection):主要是监控系统,在故障发生时可以识别,并且准确指出故障的种类以及出现位置。主要应用领域包括银行欺诈、移动蜂窝网络故障、保险欺诈、医疗欺诈。
  • 恶意软件检测(Malware Detection)
  • 医疗异常检测(Medical Anomaly Detection):通过X光片、核磁共振、CT等医学图像检测疾病或量化异常,也可以通过EEG、ECG等时序信号进行疾病检测或异常预警。
  • 深度学习用于社交网络中的异常检测(Deep learning for Anomaly detection in Social Networks)
  • 日志异常检测(Log Anomaly Detection)
  • 物联网大数据异常检测(Internet of things (IoT) Big Data Anomaly Detection):通过监控数据流信息检测异常设备和系统行为。
  • 工业异常检测(Industrial Anomalies Detection)
  • 时间序列中的异常检测(Anomaly Detection in TimeSeries)
  • 视频监控(Video Surveillance):检测视频中的异常场景。

基于标签的可获得性划分异常检测:

  • 有监督异常检测:在训练集中的正常实例和异常实例都有标签,这类方法的缺点在于数据标签难以获得或数据不均衡(正常样本数量远大于异常样本数量)。
  • 半监督异常检测:在训练集中只有单一类别(正常实例)的实例,没有异常实例参与训练,目前很多异常检测研究都集中在半监督方法上,有很多声称是无监督异常检测方法的研究其实也是半监督的,对其解释的是该异常检测是无监督异常检测,学习特征的方式是无监督的,但是评价方式使用了半监督的方法,因此对于无监督与半监督的界定感觉没有那么规范。
  • 无监督异常检测:在训练集中既有正常实例也可能存在异常实例,但假设数据的比例是正常实例远大于异常实例,模型训练过程中没有标签进行校正。
  • 弱监督异常检测:该类我研究的少,不是特别了解,主要是针对异常实例不完全、粗粒度标签、部分实例标签错误等情况进行算法设计。

基于传统方法的异常检测模型

  • 基于重构的方法:假设异常点是不可被压缩的或不能从低维映射空间有效地被重构的。常见的方法有PCA、Robust PCA、random projection等降维方法 [4,5] 。
  • 聚类分析方法:通过聚类可以创建数据的模型,而异常点的存在可以扭曲、破坏该模型。常见的方法有Gaussian Mixture Models、 k-means、 multivariate Gaussian Models [6,7,8]。
  • 一类分类方法:对正常数据建立区分性边界,异常点被划分到边界外。常见的方法有OC-SVM [9,10]。

基于深度学习的异常检测模型

关于异常检测方法有很多综述,这里列举一些我看过的 [2,3,12,19] 。

Deep One Class

该类方法研究的不是特别多,因为本人主要研究的是正常和异常都有多种类别的情况。简单介绍一下该类的典型方法:Deep SVDD [11] 、OC-NN [20]。


SVDD

目标函数:

\begin{array}{rl}\min _{R, \mathcal{W}} & R^{2}+\frac{1}{\nu n} \sum_{i=1}^{n} \max \left\{0,\left\|\phi\left(\boldsymbol{x}_{i} ; \mathcal{W}\right)-\boldsymbol{c}\right\|^{2}-R^{2}\right\} & +\frac{\lambda}{2} \sum_{\ell=1}^{L}\left\|\boldsymbol{W}^{\ell}\right\|_{F}^{2}\end{array}

w是神经网络的权重,异常分数由d(x)=\left\|\phi\left(\boldsymbol{x}_{i} ; \mathcal{W}\right)-\boldsymbol{c}\right\|^{2}决定,如果d(x)>R^2,则x为异常,反之正常。


OC-NN

目标函数:

f(r)=\left(\frac{1}{N v} \cdot \sum_{n=1}^{N} \max \left(0, r-y_{n}\right)\right)-r

根据输出层来判定正常、异常值,S_{n:}=\hat{y}_{n}-rS_n>0为正常实例,反之异常。

Deep Clustering

采用深度学习的聚类方法一般是用神经网络对输入数据进行编码,然后认为最后的编码序列可以代表神经网络的很多特征,然后我们对编码序列进行聚类就可以达成聚类的目的。该类方法被用于异常检测的包括:CAE-l2 cluster [15] 、DAE-DBC [18]。


CAE-l2 Cluster


CAE-l2 cluster:在autoencoder中间加入了L2标准化以及k-means。


DAE-DBC


DAE-DBC:先利用autoencoder降维,然后通过聚类方法判别异常值。

AutoEncoder

一个通用的自动编码器由编码器和解码器组成,编码器将原始数据映射到低维特征空间,而解码器试图从投影的低维空间恢复数据。这两种网络的参数通过重构损失函数来学习。为了使整体重构误差最小化,保留的信息必须尽可能与输入实例(如正常实例)相关。

将自动编码器用于异常检测是基于正常实例比异常实例能从压缩的特征空间更好地被重构这一假设。 判别方式是计算重构误差d(x)=||x-f(g(x))||,如果d(x)>\lambda,则x为异常,反之正常,\lambda是需要定义的阈值。这里说一下阈值的计算方法有很多,可以通过训练集结果的正态分布计算,或者计算训练集结果的min-max标准化等等。

典型案例:稀疏自动编码器(sparse AE)、去噪自动编码器(denoising AE)、收缩自动编码器(contractive AE)、鲁邦自动编码器(Robust Deep AE)等。这类方法太多了,在这里就不举例了,基本原理很简单。

该类方法的优点是能够通过非线性方法捕捉复杂特征,试图找到正常实例的一种通用模式,缺点是如何选择正确的压缩程度,以及如何解决“过拟合”的问题(网络拟合的太好以至于异常实例也“潜伏”在低维特征空间中)。为了解决这个缺点,有研究者使用正则化或者记忆矩阵等等方法。

Generative Models

这种方法通常旨在学习生成网络G的潜在特征空间,使潜在空间能够很好地捕捉到给定数据背后的常态。

将生成模型用于异常检测是基于在生成网络的潜在特征空间中正常实例比异常实例能够更准确地被产生这一假设。 实际实例和生成实例之间的残差被定义为异常分数。

典型案例:AnoGAN、GANomaly、Wasserstein GAN、 Cycle GAN、VAE等。

该类方法的关键问题是如何设计合适的生成器和目标函数。

Predictability Modeling

基于预测模型的异常检测方法通过使用时间窗内的历史实例预测当前实例来学习特征表示,这些特征表示能够捕捉时间或序列的依赖关系,正常实例通常能够保持良好的依赖关系,可以很好地被预测,而异常实例通常会违反这些依赖关系,使得不可预测。

将预测模型用于异常检测是基于在与时间相关的序列中,正常实例比异常实例更容易被预测这一假设。 预测序列与实际序列之间的残差被定义为异常分数。

典型案例:自回归模型(Autoregressive)、ConvLSTM预测模型、Slow Feature Analysis(SFA)等。

也有一些结合的重构和预测的异常检测模型,例如Composite LSTM [13] 、Composite ConvLSTM [14] 。

该类方法在工控数据集、视频异常监控比较常用,有利于处理时间序列数据。


Composite LSTM

基于迁移学习的异常检测方法

迁移学习中数据迁移和特征迁移能够被用于异常检测,基于数据迁移:通过Data Augmentation生成合成数据扩大训练集数量,从而更好地进行正常实例的表征学习。基于特征迁移:representation transfer,从相关问题中提取一些表征层来提高异常检测模型精度。

基于Deep Metric learning的异常检测方法

通过度量学习的方法能够让同类样本之间的距离变小,异类样本之间的距离变大,在异常检测方法中可以将数据映射到meric空间中,从而更好地分离异常值,并减少维度灾难。目前的方法有:SCDML [17]、ADDML [16]等 。

SCDML : 为了提取更多的判别特征来优化聚类模型,在第一阶段使用Siamese网络,度量学习的损失函数为对比损失( contrastive loss)。在第二阶段使用k近邻标签更新策略,将未标记数据动态转换为有标记数据,充分发挥未标记数据的贡献。


SCDML


ADDML:该方法通过最小化相似度误差将数据映射到低维空间,目的是在度量空间中让相似的实例更近。在测试阶段,利用实例到中心的距离计算异常分数。


ADDML


参考


  • [1] Chalapathy R, Chawla S. Deep learning for anomaly detection: A survey[J]. arXiv preprint arXiv:1901.03407, 2019.
  • [2] Pang G, Shen C, Cao L, et al. Deep Learning for Anomaly Detection: A Review[J]. arXiv preprint arXiv:2007.02500, 2020.
  • [3] Kiran B R, Thomas D M, Parakkal R. An overview of deep learning based methods for unsupervised and semi-supervised anomaly detection in videos[J]. Journal of Imaging, 2018, 4(2): 36.
  • [4] Günter S, Schraudolph N N, Vishwanathan S V N. Fast iterative kernel principal component analysis[J]. Journal of Machine Learning Research, 2007, 8(Aug): 1893-1918.
  • [5] Huber P J. Robust statistics[M]. John Wiley & Sons, 2004.
  • [6] Zimek A, Schubert E, Kriegel H P. A survey on unsupervised outlier detection in high‐dimensional numerical data[J]. Statistical Analysis and Data Mining: The ASA Data Science Journal, 2012, 5(5): 363-387.
  • [7] HubKim J S, Scott C D. Robust kernel density estimation[J]. The Journal of Machine Learning Research, 2012, 13(1): 2529-2565.
  • [8] Xiong L, Póczos B, Schneider J G. Group anomaly detection using flexible genre models[C]//Advances in neural information processing systems. 2011: 1071-1079.
  • [9] Chen Y, Zhou X S, Huang T S. One-class SVM for learning in image retrieval[C]//Proceedings 2001 International Conference on Image Processing (Cat. No. 01CH37205). IEEE, 2001, 1: 34-37.
  • [10] Williams G, Baxter R, He H, et al. A comparative study of RNN for outlier detection in data mining[C]//2002 IEEE International Conference on Data Mining, 2002. Proceedings. IEEE, 2002: 709-712.
  • [11] Ruff L, Vandermeulen R, Goernitz N, et al. Deep one-class classification[C]//International conference on machine learning. 2018: 4393-4402.
  • [12] https://sites.google.com/view/kdd2020deepeye/home
  • [13] Srivastava N, Mansimov E, Salakhudinov R. Unsupervised learning of video representations using lstms[C]//International conference on machine learning. 2015: 843-852.
  • [14] Medel J R, Savakis A. Anomaly detection in video using predictive convolutional long short-term memory networks[J]. arXiv preprint arXiv:1612.00390, 2016.
  • [15] Aytekin C, Ni X, Cricri F, et al. Clustering and unsupervised anomaly detection with l 2 normalized deep auto-encoder representations[C]//2018 International Joint Conference on Neural Networks (IJCNN). IEEE, 2018: 1-6.
  • [16] Yilmaz S F, Kozat S S. Unsupervised Anomaly Detection via Deep Metric Learning with End-to-End Optimization[J]. arXiv preprint arXiv:2005.05865, 2020.
  • [17] Li X, Yin H, Zhou K, et al. Semi-supervised clustering with deep metric learning and graph embedding[J]. World Wide Web, 2020, 23(2): 781-798.
  • [18] Amarbayasgalan T, Jargalsaikhan B, Ryu K H. Unsupervised novelty detection using deep autoencoders with density based clustering[J]. Applied Sciences, 2018, 8(9): 1468.
  • [19] Ruff, L., Kauffmann, J., Vandermeulen, R.A., Montavon, G., Samek, W., Kloft, M., Dietterich, T.G., & Muller, K. (2020). A Unifying Review of Deep and Shallow Anomaly Detection.
  • [20] Chalapathy R, Menon A K, Chawla S. Anomaly detection using one-class neural networks[J]. arXiv preprint arXiv:1802.06360, 2018.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!