可左右滑动选省市

基于多元数据扩散的模型训练、水检测方法及系统

更新时间:2024-07-01
基于多元数据扩散的模型训练、水检测方法及系统 专利申请类型:发明专利;
地区:安徽-合肥;
源自:合肥高价值专利检索信息库;

专利名称:基于多元数据扩散的模型训练、水检测方法及系统

专利类型:发明专利

专利申请号:CN202410432016.3

专利申请(专利权)人:合肥工业大学
权利人地址:安徽省合肥市包河区屯溪路193号

专利发明(设计)人:乔焰,蔡子当,胡子龙,胡荣耀,赵培,李敏悦,袁新宇,张本初,魏振春

专利摘要:本发明涉及在线监控和数据检测技术领域,尤其是一种基于多元数据扩散的模型训练、水检测方法及系统。本发明提出的基于多元数据扩散的模型训练方法,本质是为了训练多元时间序列无监督异常检测模型。本发明对标准扩散模型进行了改进,该模型不是直接由输入数据和重构数据得出异常分数,而是将扩散步长应用到异常分数的表示上,而是将扩散步长应用到异常分数的表示上,以增强对MTS时间依赖性的学习。本发明训练的异常检测模型在检测精度方面优于当前最先进的所有基准,具有更好的F1得分,最终训练的异常检测模型在鲁棒性上显著超越了现有水平。

主权利要求:
1.一种基于多元数据扩散的模型训练方法,其特征在于,训练用于检测物联网多元时间序列数据的异常数据点的异常检测模型,所述模型训练方法包括以下步骤:构建训练数据集,训练数据集中的数据样本包含多个多维的时间序列,多维的时间序列由通过物联网采集监控目标的多个监测变量构成;
确定扩散步数m;构建扩散模块并初始化,扩散模块基于设定的扩散步数对输入的时间序列X进行加噪声;
从训练数据集中选择训练样本,令扩散模块对训练样本进行加噪声,并计算损失函数L,损失函数用于评估扩散模块的噪声估计;
结合训练数据集和损失函数迭代扩散模块参数,直至扩散模块收敛后,将扩散模块与预先设置的预处理模块组合形成异常检测模型;
异常检测模型工作时,预处理模块用于将获取的时间序列的不同维度随机置零,以构成多个与初始的时间序列维度相同的衍生时间序列,衍生时间序列维度叠加后形成初始的时间序列;扩散模块用于重构各衍生时间序列;
异常检测模型对样本X的处理过程包括以下步骤SA1‑SA2:SA1、预处理模块基于时间序列X生成多个衍生时间序列,衍生时间序列为时间序列X的部分维度置零后的数据;
令第p个衍生时间序列记作X(p),1≤p≤Z,Z为p的最大取值;预处理模块随机生成Z个掩膜矩阵M(1)、M(2)、……、M(p)、……、M(Z),掩膜矩阵均为01矩阵,且M(1)+M(2)+……+M(p)+……+M(Z)=1;令X(p)=X×M(p),使得X(1)+X(2)+……+X(p)+……+X(Z)=X;
SA2、扩散模块对各衍生时间序列进行扩散,首先扩散模块结合设定的扩散步数对衍生时间序列进行加噪声,然后再逐步去噪,以获取对应扩散步数下的重构时间序列;
异常检测模型工作时,扩散模块重构衍生时间序列的步骤如下:扩散模块生成随机数组{αt|1≤t≤m},m为设定的扩散步数;
对衍生时间序列X(p)加噪声,生成加噪声序列X(p,m);
对加噪声序列X(p,m)进行逐步去噪,生成重构序列X'(p);
2
X'(p,t‑1)=N(µ(X'(p,t),t),Q)+q×σt×▽X'(p,t)logcp(yobs|X'(p,t))X'(p,m)=X(p,m)
X'(p)=X'(p,0)
1/2
t=1时,σt=(1‑αt) ;
1/2
t>1时,σt=[(1‑αt)(1‑α't‑1)/(1‑α't)] ;
其中,X'(p,t‑1)表示对X(p,m)进行m‑t+1次去噪后的数据;X'(p,t)表示对X(p,m)进行m‑t次去噪后的数据;Q为与X'(p,t)维度相同的元素全为1的矩阵;N(µ(X'(p,t),t),Q)表示均值向量为µ(X'(p,t),t),协方差矩阵为Q的多元正态分布;q为设定的引导尺度;σt为过渡项,▽X'(p,t)logcp(yobs|X'(p,t))表示logcp(yobs|X'(p,t))对X'(p,t)的求导,p(yobs|X'(p,t))表示yobs在X'(p,t)上的概率分布,yobs为引导去噪过程中的观测数值;c为设定的底数,其为正数;α't为α1到αt的连乘值,α't‑1为α1到αt‑1的连乘值;
1/2 1/2
µ(X'(p,t),t)=[X'(p,t)‑εθ(X'(p,t),t)×(1‑αt)/(1‑α't) ]/αt
1/2 1/2
yobs=[X'(p,t)‑εθ(X'(p,t),t)×(1‑α't) /α't ]其中,εθ(X'(p,t),t)为对X'(p,t)和扩散步数t进行U‑Net网络处理后的输出。
2.如权利要求1所述的基于多元数据扩散的模型训练方法,其特征在于,扩散模块结合扩散步数m对时间序列X加噪声以生成加噪声时间序列Xm:
1/2 1/2
Xm=αm ×X+(1‑αm) ×wm
αm为超参数,αm在设定的超参数空间随机取值获得;wm为随机获取的高斯噪声,扩散步数m为设定值。
3.如权利要求2所述的基于多元数据扩散的模型训练方法,其特征在于,损失函数L的计算公式为:2
L=||wm‑εθ(Xm,m)
||其中,εθ(Xm,m)为对Xm和m进行U‑Net网络处理后的输出;U‑Net网络为预训练网络。
4.一种基于多元数据扩散的水检测方法,用于实现水况监测,其特征在于:首先采用如权利要求1‑3任一项所述的基于多元数据扩散的模型训练方法获取异常检测模型;获取指定时间段上的多变量水况检测数据构成多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;
令异常检测模型对时间序列样本X进行处理,获取不同扩散步数下的重构衍生时间序列;
针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;
如果异常分数大于设定的异常阈值,则判断时间序列样本X异常,即表示时间序列样本X数据采集时刻上的水况异常。
5.如权利要求4所述的基于多元数据扩散的水检测方法,其特征在于,令第j个时间序列样本X记作Xj,令基于Xj生成的第p个衍生时间序列记作Xj(p),令扩散步数为m时衍生时间序列Xj(p)的重构时间序列记作Xj'(p)m;Xj的异常分数Aj的计算公式如下:Z 2
Aj=∑m∈M[λm||∑p=1(Xj'(p)m‑Xj)×(1‑M(p))||2]其中,λm表示m扩散步数的权重设定值,M为扩散步数m的取值空间,Z为X对应的衍生时间2
序列数量;||·||2表示2范数的平方;M(p)为0和1构成的与Xj结构相同的矩阵,且Xj(p)=Xj×M(p)。
6.如权利要求4所述的基于多元数据扩散的水检测方法,其特征在于,多变量水况检测数据包括以下表征中的一项或者多项:水流速、温度、指定的分子浓度、电荷浓度、氧含量、有机物浓度、监测设备状态码。
7.一种基于多元数据扩散的水检测系统,其特征在于,包括存储器和处理器,存储器中存储有计算机程序,处理器连接存储器,处理器用于执行所述计算机程序,以实现如权利要求5‑6任一项所述的基于多元数据扩散的水检测方法。
8.一种基于多元数据扩散的生产设备异常监控系统,其特征在于:首先获取生产设备的历史工况数据,构建训练数据集;基于训练数据集采用如权利要求1‑3任一项所述的基于多元数据扩散的模型训练方法获取异常检测模型;
然后获取指定时间段上生产设备的工况数据构建多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;令异常检测模型对时间序列样本X进行处理,以输出不同扩散步数下的重构衍生时间序列样本;
针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;
根据异常分数判断时间序列样本X生成时间段上生产设备是否异常;
工况数据包括:电压、电流、功率、振动幅度、温度、湿度、监测设备状态码的一项或者多项。
9.一种基于多元数据扩散的健康监测系统,其特征在于:首先获取多体征健康监控数据,构建训练数据集;基于训练数据集采用如权利要求1‑3任一项所述的基于多元数据扩散的模型训练方法获取异常检测模型;
然后获取连续时间段上监控目标的多体征健康监控数据构建多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;令异常检测模型对时间序列样本X进行处理,以输出不同扩散步数下的重构衍生时间序列样本;
针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;
根据异常分数判断监控目标体征是否异常;
多体征健康监控数据包括:血压、心率、体温、呼吸频率中的一项或者多项。 说明书 : 基于多元数据扩散的模型训练、水检测方法及系统技术领域[0001] 本发明涉及在线监控和数据检测技术领域,尤其是一种基于多元数据扩散的模型训练、水检测方法及系统。背景技术[0002] 近年来,对多变量时间序列(MTS)的异常检测在各领域逐渐突显出其重要性。多变量时间序列是由多个随时间变化的时间序列所组成的,每个时间序列描述了被监测对象的不同属性值。如水质安全监控系统所采集的重金属含量、特定分子含量等,工业生产中的设备监控系统所采集的温度、湿度、振动等属性的测量值,医疗健康领域中患者心率、血压和呼吸频率等生命体征测量值。[0003] 相对单变量时间序列数据,多变量时间序列能更全面地呈现对象特征。对多变量时间序列的异常检测是指检测出时间序列中不符合现实变化规律的数据片段,这些异常的数据段通常表明被监测对象正处于一种异常的状态,有时也代表某类异常事件的发生。若监测中的异常数据没有被及时发现并处理,则可能会导致巨大的经济损失甚至人员伤亡。因此,及时、准确地检测出多变量时间序列中的异常数据具有重要的现实意义。[0004] 然而,由于以下两个原因,MTS的异常检测极具挑战性:首先,由于MTS的分布高度复杂,正常和异常MTS样本之间没有明显的界线;其次,由于现实世界中的MTS通常收集的标记异常很少甚至为零,因此异常检测模型通常必须以无监督的方式进行训练。[0005] 近年来,许多研究人员致力于研究使用无监督生成网络。基于集成AE‑LSTM的MTS检测方法通过引入变体时间窗来丰富MTS数据的特征,从而提高模型的检测精度。随着生成对抗网络(GAN)的提出,基于生成性对抗网络(GAN)的异常检测方法在复杂数据的异常检测领域表现出更优的性能。MAD‑GAN和GAN‑AD网络将RNN与GAN相结合,对多元时间序列的时间相关性进行综合建模。FGANomaly引入了过滤模块来过滤掉训练数据中的异常部分,并促使模型学习清晰数据中的分布。[0006] 尽管这些方法在MTS异常检测方面具有最先进的性能,但由于对抗性学习的困难,当MTS样本呈现高维度和复杂分布时,它们仍然存在检测精度较低的问题,容易产生较高的误判率。发明内容[0007] 为了克服上述现有技术中多变量时间序列检测精度低,容易误判被监测对象的状态的缺陷,本发明提出了一种基于多元数据扩散的模型训练方法,在模型中引入多个扩散步并存的扩散策略,大大提高了模型对异常数据点的检测精度。[0008] 本发明提出的一种基于多元数据扩散的模型训练方法,训练用于检测物联网多元时间序列数据的异常数据点的异常检测模型,所述模型训练方法包括以下步骤:[0009] 构建训练数据集,训练数据集中的数据样本包含多个多维的时间序列,多维的时间序列由通过物联网采集监控目标的多个监测变量构成;[0010] 确定扩散步数m;构建扩散模块并初始化,扩散模块基于设定的扩散步数对输入的时间序列X进行加噪声;[0011] 从训练数据集中选择训练样本,令扩散模块对训练样本进行加噪声,并计算损失函数L,损失函数用于评估扩散模块的噪声估计;[0012] 结合训练数据集和损失函数迭代扩散模块参数,直至扩散模块收敛后,将扩散模块与预先设置的预处理模块组合形成异常检测模型;[0013] 异常检测模型工作时,预处理模块用于将获取的时间序列的不同维度随机置零,以构成多个与初始的时间序列维度相同的衍生时间序列,衍生时间序列维度叠加后形成初始的时间序列;扩散模块用于重构各衍生时间序列。[0014] 优选的,扩散模块结合扩散步数m对时间序列X加噪声以生成加噪声时间序列Xm:[0015] Xm=αm1/2×X+(1‑αm)1/2×wm[0016] αm为超参数,αm在设定的超参数空间随机取值获得;wm为随机获取的高斯噪声,扩散步数m为设定值。[0017] 优选的,损失函数L的计算公式为:[0018] L=||wm‑εθ(Xm,m)||2[0019] 其中,εθ(Xm,m)为对Xm和m进行U‑Net网络处理后的输出;U‑Net网络为预训练网络。[0020] 优选的,异常检测模型工作时,扩散模块重构衍生时间序列的步骤如下:[0021] 扩散模块生成随机数组{αt|1≤t≤m},m为设定的扩散步数;[0022] 对衍生时间序列X(p)加噪声,生成加噪声序列X(p,m);[0023] 对加噪声序列X(p,m)进行逐步去噪,生成重构序列X'(p);[0024] X'(p,t‑1)=N(µ(X'(p,t),t),Q)+q×σt2×▽X'(p,t)logcp(yobs|X'(p,t))[0025] X'(p,m)=X(p,m)[0026] X'(p)=X'(p,0)[0027] t=1时,σt=(1‑αt)1/2;[0028] t>1时,σt=[(1‑αt)(1‑α't‑1)/(1‑α't)]1/2;[0029] 其中,X'(p,t‑1)表示对X(p,m)进行m‑t+1次去噪后的数据;X'(p,t)表示对X(p,m)进行m‑t次去噪后的数据;Q为与X'(p,t)维度相同的元素全为1的矩阵;N(µ(X'(p,t),t),Q)表示均值向量为µ(X'(p,t),t),协方差矩阵为Q的多元正态分布;q为设定的引导尺度;σt为过渡项,▽X'(p,t)logcp(yobs|X'(p,t))表示logcp(yobs|X'(p,t))对X'(p,t)的求导,p(yobs|X'(p,t))表示yobs在X'(p,t)上的概率分布,yobs为引导去噪过程中的观测数值;c为设定的底数,其为正数;α't为α1到αt的连乘值,α't‑1为α1到αt‑1的连乘值;[0030] µ(X'(p,t),t)=[X'(p,t)‑εθ(X'(p,t),t)×(1‑αt)/(1‑α't)1/2]/αt1/2[0031] yobs=[X'(p,t)‑εθ(X'(p,t),t)×(1‑α't)1/2/α't1/2][0032] 其中,εθ(X'(p,t),t)为对X'(p,t)和扩散步数t进行U‑Net网络处理后的输出。[0033] 本发明提出的一种基于多元数据扩散的水检测方法,用于实现水况监测:[0034] 首先采用所述的基于多元数据扩散的模型训练方法获取异常检测模型;获取指定时间段上的多变量水况检测数据构成多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;[0035] 令异常检测模型对时间序列样本X进行处理,获取不同扩散步数下的重构衍生时间序列;[0036] 针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;如果异常分数大于设定的异常阈值,则判断时间序列样本X异常,即表示时间序列样本X数据采集时刻上的水况异常。[0037] 优选的,令第j个时间序列样本X记作Xj,令基于Xj生成的第p个衍生时间序列记作Xj(p),令扩散步数为m时衍生时间序列Xj(p)的重构时间序列记作Xj'(p)m;Xj的异常分数Aj的计算公式如下:[0038] Aj=∑m∈M[λm||∑Zp=1(Xj'(p)m‑Xj)×(1‑M(p))||22][0039] 其中,λm表示m扩散步的权重设定值,M为扩散步数m的取值空间,Z为X对应的衍生2时间序列数量;||·||2 表示2范数的平方;M(p)为0和1构成的与Xj结构相同的矩阵,且Xj(p)=Xj×M(p)。[0040] 优选的,多变量水况检测数据包括以下表征中的一项或者多项:水流速、温度、指定的分子浓度、电荷浓度、氧含量、有机物浓度、监测设备状态码。[0041] 本发明提出的一种基于多元数据扩散的水检测系统,包括存储器和处理器,存储器中存储有计算机程序,处理器连接存储器,处理器用于执行所述计算机程序,以实现所述的基于多元数据扩散的水检测方法。[0042] 本发明提出的一种基于多元数据扩散的生产设备异常监控系统,首先获取生产设备的历史工况数据,构建训练数据集;基于训练数据集采用所述的基于多元数据扩散的模型训练方法获取异常检测模型;[0043] 然后获取指定时间段上生产设备的工况数据构建多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;令异常检测模型对时间序列样本X进行处理,以输出不同扩散步数下的重构衍生时间序列样本;[0044] 针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;根据异常分数判断时间序列样本X生成时间段上生产设备是否异常;[0045] 工况数据包括:电压、电流、功率、振动幅度、温度、湿度、监测设备状态码的一项或者多项。[0046] 本发明提出的一种基于多元数据扩散的健康监测系统,首先获取多体征健康监控数据,构建训练数据集;基于训练数据集采用所述的基于多元数据扩散的模型训练方法获取异常检测模型;[0047] 然后获取连续时间段上监控目标的多体征健康监控数据构建多变量时间序列数据,对多变量时间序列数据进行窗口化处理,以形成时间序列样本X;令异常检测模型对时间序列样本X进行处理,以输出不同扩散步数下的重构衍生时间序列样本;[0048] 针对各时间序列样本X,结合对应的所有重构衍生时间序列的重构误差计算异常分数;根据异常分数判断监控目标体征是否异常;[0049] 多体征健康监控数据包括:血压、心率、体温、呼吸频率中的一项或者多项。[0050] 本发明的优点在于:[0051] (1)本发明提出的基于多元数据扩散的模型训练方法,本质是为了训练多元时间序列无监督异常检测模型。本发明对标准扩散模块进行了改进,该模型不是直接对输入数据应用扩散步长,而是将扩散步长应用到异常分数的表示上,以增强对MTS时间依赖性的学习,且通过衍生时间序列的构建和学习,有利于保证时间序列全方位特征的关注,从而提高数据重构的全面性。本发明训练的异常检测模型在检测精度方面优于当前最先进的所有基准,具有更好的F1得分,最终训练的异常检测模型在鲁棒性上显著超越了现有水平。[0052] (2)本发明提出的一种异常检测扩散策略与从噪声中生成样本的标准扩散策略不同,本发明是利用不同的扩散步长从不同角度计算MTS样本的异常分数,使异常检测模型能够同时学习MTS的全局和局部依赖关系,不断提高异常检测的准确性、鲁棒性与实时性。本发明解决了现有各类技术在多变量时间序列异常数据检测时,存在的对高维数据存在的扩散步骤单一、受噪声影响大、检测精度较低的问题。[0053] (3)本发明采用无监督模型训练过程,完全无需标注样本,保证了数据分类的可实施性,完全适应现实环境由于存在各种复杂的因素,难以采集有标记的MTS的情况。[0054] (4)本发明提出的一种基于多元数据扩散的水检测方法,采用本发明提供的异常检测模型,可灵活设置输入的多元时间序列的变量构成,实现各种水情监控目标下的水质水况状态实时监测,实现高精度水况数据异常预警。[0055] (5)本发明还提出了该异常检测模型在生产设备工作状态和生命健康监控上的应用,为生产设备的工作安全监控以及生命体征健康监控,提供了更高精度、更加可靠的技术手段。附图说明[0056] 图1为采用本发明提出的异常检测模型的多元时间序列数据处理过程;[0057] 图2为异常检测模型的训练流程;[0058] 图3为本发明提出的多变量时间序列数据异常检测方法流程图。具体实施方式[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0060] 参照图1,本实施方式提出了一种基于多元数据扩散的异常检测模型,简称异常检测模型,其包括预处理模块和扩散模块;预处理模块用于将获取的时间序列的不同维度随机置零,以构成多个与初始的时间序列维度相同的衍生时间序列;扩散模块用于重构各衍生时间序列;[0061] 具体的,异常检测模型对样本X的处理过程包括以下步骤SA1‑SA2。[0062] SA1、预处理模块基于时间序列X生成多个衍生时间序列,衍生时间序列为时间序列X的部分维度置零后的数据;[0063] 令第p个衍生时间序列记作X(p),1≤p≤Z,Z为p的最大取值。具体实施时,X(1)、X(2)、……、X(p)、……、X(Z)可通过掩膜矩阵获得,令X(p)=X×M(p);具体的,预处理模块随机生成Z个掩膜矩阵M(1)、M(2)、……、M(p)、……、M(Z),掩膜矩阵均为01矩阵,且M(1)+M(2)+……+M(p)+……+M(Z)=1,如此可保证X(1)+X(2)+……+X(p)+……+X(Z)=X。具体实施时,可进一步设置,掩膜矩阵中有1/Z的维度置零,其余维度置1。[0064] 具体实施时,可设置预处理模块基于时间序列X生成两个衍生时间序列,即p(max)=2;第一个衍生时间序列X(1)在时间序列X的基础上将一半维度上的数值置零,第二个衍生时间序列X(2)在时间序列X的基础上将另一半维度上的数值置零。即:X(1)=X×M(1),X(2)=X×M(2),M(1)+M(2)=1。[0065] SA2、扩散模块对各衍生时间序列进行扩散,首先扩散模块结合设定的扩散步数对衍生时间序列进行加噪声,然后再逐步去噪,以获取对应扩散步数下的重构时间序列。[0066] 扩散步数为m时,扩散模块对衍生时间序列X(p)进行扩散的过程包括以下步骤。[0067] SA21、扩散模块生成随机数组{αt|1≤t≤m},m为设定的扩散步数;[0068] SA22、对衍生时间序列X(p)加噪声,生成加噪声序列X(p,m);[0069] X(p,m)=αm1/2×X(p)+(1‑αm)1/2×wm[0070] 其中,αt为在区间[0.998,0.9999]上的随机取值,wm为随机获取的高斯噪声。[0071] SA23、对加噪声序列X(p,m)进行逐步去噪,生成重构序列X'(p);[0072] X'(p,t‑1)=N(µ(X'(p,t),t),Q)+q×σt2×▽X'(p,t)logcp(yobs|X'(p,t))[0073] t=m时,X'(p,t)=X'(p,m)=X(p,m);[0074] t=1时,X'(p,t‑1)=X'(p,0)=X'(p);[0075] t=1时,σt=(1‑αt)1/2;[0076] t>1时,σt=[(1‑αt)(1‑α't‑1)/(1‑α't)]1/2;[0077] X'(p,t‑1)表示对X(p,m)进行m‑t+1次去噪后的数据;X'(p,t)表示对X(p,m)进行m‑t次去噪后的数据;Q为与X'(p,t)维度相同的1矩阵,1矩阵即为元素全为1的矩阵;N(µ(X'(p,t),t),Q)表示均值向量为µ(X'(p,t),t),协方差矩阵为Q的多元正态分布;q为设定的引导尺度;σt为过渡项,▽X'(p,t)logcp(yobs|X'(p,t))表示logcp(yobs|X'(p,t))对X'(p,t)的求导,p(yobs|X'(p,t))表示yobs在X'(p,t)上的概率分布;c为设定底数,其为正数,具体可选择自然数e或者10等。[0078] α't为α1到αt的连乘值,α't‑1为α1到αt‑1的连乘值;即:[0079] α't=Πtk=1αk,α't‑1=Πt‑1k=1αk,αk∈{αt|1≤t≤m}。[0080] µ(X'(p,t),t)=[X'(p,t)‑εθ(X'(p,t),t)×(1‑αt)/(1‑α't)1/2]/αt1/2[0081] yobs=[X'(p,t)‑εθ(X'(p,t),t)×(1‑α't)1/2/α't1/2][0082] εθ(X'(p,t),t)为对X'(p,t)和t进行U‑Net网络处理后的输出。[0083] 参照图2,异常检测模型的训练,包括以下步骤SB1‑SB3。[0084] SB1、构建训练数据集,训练数据集包含多条时间序列;确定扩散步数m;构建扩散模块并初始化,扩散模块基于设定的扩散步数对输入的时间序列X进行加噪声;[0085] 即,训练过程中,扩散模块的输入为扩散步数和时间序列X,输出为加噪声时间序列。[0086] 设定扩散步数为m时,扩散模块对时间序列X加噪声以生成加噪声时间序列Xm的公式为:[0087] Xm=αm1/2×X+(1‑αm)1/2×wm[0088] 其中,αm为在区间[0.998,0.9999]上的随机取值,wm为随机获取的高斯噪声。[0089] SB2、从训练数据集中选择训练样本,令扩散模块对训练样本进行加噪声,并计算损失函数L;[0090] L=||wm‑εθ(Xm,m)||2[0091] εθ(Xm,m)为对Xm和m进行U‑Net网络处理后的输出;U‑Net网络为预训练网络。[0092] SB3、判断模型损失是否收敛;否,则返回步骤SB2;是,则固定扩散模块,将扩散模块与预先设置的预处理模块组合形成异常检测模型。[0093] 模型损失的收敛条件为:连续N轮损失函数均小于设定的损失阈值,损失阈值具体可在区间(0,0.1)上取值。[0094] 本实施方式提出的一种多变量时间序列数据异常检测方法,采用上述异常检测模型对表征监控目标状态的多变量时间序列数据进行异常检测。[0095] 监控目标为水质水况时:变量可以是水流速、液位、温度、水压、指定的分子浓度、电荷浓度、氧含量、有机物浓度、含水量、土层湿度、空气湿度、饱和水力传导系数、水况检测设备的状态码等;[0096] 监控目标为生产设备时:变量可以是电压、电流、功率、振动幅度、温度、湿度等工况数据,也可以是生成设备控制系统的CPU利用率、内存使用、网络流量、请求响应时间等;[0097] 监控目标为生命健康状态时,变量可以是血压、心率、体温、呼吸频率等生命体征数据。[0098] 参照图3,本实施方式提出的一种多变量时间序列数据异常检测方法,包括以下步骤St1‑St4。[0099] St1、获取连续时间段上采集的多个传感器数据作为多变量时间序列数据S,将多变量时间序列数据S划分为多个样本片段,样本片段作为时间序列样本X进行处理;构建并初始化异常检测模型,异常检测模型包括预处理模块和扩散模块;[0100] S={s1,s2,…,sn,…,sL}[0101] X={x1,x2,…,xi,…,xI}[0102] xi={s(i‑1)×r+1,s(i‑1)×r+2,……,si×r}[0103] 其中,sn表示在n时刻传感器接收到的多维数据,L为时间点数量,xi表示第i个样本片段;1≤i≤L/r,i×r≤L,(i‑1)×r+1≥1;r为窗口长度;[0104] 具体实施时,St1可对多变量时间序列数据S进行窗口化处理,令窗口长度为r,滑动步长为r,从而获取时间序列样本X。令S窗口化处理后的第j个时间序列样本X记作Xj;[0105] St2、令异常检测模型对时间序列样本Xj进行处理,预处理模块用于将获取的时间序列的不同维度随机置零,以构成多个与初始的时间序列维度相同的衍生时间序列;扩散模块用于重构各衍生时间序列;[0106] 令基于Xj生成的第p个衍生时间序列记作Xj(p),扩散步数为m时衍生时间序列Xj(p)的重构时间序列记作Xj'(p)m;即:[0107] Xj(p)=Xj×M(p)[0108] Xj(p,m)=αm1/2×Xj(p)+(1‑αm)1/2×wm[0109] Xj'(p,m)=Xj(p,m)[0110] Xj'(p,t‑1)=N(µ(Xj'(p,t),t),Q)+q×σt2×▽Xj'(p,t)logcp(yobs|Xj'(p,t))[0111] 1≤t≤m[0112] Xj'(p)m=Xj'(p,0)[0113] St3、计算各扩散步下的重构误差加权和作为异常分数,令Xj的异常分数记作Aj;[0114] Aj=∑m∈M[λm||∑Zp=1(Xj'(p)m‑Xj)×M(p)||22][0115] 其中,λm表示m扩散步的权重设定值,M为设定的m的取值空间,Z为X对应的衍生时2间序列数量;||·||2表示2范数的平方,M(p)为预处理模块在处理Xj时生成的第p个掩膜矩阵。[0116] St4、判断Aj是否大于或者等于设定的异常阈值;是,则判断时间序列样本Xj异常,表示对应生成时间上的监控目标处于异常状态;否,则判断Xj正常,表示对应生成时间上的监控目标处于正常状态。[0117] 为了验证发明提供的异常检测模型的性能,本实施例结合不同的数据集,将本发明提供的异常检测模型与其他六种现有模型进行对比。[0118] 实施例中的扩散模块设置衍生时间序列为2,即Z=2,两个掩膜矩阵M(1)和M(2)均设置一般元素为0,且M(1)+M(2)=1。[0119] 本实施例中分别采用SWAT、WADI、SMAP和PSM数据集。[0120] 其中,数据集SWAT是由自动水处理系统获取的测量与监测数据集,WADI则是水处理测试平台传感器和执行器记录的数据集;数据集SMAP则是由卫星观测和收集的土壤水分信息的相关数据;而数据集PSM是传输控制系统记录的关于池服务器量度的性能数据。该四个数据集均为现实世界多变量时间序列数据集。[0121] 本实施例中选择的六种现有模型分别为OmniAnomaly异常检测模型、LSTM‑VAE异常检测模型、FGANomaly异常检测模型、MAD‑GAN异常检测模型、GDN异常检测模型、Adformer异常检测模型,六种模型都是无监督异常检测模型,均采用现有的无监督学习方法进行训练。[0122] OmniAnomaly:该模型采用多尺度自编码器,引入多尺度特征和时间相关性来捕获数据中的局部和全局模式,从而达到异常检测的效果。[0123] LSTM‑VAE:该模型将长短时记忆网络和变分自编码器相结合,通过学习数据的潜在分布来生成正常数据,能够有效识别时间序列异常。[0124] FGANomaly:该模型将自编码器作为生成器,通过添加的噪声过滤模块捕获正常数据的分布,可应用于受污染数据的异常检测。[0125] MAD‑GAN:该模型通过生成模型学习正常数据的特征,从而识别与之不符的异常模式。[0126] GDN:该模型通过生成图神经网络来解决小样本网络异常检测的问题,通过从多个辅助网络传输元知识来实现小样本网络异常检测。[0127] Adformer:该模型基于深度变换器网络的异常检测和诊断模型,它使用基于注意力的序列编码器根据数据中更广泛的时间趋势知识快速执行推理。[0128] 为了便于区分,将本发明提供的异常检测模型记作DiffTSAD模型,DiffTSAD模型根据本发明提供的基于多元数据扩散的模型训练方法进行训练。[0129] 本实施例中,在各数据集对不同模型进行验证的方法为:首先将数据集划分为预备训练集和测试集;然后将预备训练集中的部分数据替换为从高斯分布中采样的随机噪声,将替换后的预备训练集作为训练集;在训练集分别训练DiffTSAD模型、OmniAnomaly模型、LSTM‑VAE模型、FGANomaly模型、MAD‑GAN模型、GDN模型和Adformer模型。DiffTSAD模型采用本发明提供的基于多元数据扩散的模型训练方法进行训练;OmniAnomaly模型、LSTM‑VAE模型、FGANomaly模型、MAD‑GAN模型、GDN模型和Adformer模型均采用现有的无监督学习方法进行训练。[0130] 模型训练完成后,在测试集上测试模型性能。本实施例中,通过P(Precision,精确度),R(Recall,召回率)和F1(F1得分)比较DiffTSAD和6种对比模型在四个数据集上的性能。[0131] 表1:模型性能对比[0132][0133] 从表1可知,DiffTSAD模型相比于对比模型,在精度和召回率均表现极好,即使不是最优,也与最优值很是接近。F1评分同时兼顾分类模型的精确率和召回率,可客观评价模型的性能。从表1中可以看出,DiffTSAD在四个数据集中均获得了最高的F1分数。在具有最高维度和最复杂分布的WADI数据集,DiffTSAD模型相比于表现最优的对比模型GDN在FI得分上增加了28.71%。这表明本发明所设计的扩散策略使DiffTSAD具有准确的异常检测能力,特别在复杂的MTS数据分布上表现更优。[0134] 下表2展示了DiffTSAD消融实验结果。[0135] 模型Base相对于本发明提供的异常检测模型DiffTSAD,在应用时,扩散模块的去噪过程公式表示如下:[0136] X'(p,t‑1)=[X'(p,t)‑εθ(X'(p,t),t)×(1‑αt)/(1‑α't)1/2]/αt1/2+σt×N(0,Q)[0137] 其中,N(0,I)表示均值向量为0,协方差矩阵为Q的多元正态分布,Q为与X'(p,t)维度相同的1矩阵,1矩阵指的是元素全为1的矩阵。[0138] 采用模型Base处理时间序列样本X时,只设置一个扩散步数m,异常分数采用以下公式计算:[0139] A=||∑Zp=1(X'(p)m‑X)×M(p)||22[0140] 其中,X'(p)m表示X的第p个衍生时间序列X(p)对应的重构时间序列,M(p)为X映射到X(p)的掩膜矩阵。[0141] 模型GRAD在模型Base的基础上,采用本发明模型DiffTSAD的去噪公式,即:[0142] X'(p,t‑1)=N(µ(X'(p,t),t),Q)+q×σt2×▽X'(p,t)logcp(yobs|X'(p,t))[0143] 采用模型GRAD处理时间序列样本X时,也只设置一个扩散步数m,异常分数计算公式与模型Base的异常分数计算公式相同。[0144] 模型Weight在模型Base的基础上,在处理时间序列样本X时,设置扩散步数的取值空间M,在不同扩散步数上重构衍生时间序列,并结合扩散步数权重计算异常分数,异常分数计算公式为:[0145] A=∑m∈M[λm||∑Zp=1(X'(p)m‑X)×M(p)||22][0146] 其中,λm为扩散步数m的权重。[0147] 以上三个消融模型Base、GRAD和Weight的扩散模块与本发明模型DiffTSAD的扩散模块具有相同的结构和模型参数,扩散模块采用本发明提供的训练步骤SB1‑SB3训练至收敛。[0148] 从表2中可以看出,在各数据集上,相对于任一种消融模型,本发明模型DiffTSAD在精度、召回率和F1分数上均取得了最好的表现。[0149] 表2:消融实验数据统计[0150][0151] 当然,对于本领域技术人员而言,本发明不限于上述示范性实施例的细节,而还包括在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现的相同或类似结构。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。[0152] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。[0153] 本发明未详细描述的技术、形状、构造部分均为公知技术。

专利地区:安徽

专利申请日期:2024-04-11

专利公开日期:2024-06-18

专利公告号:CN118035926B

电话咨询
读内容
搜本页
回顶部