《异常检测——从经典算法到深度学习》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 优于其他现有算法;
  • 具有很好的异常阈值自动选择方法。

了解大概内容以后,再看一下论文的总体结构:

在这里插入图片描述
大致过程可以概述为:

  1. 输入多元时间序列数据;
  2. 预处理后得到训练集与测试集;
  3. 训练集送去训练,测试集送去测试(训练后再开始测试)
  4. 自动选择异常阈值
  5. 根据异常阈值,检测器对异常分数进行处理,输出异常判定结果。

接下来看一下论文的具体内容,为了快速抓住重点,加速阅读,我们跳过那些作用不大的背景描述,直接看一些重要部分吧。

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 中,来训练参数 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 使得 ELBO (Evidence Lower Bound,记作 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ) 最大化。

    关于 VAE,我们介绍了很多很多次,可以参考 VAE 模型基本原理简单介绍

其中 ELBO 的表达式为

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

蒙特卡罗积分(Monte Carlo integration)是一种变分推理算法,可以用来计算公式 1 中的均值,如公式 2 所示,其中,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是从 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 次的采样结果。:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

在变分网络 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 常假定为对角高斯 (diagonal Gaussian),但是,这个简单的假设会使网络欠拟合 ,因为 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 可能不一定遵循高斯分布。为了学习非高斯后验密度 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,文献 [18,Variational Inference with Normalizing Flows] 提出了一种利用可逆映射对 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 进行变换的方法 planar NF

论文首先从 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 采样得到 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,然后通过一个可逆映射链得到 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是可逆映射函数 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是文献 [18] 中的参数。在 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中,我们只把planar NF 的最终输出 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,作为隐藏层的随机变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测(即 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测)。

19.3 算法设计

19.3.1 算法总体结构

OmniAnomaly的基本思想如下:

  • 首先,它使用GRU来捕捉 x 空间中多变量观测之间复杂的时间依赖性。
  • 其次,我们应用一种流行的重构学习变分算法 VAE,将观测(即 x 空间中的输入观测)映射到随机变量(即 z 空间)。
  • 第三,受语音重构文献[5,Sequential neural models with stochastic layers] 的启发,为了在空间中显式建模随机变量之间的时间依赖性,我们提出了随机变量连接技术(线性高斯状态空间模型(Linear Gaussian State Space Model,SSM)[8,Linear Gaussian State Space Modeling] 连接随机变量之间,随机变量与 GRU 隐变量的串联)。
  • 第四, 为了让 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中的随机变量捕获输入数据的复杂分布,我们采用 planar NF[18],它使用一系列可逆映射来学习隐藏随机空间中的非高斯后验分布。

在这里插入图片描述

在这里插入图片描述

这个结构图片是真的真的不好看……

这个图片类比一下我们在 Donut 和 Bagel 算法中的模型,总体结构是一样的,需要注意 GRU 的添加。

接下来看看是怎么计算,对应着上面的图片进行学习。

其中使用 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻的观测数据 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,以及 GRU 中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻的隐变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,生成 GRU 中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻的隐变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,其中的对应关系如下公式 (3a) 所示。同样地,对于 VAE 中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻与隐变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的对应关系如 公式 (3b) (3c) 所示。

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

在公式 3a 中,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是决定如何将新的输入数据与前一个结合的重置门,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是决定需要保留多少以前的内存的更新门。

如图 3(b1) 所示,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的串联。《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 表示带有 ReLU 激活函数的隐藏层。《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 来源于一个线性层,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是通过带有小随机变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (以防止数值溢出)的 soft-plus 激活函数而得到的。

所有的 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是相应层的参数。 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的输出结果,是对角线高斯并从 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测采样而来。 为了学习 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的后验分布,我们使用 planar NF 来最大化 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。如图 3(b1) 所示,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (即 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测)是 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 通过 planar 映射中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 次转换链 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 而得到的。

如图3(b2)所示,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 尝试使用类似于 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的结构对 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 进行重构得到 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。 我们利用线性高斯 SSM[8] 来 “连接” 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中的 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 空间变量,并使其暂时依赖关系为 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是转换矩阵和观测矩阵,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是转换和观测噪声。 在 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻的 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测时刻的变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,通过GRU单元格来产生确定性变量 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (公式 4a)。然后 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 通过稠密层进一步处理,生成变量 KaTeX parse error: Expected group after '^' at position 10: \mathbf{x^̲'t}《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的重构变量) 的均值 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 和标准差 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (公式4b和公式4c)。

类似于 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 可以以如下方式计算:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

其中,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 分别为复位门和更新门。

重构数据《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是从 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 采样,并从 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中创建。如果《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻存在异常,则《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 可能与原始数据 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 显著不同。 因此,我们可以基于《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的重构概率来检测异常。

19.3.2 离线训练

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中的 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 通过同时调整网络参数 (《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ) 进行训练。 与VAE模型类似,我们可以通过优化ELBO直接训练我们的模型,如3.3节所述。 训练数据集中的每个输入序列数据(例如 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测T+1$。 对于第 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 个样本 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 , 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是样本长度,损失函数可以公式化如下:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

对于每一个样本,公式 5 中的第一条的重构错误被忽略:《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,而《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的后验概率可以计算为 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。第二项和第三项之和是正则的 (即 Kullback-Leibler loss,KL 损失)。第二条 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 可以通过线性高斯SSM[8] 用标准多元正态分布初始化得到。 第三项是在 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中逼近 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 空间中的真实后验分布:《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (即 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 通过 planar NF 进行转换) 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的计算已经在 3.3 节说明。

19.3.3 在线检测

现在,我们可以使用训练的 OmniAnomaly 模型来确定在一个时间步长(例如 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 时刻,记作 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测)上的观测是否异常。注意OmniAnomery的输入是长度为 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的序列数据。因此,我们将序列 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测,即 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 和在它之前的连续观测作为输入来重建 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。正如文献 [24] 所建议的,这种重构可以用条件概率来进行评估 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 。 这个重建概率作为我们模型中的异常分值。《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的异常分值用 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测表示,所以 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。高分意味着可以很好地重构输入数据 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。 如果一个观测遵循时间序列的正常模式,就可以以高置信度重构它。 另一方面,分数越小,观测结果越不可能被重构,因此异常的可能性越大。 即,如果 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 低于异常阈值,则 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 标记为异常; 否则 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是正常的。 接下来,我们描述了如何离线自动确定异常阈值。

19.3.4 选择异常阈值

如图2所示, 在离线训练过程中,我们利用一个多变量的时间序列,为每一个观测量计算一个异常分数。 然后所有异常得分形成一个单变量时间序列 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。 接下来,我们遵循极值理论(Extreme Value Theory,EVT) 的原理离线设置异常阈值 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 [22]。

EVT 是一种以寻找极值规律为目标的统计理论,而极值通常位于概率分布的尾部。 EVT 的优点是在求极值时不对数据分布作任何假设。 过峰值阈值 (Peak-Over-Threshold,POT) [22] 是 EVT 中的第二个定理。 POT 的基本思想是用带参数的广义帕累托分布 (Pareto distribution, GPD) 拟合概率分布的尾部。 我们采用 POT 来学习异常分数的阈值。 与传统的 POT 应用程序不同,这些应用程序侧重于“分布高端的值”,我们分析中的异常位于分布的低端。 因此,我们对 GPD 函数进行如下调整:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 为异常得分的初始阈值,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 为 GPD 的形状和尺度参数,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中的任意值。低于阈值 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的部分被表示为 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,并且根据经验将其设置为低分位数。与[22]类似,我们用极大似然估计(MLE)估计参数 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的值。 最终阈值 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 如下计算:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是观察到的期望概率 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 是观测数据的数量,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的数量,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。对于POT方法,只有两个参数(低分位数和 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测)需要调优。 这两个参数是全模型的,可以根据经验设置:低分位数(例如,小于7%)和 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测(例如,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ) [22],见附录 B。

19.3.5 异常解释

正如第1节所述,我们的异常解释解决方案的目标是用按重建概率排序的前几个单变量时间序列来注释检测到的实体异常。 因此,我们必须求出 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ( 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的第 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 个维度) 的重构概率。然而, 在 OmniAnomaly 中,计算了 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的重构概率。 幸运的是,正如 4,2 章节所述,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,因此,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。因此,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的条件概率可分解为:

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测

《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,其中 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,而 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的异常值。注意,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 受益于多元时间序列 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 中的丰富信息,因此它的解释能力高于仅利用 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 获得的异常得分(如单变量时间序列中的异常得分)。

对于一个检测到的异常 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 ,我们通过估计 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 各维的贡献(即重构概率)来解释它。我们将 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 (《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测) 按升序排序,形成列表 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测。对 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 排名越高,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 越小,《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 的贡献越大。 将有序列表作为异常解释提供给操作员,希望前几个维度能为操作员理解和排除检测到的实体异常提供足够的线索。

注意因式分解公式8 与 《异常检测——从经典算法到深度学习》19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测 一样。因此,我们提出的异常解释方法也适用于其他多元时间序列异常检测算法,如[16]。

19.4 实验部分

19.4.1 数据集

实验基于三大数据集下进行:

  • SMD (Server Machine Dataset)
  • SMAP (Soil Moisture Active Passive satellite)
  • MSL (Mars Science Laboratory rover).

数据集来源可以参考论文源码 https://github.com/NetManAIOps/OmniAnomaly,概括一下大致如下:

19.4.2 实验环境搭建

为了方便,我们使用 docker 搭建实验环境,希望对 docker 不了解的小伙伴稍微花费点点时间了解一下即可,整个过程相对以前而言简单很多,具体内容请参考 https://blog.csdn.net/smileyan9/article/details/127592804

OmniAnomaly运行过程视频录制

19.4.3 对比实验

根据论文实验部分,可以看到论文的实验结果大致如下:

其中的 Donut 与 LSTM-VAE 在本系列博客中已经介绍过,可以自行复现。
在这里插入图片描述

19.5 总结

这里没有提供对论文的全文翻译内容,但最核心部分的内容都已经翻译如文中所示。

算法的核心部件依然是 VAE,但是添加了一些自己的内容,并且使得 VAE 这种基于单指标的算法应用在多特征中。

论文的图片绘制或多或少有些不够漂亮,尤其是图3,实在忍不住想吐槽两句(见谅见谅)。

论文的源码的介绍,以及数据集的介绍都非常详细,总体来说还是很不错的,值得相关领域小伙伴们引用并作为对比实验的。

最后补充一下如非必要,均不用太在意最终输出结果是什么,结果怎么样。最主要的应该是了解论文思路,不停地查资料,来扩充自己对这方面的了解。一般情况下,只有在试图改进这个算法以及需要拿这个算法做对比实验的时候,才需要耐心跑完,分析结果。

感谢各位小伙伴的一路支持 ~ 非常感谢 ~

Smileyan
2022.10.30 23:29

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年3月4日 下午1:28
下一篇 2023年3月4日 下午1:29

相关推荐