赶上最新的AI论文

时间序列异常检测 SOTA调查

调查

三个要点
✔️ SOTA调查从机器学习和深度学习方法在检测单变量时间序列数据中的异常情况
✔️统计方法对单一和连续的异常情况占主导地位,而深度学习对涉及背景的异常情况占主导地位
✔️多变量和多模式有待进一步研究

Anomaly Detection in Univariate Time-series: A Survey on the State-of-the-Art
Written byMohammad Braei, SebastianWagner
(Submitted on 1 Apr 2020)
Comments:
 Accepted by arXiv.
Subjects: Machine Learning (cs.LG); Machine Learning (stat.ML)

code:

首先

对于时间序列数据的异常检测,1979年约翰-图克在1979年。除了统计方法和机器学习之外,现在还使用了深度学习方法,在这么多的方法中,我们觉得需要一个指导原则来选择适合各种情况的最佳方法。

在这篇调查报告中,我们比较了统计学、经典机器学习和深度学习共20种方法的性能,这些方法具有不同的异常检测定义、数据集和评价指标,尽管是在单变量的基础上。

概念定义

异常值和离群值

异常值和离群值是类似的概念,但对每一个概念都没有共识。在此,我们假设异常值和离群值具有相同的含义,如下所示。

异常值:与一般的数据分布有明显的偏差,而且异常值在整个数据中只占很小的一部分。
从学术角度看,这是唯一可以采取的立场,但在实践中,也有必要在主要分布中分离出正常/非正常值)。例如,当多个事件有因果关系,而最终结果的正常/不正常必须通过观察中间事件的变化来判断)。)

异常情况的类型

异常的类型分类如下:1)点状异常:偏离趋势的单点被认为是异常的。2) 集体异常:单个数值并不异常,但一系列的数值可以被认为是异常的。3)背景异常:根据不同情况,同一个数值可以被视为正常或不正常。

随机过程和时间序列

一个随机过程用Z(w, t)表示:w是样本空间,t是一个时间点,而时间序列是一系列随时间连续测量的观察点。

时间序列模式

在时间序列数据中存在以下模式。趋势是一种随着时间推移而增加或减少的模式。有线性趋势和非线性趋势。 季节性是一种周期性的波动,来去匆匆。一个周期是指一个不固定的、持续时间超过一年的时期。

水平是该系列的平均水平。有趋势时,水平就会波动。 静止性对每个时间区间具有相同的属性(如平均数、方差、自相关)。 白噪声是一个随机的过程。它与时间没有关联。

异常检测

时间序列数据的异常检测与空间数据的正常/异常检测不同,一个数据点被认为对下一个数据点有影响,因此序列的突然变化被认为是异常的。Aggarwal将异常检测分为两类:基于时间序列预测的异常检测和基于时间序列的异常形状的异常检测。大多数统计方法使用前者,而一些机器学习使用时间序列聚类方法。

有监督的、半监督的、无监督的 异常情况检测

在监督学习中,正常/非正常标签被分配给时间戳。在半监督学习中,只使用正常数据。在无监督学习中,没有使用标签。一个广泛使用的方法是使用分布的3σ作为异常性的标准。

部分时间序列数据异常检测方法

用统计方法检测异常情况

自回归模型(AR)、移动平均模型(MA)、自回归移动平均模型(ARMA)和ARIMA模型通常用于时间序列分析。(评论)

简单指数平滑法(SES)是在1956年提出的,所以它是一个古老的方法,但它没有被提及太多,所以我将解释一下它。在SES中,指数权重被用于非线性近似,而之前的方法则使用线性近似。

$$X_{t+1} = `X_t + `X_{t-1} + `X_{t-2} ^2 `X_{t-2} + ... + X_{t-N}X_{t-N}(1-α)^N$$

$$where \alpha \in [0, 1]$$

双倍和三倍指数平滑 (DES,TES)是SES的扩展,用于模拟非平稳性:DES增加了另一个参数β来平滑趋势,TES增加了另一个参数γ来控制季节性。以控制季节性。

使用预测置信区间(PCI)的时间序列离群点检测是2014年发表的一种方法。它对以前的数据应用了非线性加权。$$ X_t = frac{sum_{j=1}^k \omega _ {t - j} X_{t - j}}{sum_{j=1}^k X_{t - j}}$$。

$$PCI=X_i\pm t_{\α , 2k-1} \times s \sqrt{1 + frac{1}{2k}}$$。

其中t是学生的t分布系数,s是标准差,k是窗口大小。

古典机器学习中的异常检测

K-Means聚类 - 后续时间序列聚类(STSC)将时间序列数据转换为一组向量,同时用γ滑动窗口长度w,然后将k-Means应用到集群化。

基于密度的有噪声的空间聚类应用(DBSCAN)在聚类中考虑了数据密度;2011年,Celik等人将其应用于时间序列。

局部离群因子(LOF)是一种专注于k-nearesr邻居和局部离群的聚类;在2015年,Oehmcke等人将其应用于时间序列。

Isolation Forest(iForest)是由Liu等人在2008年提出的,用于在Isolation Trees的组装中分离正常和异常。在下图中,异常情况在两个分离中被检测到。

单类支持向量机 (OC-SVM)是1999年在SVM基础上提出的一种半监督学习。只有正常值被用于训练。时间序列数据被投射到相位空间,或被窗口切割,矢量化,然后投射到二维空间。

极限梯度提升(XGBoost,XGB)是Kaggle和KDDCup中经常使用的一种技术。它的主要特点是可扩展性。XGBoost是一种树状增强方法,它通过回归得到误差函数来逼近时间序列数据。由于误差函数包含一些不能在欧氏空间中优化的函数,我们使用泰勒扩展来避免它们。

神经网络中的异常检测

神经网络自回归模型(NNAR)以多层感知器(MLP)为基础,使用滞后的数据序列来创建一个模仿ARIMA的模型。输入的神经元数量与窗口大小相对应。

近年来,人们对将卷积神经网络(CNN)应用于时间序列数据的兴趣越来越大,Munir等人提出了DeepAnT,如下图。一个时间序列的CNN被输入了一维数据。在个别例子中,使用了两套Convolution,Max pooling,但这种结构是根据数据集的特点进行优化的。在我们的比较评估中,我们使用了我们还将结果与插入了批量规范化的结果进行了比较。

残差神经网络(Resnet)是一个带有额外残差块的CNN,Wang等人在2016年将其应用于时间序列数据。当数据数量较少时,它有过度拟合的问题。
波网的特点是能够用很少的变量建立长时间的模型;Borovykh等人在2017年将其应用于时间序列数据。
长短时记忆(LSTM)网络。
门控递归单元(GRU)是一个最初适用于长期数据序列的模型。

对于自动编码器,Sakurada和Yairi在2014年将其应用于时间序列数据。数据被矢量化,窗口大小为w,然后输入到模型。进行了半监督学习。

实验

数据集

我们使用以下五个数据集:UD是雅虎服务的网络流量数据;UD1是原始数据;UD2是随机添加的单个异常点;UD3是带有季节性和随机添加异常点的数据;UD4是带有变化点的数据处理。NYCT数据是纽约市出租车使用的数据,包括纽约市马拉松等连续五个异常情况。

估值指数

我们使用AUC作为主要评价指标。我们还比较了计算时间。

结果

对于雅虎网络访问,统计方法对于原始数据和合成数据,如连续异常数据,一般都有优势,而LSTM和GRU由于数据格式不合适,所以效果不是很好。

至于出租车使用数量的数据,由于情况在很长一段时间内发生变化,统计方法未能很好地把握其特点,机器学习除了K-means(STC)外,表现不佳,而深度学习(特别是LSTM,Wavenet)表现良好。K-means似乎并没有解决其应用于时间序列数据的理论问题,而且结果可能因条件不同而不同。

(图18的标题似乎是错误的。图上的标题是正确的)。)

另一方面,在计算时间方面,统计方法仍有优势。如果你想在实时系统或边缘设备上进行推理,你也应该参考这些数据。表7显示了367个模型的总数以及通过划分每个数据序列的计算时间

在统计方法中,ARIMA很耗时;而Wavenet的推断则很轻巧。

摘要

我们介绍了一篇论文,比较和评估了20种用于单变量时间序列异常检测的单变量方法,涉及统计方法、经典机器学习和深度学习。我相信这是在相同条件下的第一次比较,包括统计方法。

实验结果表明,统计方法比机器学习和深度学习方法产生更好的AUC,而且学习和推理的计算时间更短。不幸的是,深度学习在时间序列异常检测(点状异常和群体异常)方面未能取得良好的效果。另一方面,对于上下文异常情况,一些深度学习/机器学习方法产生了比统计方法更高的AUC。

虽然本次调查仅限于单变量数据,但实际问题往往由多变量数据组成,预计未来的调查将研究多变量异常检测或在线异常检测和异质数据混合。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!
友安 昌幸 (Masayuki Tomoyasu) avatar
JDLA G检定2020#2,E资格2021#1 数据科学家协会 DS检定 日本创新融合学会 DX检定专家 联合公司Amico咨询 CEO

如果您对文章内容有任何改进建议等,请通过 "联系我们 "表格与爱学网编辑部联系。
如果您能通过咨询表与我们联系,我们将非常感激。

联系我们