CN115185937A - 一种基于sa-gan架构的时间序列异常检测方法 - Google Patents
一种基于sa-gan架构的时间序列异常检测方法 Download PDFInfo
- Publication number
- CN115185937A CN115185937A CN202210819480.9A CN202210819480A CN115185937A CN 115185937 A CN115185937 A CN 115185937A CN 202210819480 A CN202210819480 A CN 202210819480A CN 115185937 A CN115185937 A CN 115185937A
- Authority
- CN
- China
- Prior art keywords
- data
- abnormal
- gan
- training
- threshold value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于SA‑GAN架构的时间序列异常检测方法,包括以下步骤:S1、建立SA‑GAN模型;S2、对输入数据进行处理,得到处理后的数据;S3、利用步骤S2中得到的处理后的数据对步骤S1得到的SA‑GAN模型进行训练,训练完成后,得到训练好的SA‑GAN模型;S4、将待测数据输入到步骤S3中得到的训练好的SA‑GAN中,利用重构误差和判别误差计算综合异常得分,设定阈值,并与阈值做比较,大于阈值的即可初步断定为是异常流量,然后对异常流量进行异常裁剪,最终得到异常数据。本发明能够提供稳定的梯度信息,稳定性和健壮性较强,对各种状态序列数据有较强的泛化能力,具有较好的数据异常检测性能。
Description
技术领域
本发明属于数据分析技术领域,具体涉及一种基于SA-GAN架构的时间序列异常检测方法。
背景技术
随着科学技术和制造工艺的迅猛发展,网络信息系统、工业生产系统越来越呈现出规模大型化、功能智能化和控制复杂化的特点。然而,复杂系统中任何环节出现故障都会影响整个系统的安全和稳定,如不及时发现处理,可能会引发严重后果甚至灾难。如何能在故障萌芽之初就及时检测出系统的异常,发现系统的早期微小故障,是保障系统正常运行的关键问题。然而,面对状态随机、故障偶发的复杂系统以及多源异构、海量高维、缺少标签的非平衡状态数据,传统的异常检测技术不仅无法充分提取数据中隐含的逻辑关系和异常特征,甚至连精确的数学模型和完备的专家知识库都难以构建。
深度学习具有优异的表征能力,能够从原始数据中自动学习提取特征,摆脱了人工设计特征的困境,最早应用在图像识别和自然语言处理领域并取得显著成绩,在时间序列异常检测领域虽然起步较晚,但随着深度学习技术的不断发展,越来越多的研究人员在各自领域提出利用神经网络模型对设备状态数据表现的特征进行研究和分析,从而实现系统健康监测和异常识别。但这种粗粒度的会话级检测方法,不能实现对异常状态的先期发现,实际的设备状态数据中异常样本稀少,给异常样本特征的提取工作带来很大的挑战。另外,由于进行异常判定的门限通常是人工设计,不科学的阈值会导致较高的误报率和漏检率,因此对工程人员的专业水准和操作经验要求较高。但对于复杂多维时间序列,尤其是对于有多个关键绩效指标(KPI,key performance indicator)的多维状态数据,很难由人工进行统一的阈值设定。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于SA-GAN架构的时间序列异常检测方法。
为实现上述目的,本发明采用的技术方案是:
一种基于SA-GAN架构的时间序列异常检测方法,包括以下步骤:
S1、建立SA-GAN模型;
S2、对输入数据进行处理,得到处理后的数据;
S3、利用步骤S2中得到的处理后的数据对步骤S1得到的SA-GAN模型进行训练,训练完成后,得到训练好的SA-GAN模型;
S4、将待测数据输入到步骤S3中得到的训练好的SA-GAN中,利用重构误差和判别误差计算综合异常得分,设定阈值,并与阈值做比较,大于阈值的即可初步断定为是异常流量,然后对异常流量进行异常裁剪,最终得到异常数据。
优选的,步骤S1中,所述SA-GAN模型由两组生成对抗网络构成,SA-GAN模型的具体建立步骤为:
S11、将注意力机制嵌入到其中一个判别器C1中,真实时间序列x输入判别器C1中,判别器C1将具有辨别力的特征区域生成注意力图谱Aθ(x);
S12、在生成器G1完成Z→X的映射时,将判别器C1生成的注意力图谱Aθ(x)迁移到生成器G1;
S13、真实时间序列x输入普通判别器C2中,在生成器G2完成X→Z的映射时,普通判别器C2将输入的时间序列x迁移到生成器G2;
S14、利用最小化原始流量样本和重构流量样本之间差异的L2范数,对生成器G1和G2实现同步训练,结合所有训练目标,得到SA-GAN模型,表达式为:
其中,λ、γ、μ为各损失函数的权值,λ+γ+μ=1。
优选的,步骤S2中,所述输入数据处理包含以下步骤:
S21、利用数据清洗技术,对输入数据进行清洗,得到清洗后的数据;
S22、将清洗后的数据进行文本数值化,得到数值化数据;
S23、将数值化数据进行归一化处理,得到归一化数据;
S24、将归一化数据利用滑动窗口技术进行子序列划分,得到处理后的数据。
优选的,步骤S3中,所述SA-GAN模型的训练方法如下:
S31、利用z~PZ中的样本作为输入,对判别器C2进行训练,同时利用x~PX中的样本作为输入,对判别器C1进行训练训练,判别器C1生成注意力图谱;
S32、对生成器G1和G2同时进行训练;
S32、在训练过程中,采取循环嵌套的方法,对判别器C1和C2以及G1和G2进行训练,并引入梯度惩罚项,判别器C1和C2利用生成数据和真实数据交替采样来计算梯度惩罚项,对生成器G1和C2进行训练;
S33、当判别器C1和C2无法分辨出输入的样本来自于真实环境还是生成器G1和G2,则SA-GAN模型训练完成。
优选的,步骤S4具体包含以下步骤:
S43、将重构误差异常得分和判别误差异常得分利用Z-Score标准化方法做标准化处理,将处理结果进行凸组合,得到综合异常得分;
S44、采用滑动窗口自适应阈值技术设定阈值;
S45、将滑动窗口内的综合异常得分与阈值做比较,综合异常得分大于阈值的判定为异常流量子序列,连续的异常流量子序列组成异常流量序列;
S46、根据自适应异常修剪方法对异常流量进行异常裁剪,最终得到异常数据。
优选的,步骤S46具体包含以下步骤:
(2)将验证集数据输入训练好的SA-GAN模型中,利用超参数搜索方法使验证集异常检测性能指标F1值达到最大时的裁剪速率阈值p;
本发明与现有技术相比,其有益效果在于:
(1)本发明将注意力机制融合到判别器中,并将计算的结果迁移到生成器,使生成器对状态数据中的关键特征区域给予更高的权重,使状态数据中的特征尽可能多的得以保留,有利于生成更加逼真的状态数据;
(2)本发明为保证重构样本与原始样本的一致性,通过使用改进的cycleconsistency loss,作为生成器的重构约束,使生成数据尽量拟合原始数据的特征;
(3)不同于早期注意力机制会增加额外的计算开支,本发明提供的TA-GAN是一种轻量级的模型,不需要提供单独的注意力网络或监督信息,可以有效地平衡了特征取舍与计算消耗的矛盾,此外由注意力指导的生成器,具有更强的生成能力,有利于增强模型的鲁棒性。
(4)本发明采用自适应的门限设置技术,无需要人工设定阈值,可更好地适应多KPI状态数据的检测需求;
(5)本发明利用时间窗口划分出状态数据的子序列,提升模型训练与检测的时效性,实现异常的发期发现;自适应的异常判定及裁剪方法,可以提升模型对时间序列异常检测的效果。
附图说明
图1为本发明实施例中的SA-GAN模型的基本结构图;
图2为本发明实施例提供的时间序列异常检测方法的流程框图;
图3为本发明实施例中的滑动窗口划分时间子序列的示意图;
图4为本发明实施例中利用滑动窗口计算阈值的示意图;
图5为本发明实施例中利用自适应阈值法初步筛检出的异常数据图;
图6为本发明实施例中各序列中最大异常得分降序排列以及最大异常得分下降速率排列图;
图中,图6(a)为最大异常得分降序排列图,图6(b)为最大异常得分下降速率图;
图7为各模型异常检测的F1值对比图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图2所示,本发明实施例提供了一种基于SA-GAN架构的时间序列异常检测方法,具体包括以下步骤:
S1、建立SA-GAN模型,如图1所示,所述SA-GAN模型由两组生成对抗网络构成,SA-GAN模型的具体建立步骤为:
S11、将注意力机制嵌入到其中一个判别器C1中,真实时间序列x输入判别器C1中,判别器C1将具有辨别力的特征区域生成注意力图谱Aθ(x),具体为:
对于给定的输入流量X,将其线性投影到三个不同的空间分别得到查询向量Q,键向量K,值向量V,如下式:
其中,Wq、Wk、Wv是模型训练过程中学习到的参数,初始时给它们随机赋予相同的值,训练时可以随着反向传播而调整;
利用Q、K、V找到每个特征与其他特征之间的相关性系数,即每个特征计算出一个权重,根据权重加权的结果来说明每个特征与哪一个特征之间关联最大,通过学习这些关注值来表示状态数据特征的深层相互关系,并形成注意力图谱,如下式:
Aθ(X)=O(Q,K,V)
融合了自注意力机制的判别器C1,除了完成真假辨别之外,还可根据输入数据特征对分类贡献的大小,分别赋予不同的注意力值,即当真实时间序列x输入到判别器C1,C1就可以将一些具较高辨别力的特征区域生成注意力图谱Aθ(x)。将生成的注意力图谱迁移到生成器G1,以帮助其将输入数据z映射到新生成样本z′时,聚焦于最具辨别力的部分,而对于非重要特征则进行抑制,这种方法可以减少运算开支,并获得更加逼真的样本。
z′=G1(zα)=G1(Aθ(x)⊙z)
其中,zα是加入注意力的输入样本;
S12、在生成器G1完成Z→X的映射时,将判别器C1生成的注意力图谱Aθ(x)迁移到生成器G1,促使生成器对贡献大的关键特征给予更多关注,它们的Wasserstein目标公式可表示为
S13、真实时间序列x输入普通判别器C2中,在生成器G2完成X→Z的映射时,普通判别器C2将输入的时间序列x迁移到生成器G2,则Wasserstein目标公式可表示为
S14、本发明构建SA-GAN的目的是为了重构输入的时间序列,但是仅仅使用对抗损失,不能保证将单个输入映射到期望的输出,因此我们又引入了Cycle Consistency Loss,表达式为:
通过利用最小化原始流量样本和重构流量样本之间差异的L2范数,对生成器G1和G2实现同步训练,结合所有训练目标,得到SA-GAN模型,表达式为:
其中,λ、γ、μ为各损失函数的权值,λ+γ+μ=1,关于λ、γ、μ的取值,可采用控制变量法固定其他参数,对比λ、γ、μ不同取值时的实验结果,模型在验证集上的检测效果取得最佳时确定。
S2、现实环境中产生的状态数据是不完整、不一致的,为确保SA-GAN异常检测模型的训练及异检测结果的客观性和准确性,需要对原始输入数据进行处理,主要由数据预处理和子序列划分2个处理过程,数据预处理是为保证数据的可读性和统一性而进行的状态数据清洗、文本数值化、数据切分、数值归一化等操作,对于较大的状态数据即使被分为训练集、验证集和测试集,这些数据序列仍然非常长,直接输入SA-GAN模块进行运算会导致训练时间增加、参数更新缓慢、计算开支过度消耗等问题,因此,本发明对各状态数据序列集再利用滑动窗口技术进行子序列划分,以保证训练与检测的准确率和时效性,然后得到处理后的数据,所述输入数据处理包含以下步骤:
S21、传感器从真实环境中获取的状态数据或日志数据中可能会存在重复或残缺的无效数据,需要利用数据清洗技术,对这些冗余和缺失的输入数据进行清洗,得到清洗后的数据;
S22、原始状态数据的属性特征值并不完全是数字,还有部分是文本信息,因此需要将清洗后的数据进行文本数值化,即将这些文本转换成相应的离散数值以便参与运算得到数值化数据;
S23、不同属性数据的量纲不同,特征向量的取值范围也不尽相同,差异较大时会影响检测结果,需要对数值化数据进行归一化处理,使数据分布在设定的区间内,得到归一化数据;
S24、将归一化数据利用滑动窗口技术进行子序列划分,得到处理后的数据;
滑动窗口划分时间子序列如图3所示,利用窗口大小为w、步长为s的滑动窗口对长度为T的M维特征时间序列进行子序列划分,可得到,其中为子序列的个数。滑动窗口的大小与步长应根据被划分数据集规格及运算设备的性能来综合考虑。过大过密的子序列会对设备内存带来很大压力,而读取过小过密的子序列需要频繁进行内部通信;另外过于稀疏的子序列会影响模型对数据相关性的挖掘,关于滑动窗口及滑动步长的设定应根据实验结果调整优化确定;
S3、利用步骤S2中得到的处理后的数据对步骤S1得到的SA-GAN模型进行训练,训练完成后,得到训练好的SA-GAN模型,所述SA-GAN模型的训练方法如下:
S31、由于GAN结构的网络需要进行异步训练,因此SA-GAN模型的对应了2个异步的训练过程,它们都有各自的损失函数及优化器。由于GAN的判别器在训练阶段,只涉及到自身,因此可以直接利用z~PZ中的样本作为输入,对判别器C2进行训练,同时利用x~PX中的样本作为输入,对判别器C1进行训练,此时判别器C1生成注意力图谱;
S32、而生成器G1需要用到生成器G2的输出结果作为输入,因此需要对生成器G1和G2同时进行训练;
S32、在训练过程中,为确保判别器产生有效的注意力图谱,采取循环嵌套的方法,生成器每训练一次,判别器先训练几次,对判别器C1和C2以及G1和G2进行训练,为满足利普希茨连续条件,WGAN引入梯度惩罚项来限制梯度变化范围,判别器C1和C2利用生成数据和真实数据交替采样来计算梯度惩罚项,对生成器G1和G2进行训练,这种训练方法可以使判别器更加″温和″地训练生成器,实现过程如下表1所示;
S33、当判别器C1和C2无法分辨出输入的样本来自于真实环境还是生成器G1和G2,则SA-GAN模型训练完成;
S4、将待测数据输入到步骤S3中得到的训练好的SA-GAN中,因为SA-GAN完全学习到正常数据的真实分布,能够很好地完成正常状态数据的重构,因此当测试数据中存在异常数据时,生成器不能进行能效重构,此时将会产生较大的生成误差和判别误差,利用重构误差和判别误差计算综合异常得分,设定阈值,并与阈值做比较,大于阈值的即可初步断定为是异常流量,然后对异常流量进行异常裁剪,最终得到异常数据,步骤S4具体包含以下步骤:
S41、将待测数据子序列M为子序列长度,输入到步骤S3中得到的训练好的SA-GAN中,生成对应重构序列根据xi与中各样本之间的差异计算子序列的重构误差异常得分,由于相邻样本之间在采样时存在着时间间隔,因此,对于等间隔样本的子序列只需要考虑各样本特征值的差异,而对于非等间隔的子序列还需要考虑持续时间因素,为此设计出点差异和面差异。
点差异是等间隔情况下的输入子序列与重构子序列中各样本在对应维度特征值差异的总和,计算方法为
面差异是非等间隔条件下的输入子序列与重构子序列中各样本维度特征在时间邻域[-l,l]上面积差值的总和,计算方法为
相对于点差异,面差异更适合发现较长时间段中存在微小差别的区域。点差异也可以认为是特殊的面差异,因此本发明使用面差异作为计算重构误差异常得分的方法。
S42、将判别器C2输出的xi与之间的判别误差直接作为判别误差异常得分。普通GAN的判别器完成″是″与″否″的二分类任务,而WGAN输出的是Wasserstein距离,表示真实数据或生成数据的″距离″,属于回归任务,因此训练好的SA-GAN输出的判别误差可以直接作为生成数据与输入数据的异常性度量,即
Score(xi)=αZRe(xi)+(1-α)ZDd(xi)
当异常得分超过阈值时,即可判定输入数据中存在异常其中,α∈(0,1)为控制两项的相对重要性的参数,α的取值可根据验证集在训练好的模型上的检测结果达到最优时来确定。
根据子序列的异常得分Score(xi),使用阈值法即可判断该子序列是否存在异常。传统的阈值法由人工设定阈值,对人员技术经验的依赖性较高,且容易出现较高的误报率,因此本发明采用滑动窗口自适应技术来确定阈值。
S44、采用滑动窗口自适应阈值技术设定阈值,滑动窗口自适应阈值技术是把每个流量子序列的异常得分排列成一维序列计算每个滑动窗口内异常得分的均值和均方差σ,按照″拉依达准则″将该窗口的阈值设置为均值加3个均方差,如图4所示。因此每个滑动窗口都有自己的阈值,第N个滑动窗口的阈值可表示为滑动窗口wa的大小决定了计算设定阈值所需异常得分的个数,步长la的大小决定异常检测的精细度,结合定位需求及运算开支,一般将步长设置为窗口的十分之一,即la=wa/10。
S45、将滑动窗口内的综合异常得分与阈值做比较,综合异常得分大于阈值的判定为异常流量子序列,连续的异常流量子序列组成异常流量序列;
如图5所示,初步异常筛检后,共检测出6个异常得分超过阈值的子流量序列A、B、C、D、E、F,这6个子序流量列共组成5个异常流量序列,其中,A、B、E、F子流量序列分别成为一个异常流量序列,C、D这2个连续子序列组成一个异常流量序列。由此可见,每个异常流量序列的大小不定,可能只有1个子流量序列构成,也可能由多个连续的子流量序列组成。
S46、利用滑动窗口划分时序子流量序列进行异常检测的方法,可使每条流量样本出现在多个子流量序列中并被多次检测,这有助于发现细微异常。但对于一些由噪声引起的偏差经过多次叠加放大,也可能被判别为异常,因此滑动窗口划分流量的方法虽然可以提高异常流量的召回率,但也可能带来较高的误报率,因此需要对初步筛检到的异常结果进行取舍,根据自适应异常修剪方法对异常流量进行异常裁剪减少误报,最终得到异常数据;
步骤S46具体包含以下步骤:
(2)将验证集数据输入训练好的SA-GAN模型中,利用超参数搜索方法使验证集异常检测性能指标F1值达到最大时的裁剪速率阈值p;
图6(a)为各序列中最大异常得分降序排列后的情况,图6(b)为最大异常得分下降速率的情况。从图6(b)中可以看出,速率超过裁剪阈值的有A和C共2个序列,但是由于B序列的异常得分下降速率已经降到阈值以下,因此B以及其后的所有序列(包括C序列)均重新划归为正常。这种方法可直观地理解为异常值大且变化剧烈的序列是真正异常的可能性较大;而对于异常值较大但变化平缓的,可能是由于存在新的未被学习过的正常数据,导致模型不能很好地拟合,从而给出较大的异常得分,对于这种情况在异常裁剪时可以被重新划归为正常。
下面进行实验与结果分析
(1)数据集设计
为了评判SA-GAN的性能,本发明在多个时间序列数据集上进行了评估测试,本发明使用了包括网络流量数据集NSL-KDD,UNSW-NB15以及CICIDS-2017在内的4个公开网络异常流量检测数据集;NASA提供的航天器遥测信号数据,包括火星科学实验室(MSL)和土壤水分湿度监测数据集(SMAP);还有Numenta异常检测基准(NAB)中的3个数据集TRAF、TWEETS和AWS,如下表2所示。
表2时间序列数据集
表2汇总了每个数据集的基本信息,包括样本总体数量和异常样本数量,流量中的特征数及引起异常攻击的种类数,由于每个数据集都各有特点,使我们的异常检测工作更具挑战性,同时也帮助我们确认模型的有效性和局限性。
(2)实验设置
1、数据准备
对于每个时间序列数据集,首先按照本发明数据设计的方法进行规范化处理。随机抽取正常状态数据的60%作为训练集,剩余的正常数据以及异常数据各随机抽取一半,分别作为验证集和测试集,设置滑动窗口大小=256,步长=2对各数据集进行划分,以获得TA-GAN的输入流量样本。
2、网络结构
本发明实验中,输入到SA-GAN模型的时间序列长度为256,生成器G1和G2采用LSTM结构,输入层神经元个数为256,G1隐藏单元为128,G2的隐藏单元为64,判别器C1和C2也采用LSTM结构,并在最后添加了全连接的分类层,Batch_size为256,Max epoch为2000,学习率rate为0.0001。
3、评估指标
在实际网络场景中,单纯的点异常是很少出现且对网络性能的影响基本可以忽略,由攻击引起的异常是连续,因此本文主要针对连续的异常序列进行判断,并提出以下3个窗口规则:
1)如果已知的异常窗口与任何预测窗口重叠,则记为TP。
2)如果已知的异常窗口不与任何预测窗口重叠,则记为FN。
3)如果预测窗口不与任何已知的异常区域重叠,则记为FP。
本发明使用Precision、Recall和F1值等指标来衡量检测方法的性能,其数学表达式如下式所示:
其中,Precision为检测的精确率,表示计算检测到异常序列中有多少是真正的异常,Recall为召回率,表示在原始实际序列的异常有多少样本被正确的识别出来,F1值为精确率和召回率的调和平均数,兼顾模型的精确率和召回率。
4、对比模型
为验证SA-GAN模型检测的有效性,选取MAD-GAN算法和DAGMM算法2种典型的基于重构的异常检测方法作为对比。MAD-GAN利用普通的GAN结构在潜在空间中以最优的搜索策略来支持多元时间序列重建,利用重构误差和判别误差作为目标函数进行训练和检测。DAGMM利用深度自编码压缩网络得到输入的低维表示,并将这个低维表示,与输入和重构输出的重构误差拼接作为估计网络的输入,该算法将降维过程和密度估计过程进行联合训练,最终在高斯混合模型(GMM)的框架中预测它们的似然。
(3)异常检测结果
对比MAD-GAN、DAGMM和SA-GAN模型在公开数据集上的检测性能,其中DAGMM利用带有类注意力机制自编码网络,将输入样本的关键信息映射到一个低维空间,再将降维过程和密度估计过程结合在一起训练,并利重构误差判断原输入样本中是否存在异常。MAD-GAN是两样是利用循环神经网络作为生成器,捕获数据中的时间相关性,并利用生成误差和判别误差作为评判异常的依据,不同于SA-GAN的是MAD-GAN没有注意力机制,只是利用的循环神经网络来发发掘数据中的特征相关性,各模型在测试数据集的表现结果如下表3所示。
表3各异常检测模型性能比较
图7为三个模型在各数据集上的F1得分,通过图7可以看出,SA-GAN在7个数据集的检测性能均表现良好,且在KDD99、SMAP、MSL这3个数据集上的精确率、召回率及F1值均为最高,并且在6个数据集上的总评性能最好。MAD-GAN在4个数据集上的F1值总评最低,可能是由于MAD-GAN本来是为时间序列设计的异常检测模型,不太适合捕捉的时间序列异常特征,并且MAD-GAN单生成对抗网络结构,相比具有双生成对抗网络结构的SA-GAN模型,异常检测性能更差;DAGMM在总体性能优于MAD-GAN但弱于本发明的SA-GAN检测方法,说明SA-GAN不仅具有出色的检测性能,尤其是在SMAP和MSL上的异常检测准确率接近90%,能为设备运维和诊断工作提供非常有益的信息支持。SA-GAN整体的优异表现也说明,它对于未知异构的状态序列数据也具有较强的适用性和泛化能力。
综上所述,本发明实施例提供的基于SA-GAN架构的时间序列异常检测方法,在GAN中引入注意力机制,使判别器在完成正确判别同时,还可输出判别器为实现正确分类而重点关注的特征重要性图谱,该图谱可以指导生成器更高率的完成对原始流量样本的重构,这对生成网络的约束使模型更加鲁棒有利于减少过拟合。使用对抗损失和CycleConsistency Loss训练G1和G2两个生成器,有利于快速收敛。使用Wasserstein距离作为模型拟合分布与输入样本数据真实分布的差异性度量,可有效避免传统方法利用f散度训练时存在的″梯度失稳″和″模式崩溃″风险;利用滑动窗口将时间序列划分为多个子序列,有利于发现序列中上下文异常;使用滑动窗口自适应的阈值设定方法,有助于提升异常序列的召回率;使用″去缓″的裁剪技术,对异常得分变化小的时间子序列做″纠正″处理,提升了异常判定的准确率。而且通过对比SA-GAN、DAGMM和MAD-GAN这3种异常检测模型在KDD99、NSL-KDD、SMAP、MSL、TRAF、TWEETS和AWS这7个时间序列数据集上的异常检测性能可知,基于SA-GAN的时间序列异常检测模型能够提供稳定的梯度信息,有着较强的稳定性和健壮性、对各种状态序列数据有较强的泛化能力,对数据中异常检测性能较其它基于重构的检测方法有明显的提升。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (6)
1.一种基于SA-GAN架构的时间序列异常检测方法,其特征在于,包括以下步骤:
S1、建立SA-GAN模型;
S2、对输入数据进行处理,得到处理后的数据;
S3、利用步骤S2中得到的处理后的数据对步骤S1得到的SA-GAN模型进行训练,训练完成后,得到训练好的SA-GAN模型;
S4、将待测数据输入到步骤S3中得到的训练好的SA-GAN中,利用重构误差和判别误差计算综合异常得分,设定阈值,并与阈值做比较,大于阈值的即可初步断定为是异常流量,然后对异常流量进行异常裁剪,最终得到异常数据。
2.根据权利要求1所述的基于SA-GAN架构的时间序列异常检测方法,其特征在于,步骤S1中,所述SA-GAN模型由两组生成对抗网络构成,SA-GAN模型的具体建立步骤为:
S11、将注意力机制嵌入到其中一个判别器C1中,真实时间序列x输入判别器C1中,判别器C1将具有辨别力的特征区域生成注意力图谱Aθ(x);
S12、在生成器G1完成Z→X的映射时,将判别器C1生成的注意力图谱Aθ(x)迁移到生成器G1;
S13、真实时间序列x输入普通判别器C2中,在生成器G2完成X→Z的映射时,普通判别器C2将输入的时间序列x迁移到生成器G2;
S14、利用最小化原始流量样本和重构流量样本之间差异的L2范数,对生成器C1和G2实现同步训练,结合所有训练目标,得到SA-GAN模型,表达式为:
其中,λ、γ、μ为各损失函数的权值,λ+γ+μ=1。
3.根据权利要求1所述的基于SA-GAN架构的时间序列异常检测方法,其特征在于,步骤S2中,所述输入数据处理包含以下步骤:
S21、利用数据清洗技术,对输入数据进行清洗,得到清洗后的数据;
S22、将清洗后的数据进行文本数值化,得到数值化数据;
S23、将数值化数据进行归一化处理,得到归一化数据;
S24、将归一化数据利用滑动窗口技术进行子序列划分,得到处理后的数据。
4.根据权利要求1所述的基于SA-GAN架构的时间序列异常检测方法,其特征在于,步骤S3中,所述SA-GAN模型的训练方法如下:
S31、利用z~PZ中的样本作为输入,对判别器C2进行训练,同时利用x~PX中的样本作为输入,对判别器C1进行训练,判别器C1生成注意力图谱;
S32、对生成器G1和G2同时进行训练;
S32、在训练过程中,采取循环嵌套的方法,对判别器C1和C2以及G1和G2进行训练,并引入梯度惩罚项,判别器C1和C2利用生成数据和真实数据交替采样来计算梯度惩罚项,对生成器G1和C2进行训练;
S33、当判别器C1和C2无法分辨出输入的样本来自于真实环境还是生成器G1和G2,则SA-GAN模型训练完成。
5.根据权利要求1所述的基于SA-GAN架构的时间序列异常检测方法,其特征在于,步骤S4具体包含以下步骤:
S43、将重构误差异常得分和判别误差异常得分利用Z-Score标准化方法做标准化处理,将处理结果进行凸组合,得到综合异常得分;
S44、采用滑动窗口自适应阈值技术设定阈值;
S45、将滑动窗口内的综合异常得分与阈值做比较,综合异常得分大于阈值的判定为异常流量子序列,连续的异常流量子序列组成异常流量序列;
S46、根据自适应异常修剪方法对异常流量进行异常裁剪,最终得到异常数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210819480.9A CN115185937A (zh) | 2022-07-12 | 2022-07-12 | 一种基于sa-gan架构的时间序列异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210819480.9A CN115185937A (zh) | 2022-07-12 | 2022-07-12 | 一种基于sa-gan架构的时间序列异常检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185937A true CN115185937A (zh) | 2022-10-14 |
Family
ID=83519554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210819480.9A Pending CN115185937A (zh) | 2022-07-12 | 2022-07-12 | 一种基于sa-gan架构的时间序列异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185937A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600116A (zh) * | 2022-12-15 | 2023-01-13 | 西南石油大学(Cn) | 时间序列异常的动态检测方法、系统、存储介质及终端 |
CN115733673A (zh) * | 2022-11-04 | 2023-03-03 | 中国人民解放军海军工程大学 | 一种基于多尺度残差分类器的数据异常检测方法 |
CN116304884A (zh) * | 2023-05-11 | 2023-06-23 | 西安衍舆航天科技有限公司 | 航天器遥测数据健康预测方法、系统、设备及存储介质 |
-
2022
- 2022-07-12 CN CN202210819480.9A patent/CN115185937A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115733673A (zh) * | 2022-11-04 | 2023-03-03 | 中国人民解放军海军工程大学 | 一种基于多尺度残差分类器的数据异常检测方法 |
CN115733673B (zh) * | 2022-11-04 | 2024-04-12 | 中国人民解放军海军工程大学 | 一种基于多尺度残差分类器的数据异常检测方法 |
CN115600116A (zh) * | 2022-12-15 | 2023-01-13 | 西南石油大学(Cn) | 时间序列异常的动态检测方法、系统、存储介质及终端 |
CN116304884A (zh) * | 2023-05-11 | 2023-06-23 | 西安衍舆航天科技有限公司 | 航天器遥测数据健康预测方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492822B (zh) | 空气污染物浓度时空域关联预测方法 | |
CN110188836B (zh) | 一种基于变分自编码器的脑功能网络分类方法 | |
CN112784881B (zh) | 网络异常流量检测方法、模型及系统 | |
CN115185937A (zh) | 一种基于sa-gan架构的时间序列异常检测方法 | |
CN110852515B (zh) | 基于混合长短时记忆神经网络的水质指标预测方法 | |
CN110163433B (zh) | 一种船舶流量预测方法 | |
CN108549841A (zh) | 一种基于深度学习的老人跌倒行为的识别方法 | |
CN111324990A (zh) | 基于多层长短期记忆神经网络模型的孔隙度预测方法 | |
CN110807544B (zh) | 一种基于机器学习的油田剩余油饱和度分布的预测方法 | |
CN109000930A (zh) | 一种基于堆叠去噪自编码器的涡轮发动机性能退化评估方法 | |
CN112733447B (zh) | 一种基于域自适应网络的水下声源定位方法及系统 | |
CN110455512B (zh) | 基于深度自编码器dae的旋转机械多集成故障诊断方法 | |
Mehmood et al. | Systematic framework to predict early-stage liver carcinoma using hybrid of feature selection techniques and regression techniques | |
CN116341901B (zh) | 一种滑坡面域-单体危险性预警的一体化评价方法 | |
CN110522412A (zh) | 基于多尺度脑功能网络分类脑电信号的方法 | |
CN115051929B (zh) | 基于自监督目标感知神经网络的网络故障预测方法及装置 | |
CN116522265A (zh) | 工业互联网时序数据异常检测方法及装置 | |
CN115374903A (zh) | 一种基于高速公路传感网布设的长期路面监测数据增强方法 | |
CN110488020B (zh) | 一种蛋白质糖化位点鉴定方法 | |
CN115470850A (zh) | 一种基于管网水质时空数据的水质异常事件识别预警方法 | |
CN115456245A (zh) | 一种感潮河网区溶解氧预测方法 | |
CN113642255A (zh) | 基于多尺度卷积循环神经网络的光伏发电功率预测方法 | |
CN113842135A (zh) | 一种基于BiLSTM的睡眠呼吸异常自动筛查方法 | |
CN117077819A (zh) | 一种水质预测方法 | |
CN116842358A (zh) | 一种基于多尺度卷积和自适应特征融合的软测量建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Fu Yu Inventor after: Duan Xueyuan Inventor after: Wang Kun Inventor after: Li Bin Inventor before: Fu Yu Inventor before: Wang Kun Inventor before: Duan Xueyuan Inventor before: Li Bin |
|
CB03 | Change of inventor or designer information |