基于异步多元时间序列数据的实时在线检测方法
未命名
08-15
阅读:157
评论:0
1.本发明属于物理技术领域,更近一步涉及一种实时在线检测方法,可用于工业设备运行中的状态实时检测。
背景技术:
2.在工业设备运行状态实时监测过程中,往往产生大量用于描述某些单元运行状态的多元时间序列,基于专家经验对这些数据进行全天候的观察可以监测系统是否发生了异常事件。但是随着数据规模变得越来越大,这种传统的方法需要消耗大量的人力物力,开发基于深度学习技术的多元时间序列数据异常检测算法成为一种趋势。然而,由于多元时间序列存在的不同步问题,即当某一单元的状态发生变换,需要经过一段时间才能引起其他单元的状态发生变化,这种异步性导致许多方法不能准确提取特征,造成检测性能下降。此外,现有方法只能给出异常分数,不能不依靠任何先验信息且实时给出异常阈值,从而只有较小的实用价值。
3.中国海洋大学在其申请号为cn202210824024.3的专利申请文献中公开了一种“基于gcn和注意力vae的时序异常检测方法及系统”。其实现步骤是:首先进行数据的收集和预处理,将实时读取的工业状态数据进行归一化;其次,通过计算不同单元时间序列之间皮尔逊相关系数来确定不同单元时间序列之间的相互关系,并最终得到图的邻接矩阵;然后,使用图卷积来聚合邻居节点的信息,并使用加入了注意力机制的长短期记忆网络来进行数据重建;最后利用重建误差来区分是否发生了异常。该方法由于利用多元时间序列数据进行异常检测,因而存在两方面的不足:其一,这种多元时间序列数据的异步性会影响相似度计算的准确性,使模型得到错误的图邻接矩阵信息。其二,这种多元时间序列数据的异步性会影响普通图卷积的信息提取能力,使模型不能充分地提取特征。
4.julien audibert等人在其发表的论文“usad:unsupervised anomaly detection onmultivariate time series”(kdd'20:proceedings of the 26th acm sigkdd internationalconference on knowledge discovery&data mining.august 2020)中公开了一种基于对抗自编码器的多元时间序列异常检测方法。其步骤为:首先,将时间序列数据划分成若干个时间窗;其次,建立两个自编码器重建网络,这两个自编码器共享同一个编码器;最后;采用两阶段训练策略,第一阶段通过梯度下降强化编码器的准确检测能力,第二阶段通过对抗训练避免编码器的漏检问题。该方法由于忽略了多元时间序列数据中不同时间序列的交互作用,降低了计量域的特征提取能力;同时由于不能实时地给出异常阈值,只能在得到异常分数基础上基于测试集先验信息提供一个固定阈值,导致其检测效率低。
技术实现要素:
5.本发明的目的是针对上述现有技术的不足,提出一个基于异步多元时间序列数据的实时在线检测方法,以实时地进行异常检测,准确获取图邻接矩阵信息,充分提取模型特征,提高检测的准确性和效率。
6.实现本发明的技术思路是:通过采用动态时间规整度量不同时间序列之间的相似性,以消除多元时间序列不同步造成的相似性计算误差,更加准确地得到图邻接矩阵;。通过使用基于一维卷积和异步图卷积的异步序列特征提取子网络,更全面地提取多元时间序列各种依赖信息,解决不同步时间序列的特征提取不充分问题;通过使用正交分位数损失函数优化模型,以在不依赖任何先验信息条件下给出数据正常变化的上界和下界,通过判断实际观察值是否在区间内实时进行异常检测。
7.根据上述思路,本发明实现步骤包括如下:
8.(1)生成训练集时间序列块:
9.收集一个包括服务器的cpu利用率,内存使用率和网络带宽共m个种类指标的历史数据,求取各个指标的均值和方差,并使用该均值和方差分别对各个指标进行归一化,用归一化后各指标作为训练集;
10.将训练集以固定的步长s,划分成为长度为w的若干个时间序列块:
11.(2)利用动态时间规整进行图结构求解:
12.(2a)构建一个m
×
m大小的邻接矩阵a,并初始化其中的各个元素值为0,m为工业设备各个单元指标个数;
13.(2b)构建一个w
×
w大小的代价矩阵c,计算其第i行和第j列元素c
i,j
的值:
[0014][0015]
其中x
p(t-w+i)
代表第t时刻长度为w的时间序列块w
(t)
中第p个指标的第i个观察值,x
q(t-w+j)
代表第t时刻时间序列块w
(t)
中第q个指标的第j个观察值,i和j均为从1到w的整数值,p和q分别为邻接矩阵a的行索引和列索引,其值均为1到m的整数值;
[0016]
(2c)对于第t时刻时间序列块w
(t)
第p个指标和第q个指标的各个观察值循环执行步骤(2b),计算出邻接矩阵a第p行第q列元素值c
w,w
;
[0017]
(2d)对于第t时刻时间序列块w
(t)
中的共m个指标依照步骤(2c)进行计算,直至计算完邻接矩阵a中的所有元素,得到更新后的邻接矩阵a;
[0018]
(3)构建异步特征提取子网络:
[0019]
选用现有的sigmoid函数、双曲正切函数、异步图卷积层和两个一维卷积层,并将第一一维卷积层和第二一维卷积层的卷积核大小均设置为3,输入通道均设置为1,输出通道均设置为4;将异步图卷积层的输入通道设置为4,输出通道设置为16;
[0020]
将第一一维卷积层与sigmoid函数串联,将第二一维卷积层和双曲正切函数串联,再将该两者并联后与异步图卷积层串联,构成异步特征提取子网络;
[0021]
(4)利用多个一维卷积层组成的上界和下界预测子网络,并将异步特征提取子网络分别与该上界预测子网络和下界预测子网络串联组成异常检测网络;
[0022]
(5)使用正交分位数损失函数对异常检测网络进行训练:
[0023]
(5a)初始化网络权重,将网络中的所有权重初始化为满足正态分布的随机值;
[0024]
(5b)将训练集的时间序列块和计算得到的邻接矩阵a输入到异常检测网络中,使用正交分位数损失函数计算异常检测网络的损失值;利用梯度下降法,将网络的损失值进行反向传播,迭代更新网络参数,直至损失函数收敛,得到训练好的异常检测网络;
[0025]
(6)对设备状态进行检测:
[0026]
(6a)实时收集w秒时间范围内一个服务器包括cpu利用率,内存使用率和网络带宽
共m个种类的历史指标数据时间序列块,并采用与步骤(1)相同的方法进行归一化处理,得到测试时间序列块;
[0027]
(6b)将测试时间序列块和计算得到的邻接矩阵a输入到训练好的异常检测网络中,输出上界和下界预测值;将其与下一时刻w+1秒的实际观察值进行对比:
[0028]
若下一时刻实际观察值大于上界预测值或者小于下界预测值,则视为发生了异常,
[0029]
否则,没有发生异常。
[0030]
本发明与现有技术相比具有以下优点:
[0031]
第一,由于本发明采用了基于动态时间规整的图结构求解策略,该策略使用动态时间规整来度量不同指标之间的相似性,克服了现有技术由于时间序列不同步而造成的学习到错误的图邻接矩阵问题,使得本发明能够正确的表征图结构,提高了模型的工业设备异常检测的准确性。
[0032]
第二,由于本发明联合使用了一维卷积和异步图卷积,利用异步序列特征提取子网络来提取多元时间序列的时域和计量域的特征,有效地利用了多元时间序列的不同维度的依赖信息,克服了现有技术对时间序列特征的表征缺失的不足,使得本发明能够全面地提取时间序列不同层面的特征,提升了模型的工业设备异常检测性能。
[0033]
第三,由于本发明采用正交分位数损失函数训练模型,使模型可以在不需要任何先验信息的情况下实时输出数据异常检测阈值,克服了现有技术对于阈值选择不正确不及时的缺点,使得本发明能够实时地检测异常,提高了模型的工业设备异常检测效率。
附图说明
[0034]
图1是本发明的实现流程图。
具体实施方式
[0035]
下面结合附图,对本发明的实施例作进一步详细描述。
[0036]
参照图1,本实施例的实现步骤如下:
[0037]
步骤1,生成训练集时间序列块。
[0038]
1.1)以ts秒为采样间隔,收集时长为t秒的一个服务器的参数,其包括cpu利用率、内存使用率,带宽使用率,接口模式、tcp连接数、路由吞吐量、磁盘空间、设备温度、风扇状态、网络连接状态、接口模式、snmp数据收集状态、丢包率、接口错误率、电源状态和新增连接数共16个种类指标的历史数据,本实例设置但不限于采样间隔ts值为1,收集时长t值为21600;
[0039]
1.2)计算上述历史数据各个指标的均值和方差,并使用该均值和方差分别对各个指标按照下式进行归一化:
[0040][0041]
[0042][0043]
其中,代表历史数据第i个指标的第t时刻观察值,代表历史数据未被归一化的第i个指标,μi代表历史数据第i个指标的均值,σi代表历史数据第i个指标的方差,xi代表历史数据第i个指标归一化后的数据,i为从1到16的整数值;
[0044]
1.3)将归一化后各个指标的历史数据以固定的步长s,划分成时间范围长度为w的若干个训练集时间序列块,将第t时刻的时间序列块w
(t)
表示如下:
[0045]w(t)
={x
(t-11)
,x
(t-10)
,
…
,x
(t-j)
,
…
,x
(t)
}
[0046]
其中,代表第t-j时刻16个指标的归一化后的观察值,代表第t-j时刻第j个指标归一化后的观察值,j是从0到w-1的整数值,本实例设置但不限于时间范围长度w值为12,步长s值为1。
[0047]
步骤2,利用动态时间规整进行图结构求解。
[0048]
2.1)构建一个16
×
16大小的邻接矩阵a:
[0049][0050]
其中,a
p,q
为邻接矩阵a中第p行第q列元素值,p和q均为从1到16的整数值,并初始化其中的各个元素值为0,16为工业设备各个单元指标个数。
[0051]
2.2)构建一个12
×
12代价矩阵c:
[0052][0053]
其中,c
i,j
为邻接矩阵c中第i行第j列元素值,i和j均为从1到12的整数值。并按照下式计算代价矩阵c第i行和第j列元素c
i,j
的值:
[0054][0055]
其中,x
p(t-w+i)
代表第t时刻长度为12的时间序列块w
(t)
中第p个指标的第i个观察值,x
q(t-w+j)
代表第t时刻时间序列块w
(t)
中第q个指标的第j个观察值;
[0056]
2.3)对于第t时刻时间序列块w
(t)
的第p个指标和第q个指标中各个观察值循环执行步骤2.2)计算邻接矩阵a第p行和第q个元素值c
12,12
;
[0057]
2.4),对于第t时刻时间序列块w
(t)
中共16个指标的两两之间依照步骤2.3)计算其元素值,直至计算完邻接矩阵a中的所有元素,得到更新后的邻接矩阵a。
[0058]
步骤3,构建异步特征提取子网络。
[0059]
选用两个一维卷积层和一个异步图卷积层,并将第一一维卷积层和第二一维卷积层的卷积核大小均设置为3,输入通道均设置为1,输出通道均设置为4,将异步图卷积层的输入设置为4,输出通道设置为16;
[0060]
选用现有的sigmoid函数和双曲正切函数;
[0061]
将第一一维卷积层与sigmoid函数串联,将第二一维卷积层与双曲正切函数串联,再将该两者并联后与异步图卷积层串联,构成异步特征提取子网络。
[0062]
步骤4,构建异常检测网络。
[0063]
4.1)建立上界预测子网络:选用2个一维卷积层,并设第1个一维卷积层输入通道为16,输出通道均为4,设第2个一维卷积层输入通道为4,输出通道为1,将这两个一维卷积层串联组成上界预测子网络
[0064]
4.2)建立下界预测子网络:再选用两个一维卷积层,即第3个一维卷积层和第4个一维卷积层,并设第3个一维卷积层输入通道为16,输出通道为4,设第4个一维卷积层输入通道为4,输出通道为1,再将该第3、第4个一维卷积层进行串联,组成下界预测子网络;
[0065]
4.3)将异步特征提取子网络分别与上界预测子网络和下界预测子网络串联,组成的异常检测网络,并将现有的正交分位数函数作为该网络的损失函数q。
[0066]
步骤5,对异常检测网络进行训练。
[0067]
5.1)初始化网络权重,将网络中的所有权重初始化为满足正态分布的随机值,其中正态分布的均值为0,标准差为0.02;
[0068]
5.2)将训练集的时间序列块和邻接矩阵a输入到异常检测网络中,使用正交分位数损失函数计算异常检测网络的损失值:
[0069]
5.2.1)按照下式计算异常检测网络的上界损失值
[0070][0071]
5.2.2)按照下式计算异常检测网络的下界损失值
[0072][0073]
5.2.3)按照下式计算实际覆盖率v:
[0074][0075]
5.2.4)按照下式计算预测区间长度i:
[0076][0077]
5.2.5)按照下式计算异常检测网络的正交正则项损失值r(v,i):
[0078][0079]
5.2.6)根据5.2.1),5.2.2),5.2.5)的参数,计算异常检测网络的损失值l:
[0080]
[0081]
其中,x为实际观察值,为上界预测值,为下界预测值,α
up
为上界分位数,α
lo
为下界分位数,ρ(
·
)表示弹球损失函数,||
·
||代表着l1范数,cov(
·
)代表着协方差函数,var(
·
)代表着方差函数。
[0082]
5.3)利用梯度下降法,将网络的损失值l进行反向传播,迭代更新网络参数,直至损失函数q收敛,得到训练好的异常检测网络。
[0083]
步骤6,对设备状态进行检测。
[0084]
6.1)实时收集设定时间范围长度w秒和以间隔ts秒采样一个服务器的历史数据时间序列块,其包括cpu利用率、内存使用率,带宽使用率,接口模式、tcp连接数、路由吞吐量、磁盘空间、设备温度、风扇状态、网络连接状态、接口模式、snmp数据收集状态、丢包率、接口错误率、电源状态和新增连接数共16个种类指标的历史数据时间序列块,本实例设置但不限于时间范围长度w值为12,采样间隔ts值为1;
[0085]
6.2)采用与步骤1.2)相同的方法对每个种类指标的历史数据时间序列块进行归一化处理,得到测试时间序列块;
[0086]
6.3)将测试时间序列块和计算得到的邻接矩阵a输入到训练好的异常检测网络,输出上界预测值和下界预测值
[0087]
6.4)设下一时刻w+1秒的实际观察值为x
test
,并将其与上界预测值和下界预测值与进行对比,确定是否发生异常:
[0088]
若或者则视为发生了异常;
[0089]
否则,没有发生异常。
[0090]
以下结合仿真实验,对本发明的效果作进一步说明:
[0091]
1.仿真条件。
[0092]
本发明的仿真实验是在intel(r)core(tm)i7-7800x cpu@3.50ghz处理器,nvidia(r)rtx2080ti显卡的电脑上进行,使用深度学习框架pytorch软件完成。
[0093]
本发明仿真实验中生成训练集和测试集时,使用了公开的标准数据集machine-1-7。该数据集中包括时长为23697分钟的训练集和时长为23697分钟的测试集。
[0094]
训练集和测试均包含38个工业状态指标且采样间隔均为1分钟。训练集中不包含工业设备的异常情况,测试集中有10.12%的部分存在设备异常情况,其余为正常情况。
[0095]
2.仿真内容与结果分析。
[0096]
分别对本发明和现有无监督多元时间序列异常检测算法,使用machine-1-7数据集中的训练集,对各自的异常检测网络进行训练,得到各自训练好的异常检测网络;
[0097]
将machine-1-7数据集中的测试集输入到训练好的各自异常检测网络,得到各自在测试集中每个观察值的异常检测结果。
[0098]
根据测试集中每个观察值的异常检测结果,计算各自异常检测网络在测试集上的查准率和查全率结果:
[0099][0100]
[0101]
两种方法计算得到结果如表1。
[0102]
表1.本发明与现有方法异常检测分数的查准率和查全率对比表
[0103][0104]
表1中的现有无监督多元时间序列异常检测算法是:julien audibert等人在其发表的论文“usad:unsupervised anomaly detection on multivariate time series”(kdd'20:proceedings of the 26th acm sigkdd international conference on knowledge discovery&data mining.august 2020)中提出的无监督多元时间序列异常检测算法。
[0105]
从表1可以看出,本发明的查准率为0.99,查全率为0.93,这两个指标均高于现有技术方法,证明本发明可以得到更高的工业设备状态检测精度。
[0106]
以上仿真实验表明:本发明利用基于动态时间规整的图结构求解策略,有效地学习到了准确的图邻接矩阵,利用搭建的异步序列特征提取子网络能够建模时间数据不同维度的特征,有效的解决了现有技术方法中特征提取不全面不准确的问题,利用正交分位数损失函数优化的模型能够实时给出异常阈值,有效地提高了模型的检测效率。
技术特征:
1.一种基于异步多元时间序列数据的实时在线检测方法,其特征在于,包括如下步骤:(1)生成训练集时间序列块:收集一个包括服务器的cpu利用率,内存使用率和网络带宽共m个种类指标的历史数据,求取各个指标的均值和方差,并使用该均值和方差分别对各个指标进行归一化,用归一化后各指标作为训练集;将训练集以固定的步长s,划分成为长度为w的若干个时间序列块:(2)利用动态时间规整进行图结构求解:(2a)构建一个m
×
m大小的邻接矩阵a,并初始化其中的各个元素值为0,m为工业设备各个单元指标个数;(2b)构建一个w
×
w大小的代价矩阵c,计算其第i行和第j列元素c
i,j
的值:其中x
p(t-w+i)
代表第t时刻长度为w的时间序列块w
(t)
中第p个指标的第i个观察值,x
q(t-w+j)
代表第t时刻时间序列块w
(t)
中第q个指标的第j个观察值,i和j均为从1到w的整数值,p和q分别为邻接矩阵a的行索引和列索引,其值均为1到m的整数值;(2c)对于第t时刻时间序列块w
(t)
第p个指标和第q个指标的各个观察值循环执行步骤(2b),计算出邻接矩阵a第p行第q列元素值c
w,w
;(2d)对于第t时刻时间序列块w
(t)
中的共m个指标依照步骤(2c)进行计算,直至计算完邻接矩阵a中的所有元素,得到更新后的邻接矩阵a;(3)构建异步特征提取子网络:选用现有的sigmoid函数、双曲正切函数、异步图卷积层和两个一维卷积层,并将第一一维卷积层和第二一维卷积层的卷积核大小均设置为3,输入通道均设置为1,输出通道均设置为4;将异步图卷积层的输入通道设置为4,输出通道设置为16;将第一一维卷积层与sigmoid函数串联,将第二一维卷积层和双曲正切函数串联,再将该两者并联后与异步图卷积层串联,构成异步特征提取子网络;(4)利用多个一维卷积层组成的上界和下界预测子网络,并将异步特征提取子网络分别与该上界预测子网络和下界预测子网络串联组成异常检测网络;(5)使用正交分位数损失函数对异常检测网络进行训练:(5a)初始化网络权重,将网络中的所有权重初始化为满足正态分布的随机值;(5b)将训练集的时间序列块和计算得到的邻接矩阵a输入到异常检测网络中,使用正交分位数损失函数计算异常检测网络的损失值;利用梯度下降法,将网络的损失值进行反向传播,迭代更新网络参数,直至损失函数收敛,得到训练好的异常检测网络;(6)对设备状态进行检测:(6a)实时收集w秒时间范围内一个服务器包括cpu利用率,内存使用率和网络带宽共m个种类的历史指标数据时间序列块,并采用与步骤(1)相同的方法进行归一化处理,得到测试时间序列块;(6b)将测试时间序列块和计算得到的邻接矩阵a输入到训练好的异常检测网络中,输出上界和下界预测值;将其与下一时刻w+1秒的实际观察值进行对比:若下一时刻实际观察值大于上界预测值或者小于下界预测值,则视为发生了异常,
否则,没有发生异常。2.根据权利要求书1所述的方法,其特征在于步骤(1)中收集m个种类指标的历史数据,包括cpu利用率、内存使用率,带宽使用率,接口模式、tcp连接数、路由吞吐量、磁盘空间、设备温度、风扇状态、网络连接状态、接口模式、snmp数据收集状态、丢包率、接口错误率、电源状态和新增连接数。3.根据权利要求书1所述的方法,其特征在于步骤(1)收集共m个种类指标的历史数据,是按照采样间隔为1秒,收集时长为3600分钟的条件进行收集。4.根据权利要求书1所述的方法,其特征在于步骤(1)中使用均值和方差分别对各个指标进行归一化,公式如下:其中,代表未被归一化的第i个指标,μ
i
代表第i个指标的均值,σ
i
代表第i个指标的方差,x
i
代表第i个指标归一化后的数据。5.根据权利要求书1所述的方法,其特征在于(2a)中构建m
×
m大小的邻接矩阵a,表示如下:其中,a
p,q
为邻接矩阵a中第p行第q列元素值,p和q均为从1到m的整数值。6.根据权利要求书1所述的方法,其特征在于,步骤2b)中构建大小为w
×
w的代价矩阵c,表示如下:其中,c
i,j
为邻接矩阵c中第i行第j列元素值,i和j均为从1到w的整数值。7.根据权利要求书1所述的方法,其特征在于,步骤(4)中利用多个一维卷积层组成的上界和下界预测子网络,实现如下:选用4个一维卷积层,设第1个一维卷积层输入通道为16,输出通道为4;设第2个一维卷积层输入通道为4,输出通道均为1;设第3个一维卷积层输入通道为16,输出通道为4;设第4个一维卷积层输入通道为4,输出通道为1;将上述第1个一维卷积层与第2个一维卷积层串联,组成的上界预测子网络;将上述第3个一维卷积层和第4个一维卷积层串联,组成的下界预测子网络。8.根据权利要求书1所述的方法,其特征在于,步骤(5b)中使用正交分位数损失函数计
算异常检测网络的损失值,实现如下:(5b1)计算异常检测网络的上界损失值(5b1)计算异常检测网络的上界损失值(5b2)计算异常检测网络的下界损失值(5b2)计算异常检测网络的下界损失值(5b3)计算实际覆盖率v:(5b4)计算预测区间长度i:(5b5)计算异常检测网络的正交正则项损失值r(v,i):(5b6)根据(5b1)、(5b2)和(5b5)的参数,计算异常检测网络的损失值l:其中,x为实际观察值,为上界预测值,为下界预测值,α
up
为上界分位数,α
lo
为下界分位数,ρ(
·
)表示弹球损失函数,||
·
||代表着l1范数,cov(
·
)代表着协方差函数,var(
·
)代表着方差函数。
技术总结
本发明公开了一种基于异步多元时间序列数据的实时在线检测方法,主要解决现有技术对于异步时间序列存在图邻接矩阵求解不准确,特征提取不充分,异常检测实时性较差及检测效率低的问题。其方案为:采集数据并将其进行归一化后划分出训练集的时间序列块,计算其邻接矩阵;构建异步特征提取子网络;构建上界预测子网络与下界预测子网络,将其分别与异步特征提取子网络串联组成异常检测网络,并利用训练集对其进行训练;将测试集的时间序列块和邻接矩阵输入到训练好的异常检测网络,输出检测结果。本发明通过动态时间求解邻接矩阵,借助异步特征提取子网络充分地提取特征,提高了网络的异常检测准确率和检测效率,可用于工业设备运行中的状态实时检测。运行中的状态实时检测。运行中的状态实时检测。
技术研发人员:刘若辰 张锦伟 杨博通 李卫斌
受保护的技术使用者:西安电子科技大学
技术研发日:2023.05.11
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
