【阅读论文】USAD:多变量时间序列上的无监督异常检测

USAD : UnSupervised Anomaly Detection on Multivariate Time Series

摘要

IT系统的自动监控是Orange目前面临的挑战。考虑到其IT运营所达到的规模和复杂性,随着时间的推移,用于推断正常和异常行为的测量所需的传感器数量急剧增加,使得传统的基于专家的监督方法变得缓慢或容易出错。在本文中,我们提出了一种快速而稳定的方法,称为基于反向训练的自动编码器的多变量时间序列的无监督异常检测(USAD)。其自动编码器架构使其能够以无监督的方式进行学习。对抗性训练及其架构的使用使其能够隔离异常,同时提供快速训练。我们通过在五个公共数据集上的实验研究了我们的方法的特性,从而证明了其鲁棒性、训练速度和高异常检测性能。通过使用Orange专有数据的可行性研究,我们能够验证Orange在可扩展性、稳定性、鲁棒性、训练速度和高性能方面的要求。
CCS概念•计算方法→ 神经网络;异常检测;无监督学习;•应用计算;

关键词:异常检测;多元时间序列;神经网络;Autoencoders;敌对的网络;无监督学习;监督
ACM Reference Format:Julien Audibert, Pietro Michiardi, Frédéric Guyard, Sébastien Marti, and Maria A. Zuluaga. 2020. USAD : UnSupervised Anomaly Detection on Multivariate Time Series. In Proceedings of the 26th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD '20), August 23–27, 2020, Virtual Event, CA, USA. ACM, New York, NY, USA, 10 pages. https://doi.org/10. 1145/3394486.3403392

一、介绍

IT系统监控是对系统的可测量事件和输出进行监督的过程,它被用作确定系统正常运行的参考。对与参考值的偏差进行分析,以确定是否存在故障。从历史上看,这种分析是由系统监视专家完成的,他们为每个测量的事件/输出建立了正常的行为阈值。如果测量值超过了相关的专家定义的阈值,则认为系统没有按照预期运行。由于Orange当今IT运营的规模和复杂性,随着时间的推移,获取测量数据所需的传感器数量急剧增加,这使得传统的基于专家定义阈值的方法不再可用,因为它们无法扩展。在这种情况下,我们的IT系统监控自动化已经成为一种必要。自动化IT系统监控需要开发一种方法来观察传感器获得的不同测量值,并从这些测量值推断正常和异常行为。
在一组随时间相互关联的度量值上检测意外行为是一个活跃的研究学科,称为多元时间序列[2]中的异常检测。在过去的几年里,人们开发了许多方法来解决这个问题。最常用的技术包括基于距离的技术,如k-最近邻[3],聚类,如K-means[9],单类支持向量机[11]分类。然而,今天的IT系统已经达到了不再允许使用这些方法的复杂性。实际上,随着维度数量的增加,由于维度的诅咒,这些技术通常会遭遇次优性能。最近,基于深度学习的无监督异常检测方法能够推断时间序列之间的相关性,从而识别异常行为,这一能力受到了广泛关注
在检测时间数据异常的深度学习方法中,基于循环神经网络[7] (RNNs)的方法非常受欢迎。然而,众所周知,rnn的结果需要大量的计算,需要大量的时间进行训练。因此,rnn与时间相关的成本很高,能源消耗和二氧化碳排放。对于Orange来说,使用高可扩展性,同时低能耗的方法是一个关键问题。事实上,Orange正在通过其“绿色信息技术与网络”项目不断努力提高能源效率。高可伸缩性和向GreenAI[16]发展的这些限制,迫使我们重新思考将要实施的深度学习方法的重要特征。因此,开发算法效率高的实现方法是很有必要的。
最近引起极大兴趣的其他基于深度学习的方法是基于生成对抗网络的方法[5]。然而,由于模式崩溃和不收敛等问题,GaN的训练并不总是容易的[1]。在考虑将这些方法实施和部署到Orange的生产中时,缺乏稳定性是一个主要障碍。生产环境需要开发健壮的方法,这些方法可以定期重新培训。
在本文中,我们提出了一种新的方法,称为多变量时间序列的无监督异常检测(USAD),该方法基于一种自动编码器结构[15],其学习灵感来自于Gans。USAD背后的直觉是,其编解码器架构的对抗性培训使其能够学习如何放大包含异常的输入的重建误差,同时与基于Gans架构的方法相比获得稳定性。它的体系结构使其快速训练,在可伸缩性和算法效率方面满足Orange的期望。本文的主要贡献在于:

  • 我们提出了一种对抗性训练框架内的编解码器体系结构,它允许结合自动编码器和对抗性训练的优点,同时补偿每种技术的局限性。
  • 我们在公开的数据集上进行了实证研究,分析了该方法的稳健性、训练速度和性能。
  • 我们使用Orange的专有数据进行了可行性研究,以分析所提出的方法是否满足该公司在可扩展性、稳定性、健壮性、训练速度和高性能方面的要求。

本文档的其余部分组织如下。第二节讨论了检测多变量时间序列中非监督异常的方法。第三节讨论了我们方法的细节。第4节和第5节描述了实验,并演示了我们方法的最先进的性能。

二、相关工作

时间序列的异常检测是一项复杂的任务,已有大量研究[6]。在已经提出的不同分类中,方法可以被识别为聚类法[9]、基于密度的方法[11]、基于距离的方法[3]和基于隔离的方法[10]。
除了传统的方法外,基于深度学习的无监督异常检测方法推断时间序列之间的相关性的能力最近受到了广泛的关注[12,18,20]。深度自动编码高斯混合模型(DAGMM)[21]联合考虑了深度自动编码器和高斯混合模型来模拟多维数据的密度分布。卷积递归编码器解码器(MSCRED)[20]联合考虑了时间依赖性、噪声鲁棒性和异常严重性的解释。
LSTMVAE[14]通过用LSTM替换VAE中的前馈网络,将LSTM与变分自动编码器(VAE)相结合。对抗性学习异常检测(ALAD)[19]是基于双向GANS的,它为异常检测任务导出对抗性学习特征。LSTM-VAE通过LSTM网络对时间序列的时间相关性进行建模,获得了比传统方法更好的泛化能力。最近,Su等人提出了一种用于多变量时间序列异常检测的随机递归神经网络OmniAnomaly,它学习具有随机变量联系和平面归一化流程的稳健多变量时间序列的表示,并使用重构概率来确定异常[17]。然而,这些方法以其训练速度为代价获得了良好的效果。事实上,这些方法都没有在其性能标准中考虑到训练时间(即能源消耗)。这就是为什么今天Orange有必要开发在异常检测方面具有与最先进水平相当的性能的方法,同时支持允许快速和节能培训的体系结构。

三、方法

我们首先将3.1节中要解决的问题正式化。在3.2中,我们给出了我们方法的公式。最后,在第3.3节中,我们描述了该方法的实现。

3.1问题的制定

单变量时间序列是一系列数据点 T = { x 1 , . . . , x T } , \mathcal{T}=\{x_1, ..., x_T\}, T={x1,...,xT}, 每一个都是在特定时间 t t t 测量的过程的观察。单变量时间序列在每个时刻包含一个变量,而多变量时间序列一次记录多个变量;我们将多元时间序列表示为 T = { x 1 , . . . , x T } , x ∈ R m \mathcal{T}=\{x_1,...,x_T\},x\in \mathbb{R}^m T={x1,...,xT},xRm。在这项工作中,我们关注更一般的多元时间序列设置,因为单变量设置是m=1的多元时间序列的一种特殊情况。

现在考虑一个无监督的学习问题,其中 T \mathcal{T} T 被作为训练输入。异常检测指的是识别一个未知观测 x ^ t \hat{x}_t x^t t > T t>\mathcal{T} t>T) 的任务,考虑到 t t t T \mathcal{T} T 显著不同的因素,因此假设 T \mathcal{T} T 只包含正常数据。未知样本 x ^ t \hat{x}_t x^t 和正常集 T \mathcal{T} T 的差异量由异常分数测量,然后将异常分数与阈值进行比较,以获得异常标签。

为了模拟当前时间点和之前时间点之间的依赖关系,现在让我们定义 W t W_t Wt,即给定时间 t t t 的长度为 K K K 的时间窗口: W t = { x t − K + 1 , . . . , x t } (1) W_t = \{x_{t-K+1},...,x_{t}\} \tag{1} Wt={xtK+1,...,xt}(1) 可以将原始时间序列 T \mathcal{T} T 转换为一系列窗口 W = W 1 , . . . , W T W={W_1,...,W_T} W=W1,...,WT,用作训练输入。给定一个二进制变量 y = 0 , 1 y={0,1} y=0,1,异常检测问题的目标是为一个未知窗口 W ^ t \hat{W}_t W^t,( t > T t>\mathcal{T} t>T) 基于该窗口的异常值给出标签 y t y_t yt,表示在时间 t t t 检测是否异常,即, y t = 1 y_t=1 yt=1 或者 y t = 0 y_t=0 yt=0。为了简单起见,在不损失通用性的情况下,我们将使用 W W W 表示一个训练输入窗口,使用 W ^ \hat{W} W^ 表示一个未知输入窗口。

3.2 无监督异常检测

自动编码器(AE)[15]是由编码器 E E E 和解码器 D D D 组成的无监督人工神经网络。编码器部分将输入 X X X 映射到一组潜在变量 Z Z Z,而解码器将潜在变量 Z Z Z 映射回输入空间作为重构R。原始输入向量 X X X 和重构 R R R 之间的差称为重构误差。因此,训练目标旨在最大限度地减少这种错误。定义如下: L A E = ∣ X − A E ( X ) ∣ 2 (2) \mathscr{L}_{AE} = | X -AE(X)|_2 \tag{2} LAE=XAE(X)2(2)

其中, A E ( X ) = D ( Z ) ,   Z = E ( X ) AE(X) = D(Z),\ Z = E(X) AE(X)=D(Z), Z=E(X) 并且, ∣ ⋅ ∣ 2 |\cdot |_2 2 是指 L 2 L2 L2 正则化。

基于自动编码器的异常检测使用重建误差作为异常分数。得分高的分数被视为异常。训练时只使用正常数据中的样本。在推断时,AE将很好地重建正常数据,而不能重建AE未遇到的异常数据。然而,如果异常太小,即它相对接近正常数据,重建误差将很小,因此无法检测到异常。这是因为AE的目标是尽可能重建输入数据(尽可能接近正常值)。为了克服这个问题,AE应该能够识别输入数据是否包含异常,然后再进行良好的重建。
一种方法判断输入样本是否正常的可能性是生成性对抗网络(GAN)的特征[5]。GAN是一种无监督的人工神经网络,基于两个网络之间的两人极小极大对抗博弈,两个网络同时训练。一个网络,生成器(G),旨在生成真实数据,而第二个网络充当鉴别器(D),试图将真实数据与G生成的数据区分开来。G的训练目标是最大化D出错的概率,而训练目标D是最小化其分类错误。
与基于AE的异常检测类似,基于GAN的异常检测使用正常数据进行训练。在训练之后,鉴别器被用作异常检测器。如果输入数据与学习数据分布不同,则鉴别器将其视为来自生成器,并将其分类为假的,即异常。然而,由于模式崩溃和不收敛等问题,GAN训练并不总是容易的[1],这通常归因于生成器和鉴别器之间的不平衡。
我们提出的无监督异常检测(USAD)方法被制定为两阶段对抗性训练框架内的AE架构。一方面,这允许通过训练能够识别输入数据何时不包含异常的模型来克服AE的固有限制,从而执行良好的重建。另一方面,AE架构允许在对抗性训练期间获得稳定性,因此解决了GAN中遇到的崩溃和非收敛模式的问题。
USAD由三个元素组成:一个编码器网络E和两个解码器网络D1和D2。如图1所示,这三个元件连接到一个由两个自动编码器AE1和AE2组成的体系结构中,它们共享同一个编码器网络: A E 1 ( W ) = D 1 ( E ( W ) ) ,   A E 2 ( W ) = D 2 ( E ( W ) ) (3) AE_1(W) = D_1(E(W)),\ AE_2(W) = D_2(E(W)) \tag{3} AE1(W)=D1(E(W)), AE2(W)=D2(E(W))(3) 公式3中的架构分两个阶段进行训练。首先,对两个AE进行训练,以学习重建正常的输入窗口 W W W。其次,这两个 AE 以对抗的方式进行训练,其中 AE1 将试图愚弄 AE2,AE2 旨在了解数据是真实的(直接来自 W W W)还是重建的(来自AE1)。下文提供了更多详细信息。
第一阶段:自动编码器训练。在第一阶段,目标是训练每个AE重现输入。输入数据W由编码器E压缩到潜在空间Z,然后由每个解码器重建。根据等式2,训练目标是: L A E 1 = ∣ W − A E 1 ( W ) ∣ 2   L A E 2 = ∣ W − A E 2 ( W ) ∣ 2 (4) \mathscr{L}{AE_1} = | W -AE_1(W)|2 \ \mathscr{L}{AE_2} = | W -AE_2(W)|_2 \tag{4} LAE1=WAE1(W)∣2 LAE2=WAE2(W)2(4) 第二阶段:对抗性训练。在第二阶段,目标是训练AE2以区分来自AE1的真实数据,并训练AE1愚弄AE2。来自AE1的数据再次被 E E E压缩到 Z Z Z,然后由AE2重建。使用对抗性训练配置,AE1的目标是最小化 W W W和AE2输出之间的差异。AE2的目标是最大化这种差异。AE1测试是否成功愚弄了AE2,AE2将AE1重建的候选数据与真实数据区分开来。训练目标是: min ⁡ A E 1 max ⁡ A E 2 ∣ W − A E 2 ( A E 1 ( W ) ) ∣ 2 (5) \min _{A E{1}} \max {A E{2}}\left|W-A E_{2}\left(A E_{1}(W)\right)\right|{2} \tag{5} AE1minmaxAE2WAE2(AE1(W))2(5) 计算以下损失: L A E 1 = + ∣ W − A E 2 ( A E 1 ( W ) ) ∣ 2   L A E 1 = + ∣ W − A E 2 ( A E 1 ( W ) ) ∣ 2 (6) \mathscr{L}{A E_{1}}=+\left|W-A E_{2}\left(A E_{1}(W)\right)\right|{2} \ \mathscr{L}{A E_{1}}=+\left|W-A E_{2}\left(A E_{1}(W)\right)\right|{2} \tag{6} LAE1=+WAE2(AE1(W))2 LAE1=+WAE2(AE1(W))2(6) 两阶段训练。在我们的架构中,自动编码器有双重用途。AE1将W(相位1)的重建误差降至最低,并将W与AE2(相位2)重建输出之间的差异降至最低。作为AE1,AE2使W的重建误差最小化(第1阶段),但随后使AE1重建的输入数据的重建误差最大化(第2阶段)。每个AE的双重目的训练目标表示为进化方案中等式4、6的组合,其中每个部分的比例随时间演化: L A E 1 = 1 n ∣ W − A E 1 ( W ) ∣ 2 + ( 1 − 1 n ) ∣ W − A E 2 ( A E 1 ( W ) ) ∣ 2 (7) \mathscr{L}{A E_{1}}=\frac{1}{n}\left|W-A E_{1}(W)\right|{2}+\left(1-\frac{1}{n}\right)\left|W-A E{2}\left(A E_{1}(W)\right)\right|_{2} \tag{7} LAE1=n1WAE1(W)2+(1n1)WAE2(AE1(W))2(7)

L A E 2 = 1 n ∣ W − A E 2 ( W ) ∣ 2 + ( 1 − 1 n ) ∣ W − A E 2 ( A E 1 ( W ) ) ∣ 2 (8) \mathscr{L}{A E{2}}=\frac{1}{n}\left|W-A E_{2}(W)\right|{2}+\left(1-\frac{1}{n}\right)\left|W-A E{2}\left(A E_{1}(W)\right)\right|_{2} \tag{8} LAE2=n1WAE2(W)2+(1n1)WAE2(AE1(W))2(8)

其中, n n n 表示一个训练时期。两阶段训练过程在算法1进行总结。
在这里插入图片描述
在这里插入图片描述
图1:说明训练阶段(上)和检测阶段(下)的信息流的拟议架构。

算法 1 USAD 训练算法(Smileyan)
在这里插入图片描述
值得注意的是,AE2在严格意义上并不是一个鉴别器,因为如果它的输入是原始数据,则是来自等式4的损失介入。当其输入是重建时,等式5-6中的目标会介入。
推论。 在检测阶段(算法2),异常分数定义为:

A ( W ^ ) = α ∣ W ^ − A E 1 ( W ^ ) ∣ 2 + β ∣ W ^ − A E 2 ( A E 1 ( W ^ ) ) ∣ 2 (9) \mathscr{A}(\widehat{W})=\alpha\left|\widehat{W}-A E_{1}(\widehat{W})\right|{2}+\beta\left|\widehat{W}-A E{2}\left(A E_{1}(\widehat{W})\right)\right|_{2} \tag{9} A(W )=α W AE1(W ) 2+β W AE2(AE1(W )) 2(9)

其中, α + β = 1 \alpha + \beta = 1 α+β=1,用于参数化FP(False Positive)和 TP(True Positive)之间的权衡。如果 α \alpha α 表现超过 β \beta β ,我们减少了 TP 和 FP 的数量。相反地,如果 α \alpha α 表现不如 β \beta β ,我们同时增加 TP 和 FP 的数量。我们将 α < β \alpha < \beta α<β 表示高检测灵敏度场景; α > β \alpha > \beta α>β 表示低检查灵敏度场景。这种参数化方案具有极大的工业价值。它让使用一个经过训练的模型,在推理过程中获得一组不同的敏感性异常分数。第5.2节进一步说明了这一点。

算法2 USAD检测算法
在这里插入图片描述

3.3实现

我们的异常检测方法分为三个阶段。训练和检测共有一个第一个数据预处理阶段,其中数据被标准化并拆分为长度为K的时间窗口。第二个阶段用于训练方法。该训练是离线的,旨在捕捉多变量时间序列预定义部分(几周/几个月)的正常行为,并为每个时间窗口生成异常评分。这种离线训练程序可以定期自动执行,注意选择一个不包括太多被视为异常的训练周期。最后一个阶段是异常检测。使用第二阶段训练的模型在线执行。当一个新的时间窗口到来时,该模型用于获得异常评分。如果窗口的异常评分高于定义的异常阈值,则新的时间窗口被宣布为异常。

四、实验设置

本节描述了实验和可行性研究中使用的数据集和性能指标。

4.1公共数据集

在我们的实验中使用了五个公开的数据集。表1总结了数据集的特征,下文对其进行了简要描述。

表1:基准数据集(%)为数据集中异常数据点的百分比。
在这里插入图片描述
安全水处理(SWaT)数据集。SWaT数据集1是现实世界中生产过滤水的工业水处理厂的缩小版[4]。收集的数据集[13]包括11天的连续操作:在正常操作下收集7天,在攻击场景下收集4天。

水分配(WADI)数据集。数据集2来自WADI试验台,SWaT试验台的扩展[13]。它包括16天的连续运行,其中14天是在正常运行情况下收集的,2天是在攻击情况下收集的。

服务器计算机数据集。SMD是一个新的5周数据集,由一家大型互联网公司收集并公开3[17]。它包含来自28台服务器的数据,每台服务器都由m=33个指标监控。SMD分为两个大小相同的子集:前半部分是训练集,后半部分是测试集。

土壤湿度主动-被动(SMAP)卫星和火星科学实验室(MSL)探测车数据集。SMAP和MSL是两个现实世界的公共数据集,是NASA的专家标记数据集[8]。它们分别包含55/27个实体的数据,每个实体由m=25/55指标监控。

4.2 可行性研究:Orange数据集

我们的可行性研究是在专门为此目的收集的内部数据集上进行的。收集的数据来自Orange网站广告网络的技术和商业指标。这些数据代表了总共33个连续变量,包括27个技术测量值和6个业务测量值。数据集分为两个子集:一个对应于约32天的训练集和一个对应于约60天活动的测试集。我们选择了60天的测试,对应于橙色的关键时期。为了获得我们的训练,我们选择了之前连续几天没有发生任何重大事件的公司。我们获得了32天的训练,基本上是正常的。测试集中的异常由领域专家根据事件报告进行标记。其主要特征见表1。

4.3 评价指标

精密度(P)、召回率(R)和F1分数(F1)用于评估异常检测性能: P = T P T P + F P , R = T P T P + F N , F 1 = 2 ⋅ P ⋅ R P + R P=\frac{T P}{T P+F P}, \quad R=\frac{T P}{T P+F N}, \quad F 1=2 \cdot \frac{P \cdot R}{P+R} P=TP+FPTP,R=TP+FNTP,F1=2P+RPR TP表示真阳性,FP表示假阳性,FN表示假阴性。我们认为一个窗口被标记为异常,只要它包含的点中的一个被检测为异常。

在[17]中,作者使用平均精确度和平均召回率计算F1分数。为了完整性,我们在将我们的方法与他们的基准进行比较时报告了这一度量。我们用F1分数来表示这一指标: F 1 = 2 ⋅ P ˉ ⋅ R ˉ P ˉ + R ˉ F 1^{}=2 \cdot \frac{\bar{P} \cdot \bar{R}}{\bar{P}+\bar{R}} F1=2Pˉ+RˉPˉRˉ 其中 P ˉ \bar{P} Pˉ R ˉ \bar R Rˉ 分别表示平均精确度和召回率。

通过将每种评估方法的结果与注释的基本事实进行比较来评估性能。为了与[17]提出的基准进行直接比较,我们使用了他们的方法。异常观测通常以连续异常段的形式出现。在这种方法中,如果至少一个异常段的观测被正确检测到,则该段的所有其他观测也被视为被正确检测到,即使它们没有被正确检测到。地面真值异常段以外的观测结果照常处理。我们表示该接近点调整。我们还评估了不属于基准的两个数据集(SWaT和WADI)的性能,无需进行点调整[17]。

五、实验与结果

我们通过评估USAD的性能并将其与其他最先进的方法(5.1)进行比较,分析不同参数如何影响该方法(5.2)的性能,评估其计算性能(5.3),以及通过消融研究来研究USAD的关键特性,在每次消融研究中,我们抑制其中一个训练阶段(5.4)。最后,在第5.5节中,我们使用Orange的内部数据报告了一项可行性研究,以证明USAD满足在生产中部署所需的要求。

5.1整体性能

为了证明USAD的整体性能,我们将其与检测多变量时间序列异常的五种无监督方法进行了比较。这些是:隔离林(IF)[10]、自动编码器(AE)、LSTM-VAE[14]、DAGMM[21]、全异常[17]。由于并非所有用于比较的异常检测方法都提供了选择异常阈值的机制,我们测试了每个模型的可能异常阈值,并报告了与最高F1分数相关的结果。表2详细列出了在公共数据集上获得的所有方法的性能结果。顶部显示了使用SWaT和WADI数据集获得的结果,而表格底部报告了使用剩余三个数据集从[17]提出的基准中获得的结果。在没有点调整数据集的情况下,USAD在SWaT、MSL、SMAP和WADI上优于所有方法,其F1在SMD数据集上排名第二。平均而言,所有数据集(表3)是性能最好的方法,超过了当前技术状态的0.096[17]。

表2:性能比较。顶部:SWaT和WADI数据集中的精确度(P)、召回率(R)和F1分数(有无点调整)。底部:使用[17]提出的基准点ajust。P、 R F1和F1*。
在这里插入图片描述
表3:使用点调整的所有数据集的平均性能(±标准差)。
在这里插入图片描述
总体而言,IF和DAGMM的性能最低。这是两种无监督的异常检测方法,它们不利用观测之间的时间信息。对于时间序列,时间信息是重要且必要的,因为观测值是相关的,历史数据有助于重建当前观测值。在USAD中,无论是训练还是检测,输入都是一系列观察结果,其中包含保留这些信息的时间关系。

尽管大多数数据集的结果相对较差,但IF在WADI上通过积分调整获得了最高的F1分数。这可以通过点调整方法和WADI数据集的性质来解释。IF独立考虑每个观察/时间点,并将标签指定给单个时间点,而不是窗口。WADI的异常持续时间长,点调整验证异常的整体是否被良好检测到。因此,与点调整所获得的优势相比,IF几乎不受一次只影响一次观测的不良预测(FPs)的影响,尽管可能错过了几个异常,但点调整验证了良好预测的整个部分。不同的是,AE,LSTM-VAE,使用连续观测作为输入,允许这两种方法保留时间信息。无论输入窗口中是否存在异常,这些方法都可以执行尽可能好的重建。这不允许他们检测到接近正常数据的异常。USAD通过对抗性训练弥补了基于AE的方法的这一缺陷。OmniAboration也出现了类似的情况,因为它没有一种机制可以放大“轻微”异常。

5.2 参数的影响

在本节中,我们研究了不同参数和因素对USAD性能的影响。所有实验均使用SWaT数据集进行。
我们研究的第一个因素是USAD如何响应训练数据的不同下采样率。下采样通过减小数据的大小来加速学习,并且具有去噪效果。然而,如果丢失太多信息,可能会产生负面影响。图2(A)总结了使用5种不同速率获得的结果[1,5,10,20,50]。结果表明,USAD的性能对下采样相对不敏感,在不同采样率下的性能相对稳定。这表明下采样率的选择对该方法并不重要。对于我们的实验,我们选择了5的速率。这是在消除训练数据的噪声和限制信息丢失之间的最佳权衡。此外,它还可以将USAD所需的训练时间减少5分钟。

图2:参数的影响。精度、召回率和F1分数作为a)训练集的下采样率,B)窗口大小K,C)潜在空间的维度Z和D)训练集中异常的百分比的函数
在这里插入图片描述
在这里插入图片描述
我们调查的第二个因素是USAD如何响应数据中不同的窗口大小。窗口大小对可以检测到的异常行为类型有影响,这直接影响异常检测的速度,因为检测的速度是由窗口的持续时间定义的。图2(B)给出了五种不同窗口大小K的结果 ∈ \in [5, 10, 20, 50, 100]. 当窗口大小K=10时,效果最好。当窗口较小时,USAD可以更快地检测到行为变化,因为每次观察都会对异常评分产生更大的影响。一个太大的窗口将不得不等待更多的观察来检测异常。然而,更大的窗口将检测到更长的异常。然而,如果异常太短,它可能隐藏在过大窗口的点数中。对于Orange,一个小窗口更好,因为它允许更快的训练和更快的检测。

潜变量Z位于m中−维度空间,它被假定为小于原始数据之一。我们研究了m在USAD绩效中的作用。图2(C)显示了m的结果∈ [5, 10, 20, 40, 100]. 结果表明,Z的极小维数会导致编码阶段的大量信息丢失,而解码器无法恢复这些信息,从而导致性能不佳。在另一个极端,使用m的大值会导致对训练数据的记忆,从而导致性能下降。相反,m的中间值似乎对成绩没有太大影响,显示出相对较高且稳定的F1成绩。

USAD是在只使用正常样本形成训练集的假设下进行训练的。但在实践中,训练集不仅包含正常数据。因此,我们研究了当在训练数据集中注入噪声打破这一假设时,该方法的性能会受到多大程度的影响。我们在代表训练数据集大小百分比的随机时间点中注入高斯噪声(µ=0,σ=0.3)。我们将这个百分比从1%到30%不等。在下采样(速率=5)后注入噪声,以避免下采样造成噪声衰减。

图2(D)显示了随着噪声水平的增加,我们的方法在P、R和F1方面的性能。USAD在高达5%的噪声水平下表现出相对稳定的高性能,从而证明了它的鲁棒性。当训练集噪声为10%时,性能开始出现轻微下降。然而,以F1得分衡量,整体表现仍然不错。有趣的是,这种性能下降是由较低的精度造成的。由于回忆保持相对恒定,这意味着训练集中的噪声越大,该方法就越容易检测到误报。这种行为表明,随着噪音开始增加,USAD不再能够正确地学习训练集中存在的最复杂的行为。因此,由于USAD将复杂的正常行为检测为异常,测试集中的假阳性数量增加。最后,高噪声水平(30%)会导致性能显著下降。然而,在生产环境中进行训练时出现如此高的异常率是不现实的。这意味着在给定的时间段内,30%的样本是未被注意到的异常。由于生产中存在如此多的异常情况,Orange的事故监督部门错过如此多的事故是不现实的。因此,在Orange的生产环境中进行训练时,USAD不太可能遇到如此高的异常率。

最后,我们研究了灵敏度阈值的作用(等式9)。较大的α对应于在异常评分中更重视AE1自动编码器的重建,而较大的β对应于更重视AE2自动编码器的重建(见图1)。调整检测灵敏度而不必重新训练模型的可能性对Orange非常重要。表4报告了检测到的FPs、TPs和F1分数中α、β变化的影响。

表4:SWaT数据集不同灵敏度阈值的异常检测结果
在这里插入图片描述
我们观察到,通过增加α和减少β,可以减少FPs的数量(从0.0到0.9时最多减少50%),同时限制TPs数量的下降(从0.0到0.9时减少3%)。因此,α和β的调节允许参数化USAD的灵敏度,以满足生产环境的要求。通过一个模型,可以实现不同级别的灵敏度,以便检测满足Orange监管团队中不同级别的需求。管理人员更喜欢较低的敏感度,限制误报的数量,但在发生重要事件时向他们发出警告,而技术人员更喜欢较高的敏感度,允许他们错过最少的事件。

5.3 训练时间

在本节中,我们将研究USAD的计算性能,并将其与OmniAnomaly进行比较,OmniAnomaly在异常检测中提供了最接近的性能(见表3)。为此,我们测量了5个公共数据集上每个epoch所花费的平均时间。SMD, SMAP和MSL的参考时间是所有实体(即SMD的28台机器,SMAP的55台机器和MSL的27台机器)上的一个epoch的平均时间。两种方法都使用NVIDIA GeForce GTX 1080 Ti进行训练。表5给出了得到的结果。USAD在多变量时间序列的无监督异常检测中表现良好,同时将训练时间平均缩短了547倍。

5.4消融研究

使用SMD、SMAP和MSL数据集,我们调查了USAD两阶段培训的效果。图3显示了使用USAD(组合)、USAD仅进行第一阶段训练(自动编码器)和仅进行第二阶段训练(对抗性)时F1成绩的性能比较。在没有对抗性学习账户的情况下,训练USAD使用等式4中给出的目标,而抑制自动编码器账户使用等式5-6中的目标。

在这里插入图片描述
图3:有和没有对抗性训练对USAD的影响

GAN启发的对抗性训练相比第二好的选择,表现提高了5.88%(F1分数),即美国陆军部没有对抗性训练,相比仅使用对抗性训练,表现提高了24.09%。这可以通过USAD引入的放大重建误差效应来解释,而不管输入窗口中是否存在异常。因此,没有对抗性训练的USAD无法检测到最接近正常数据的异常情况。USAD在对抗性训练中表现不佳的原因是,该方法在开始对抗性训练的第2阶段之前,没有自动编码器训练,无法将重量定位在有利的位置。

总之,任何训练阶段的消失都会导致较差的表现。例如,USAD的两种消融版本的F1分数都低于几种基准方法(表2,底部)。

5.5 可行性研究

对Orange来说,复杂IT系统监控的自动化是一个挑战。在研究USAD的特性并评估其使用公共数据集的性能后,该公司必须确保该方法对其数据同样有效。

表6报告了在内部数据集中获得的结果。在两个月的测试数据中,USAD能够在不到30分钟内检测到所有重大事件。例如,USAD能够在不到30分钟的时间内检测到一个事件,负责Orange监管的运营商需要24小时才能检测到该事件(图4)。此事件是由配置文件中引入的错误导致的,该错误允许将广告显示分配给意外的合作伙伴。这导致广告展示的数量(总印象)增加,同时降低了平均展示价格(总平均ecpm)。因此,收入(cpm cpc总收入)等重要业务指标保持稳定,因此运营商无法快速检测到事件。面对要调查的大量指标,监管负责人集中精力对业务影响较大的指标进行监管,因此解释说,检测此配置事件需要24小时。
在这里插入图片描述

图4:来自可行性研究的时间序列示例,其中USAD检测到配置事件。显示了33个时间变量中的24个。橙色方框突出显示了引用的变量。橙色表示5.5节中提到的系列。

六、结论

在本文中,我们提出了USAD,这是一种基于自动编码器的多变量时间序列无监督异常检测方法,并在受生成性对抗网络启发的对抗性训练中进行训练。其自动编码器架构使其成为一种无监督的方法,并允许其在对抗性训练中表现出极大的稳定性。我们使用了一组五个公共参考数据集来研究USAD的预期属性。就标准F1分数而言,该方法在公共参考数据集上的性能优于最先进的技术。此外,它的快速训练、对参数选择的鲁棒性和稳定性使得模型在工业环境中具有很高的可扩展性。USAD还提供了将其灵敏度参数化的可能性,并可以从单个模型生成一组检测水平。这种可能性为Orange的监管团队提供了必要的功能,使其能够在大规模基础设施的生产中使用该方法。由于团队需要能够降低检测灵敏度,以防止在工作量过高时仅发生重大事件,因此推理过程中倍增检测灵敏度的能力使该模型在公司内具有极高的可扩展性,并带来重大优势。首先,它允许我们通过将监管模型的数量限制为一个,来限制培训监管模型所需的时间。第二,投入生产的深度学习模型必须由团队监控和监督。通过限制模型数量,我们可以减少在生产过程中监督模型所花费的时间,从而将监督人员的时间用于不同的任务。

利用Orange的内部数据进行的可行性研究提供了结论性结果,证实USAD为Orange的IT系统监督自动化提供了一个有希望的方向。它还表明了在部署和执行过程中可能会遇到的一些困难。例如,在数据收集过程中(第4.2节),我们遇到了意想不到的困难,无法收集不包含太多异常的连续培训期。这是一个有趣的方面,它让我们思考了成功部署USAD所需的基础设施。

再现性的补充材料

A.1 实验环境

所有实验均在配备英特尔(R)至强(R)CPU E5-2699 v4@2.20GHz和270 GB RAM的机器上进行,该机器位于运行CentOS 7 3.10.0版的docker容器中,可访问NVIDIA GeForce GTX 1080 Ti 11GBGDDR5X GPU。隔离林(IF)来自scikit learn 4实现。DAGMM来自Github 5上的Tensorflow实现。LSTM-VAE来自Github实现6。OmniAboration来自作者对Github 7的Tensorflow实现。最后,我们在Pytorch开发了USAD和AE。

A.2 在我们的实现中使用的包

我们算法实现中使用的相关软件包及其版本如下所示:

  • python==3.6.8
  • pytorch==1.3.1
  • cuda==10.0
  • scikit-learn==0.20.2
  • numpy==1.15.4

A.3 USAD每个数据集的超参数

对于每个数据集,我们有4个参数。窗口的大小,对应于我们输入的时间序列的大小。预处理过程中的历元数、Z的维数(即USAD潜在空间)以及最终的下采样率。通过取每个特征的中值进行下采样。

表7:每个数据集的USAD超参数。K为窗口大小,m为潜在空间的维数。
在这里插入图片描述

A.4 USAD实现

输入大小对应于窗口的大小乘以多变量时间序列的维数。

A.4.1 Encoder.

  • Linear : input size -> input size / 2
  • Relu
  • Linear : input size /2 -> input size / 4
  • Relu
  • Linear : input size /4 -> latent space size
  • Relu

A.4.2 Decoder. 两个解码器具有相同的体系结构。

  • Linear : latent space size -> input size / 4
  • Relu
  • Linear : input size /4 -> input size / 2
  • Relu
  • Linear : input size /4 -> input size
  • Sigmoid

作为优化器,我们使用Adam的pytorch实现和他的默认学习率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/6779.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】内存管理+模板

前言&#xff1a; 本章将详细讲解C内存管理和模板的实现。 第一部分我们讲解C内存管理&#xff0c;C语言中有malloc/calloc/realloc等开辟空间和free释放空间&#xff0c;那么C将符合实现呢&#xff1f; 第二部分我们会一起来初步认识模板与泛型编程&#xff0c;并详细探讨函…

微服务高级篇【1】之微服务保护

文章目录前言一 初识Sentinel1.1 雪崩问题1.2 解决方法1.3 小结1.4 服务保护技术对比1.5 Sentinel介绍1.6 Sentinel安装1.7 微服务整合Sentinel二 测试工具&#xff1a;Jmeter2.1 Jmeter安装和配置2.2 Jmeter快速入门2.2.1 设置中文语言2.2.2 设置Jmeter桌面快捷图标2.3 Jmeter…

已经提了离职,还有一周就走,公司突然把我移出企业微信,没法考勤打卡, 还要继续上班吗?...

黎明前的黑暗最容易出事&#xff0c;离职前的几天也最容易出幺蛾子&#xff0c;比如下面这位网友的遭遇&#xff1a;已经提了离职&#xff0c;还有一周就正式离职了&#xff0c;公司突然把我移出企业微信&#xff0c;没法考勤打卡了&#xff0c; 还要继续上班吗&#xff1f;该怎…

BGP小型实验

实验分析 1.主要考察的是对BGP配置的熟练 2.实验需要在R1与R5分别发布一条路由可以在BGP 中使用network 网段 掩码命令 3.R1与R2,R4与R5是EBGP&#xff0c;而R2,R3,R4是IBGP 实验操作 1.配置接口ip,与环回路由 以R1为例 2.AS内部需要实现非直连的建立是需要保证IBGP内部是通的所…

蓝桥杯30天真题冲刺|题解报告|第三十天

大家好&#xff0c;我是snippet&#xff0c;今天是我们这次蓝桥省赛前一起刷题的最后一天了&#xff0c;今天打了一场力扣周赛&#xff0c;前面3个题都是有思路的&#xff0c;第三个题只过了一半的案例&#xff0c;后面看完大佬们的题解彻悟&#xff0c;下面是我今天的题解 目录…

蓝桥杯备考

数论&#xff1a;判断素数&#xff0c;鸽笼定理&#xff0c;抽屉理论 注意事项&#xff1a; long类型的数后面要加L long s 2658417853L; 保留几位小数&#xff1a; System.out.printf(“%.2f”, arg); 四舍五入问题&#xff1a;比如保留两位小数&#xff0c;就在数的后面再…

java基础知识汇总

目录 1、Java基础语法 1、类型转换问题 1. 运算符 1.1 算术运算符&#xff08;理解&#xff09; 1.2 赋值运算符&#xff08;应用&#xff09; 1.3 自增自减运算符&#xff08;理解&#xff09; 1.4 关系运算符&#xff08;应用&#xff09; 1.5 逻辑运算符&#xff08…

【CSS】清除浮动 ④ ( 清除浮动 - 使用双伪元素清除浮动 | 代码示例 )

文章目录一、清除浮动 - 使用双伪元素清除浮动二、代码示例一、清除浮动 - 使用双伪元素清除浮动 为 .clearfix:before 和 .clearfix:after 并集选择器 , 设置如下样式 : /* 清除浮动 - 使用双伪元素清除浮动 */.clearfix:before,.clearfix:after {content: "";displ…

ERTEC200P-2 PROFINET设备完全开发手册(1)

本教程为ERTEC200P-2的基础开发教程&#xff0c;可以掌握PN设备开发的基本流程。虽然没有涉及PN协议的详细解析&#xff0c;但是希望根据本文档多多练习&#xff0c;熟能生巧&#xff0c;逐渐能够掌握PN设备开发。 &#xff08;注意&#xff1a;本手册基于西门子DEVKIT V47协议…

oracle导入的表中文名称乱码无法删除导致删除用户也失败

由于一开始弄数据库的时候忘记设置编码格式&#xff0c; 导致导入dmp文件之后带中文的表名变成了乱码 然后plsql右键删除表显示表不存在 一开始的时候寻思备份下表结构跟表数据 直接删除用户完事了 删除用户报递归遍历错误 寻思重装这个数据库太过于耗时 不值当的 就是看那几…

【JWT鉴权】如何来写一个token令牌认证登录?

目录一. &#x1f981; 话题引入1.2 什么是JWT&#xff1f;二. &#x1f981; 技术体现2.1 引入依赖2.2 编写JWT工具类2.3 编写登录方法2.4 编写JWT拦截器验证令牌2.5 编写要配置拦截的接口三. &#x1f981; 话题终结一. &#x1f981; 话题引入 在做项目过程中&#xff0c;我…

【halcon】为啥匹配到ROI外面去了?

背景 匹配到ROI外面去了 中心恰好在roi有效区域内&#xff01;&#xff08;粉色是ROI区域&#xff09; 网上查到的资料&#xff01; PaintRegion改变外部环境 //HOperatorSet.ReduceDomain(image, ho_ProductRegionAll, out imgReduced); //替换为&#xff1a; HObject all…

Web前端 HTML、CSS

HTML与CSSHTML、CSS思维导图一、HTML1.1、HTML基础文本标签1.2、图片、音频、视频标签1.3、超链接、表格标签1.4、布局1.5、表单标签1.6、表单项标签综合使用1.7、HTML小结二、CSS&#xff08;简介&#xff09;2.1、引入方式2.2、选择器2.3、CSS属性Web前端开发总览 Html&…

Linux基础操作 常用命令 Centos

Linux 1.Linux的引言 Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展&#xff0c;Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持…

面试题-学习网络协议必备:七层模型与协议之间的映射关系

一、概念 OSI七层模型是计算机网络中的一种标准化分类和描述方式&#xff0c;它将网络协议划分为不同的层次&#xff0c;每个层次负责不同的功能。这种模型被广泛应用于网络设计、开发和维护&#xff0c;以便于不同系统之间的互操作性和相互通信。 二、各层介绍 第一层&#x…

vue项目代理配置大全

1.vite &#xff08;vue3-admin-element-template-master&#xff09; server: {host: 0.0.0.0, //服务器ip地址 port: 5566, //本地端口fs: {strict: false, // 支持引用除入口目录的文件},open: true, // 是否自动在浏览器打开proxy: {/pcapi: {target: https:....../pcapi…

老板想要可视化大屏?零代码开发3D可视化大屏,只要10分钟

上周末和供应链管理的朋友一起喝茶&#xff0c;我吐槽着我做报表的繁琐&#xff0c; 他用很疑惑的眼神看着我说&#xff1a;这事不是在模板上改改数据就行了吗&#xff1f;我连忙逼他给我分享了这个香饽饽。 回到家&#xff0c;我直接开始研究起了可视化大屏&#xff0c;后悔自…

Android告别Shape.xml

天下苦shape.xml久已&#xff0c;特别是遇上不靠谱的UI&#xff0c;圆角背景色边框&#xff0c;三个属性就能给你折腾出来几百种组合&#xff0c;每个组合都要写对应的shape.xml&#xff0c;太折腾人了&#xff01; 展示 效果图 代码 /*** 设置shape*/ BindingAdapter(// 圆角…

44学习自动化运维工具 Chef 的基本用法,包括厨师编写、节点管理

Chef是一种自动化运维工具&#xff0c;它允许您定义基础设施的状态&#xff0c;并根据需要管理这些状态。在这里&#xff0c;我们将学习Chef的基本用法&#xff0c;包括如何编写和管理Cookbook和Node。 安装Chef 在使用Chef之前&#xff0c;您需要在管理节点和目标节点上安装…