本发明涉及多变量时序异常检测,具体地说涉及一种基于多变量时序数据的工业物联网系统异常检测方法。
背景技术:
1、随着工业物联网(iiot)及智能制造技术的快速发展,大量的多变量时序数据被生成和采集,这些数据通常来自于工业设备、传感器、监控系统等。通过对这些多变量时序数据的分析,可以实现设备故障预测、生产过程优化和安全监测等功能。异常检测作为时序数据分析中的一个重要任务,能够帮助及时发现潜在的设备故障、性能问题或安全威胁,因此在工业应用中具有至关重要的作用。
2、在现有技术中,多变量时序异常检测方法通常基于两类策略:基于重构的模型(如自编码器)和基于预测的模型(如回归模型)。基于重构的模型通过学习正常时序数据的压缩表示,并用该表示重构原始数据,计算重构误差来检测异常。然而,这类方法往往忽视了多变量之间的复杂依赖关系,且容易受到噪声的干扰。基于预测的模型则通过预测时序数据的未来行为,并计算预测误差来判断异常,尽管这类方法能够学习到时序数据的时间依赖性,但它们通常难以处理多变量之间的非线性依赖,并且对噪声十分敏感。为了应对这些挑战,近年来,深度学习方法在多变量时序异常检测中得到了广泛应用,然而,此类方法仍然面临着无法同时有效捕捉复杂时间和空间依赖的问题,且在异常数据稀缺的情况下,难以避免误报或漏报。
技术实现思路
1、本发明提供的一种可有效提高检测准确性和鲁棒性的基于多变量时序数据的工业物联网系统异常检测方法,可至少解决上述技术问题之一。
2、为了解决上述技术问题,本发明采用如下技术方案:基于多变量时序数据的工业物联网系统异常检测方法,包括以下步骤:
3、s1、将原始的多变量时序数据划分为原始训练集和原始测试集,所述原始训练集只包含正常的时序数据,所述原始测试集中包含异常的时序数据;
4、s2、对所述原始训练集与所述原始测试集分别进行归一化处理,再分别进行时间窗口分割,得到新的训练集和新的测试集;
5、s3、将时间-变量注意力机制模块与对抗训练机制模块相结合,构建gtvformer模型;
6、s4、所述gtvformer模型分两个阶段对所述新的训练集中的数据进行训练,以对抗的方式训练两个transformer模型来重构正常的输入窗口数据w,该两个transformer模型中,transformer1模型尝试欺骗transformer2模型,transformer2模型则学习辨别数据是来自输入窗口数据w的真实输入数据,还是来自transformer1模型的重构数据;
7、s5、利用已完成训练的所述gtvformer模型对所述新的测试集中的数据进行预测,结合两个transformer模型的输出结果给出每一个时间点的异常分数score,根据预先定义的异常阈值λ,对样本点进行标记,获得标记结果y;
8、s6、根据标记结果y,判断每一个时间点是否存在异常。
9、进一步地,所述s2中,选用最小-最大归一化方法按照下式(1)对所述原始训练集和所述原始测试集进行归一化处理:
10、(1)
11、其中,x表示经过归一化处理后的数据集,x表示所述原始训练集或原始测试集,max(x)和min(x)分别表示x的最大值和最小值。
12、进一步地,所述s2中,对经过归一化处理后的数据集x进行时间窗口分割,包含多个变量的数据集x={x1,x2,...,xt},对该数据集x采用等距采样进行分割,转换为多个长度为k的滑动窗口,滑动窗口之间的时间间隔取1,定义一个时间窗口w,该时间窗口w包含从时间点t-k+1到t的一段时间序列数据,即w={xt-k+1,...,xt},将数据集x转换为一系列时间窗口w={w1,w2,...,wt}作为模型的训练输入,形成输入窗口数据w。
13、进一步地,所述s3中,所述gtvformer模型由一个共享的编码器encoder和两个解码器decoder1与decoder2组成,编码器encoder与解码器decoder1构成transformer1模型,编码器encoder与解码器decoder2构成transformer2模型,所述时间-变量注意力机制模块与所述对抗训练机制模块均作用于transformer1模型与transformer2模型,所述时间-变量注意力机制模块用于挖掘多变量时序数据中时间维度和变量维度之间的关联性,进行信息的充分集成,所述对抗训练机制模块用于进一步放大正常数据与异常数据之间的差异性。
14、进一步地,所述s3中,所述gtvformer模型的构建进一步包括:
15、s31、对原始的输入数据,由共享的编码器encoder中的所述时间-变量注意力机制模块进行建模和分析,所述时间-变量注意力机制模块深入挖掘时间维度和变量维度的特征向量;
16、s32、在训练阶段,编码器encoder的输出作为解码器decoder1及解码器decoder2的输入,且两个解码器decoder1和decoder2中的所述时间-变量注意力机制模块进一步挖掘输入在时间维度和变量维度上的信息,同时将挖掘到的特征向量传递给mlp模型进行长期预测;
17、s33、基于两个transformer模型分两个阶段进行训练;
18、s34、在测试阶段结合transformer1模型和transformer2模型的输出共同结果,给出每一个时间点的异常评分score,并根据预先定义的异常阈值给出每一个时间点的预测标签。
19、进一步地,所述s4中,将训练分成的两个阶段分别为:
20、阶段1:transformer训练
21、在第一阶段,目标是训练每个transformer模型重构输入数据,输入窗口数据w被编码器encoder压缩到潜在空间,然后通过每个解码器进行重构,该阶段训练目标为下式(2)和(3):
22、(2)
23、(3)
24、其中,和分别代表transformer1模型和transformer2模型的训练目标,trans为transformer的缩写,w为输入窗口数据;
25、阶段2:对抗训练
26、在第二阶段,目标是训练transformer2模型以区分真实数据和来自transformer1模型的重构数据,同时训练transformer1模型去欺骗transformer2模型,来自transformer1模型的数据再次通过编码器被压缩到潜在空间,然后由transformer2模型重构;
27、在对抗训练中,transformer1模型的目标是最小化输入窗口数据w和transformer2模型输出之间的差异,而transformer2模型的目标则是最大化该差异,transformer1模型的训练目的在于是否成功欺骗了transformer2模型,而transformer2模型的训练目的则在于试图区分由transformer1模型重构的数据和真实数据,该阶段训练目标为下式(4):
28、(4)
29、对应的损失函数为下式(5)和(6):
30、(5)
31、(6)。
32、进一步地,所述s4中,两个transformer模型均具有双重任务,transformer1模型的任务是在阶段1中最小化输入窗口数据w的重构误差,并在阶段2中最小化输入窗口数据w与transformer2模型重构输出之间的差异,transformer2模型的任务是在阶段1中最小化输入窗口数据w的重构误差,并在阶段2中最大化由transformer1模型重构的数据的重构误差;
33、每个transformer模型的双重训练目标通过将下式(7)和(8)组合起来表示,且随着时间演变,不同部分的权重比例也随之调整:
34、(7)
35、(8)
36、其中,n表示训练轮数。
37、进一步地,所述s5中,异常分数score由下式(9)计算获得:
38、(9)
39、其中:
40、表示未见过的窗口数据,即测试窗口数据;
41、t表示时间戳;
42、α+β=1,用于表示参数化假阳性和真阳性之间的权衡,如果α大于β,则减少真阳性的数量,同时减少假阳性的数量,相反,如果α小于β,则增加真阳性的数量,但同时也会增加假阳性的数量。
43、进一步地,所述s5中,每一个时间点的标记结果y由下式(10)计算获得:
44、(10)
45、其中,λ为预先定义的异常阈值;
46、当标记结果y的标记值为0时,表示当前时刻系统正常,当标记结果y的标记值为1时,表示当前时刻系统存在异常。
47、进一步地,所述s6中,由于阈值的设置可以采用不同的方法,故如果超过固定阈值,则将时间戳t标记为异常。
48、本发明的有益效果体现在:
49、1、高效建模非线性时序依赖性:通过引入时间变量注意力机制来捕捉多变量时序数据中时间维度与变量维度之间的复杂依赖关系,能够有效建模时间维度与变量维度之间的复杂非线性依赖性,提升模型的表达能力。
50、2、有效增强异常识别能力:通过利用对抗训练策略来放大正常数据与异常数据之间的差异,有效减小异常点被正常点掩盖的风险,提高异常点的识别率,提升异常检测的准确性。
51、3、较强的鲁棒性:该方法能够在噪声环境下有效工作,减少误报率,并且具有较强的泛化能力,能够在不同的工业场景中均表现出较好的适应性和稳定性。