基于再编码的无监督时间序列异常检测模型

2023-03-24 13:25尹春勇周立文
计算机应用 2023年3期
关键词:编码器重构编码

尹春勇,周立文

(南京信息工程大学 计算机与软件学院,南京 210044)

0 引言

近年来时间序列在风险评估、金融分析、物联网、医疗等方面得到了广泛的应用[1]。它在计算机视觉、统计学、机器学习中越来越重要,比如触屏手势序列[2]被用来识别人类行为,基于时间序列成像提取时间序列特征[3]。然而,在时间序列中可能存在一些不符合现实变化规律的数据,称之为异常数据,虽然异常所占的比例很小,但容易被忽略。比如,在心电图诊断中忽略掉异常,这会发生误诊,对患者的健康造成巨大威胁。在物联网中,传感器网络目前被广泛使用在地下施工安全检测和预警系统,然而传感器网络容易受到攻击,如果不能有效检测到异常可能会造成灾难,因此,提高时间序列异常检测准确率十分重要。时间序列数据分为单变量和多变量时间序列数据。在气象、社交媒体流量、出租车服务等方面多变量时间序列无处不在,这也表明在现实世界中大部分时间序列都是多变量时间序列。

然而,时间序列往往缺乏标签,同时标记异常需要高昂的专家成本而且还不能保证所有的异常类型都被标记,因此,设计不严重依赖标记数据的模型具有重要意义。在这种情况下,此类模型在现实场景中更有适应性;但是时间序列含有噪声和复杂的异常模式,这使得捕获高度复杂的时间相关性和检测异常更加困难。此外,许多模型忽略了时间序列中的时间相关性。深度学习方法使用了具有更多隐藏层的神经网络,因此能够捕获复杂的潜在特征和时间相关性,例如,MAD-GAN(Multivariate Anomaly Detection with Generative Adversarial Network)[4]和USAD(UnSupervised Anomaly Detection)[5]使用长 短期记 忆(Long Short-Term Memory,LSTM)网络捕获时间相关性。同样,使用深度学习方法也有缺 陷,比 如,使 用AutoEncoder[6]和LSTM-VAE(Long Short-Term Memory Variational AutoEncoder)[7]等模型 通过重构误差进行异常检测。这类模型可以很好地拟合数据,当使用具有L2目标函数的LSTM 时,仍然存在过拟合问题。如果数据中包含异常,这些深度学习方法也拟合了这些异常,从而降低异常检测的性能,因此,当异常数据非常接近正常数据时,通常无法检测异常。

基于生成对抗网络(Generative Adversarial Network,GAN)的异常检测方法:首次由Schlegl等[8]提出,它针对医学图像进行异常检测,引起很多学者对GAN 进行异常检测的广泛关注。原始GAN 只是通过比较原始数据与生成数据的分布差异判定异常,导致模型需要大量的计算成本。GAN本身有着模式崩溃的问题,训练也存在困难。Dendorfer等[9]提出MG-GAN(Multi-Generator Generative Adversarial Network),使用多个生成器,避免模式崩溃同时减少了分布外的样本。GAN 虽然在异常检测中使用广泛,但是GAN 对时间序列的异常检测研究较少。

考虑到上述问题,本文提出一个基于无监督深度学习的新 型GAN结构RTGAN(Re-encoding Time series based on Generative Adversarial Network),使用具有周期一致性的多个生成器,以确保生成器能够生成多样性的样本并学习时间序列数据中的特征空间,从而使RTGAN 能够捕获给定数据的正态性。异常分数由多个生成器、再编码误差和两个鉴别器的输出计算得出。

本文的主要工作如下:

1)提出了一种新颖的基于GAN 的无监督异常检测方法。多个生成器保证生成样本多样性,在不同子空间中捕获复杂的异常模式,同时使用循环一致性,以避免冲突,并确保映射过程中的一一对应。

2)设计堆 叠LSTM-dropout RNN(Stacked Long Short-Term Memory dropout Recurrent Neural Network)作为生成器和判别器的基本模型,尽可能地捕获高度复杂的时间相关性,解决了单一LSTM 在训练过程中难以保持样本间的时间特性的问题。

3)为了提高模型的可扩展性和可移植性,引入具有LSTM-dropout RNN 的编码器进行二次编码输入数据,再编码误差作为异常评分的一部分。当生成的时间序列在第一个编码器之后再次编码时,可以获得潜在空间的差异和时间相关性。

1 相关工作

前文提到时间序列被广泛应用在多个领域,但异常数据十分稀少而且容易被忽略,有时蕴含着重要的信息。一直以来针对异常的类型、数据类型以及工业应用提出了众多异常检测方法[10-12],这些方法可以被分类为基于近似、基于预测和基于重构的方法。

基于近似值的方法 给定特征空间中的一组对象,使用距离或密度测量来量化对象之间的相似性。远离其他对象的不同对象可以被视为异常值。可以分为基于距离的方法,比如K 近邻(K-Nearest Neighbors,KNN)[13]和基于密度的方法,比如局部离群因子[14]。在时间序列中应用此方法也有2个主要缺陷:1)需要异常持续时间和异常个数的先验知识;2)基于近似值的方法无法获得时间序列相关性。

基于预测的方法 如果一个数据点的预测输入与原始输入之间的之差超过某一阈值,则将该数据点识别为异常。统计模型,如ARIMA(AutoRegressive Integrated Moving Average)[15]、Fisher Discriminant Analysis[16]可以用来对时间序列进行异常检测,但是对参数的选择极为敏感。基于机器学习的方法试图解决以上问题,Ahmad等[17]引入了HTM(Hierarchical Temporal Memory),用于实时数据流的异常检测。虽然循环神经网络(Recurrent Neural Network,RNN)可以捕捉时间序列的相关性,但是随着时间步长的增加,并不能很好地捕捉时间序列相关性,因此对上下文异常检测准确率有较大影响。

基于重构的方法 一个学习后的模型可以对一个时间序列进行编码,然后对其进行解码。重构误差可以通过原始样本和重构样本之间的差值来得到。重构误差越大表明为异常的可能性越大。主成分分析(Principal Component Analysis,PCA)[18]是最常见的数据降维的方法,将原始数据映射到低维空间后,也可以根据数据在低维空间里的坐标来重构原始数据。但是仅限于线性重构,要求时间序列数据具有高度相关性并且服从高斯分布。自编码(AutoEncoder,AE)模型与PCA 类似,但AE 使用非线性激活函数时克服了PCA线性的限制。其他基于AE 的方法,如Dai等[19]提出SDF-VAE(Static and Dynamic Factorized-Variational Auto Encoder)。这些模型通过显式地将潜在变量分解为动态部分和静态部分来学习KPI(Key Performance Indicators)表示。霍纬纲等[20]将自编码和隐马尔可夫模型相结合,提取时间序列特征,同时可以很好地表征时间序列。Schleinitz等[21]提出将异常检测和时间序列预测任务相结合的VASP(Variational Autoencoder based Selective Prediction)。然而,这些基于重构的方法容易出现过拟合,并且原始LSTM 无法捕获高度复杂的时间相关性,这将降低异常检测的准确性。原始的GAN[22]无法捕获时间相关性,于是Li等[4]提出了一种普通的GAN,它使用LSTM 作为GAN 的基础,并且生成器可以学习多元时间序列的分布。Yooh等[23]提出的TimeGAN(Time Generative Adversarial Network),可以捕获每个时间步的特征分布和关系。王静等[24]考虑到生成对抗网络训练不稳定、预测准确率不高等问题,提出EMD-WGAN(EMDWasserstein Generative Adversarial Network)模型。

本文使用生成对抗模型进行重构,并引入堆叠式 LSTMdropout RNN 作为生成器和鉴别器的基本模型捕获时间相关性。再编码误差作为异常评分的一部分并且多个生成器的重构误差可以直接作为异常评分,可以提高异常检测的性能。

2 基于时间序列重构的对抗学习

首先,针对高度复杂的相关性设计堆叠LSTM-dropout RNN 作为生成器和鉴别器的基本框架,它由多个隐藏层组成堆叠LSTM 网络并且使用了dropout 机制。其次,考虑到GAN 存在模式崩溃缺陷应用了Wasserstein 损失[25];但是,这需要更大的搜索空间。因此,使用了周期一致性损失。最后,对于正常数据经过两次编码后在潜在空间上的差异较小,然而当使用正常样本训练后检测异常数据时,潜在的空间差异往往很大。因此,使用两个编码器和一个解码器来获得重编码器的损失,扩大异常。再编码损失可以作为异常分数的一部分,以提高异常分数的准确性。

对于时间序列的无监督异常检测方法的主要思想是观察某段时间的数值是否符合正常分布,利用重构的方法检测异常。通过学习后的模型可以获得真实数据的特征,生成数据与真实数据误差较小则为正常,然而如果生成的数据与真实数据误差较大,就可以判定为异常。在RTGAN 模型中,如图1 所示,学习了2 个域x、z之间的映射,也就是ε:x→z以及g:z→x。对于正常的数据,通过编码映射到潜在空间后解码为数据,最后将数据再次编码映射到潜在空间,此时和第一次编码后在潜在空间上的差异不会特别大。

图1 RTGAN模型的框架Fig.1 Framework of RTGAN model

但是,针对异常数据时,再经历两次编码过程下潜在空间上的差距较大。为此设计了再编码结构,也就是ε:x→z。同时设置了多个生成器,确保生成样本的多样性,可以学习到多种异常模式。

生成器ε1、ε2充当编码器学习时间序列的特征,gi充当解码器,将编码后的潜在空间解码回时间序列,ε2将解码后的时间序列再次编码回潜在空间,可以通过潜在空间的差异判定异常。使用了多个生成器,保证了生成样本的多样性学习到更多的异常模式,可以提高异常检测的准确度。Dx可以区分来自真实的时间序列还是生成的时间序列,Dz判定ε1的映射能力,保障了生成器ε1可以很好地学习到时间序列的特征。为了能够处理较长的或者具有高度复杂时间相关性的时间序列,设计了堆叠LSTM-dropout RNN(如图2 所示)为生成器与判别器的基础模型。将编码器ε1、ε2和解码器G={g1,g2,…,gnum_gen}看作是生成器,ε1充当编码器将时间序列映射到潜在空间中。多个解码器G,从潜在空间重构时间序列,ε2将重构后的时间序列再次编码回潜在空间,通过学习时间序列之间的时间相关性以及潜在空间上的差异计算重构误差。

2.1 堆叠式LSTM-dropout RNN

堆叠式LSTM-dropout RNN 内部由堆叠式LSTM 网络和dropout 组成,使用多个隐藏层组成的堆叠LSTM 网络获取时间序列相关性及其特征,解决了单一LSTM 在训练过程中难以保持样本间的时间特性的问题。dropout 提高了生成对抗模型的泛化能力和鲁棒性,如图2 所示。

图2 堆叠式LSTM-dropout RNN框架Fig.2 Framework of stacked LSTM-dropout RNN

RNN 模型有梯度消失和梯度爆炸的缺陷,梯度爆炸可以采用梯度截断将超过阈值θ的梯度手动降到θ。相对于梯度爆炸,由于长期依赖的现象也会产生很小的梯度,无法通过类似此方法得到解决,如果刻意提高梯度的值将会使模型失去捕捉长期依赖性的能力。LSTM 引入了门机制用于控制特征的流通和损失,解决了长期依赖的问题。因此,LSTM 可以作为GAN 的基础模型,捕获时间序列相关性。LSTM 主要有三个门,分别是遗忘门、输入门、输出门:遗忘门决定什么样的信息需要从单元中丢弃;输入门决定输入中哪些值来更新记忆状态;输出门根据输入和单元的内存决定输出内容。在内部状态的更新中使用了遗忘门和输入门。输入门是单元实际输出什么的最后限制。正是这些门和一致的数据流被称为CEC(Constant Error Carrousel),可以保持每个单元稳定,即不产生梯度爆炸或者梯度消失。

2.2 模式崩溃

原始GAN 通过生成器与判别器优化自己的目标函数,可以看作是极大极小博弈V(D,G)。在训练过程中,生成网络G的目标就是尽可能生成真实的样本去欺骗判别网络D。而D的目标就是尽可能将G生成的样本和真实的样本区分开。V(D,G)定义如下:

为了解决这个问题,首先使用Wasserstein loss 作为对抗损失,用Wasserstein-1 距离来训练判别器。其次使用了多个生成器保证生成样本的多样性。对于映射函数gi:z→x,以及它的判别器Dx,Dx是用来区分生成样本和真实样本,衡量生成器gi的映射能力并对生成器进行惩罚,从而生成器可以生成更加真实的样本,有以下目标:

k-利普希茨(k-Lipschitz)连续条件限制了一个连续函数的最大局部变动幅度,可以减小产生梯度爆炸的风险,使模型训练更加稳定。

同样对于映射函数ε1:x→z,以及判别器Dz,有以下目标:

Dz是判定ε1将样本映射到潜在空间的能力,使ε1学习时间序列的特征,同时辨别样本是来自于随机样本z~pz还是编码后的样本ε1(x)。

2.3 周期一致性

周期一致性损失保证数据的不同域之间可以相互转换,通常用于不同风格之间的转换。目前基于重构的方法,一般学习如何将输入映射到目标空间然后根据目标空间还原输入数据。由于目标空间太大,往往增加模型的训练难度和时间,然而Wasserstein 的优化仅加快了模型的训练和避免模式崩溃。周期一致性损失恰好可以解决这个问题,它可以保证数据不同域之间的转换,因为它减小了映射空间。为此,使用最小化原始样本与重构样本之间的L2范数,训练具有自适应的循环周期一致性损失生成网络ε1,ε2,gi:

2.4 再编码

改进的再编码器将堆叠式LSTM-dropout RNN 作为编码器的基本架构,能够学习数据相关性。之前的模型架构通常对比原始数据分布与生成数据分布之间的差异并没有考虑到时间序列的相关性,当异常的数据十分接近正常数据时,这种差异很小,很容易让判别器判定为正常。使用具有堆叠式LSTM-dropout RNN 编码器针对输入进行二次编码,由于改进的再编码有捕获时间序列的相关性特征。因此,如果是异常样本经历过两次编码后潜在空间差异比较明显,可以更好地检测到异常。通过最小化输入特征ε1(x)=z与生成的时间序列的编码特征ε2(gi(x))之间的差异,可以使生成器学习如何正常样本编码成对应的潜在空间。定义如下:

结合所给的目标函数(2)~(5)可以得到最终的MinMax的目标函数:

RTGAN 整个框架如图1 所示。在异常检测方面,首先,模型中的Dx不仅可以区分真实时间序列数据和假的时间序列数据,而且会对输入的时间序列进行评分,可以直接用来判定异常;生成器可以对时间序列进行编码再解码,可以用它们的误差也就是重构误差值判定异常,RTGAN 使用了二次编码,通过对比潜在空间的差异判定异常。使用多个生成器保证生成样本多样性,可以生成各种正常样本从而降低异常检测的假阳性,同时学习到不同的异常模式。

2.5 异常分数

在现实世界中的时间序列数据往往不是连续的或者长度一致的,这给衡量两个时间序列之间的差异带来了挑战。针对这个问题,本文使用动态时间规划(Dynamic Time Warping,DTW)计算重构误差,衡量两个长度不同的时间序列的相似度。首先将其中一个序列进行线性放缩保证两个时间序列对齐,然后计算第一个时间序列的一个点与第二个时间序列中所有点之间的欧几里得距离,最后存储最小距离(称 为“时间扭 曲”)。假设x={xm-l,xm-l+1,…,xm} 为RTGAN 的输入数据为生成器生成的数据,它们之间的欧氏距离作为一个矩阵,warping 的路径会穿越这个矩阵也就是最优路径。warping 路径的第k个元素表示为wk=(i,j)k即为最小距离。两个时间序列x和的DTW 距离定义如下:

RTGAN 的重构误差为:

再编码误差Venc(ε1,gi,ε2):

使用重构误差Re(x)、再编码误差lre和判别器输出Dx(x)相结合为最后的异常分数,Re(x)和lre越大,Dx(x)越小,为异常的概率越大。本文使用z-score 标准化分别计算它们的值(ZRe(x),Zlre,ZDx(x)),然后正则化它们,越大的值表明异常的概率越大:

RTGAN 在每次迭代时,先训练判别器nd次再训练ng次生成器。在训练过程中学习率为lr,使用RMSProp(Root Mean Square Prop)优化器。

3 实验与结果分析

使用Python3.6 版本作为编程基础,用PyTorch1.9.0、Anaconda 4.10.1、cuda11.3 实现和测试。使用Ubuntu 18.04.5 LTS、Intel Xeon CPU E5-2678 v3、2 块RTX 3060 GPU、16 GB 内存的计算机上运行程序。

研究工作主要针对时间序列异常检测任务,为了检验模型的效果,选用4 个数据集:对单变量时间序列异常检测,本文使用NASA(MSL 和SMAP)提供的航天器遥测信号;对多变量时间序列异常检测,使用了CPS(Cyber Physical Systems)安全水处理和分配系统数据集(SWaT 和WADI)。

不同来源的数据集包含不同的异常,并且每个异常位置已知,表1 给出了每个数据集的细节。

表1 四个数据集的统计信息Tab.1 Statistics of four datasets

SWaT 和WADI:安全水处理系统和水分配系统数据集来自新加坡iTrust 网络安全研究中心,为多变量时间序列。SWaT 数据集中51 个变量对应有946 719 个样本,其中496 800 个样本在正常工作情况下的样本,449 919 个样本在具有攻击情况下的样本,异常比率为11.98%。WADI 数据集中127 个变量对应有5 962 172 个样本,其中5 789 371 个样本在正常工作情况下的样本,172 801 个样本在具有攻击情况下的样本。选择其中577 658 个样本作为其中的数据集,异常比率为5.99%。

SMAP 和MSL:它们是两个真实世界的公共数据集,来自NASA 专家标记的数据集。SMAP 总共有562 800 个样本只有25 个变量,异常比率为13.13%;MSL 总共有132 046 个样本只有55 个变量,异常比率为10.27%,检测异常时使用单一的变量组成的时间序列。

在SWaT 中,攻击点包括了传感器和执行器,比如压强的变化会影响水流速度和水位等,这些传感器和执行器之间有着不同的相关性,WADI 收集了这些信息并处理。随着传感器和执行器的增加,时间相关性会变得更复杂,这给时间序列异常检测带来了挑战。

这些数据集中大部分时间序列都是正常的,而异常的时间序列十分稀少,这导致数据集不平衡,从而降低异常检测的准确率。

3.1 基准模型

本文选择了7 个最新的异常检测模型作为基准模型,以比较所提出的RTGAN 模型的性能。

AutoEncoder 编码器可提取时间序列的特征,解码器可以还原时间序列数据,利用重构误差计算异常,因此将RTGAN 与具有密集层或LSTM 层的变分自动编码器进行了比较。密集层自动编码器有3 层编码器有2 层分别有60、20个隐藏单元,解码器有60 个隐藏单元。LSTM 自动编码器有三层,有256 个隐藏单元的LSTM 编码器层和有512 个隐藏单元的LSTM 解码器层。

孤立森林(Isolation Forest,IF)孤立森林是基于决策树的算法,从给定的特征集合,随机选择两个特征,通过在所选特征的最大值和最小值之间随机选择一个值来分割数据点,观察值的划分递归地重复,直到所有的观察值被孤立。根据平均路径长度来区分正常和异常数据点:较短的路径表示异常,较长的路径表示正常的观测。

OmniAnomaly[26]这是一 个结合了GRU(Gated Recurrent Unit)和VAE(Variation Auto-Encoder)的随机循环神经网络模型,通过学习多元时间序列的正常模式,并使用重构概率判定异常。

LSTM-VAE 编码器由一个LSTM 单元组成,像在VAE架构中的每个编码器一样,它会产生一个2D 输出用于逼近潜在分布的平均值和方差。解码器从二维潜在分布上采样,形成三维序列。然后将生成的序列与通过LSTM 单元传递的原始分类嵌入序列连接回去,以重建原始的流量序列,根据重构误差和判别结果检测异常。

MAD-GAN 它使用了深度为3 和100 个隐藏(内部)单元的堆叠LSTM 网络。鉴别器是相对简单的LSTM 网络,具有深度1 和100 个隐藏单元,支持多元时间序列重构。

DAGMM 网络结构分为压缩网络和估计网络。压缩网络是一个常规的自编码。通过压缩网络可以得到前面提到的两部分关键信息:一个是中间隐藏层特征(低维空间特征信息),一个是由输入向量和输出向量计算得到的重构误差。

英语演讲选修课的开设,发展了学生的英语应用能力和批判性思维能力,强化了学生的人际沟通能力和演讲技巧,培养了学生的跨文化交际意识和自主学习能力。英语演讲课不只是一门语言应用类课程,也是拓宽知识、了解世界文化的素质教育课程,兼具工具性和人文性。[4]演讲课教学以学生为主体,注重学习过程。这种教学模式的改变实现了从以教师为中心、单纯传授语言知识和技能的教学思想向以学生为中心、既传授语言知识与技能,更注重培养语言实际应用能力和自主学习能力的教育思想的转变。

USAD 基于重构的无监督方法,USAD 结构由3 个部分组成,1 个编码器和2 个解码器,共享同一编码器网络的两个自动编码器AE1 和AE2 组成的架构,该模型被用来获得异常得分,如果异常分数高于选定的异常阈值,则判定为异常。

3.2 实验结果与分析

对每个模型选择合适的阈值用于判定异常,并且给出了每个模型的最优F1 值。表2 中描述了在公共数据集上的所有模型的结果(最优结果用粗体标记)。在整体性能上RTGAN 超越了其他的无监督方法,在所有的公共数据集中获得了最高的平均F1 值(0.815)。

表2 异常检测的F1值对比Tab.2 Comparison of F1-scores for anomaly detection

为了检查异常检测的准确性,在4 个数据集中集成了145 个异常,其中式(10)中的异常分数被用于检测异常。最后发现RTGAN 模型检测到143 个异常(如图3 所示),而USAD 检测到123 个异常,意味着总体性能上看,RTGAN优于USAD。本文在NASA 数据集上(SMAP、MSL)测试了RTGAN 的收敛性,在训练和测试时使用了SMAP 和MSL 数据集上的平均损失,如图4 所示,当训练到70 次左右收敛。在时间开销上,机器学习方法异常检测速度比深度学习的方法快,虽然RTGAN 在训练集和测试集上消耗了较多的时间,但是获得了最优的性能,随着硬件设备的快速发展,耗时的问题带来的影响会更小。

图3 4个数据集组成的样本上的异常检测情况Fig.3 Anomaly detection on samples consisting of four datasets

图4 NASA数据集上的收敛结果Fig.4 Convergence results on NASA datasets

在时间序列分析中,往往通过信噪比(Signal-to-Noise Ratio,SNR)检测模型的健壮性,使用不同信噪比的高斯噪声加入到原始时间序列中,所有数据集上的最优性能平均F1 值实验结果如表3 所示,其中噪声对LSTM-VAE、USAD、OmniAnomaly 的影响较大,RTGAN 虽然随着信噪比的增加性能在逐渐下降,但是仍然明显优于其他模型。

表3 在原始数据中加入不同的SNR噪声时的平均F1值Tab.3 Average F1-scores when adding noise at different SNR to original data

1)多变量时间序列SWaT 和WADI。在SWaT 数据集中,RTGAN 的平均F1 值比传统的方法IF(0.738)高出15.58%,对比USAD(0.846)表现出最佳的性能。在WADI 数据集中,RTGAN 比MAD-GAN 降低了1.13%,但胜过了DAGMM(0.201)、IF(0.315)、LSTM-VAE(0.38)和AE(0.354),比USAD(0.43)高出43.49%。从表2 可以得出RTGAN 在SWaT和WADI 数据集上的最佳的总体平均性能(0.735),相较于MADGAN(0.717)和 USAD(0.638)提高了 2.51% 和26.36%。

2)单变量时间序列SMAP 和MSL。RTGAN 在SMAP 和MSL 数据集上都获得了最好的性能。在SMAP 数据集上,RTGAN 比MAD-GAN(0.381)和IF(0.473)更优,高出LSTMVAE(0.684)25.88%,相较于USAD(0.817)的平均F1 值高出5.39%,同时优于OmniAnomaly。在MSL 数据集上,RTGAN 远优于MAD-GAN,并且MAD-GAN 在MSL 数据集上表现最差平均F1 值仅有0.124,同时RTGAN 的性能明显优于AE(0.483)而且分别高出LSTM-VAE(0.579)、IF(0.612)60.10%和51.47%。从表2 中可以看出RTGAN 在SMAP 和MSL 数据集上表现最优性能,同时在总体F1 均值上也比其他的基准模型都优秀。MAD-GAN 与RTGAN 完全相反,不管单从SMAP、MSL 还是在总体性能方面,表现都最差。

3.3 消融实验

在计算重构误差时发现相乘比相加效果更优,在所有的计算重构误差方法中DTW 效果更好,因此使用DTW 计算重构误差和式(10)计算最后的异常分数,本文对RTGAN 进行了以下消融研究:生成器的数量、再编码误差、堆叠LSTMdropout RNN 的时间相关性。在图5 中,在所有基准数据集上测试了RTGAN 总体性能,针对不同的生成器的数量(1~6)使用了再编码误差、堆叠LSTM-dropout RNN 以及它们的结合。

生成器数量 RTGAN 在多变量和单变量时间序列上多个生成器能够捕捉到不同的模式,避免模式崩溃,保证了生成样本的多样性,对于不同类型的异常都能够学习到其潜在空间分布。在图5 中可以看到,当生成器数量为4 时,其性能在所有的变种中都获得了最好的性能,当生成器数量增加,性能随之降低,当仅使用再编码误差(Velocity Encoding,Venc)生成器数量为4 时相对于生成器为5 时提高了10.09%的性能,同时从各个变种来看,随着生成器数量从1 增加到4,性能有着提高的趋势,从5 到6 反而逐渐下降。

堆叠式LSTM-dropout RNN 在图5 中可以得出使用了堆叠LSTM-dropout RNN 的性能都明显优于(1 到6 个生成器)未使用堆叠式LSTM-dropout RNN(Without stacked LSTMdropout RNN),尤其是最优情况下(生成器数量为2)高出13.55%,在生成器数量为4 时高出11.21%,由于GAN 生成的数据可能会忽略掉时间序列相关性,而RTGAN 采用了堆叠的LSTM-dropout RNN 可以很好地避免这类问题,明显提高了异常检测的性能。

再编码误差 使用再编码误差(Venc),以往通过比较数据分布差异检测异常,而再编码误差是通过潜在空间中的差异,可以在图5 中看出在通过加入再编码误差即在潜在空间上的误差和时间相关性提高RTGAN 异常检测的性能,对于没使用再编码误差(Without Venc)相比最优情况下(生成器数量为4)提高了3.3%,说明考虑到潜在空间上的差异和时间相关性对RTGAN 异常检测的性能有所提高。

图5 生成器数量为1~6时,各个变种在所有基准数据集上的总体F1值Fig.5 Overall F1-scores of each variant on all benchmark datasets when the number of generators is from 1 to 6

结合(Combined)方法 同时使用再编码误差和堆叠式LSTM-dropout RNN。在图5 中,当生成器数量为4(平均F1 值为0.815)时,组合方法达到最佳结果。如图6 所示,结合的方法分别比单独使用重编码器和堆叠LSTM-dropout RNN 时的结果高出6.68%和3.95%。当生成器数量为5 时,结果比单独使用重编码器高出12.57%,比堆叠式LSTM-dropout RNN 的结果高出5.87%。

图6 结合方法超越仅使用再编码器、堆叠式LSTM-dropout RNN方法F1的比率Fig.6 Performance improvement ratio of combined model versus only using re-encoder,stacked LSTM-dropout RNN respectively

4 结语

本文针对单变量时间序列和多变量时间序列进行异常检测,并提出基于重构的无监督学习模型RTGAN。本文针对时间序列相关性引入了堆叠式LSTM-dropout RNN,通过实验表明它提高了异常检测的性能。引入了改进的具有堆叠式LSTM-dropout RNN 编码器,对输入进行二次编码,考虑到了潜在空间误差和时间相关性,同时也引入了多个生成器不仅避免模式崩溃,还可以保证生成样本的多样性,利用多个生成器的重构误差均值计算异常分数。在CPS 和NASA 数据集上,为了评估本文的模型,通过对比其他模型发现RTGAN 获得了最好的总体性能(最高F1)0.815。

由于生成对抗网络(GAN)的对抗训练不稳定性,训练时往往导致模式崩溃或者判别器与生成器不平衡,因此设计一个训练稳定的GAN 模型很有挑战。同时,时间序列异常检测的准确率对滑动窗口大小的选择十分敏感。这都是基于重构方法的困难课题。未来工作中,将研究这些问题,探索其他重构误差的方法对异常检测的影响。

猜你喜欢
编码器重构编码
长城叙事的重构
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
北方大陆 重构未来
Genome and healthcare
基于FPGA的同步机轴角编码器
北京的重构与再造
基于PRBS检测的8B/IOB编码器设计
论中止行为及其对中止犯的重构