《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测
Posted smile-yan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测相关的知识,希望对你有一定的参考价值。
《异常检测——从经典算法到深度学习》
- 0 概论
- 1 基于隔离森林的异常检测算法
- 2 基于LOF的异常检测算法
- 3 基于One-Class SVM的异常检测算法
- 4 基于高斯概率密度异常检测算法
- 5 Opprentice——异常检测经典算法最终篇
- 6 基于重构概率的 VAE 异常检测
- 7 基于条件VAE异常检测
- 8 Donut: 基于 VAE 的 Web 应用周期性 KPI 无监督异常检测
- 9 异常检测资料汇总(持续更新&抛砖引玉)
- 10 Bagel: 基于条件 VAE 的鲁棒无监督KPI异常检测
- 11 ADS: 针对大量出现的KPI流快速部署异常检测模型
- 12 Buzz: 对复杂 KPI 基于VAE对抗训练的非监督异常检测
- 13 MAD: 基于GANs的时间序列数据多元异常检测
- 14 对于流数据基于 RRCF 的异常检测
- 15 通过无监督和主动学习进行实用的白盒异常检测
- 16 基于VAE和LOF的无监督KPI异常检测算法
- 17 基于 VAE-LSTM 混合模型的时间异常检测
- 18 USAD:多元时间序列的无监督异常检测
- 19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测
相关:
19. 基于随机循环网络的多元时间序列鲁棒异常检测
论文下载:netman
源码地址:github
数据集:https://s3-us-west-2.amazonaws.com/telemanom/data.zip
数据集对应的标签:https://raw.githubusercontent.com/khundman/telemanom/master/labeled_anomalies.csv
19.1 论文概述
OmniAnomaly是一种将门控递归单元(GRU)和变分自动编码器(VAE)相结合的随机递归神经网络模型,其核心思想是学习多元时间序列的正态模式,并利用重构概率进行异常判断。
可以概括为以下几个关键字:
- 多元时间序列数据;适用的数据类型。
- RNN,循环神经网络。
- VAE,变分自编码。
- VAE 使用重构概率进行异常检测。
- 算法具有良好的鲁棒性。
接下来我们关注一下论文的 contribution。
- 提出了一种新的随机循环神经网络 OmniAnomery,用于多变量时间序列的异常检测。 OmniAnomery 是第一个多元时间序列异常检测算法,它能够处理随机变量之间显式的时间相关性,以学习工业设备监控所需的输入数据的鲁棒性复现。
- 我们提出了第一个异常解释方法,用于基于随机的多元时间序列异常检测算法,该算法不仅适用于OmniAnomery,还适用于其他算法,如[16]。 全异常解释精度可达0.89。
- 实验表明 OmniAnomaly 的异常阈值自动选择效果比 GRU, planar NF, stochastic variable connection 和 adjusted Peaks-Over-Threshold 方法更好。
- 通过大量的实验,我们发现OmniAntory在三个真实数据集中的 F1-score 为0.86,效果优良且鲁棒性更好。
- 为了更好地重现本文的结果,我们在GitHub1上公开发布了我们的代码和服务器实验数据集。
这部分 contribution 读起来多少有些不适,重新概括大概为:
- 是一个基于随机循环神经网络、应用于多元时间序列异常检测的算法;
- 对于三个真实数据进行实验,F1-score 优于其他现有算法;
- 具有很好的异常阈值自动选择方法。
了解大概内容以后,再看一下论文的总体结构:
大致过程可以概述为:
- 输入多元时间序列数据;
- 预处理后得到训练集与测试集;
- 训练集送去训练,测试集送去测试(训练后再开始测试)
- 自动选择异常阈值
- 根据异常阈值,检测器对异常分数进行处理,输出异常判定结果。
接下来看一下论文的具体内容,为了快速抓住重点,加速阅读,我们跳过那些作用不大的背景描述,直接看一些重要部分吧。
19.2 相关技术背景介绍(GRU / VAE / Planar NF)
对应原文中的 3.3 节
-
GRU (Gated Recurrent Unit) :门控循环神经⽹络(Gated Recurrent Neural Network)是一种 RNN,它通过可以学习的⻔来控制信息的流动。而 门控循环单元(Gated Recurrent Unit,GRU)是⼀种常⽤的门控循环神经⽹络。论文中应用GRU来捕捉时间序列中复杂的时间相关性。
-
VAE (Variational Auto-Encoder) :一种深度贝叶斯模型,它通过使用低维度的隐藏层来重构输入数据。从输入数据到隐藏层的过程称为 变分网络(Inferance Network) ,从隐藏层到重构数据的过程称为 生成网络(Generative Network)。
-
SGVB (Stochastic Gradient Variational Bayes) : 随机梯度变分贝叶斯,是一种变分推理算法,常常用在 VAE 中,来训练参数 ϕ \\phi ϕ 和 θ \\theta θ 使得 ELBO (Evidence Lower Bound,记作 L ( x t ) \\mathcalL(x_t) L(xt) ) 最大化。
关于 VAE,我们介绍了很多很多次,可以参考 VAE 模型基本原理简单介绍。
其中 ELBO 的表达式为
L ( x t ) = E q ϕ ( z t ∣ x t ) [ log ( p θ ( x t ∣ z t ) ) ] − D K L [ q ϕ ( z t ∣ x t ) ∣ ∣ p θ ( z t ) ] = E q ϕ ( z t ∣ x t ) [ log ( p θ ( x t ∣ z t ) ) + log ( p θ ( z t ) ) − log ( q ϕ ( z t ∣ x t ) ) ] (1) \\beginaligned \\mathcalL\\left(\\mathbfx_\\mathbft\\right) &=\\mathbbE_q_\\phi\\left(\\mathbfz_\\mathbft | \\mathbfx_\\mathbft\\right)\\left[\\log \\left(p_\\theta\\left(\\mathbfx_\\mathbft | \\mathbfz_\\mathbft\\right)\\right)\\right]-D_K L\\left[q_\\phi\\left(\\mathbfz_\\mathbft | \\mathbfx_\\mathbft\\right)|| p_\\theta\\left(\\mathbfz_\\mathbft\\right)\\right] \\\\ &=\\mathbbE_q_\\phi\\left(\\mathbfz_\\mathbft | \\mathbfx_\\mathbft\\right)\\left[\\log \\left(p_\\theta\\left(\\mathbfx_\\mathbft | \\mathbfz_\\mathbft\\right)\\right)+\\log \\left(p_\\theta\\left(\\mathbfz_\\mathbft\\right)\\right)-\\log \\left(q_\\phi\\left(\\mathbfz_\\mathbft | \\mathbfx_\\mathbft\\right)\\right)\\right] \\endaligned \\tag1 L(xt)=Eqϕ(zt∣xt)[log(pθ(xt∣zt))]−DKL[qϕ(zt∣xt)∣∣pθ(zt)]=Eqϕ(zt∣xt)[log(pθ(xt∣zt))+log(pθ(zt))−log(qϕ(zt∣xt))](1)
蒙特卡罗积分(Monte Carlo integration)是一种变分推理算法,可以用来计算公式 1 中的均值,如公式 2 所示,其中, z t ( l ) z_\\mathbft^(l) zt(l) 是从 q ϕ ( z t ∣ x t ) q_\\phi\\left(\\mathbfz_\\mathbft | \\mathbfx_\\mathbft\\right) qϕ(zt∣xt) 第 l l l 次的采样结果。:
L ( x t ) ≈ 1 L ∑ l = 1 L [ log ( p θ ( x t ∣ z t ( l ) ) ) + log ( p θ ( z t ( l ) ) ) − log ( q ϕ ( z t ( l ) ∣ x t ) ) ] (2) \\mathcalL\\left(\\mathbfx_\\mathbft\\right) \\approx \\frac1L \\sum_l=1^L\\left[\\log \\left(p_\\theta\\left(\\mathbfx_\\mathbft | \\mathbfz_\\mathbft^(l)\\right)\\right)+\\log \\left(p_\\theta\\left(\\mathbfz_\\mathbft^(l)\\right)\\right)-\\log \\left(q_\\phi\\left(\\mathbfz_\\mathbft^(l) | \\mathbfx_\\mathbft\\right)\\right)\\right] \\tag2 L(xt)≈L1l=1∑L[log(pθ(xt∣zt(l)))+log(pθ(zt(l)))−log(qϕ(zt(l)∣xt))](2)
在变分网络 q n e t qnet qnet 中, q ϕ ( z t ∣ x t ) q_\\phi\\left(\\mathbfz_\\mathbft |\\mathbfx_\\mathbft\\right) qϕ(z《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测
异常检测——从经典算法到深度学习》14 对于流数据基于 RRCF 的异常检测
《异常检测——从经典算法到深度学习》16 基于VAE和LOF的无监督KPI异常检测算法
异常检测——从经典算法到深度学习》14 对于流数据基于 RRCF 的异常检测