掌桥专利:专业的专利平台
掌桥专利
首页

一种异常时序数据检测方法、设备及介质

文献发布时间:2023-06-19 19:21:53


一种异常时序数据检测方法、设备及介质

技术领域

本发明涉及数据处理领域,尤其涉及一种异常时序数据检测方法、设备及介质。

背景技术

智能控制系统监控是对系统可测量事件和输出的监督过程,用作指定系统正常功能的参考。分析与历史正常数据的偏差,以确定是否存在遗产。在以往,这种分析是由系统监控专家完成的,他们为每个测量的输出建立正常的行为阈值。如果监测量超过对应的阈值,则认为系统发生了运行异常。随着工业控制系统越来越复杂,获得测量数据所需的传感器数量急剧增加,传统的基于专家定义阈值的方法不再适用。在这种情况下,实现智能控制系统监测的自动化已成为一种必要。自动化的智能控制系统监测需要开发一些方法来观察传感器获得的不同测量值,并从这些方法中推断出正常和异常的行为。

在一组多维时间序列上进行监测称为多元时间序列中的异常检测。在过去的几年中,已经发展了许多方法来解决这个问题。最常用的技术包括基于距离的技术,如k-最近邻,聚类,如k-means,或者用单类SVM进行分类。然而,随着智能控制系统的进步具有较高复杂性,不适用这些方法。基于深度学习的无监督异常检测方法能够推断时间序列之间的相关性,从而识别异常行为,该方法被迁移到异常时序检测技术中。在检测时间数据异常的深度学习方法中,基于递归神经网络(RNNs)的方法是非常流行的。然而,众所周知,递归神经网络所占用的内存和耗时是巨大的。因而,需要设计一种高效且适用实际场景的异常时序检测方法。

发明内容

为了克服上述技术缺陷,本发明的目的在于提供一种异常时序数据检测方法、设备及介质,解决现有基于递归神经网络进行异常时序检测,网络结构复杂,内存和耗时较大,效率较低的问题。

本发明公开了一种异常时序数据检测方法,包括:

建立初始模型,并采用训练数据集对所述初始模型进行训练;其中,所述初始模型包括编码模块、第一解码模块、第二解码模块、预测模块、惩罚模块;

获取所述训练数据集中任一训练数据,将所述训练数据输入至所述初始模型;

在所述初始模型中,采用编码模块对所述训练数据进行时序特征提取,获得特征表示;

采用第一解码模块对所述特征表示进行数据重建,获得第一处理数据;

所述第一处理数据依次通过所述编码模块和所述第二解码模块进行数据重建,获得第二处理数据;

采用预测模块基于所述特征表示进行时序预测,获得训练数据的预测值与实际值之间的预测误差;

采用惩罚模块基于所述特征表示计算最大均值差异惩罚;

采用所述计算模块根据训练数据、第一处理数据、第二处理数据、预测误差以及最大均值差异惩罚计算训练输出;

迭代训练,对所述初始模型中损失函数进行调整,直至完成训练,获得目标模型;

获得目标数据,采用所述目标模型对所述目标数据处理后根据预设函数计算时序得分,以获得目标检测结果。

优选地,根据所述第二处理数据与所述训练数据计算第二重建误差;

所述训练包括第一训练阶段和第二训练阶段,在第一训练阶段调整以最小化所述第二重建误差,在第二训练阶段调整以最大化所述第二重建误差。

优选地,所述采用编码模块对所述训练数据进行时序特征提取,获得特征表示,包括:

采用门控循环单元对所述训练数据进行在时间维度下特征提取,获得第一输出数据;

采用多元Resnet模块对所述第一输出处理,获得包含训练数据对应的空间特征的第二输出数据;

将所述第二输出数据通过一全连接层,对所述训练数据对应空间特征映射以获得所述特征表示。

优选地,所述采用多元Resnet对所述第一输出数据处理,获得包含训练数据对应的空间特征的第二输出数据,包括:

基于所述第一输出数据进行尺寸重塑,以获得多个尺寸的特征图;

分别通过三个Resnet模块和池化层对各个尺寸的特征图进行处理后,进行维度拼接,以获得训练数据对应的空间特征,作为第二输出数据。

优选地,所述采用第一解码模块对所述特征表示进行数据重建,获得第一处理数据,包括:

采用一全连接层对所述特征表示进行特征映射,获得第一中间数据;

将所述第一中间数据输入至多元Resnet模块重构空间特征,获得第二中间数据;

采用门控循环单元对所述第二中间数据处理,获得第一处理数据。

优选地,所述第二解码模块与所述第一解码模块结构一致;

所述第二解码模块与所述第一解码模块并联。

优选地,所述基于所述特征表示进行时序预测,获得训练数据的预测值与实际值之间的预测误差,包括:

在预测模块中,采用串联的两个全连接层对所述特征表示进行处理,以基于T个时间步的特征获得T+1时刻的预测数据,获得训练数据中各个时刻下预测值与实际值之间的差值,以生成预测误差。

优选地,所述采用所述计算模块根据训练数据、第一处理数据、第二处理数据、预测误差以及最大均值差异惩罚计算训练输出,包括:

根据所述训练数据与第一处理数据计算第一重建误差,根据所述训练数据与第二处理数据计算第二重建误差;

对所述第一重建误差、所述第二重建误差、预测误差以及最大均值差异惩罚分别以预设权重加权并加和,以生成训练输出。

本发明还提供一种计算机设备,所述计算机设备包括:

存储器,用于存储可执行程序代码;以及

处理器,用于调用所述存储器中的所述可执行程序代码,执行步骤包括所述的异常时序数据检测方法。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,

所述计算机程序被处理器执行时实现所述异常时序数据检测方法的步骤。

采用了上述技术方案后,与现有技术相比,具有以下有益效果:

本申请中提供的异常时序数据检测方法,对多元时序数据本身的特性,建立基于多元Resnet和GRU的自编码机构的神经网络,改进模型架构,捕获时序数据的时空特征,增加特征约束,提高对异常数据的敏感度,以无监督的方式进行训练模型后用于检测,减少内存消耗,提高检测效率。

附图说明

图1为本发明所述一种异常时序数据检测方法实施例一的流程图;

图2为本发明所述一种异常时序数据检测方法实施例一中初始模型的网络结构示意图;

图3为本发明所述计算机设备的模块示意图。

附图标记:

9-计算机设备;91-存储器;92-处理器。

具体实施方式

以下结合附图与具体实施例进一步阐述本发明的优点。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。

实施例一:本实施方式提供了一种异常时序数据检测方法,参阅图1和图2,包括以下步骤:

S100:建立初始模型,并采用训练数据集对所述初始模型进行训练;其中,所述初始模型包括编码模块、第一解码模块、第二解码模块、预测模块、惩罚模块;获取所述训练数据集中任一训练数据,将所述训练数据输入至所述初始模型;

在本实施方式中,提供编码模块用于提取特征,第一解码模块和第二解码模块分别用于特征重建,预测模块用于基于过去一段时间的数据,可以预测当前时刻的序列,惩罚模块则用于约束特征,在实际推理阶段,设置计算模块利用编码模块、第一解码模块、第二解码模块、预测模块、惩罚模块的输出计算分数,分数超出阈值则判定为异常时序数据,由此实现异常时序数据的检测,针对多元时序数据本身的特性,基于自编码器(编码器、解码器)和更精简的网络,改进模型架构,增加特征约束,以无监督的方式进行训练,在SWAT和WADI两个较为常用多元时序数据集上可以达到了领先的效果,且训练耗时和推理耗时都极小,足以满足实际场景的使用需要。

需要说明的是,初始模型为训练前的模型,该初始模型与训练完成后的目标模型结构一致,训练过程用于调整初始模型中的参数,并在训练完成后固定参数,即可获得目标模型,本实施方式的训练过程采用无监督的方式完成。上述训练数据集中包含若干训练数据,由于实际异常数据的缺少,本实施方式采用无监督方式对正常时序数据进行建模,捕获数据内在的联系。当异常数据进入网络后,就会产生与正常数据分布差异较大的预测值(在网络中体现为训练误差),预先设定一个正常数据的置信度阈值,当预测值大过该阈值,则认为当前输入序列数据中包含异常数据。

S200:在所述初始模型中,采用编码模块对所述训练数据进行时序特征提取,获得特征表示;

具体的,上述编码模块用于深层的时序特征提取,以便后续判断该时序数据是否异常。所述采用编码模块对所述训练数据进行时序特征提取,获得特征表示,包括:

S210:采用门控循环单元对所述训练数据进行在时间维度下特征提取,获得第一输出数据;

作为说明的是,门控循环单元通过可以学习的门来控制信息流动,由此捕捉时间序列里时间距离较大的依赖关系,本实施方式用于捕获训练数据在时间维度上的特征并输出;

S220:采用多元Resnet模块对所述第一输出处理,获得包含训练数据对应的空间特征的第二输出数据;

作为说明的是,本实施方式中采用多元Resnet模块捕获空间特征。采用多元Resnet和GRU捕获时序数据的时空特征,更好的对数据进行建模,对异常数据更敏感。具体的,所述采用多元Resnet对所述第一输出数据处理,获得包含训练数据对应的空间特征的第二输出数据,包括:

S221:基于所述第一输出数据进行尺寸重塑,以获得多个尺寸的特征图;

需要说明的是,上述将来自门控循环单元(GRU)的输出序列reshape到多种不同形状,得到不同尺寸的二维特征图,类似于单通道图像(即上述多个尺寸的特征图)。

S222:分别通过三个Resnet模块和池化层对各个尺寸的特征图进行处理后,进行维度拼接,以获得训练数据对应的空间特征,作为第二输出数据。

作为说明的是,将多个尺寸的特征图分别经过三个不同的Resnet模块和池化层(三组依次连接的Resnet模块和池化层),得到相同尺寸的三个特征图,将其通过维度拼接到一起组成一个三通道特征图。采用不同的尺寸来进行二维特征提取的目的在于,从不同的时间、空间窗口去捕获来自多元时序数据的时空特征,以更好的对数据源进行建模和编码。需要特别说明的是,上述多元Resnet模块处理过程适用于下述第一解码模块/第二解码模块中的多元Resnet模块,结构一致,更换处理对象即可。

S230:将所述第二输出数据通过一全连接层,对所述训练数据对应空间特征映射以获得所述特征表示。

基于上述步骤S210-S230,作为举例而非限定的,假设W(样本数据)为[batchsize,T,D]形状的数据,batchsize为训练中单个批次的输入数据量;T为时间步长,也就是连续时间序列的长度;D为数据的维度,也就是检测数据来源于D个传感器。W经过一个门控循环单元(GRU),捕获其在时间维度上的特征后得到一个输出,该输出会再经过一个多元Resnet,利用Resnet的特征提取能力,进一步捕获正常时序数据的空间特征,然后经由一个全连接层将该特征映射到一个深层的特征表示,该过程为编码器AE(即上述编码模块的处理)。

S300:采用第一解码模块对所述特征表示进行数据重建,获得第一处理数据;

在本实施方式中,设第一编码模块(解码器)为DE1,第二编码模块(解码器)为DE2,具体的,所述采用第一解码模块对所述特征表示进行数据重建,获得第一处理数据,包括:

S310:采用一全连接层对所述特征表示进行特征映射,获得第一中间数据;

在该处理过程中,对于特征表示的解码(重建)近似于编码模块的反向操作,因此,在编码模块依次执行GRU、多元Resnet、全连接层的处理时,在解码模块中执行全连接层-多元Resnet-GRU结构。

S320:将所述第一中间数据输入至多元Resnet模块重构空间特征,获得第二中间数据;

作为说明的,上述多元Resnet模块的处理过程可参考编码模块中多元Resnet模块的处理,两者处理方式相似,在此不作赘述。

S330:采用门控循环单元对所述第二中间数据处理,获得第一处理数据。

即,上述(深层)特征表示分别经过两个解码器,具体的是两个全连接层-多元Resnet-GRU结构恢复(重构)出原来的数据X1和X2。

S400:所述第一处理数据依次通过所述编码模块和所述第二解码模块进行数据重建,获得第二处理数据;

需要说明的是,所述第二解码模块与所述第一解码模块结构一致;且所述第二解码模块与所述第一解码模块并联,因此,第二解码模块的处理过程可参考上述S310-S320,个其中的特征表示替换为第一处理数据通过编码模块输出的特征表示。

基于上述S300-S400,作为说明的是,基于X1、X2和W的重建误差(本实施方式下述的第一重建误差和第二重建误差)对网络进行训练,可以得到两组编解码器DE1,DE2。当遇到较为明显的异常数据,基于重建误差就能很好的预测出异常数据。但在实际中,异常数据和正常数据的差异可能会很小,或者是由于数据类型的原因,来自某一特定传感器发生的异常值很小,难以检测出来。在本申请中,为了应对该情况,采用对抗式训练的方法,将X1作为输入再次输入到整个自解码器(即上述依次通过所述编码模块和所述第二解码模块进行数据重建)结构中,得到深层特征表示(即更新的特征表示,区别于由W获得的特征表示)后,用DE2来对X1进行鉴别,此时X1作为假样本去欺骗DE2,虽然经过重建,X1和W的误差已经很小,但是仍需将其看做是异常数据。也就是说,整个网络前期需要训练出两个重建能力很强的自编码器,后期则是要用其中一个解码器的输出尝试去欺骗另一个解码器,而另一个解码器要尽可能将其找出来。由于本网络是无监督训练的,因此体现为在第一训练阶段,X1欺骗DE2时,需要尽可能最小化||W-DE2(AE(X1))||误差,而作为在第一训练阶段,DE2要尽可能鉴别该数据为异常数据,因而需要最大化||W-DE2(AE(X1))||误差,也就是最小化-||W-DE2(AE(X1))||。对抗式训练时,先优化欺骗过程,再优化鉴别过程,经过该方式,即可得到更强的编码器,能够将很小的误差放大,从而达到更好的异常时序检测效果。图中的loss1和loss2分别代表X1和X2的重建误差。因此具体的,根据所述第二处理数据与所述训练数据计算第二重建误差(即上述||W-DE2(AE(X1))||);在训练过程中,可分为两个训练阶段,在第一训练阶段调整以最小化所述第二重建误差,在第二训练阶段调整以最大化所述第二重建误差。

S500:采用预测模块基于所述特征表示进行时序预测,获得训练数据的预测值与实际值之间的预测误差;

作为说明的是,正常的时序数据本质上是可以进行预测的,也就是基于过去一段时间的数据,可以预测当前时刻的序列。本申请中,编码器和解码器的网络结构设计提取时空特征的性能极强,因而基于来自T个时间步的W的深层特征表示,是可以预测T+1时间步代表的多元数据的。

具体的,所述基于所述特征表示进行时序预测,获得训练数据的预测值与实际值之间的预测误差,包括:在预测模块中,采用串联的两个全连接层对所述特征表示进行处理,以基于T个时间步的特征获得T+1时刻的预测数据,获得训练数据中各个时刻下预测值与实际值之间的差值,以生成预测误差。

因此,把T个时间步的深层特征表示输入到两个串联的全连接层,来对T+1时刻的数据进行预测,其预测值和数据中真实T+1时刻的序列值的均方误差即可作为损失函数对网络进行优化。

S600:采用惩罚模块基于所述特征表示计算最大均值差异惩罚;

具体的,深层特征(即本申请上述特征表示中)的分布不应该是分布无章的,为了更好的约束深层特征表示,将其映射到更好的特征空间,此处,增加了MMD(最大均值差异)惩罚项,并将MMD loss作为训练损失用来优化编码器。最大均值差异是迁移学习中使用频率最高的度量,它度量在再生希尔伯特空间中两个分布的距离,是一种核学习方法。简单地理解就是计算两堆数据的均值距离,但是实际比较难计算,就将两个分布映射到另一个空间计算距离。本申请中,考虑到数据是多元的,因而来自不同的传感器的数据的分布应该也是不同的,因此采用混合高斯分布来作为需要映射到的空间分布。在实际使用时,可以根据数据源的维度来合理的选择高斯核函数的数量,一般而言,核函数的个数在数据源的维度的一半左右比较合理。计算了MMD惩罚项后,将该值作为损失值对网络的编码器模块进行优化。

S700:迭代训练,对所述初始模型中的损失函数进行调整,直至完成训练,获得目标模型;

具体的,整个网络(即初始模型)的损失函数包含3个,分别为:

Loss_1=3/n*||W-X1||+(1-1/n)*||W-DE2(AE(X1)||+3/n*MMD_loss(Z,G)

Loss_2=3/n*||W-X2||-(1-1/n)*||W-DE2(AE(X1)||

Loss_3=MSE(y_label-y_pred)+3/n*MMD_loss(Z,G)

其中,n代表训练的epochs,也就是n是随着训练递增的,每个epoch后加1。通过该方式将网络分为了前后两个训练阶段(即上述第一训练阶段和第二训练阶段)。

S800:获得目标数据,采用所述目标模型对所述目标数据处理后根据预设函数计算时序得分,以获得目标检测结果。

在上述步骤中,具体的,设置一计算模块,根据目标数据,从目标模型中获得的第一处理数据、第二处理数据、预测误差以及最大均值差异惩罚计算时序得分,包括:

根据目标数据与第一处理数据计算第一重建误差,根据目标数据与第二处理数据计算第二重建误差;对所述第一重建误差、所述第二重建误差、预测误差以及最大均值差异惩罚分别以预设权重加权并加和,以生成训练输出,即可参考下述。

作为说明的,在推理阶段,序列数据的得分(即时序得分)由下述公式得到:

Score=a*||W-X1||+b*||W-DE2(AE(X1)||+c*MSE(y_label-y_pred)+d*MMD_loss(Z,G)

通过预先调整a、b、c、d四个系数,即可得到某一输入序列的得分情况,当score大于设定的阈值,则认为该组数据序列中包含异常数据。

本实施方式提供的异常时序数据检测方法,经训练测试,在SWAT数据集上,达到了99.18%的精确率和66.78%的召回率;在WADI数据集上达到了99.80%的精确率和14.3%的召回率,由此可说明本申请中设计的方法的有效性,且本申请提供的模型结构简单,整个模型收敛速度快,在测试SWAT的40多万条数据上,用30分钟左右的时间即可收敛,且达到优异的异常时序数据检测效果。除此之外,无监督式的网络结构以及对抗式训练方法,极大的改善了网络性能,进一步提高控制系统进行自动化检测过程的实现。

实施例二:为实现上述目的,本发明还提供一种计算机设备9,如图3所示,计算机设备可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机等。本实施例的计算机设备至少包括但不限于:可通过装置总线相互通信连接的存储器91、处理器92,如图3所示。需要指出的是,图3仅示出了具有组件的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器91可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器91也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘等。本实施例中,存储器91通常用于存储安装于计算机设备的操作装置和各类应用软件,例如实施例一的一种异常时序数据检测方法的程序代码;训练样本、(第一/第二)处理数据、第一重建误差、所述第二重建误差、预测误差以及最大均值差异惩罚等模型参数;目标检测结果等。此外,存储器91还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器92在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器92通常用于控制计算机设备的总体操作。本实施例中,处理器92用于运行存储器91中存储的程序代码或者处理数据,例如运行实施例一的一种异常时序数据检测方法。

实施例三:为实现上述目的,本发明还提供一种计算机可读存储装置,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D*存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器92执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据,被处理器92执行时实现实施例一的一种异常时序数据检测方法。

应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 一种数据库溢出页异常的检测方法、装置及存储介质
  • 一种交易流水数据检测方法、装置、设备及可读存储介质
  • 一种线阵相机触发时序同步方法、装置、设备和存储介质
  • 一种通讯异常恢复的方法、异常恢复设备及存储介质
  • 一种云平台时序数据异常检测方法、系统、设备和介质
  • 一种时序数据异常检测方法、装置、设备及存储介质
技术分类

06120115887214