基于记忆增强型自编码器的时序数据异常检测方法和装置

文档序号:29571790发布日期:2022-04-09 04:08阅读:318来源:国知局
基于记忆增强型自编码器的时序数据异常检测方法和装置

1.本发明涉及自编码器领域,尤其是涉及基于记忆增强型自编码器的时序数据异常检测方法和装置。


背景技术:

2.自编码器是异常检测算法中一种非常高效且常用的方法。其通过对整个数据集的无监督学习,利用样本本身训练模型进行重建。在异常检测任务中,一般将重建误差作为判断异常的指标。而样本量占比大的正常数据,自然对参数的影响就要比样本量占比小的要大得多。一般假设正常数据的重建误差较低,因为它们接近原样本;而对于异常数据,重建误差则较高。然而,这种假设在时间序列的异常检测任务中并不总是成立的。自编码器有时候也会很好的泛化,使得异常数据也能很好的重建。这导致异常样本也拥有同正常样本相当低的重建误差,则无法区分开来。这是因为自编码器的学习能力太强,参数容量太大,使得模型能够学习到正常样本的模式的同时,也学习到了异常的模式。这种由于泛化能力过强导致的“过度泛化”的现象在时间序列异常检测中由为常见。然而衡量模型复杂度与数据空间的量级是一个漫长而低效的过程,所以需要一个无监督、端到端、不容易过过度泛化的方法。


技术实现要素:

3.本发明的目的就是为了克服上述现有技术存在自编码器对异常数据的过度泛化能力的缺陷而提供一种基于记忆增强型自编码器的时序数据异常检测方法和装置。
4.本发明的目的可以通过以下技术方案来实现:
5.一种基于记忆增强型自编码器的时序数据异常检测方法,包括以下步骤:
6.步骤1:获取原始数据,进行预处理后获得时序数据,对该时序数据进行归一化处理,得到原始样本;
7.步骤2:采用编码器将原始样本编码为潜在表示;
8.步骤3:分别计算所述潜在表示与预先设置并训练好的各个记忆项之间的相对距离,构成寻址向量;
9.步骤4:将所述寻址向量与各个记忆项分别相乘,得到新的潜在表示;
10.步骤5:采用解码器对所述新的潜在表示进行解码,得到重建样本;
11.步骤6:根据所述原始样本和重建样本之间的重建误差,进行时序数据异常检测;
12.所述记忆项的训练过程包括:初始化各个记忆项,获取训练数据,并依次执行步骤1-步骤6,获取重建误差,从而计算重建损失,调整各个记忆项中的参数;重复步骤1-步骤6,调整各个记忆项中的参数,进行迭代训练,直至满足预设的训练停止条件。
13.进一步地,步骤3还包括:对寻址向量依次进行整流和标准化操作。
14.进一步地,所述整流的计算表达式为:
[0015][0016]
式中,为整流后的第i条记忆项对应的寻址向量,qi为第i条记忆项对应的寻址向量,λ为预设的稀疏化阈值,n为记忆项的总数;
[0017]
所述标准化的计算表达式为:
[0018][0019]
式中,q为标准化后的寻址向量,ε为预设的标准阈值。
[0020]
进一步地,所述重建损失的计算表达式为:
[0021][0022][0023]
式中,为重建损失,为基于原始样本和重建样本之间的损失函数,为记忆模块稀疏化度量指数,qi为第i条记忆项对应的寻址向量,n为记忆项的总数,η为预设的可调节超参数。
[0024]
进一步地,所述为基于mse的损失函数。
[0025]
进一步地,步骤3中,采用softmax度量计算所述相对距离,构成寻址向量,所述寻址向量的计算表达式为:
[0026]
qi=softmax(z
t
mi)
[0027]
式中,z为编码器产生的潜在表示定义为n条记忆项组成的记忆模块,mi表示第i条记忆项,qi为第i条记忆项对应的寻址向量。
[0028]
进一步地,所述新的潜在表示的计算表达式为:
[0029][0030]
式中,为新的潜在表示,q为寻址向量组合,m为记忆项组合,qi为第i条记忆项对应的寻址向量,mi为第i条记忆项,n为记忆项的总数。
[0031]
进一步地,所述归一化处理的计算表达式为:
[0032][0033]
式中,x为归一化后的数据,d为原始数据预处理后的样本数据,为包含n条时序样本的矩阵,时序数据d为数据点。
[0034]
进一步地,所述编码器为lstm编码器,所述解码器为lstm解码器。
[0035]
本发明还提供一种基于记忆增强型自编码器的时序数据异常检测装置,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,处理器调用所述计算机程序执行
如上所述的方法的步骤。
[0036]
与现有技术相比,本发明具有以下优点:
[0037]
本发明设计了一个针对物联网时序数据异常检测的无监督、端到端、不容易过过度泛化的方法。首先引入了记忆机制来抑制模型的泛化能力,设计了一种针对时间序列数据异常检测的记忆增强型自动编码器,将经过自编码器编码后的潜在表示在记忆模块中与正常样本的进行匹配,重新组合出一个最相似的、消除了异常的样本潜在表示,再将这个潜在表示进行解码得到重构样本与原样本计算异常值;其次通过在loss中加入惩罚项和可求导的整流函数稀疏化寻址向量,鼓励记忆模块提取出典型的正常模式,从而抑制模型泛化能力;同时针对时序数据,引入lstm进行解码和编码工作,以获得时序数据的上下文特征。
[0038]
本发明所给出的方法能够抑制模型的过度泛化能力,增大异常数据和正常数据之间的异常分数,极大提高识别异常的准确率。
附图说明
[0039]
图1为本发明实施例中提供的一种基于记忆增强型自编码器的时序数据异常检测方法的自编码器整体结构图;
[0040]
图2为本发明实施例中提供的一种基于记忆增强型自编码器的时序数据异常检测方法的自编码器数据流向图;
[0041]
图3为本发明实施例中提供的一种没有经过任何稀疏化操作的寻址向量示意图;
[0042]
图4为本发明实施例中提供的一种经过了稀疏化诱导的寻址向量示意图;
[0043]
图5为本发明实施例中提供的一种经过了稀疏化诱导和整流的最终向量示意图;
[0044]
图6为本发明实施例中提供的一种ecg5000心跳数据上对于正常样本的结果示意图,阴影部分表示原样本和重建样本的误差;
[0045]
图7为本发明实施例中提供的一种ecg5000心跳数据上对于异常样本的结果示意图,阴影部分表示原样本和重建样本的误差;
[0046]
图中,batch为批次,lstm cell为lstm单元。
具体实施方式
[0047]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0048]
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0050]
实施例1
[0051]
本实施例提供一种基于记忆增强型自编码器的时序数据异常检测方法,包括以下
步骤:
[0052]
步骤1:获取原始数据,进行预处理后获得时序数据,对该时序数据进行归一化处理,得到原始样本;
[0053]
步骤2:采用编码器将原始样本编码为潜在表示;
[0054]
步骤3:分别计算潜在表示与预先设置并训练好的各个记忆项之间的相对距离,构成寻址向量;
[0055]
步骤4:将寻址向量与各个记忆项分别相乘,得到新的潜在表示;
[0056]
步骤5:采用解码器对新的潜在表示进行解码,得到重建样本;
[0057]
步骤6:根据原始样本和重建样本之间的重建误差,进行时序数据异常检测;
[0058]
记忆项的训练过程包括:初始化各个记忆项,获取训练数据,并依次执行步骤1-步骤6,获取重建误差,从而计算重建损失,调整各个记忆项中的参数;重复步骤1-步骤6,调整各个记忆项中的参数,进行迭代训练,直至满足预设的训练停止条件。
[0059]
本方案为解决传统自编码器过度泛化的问题,避免对异常数据的学习重建,首先引入了记忆机制,设置了多个记忆项,在采用编码器进行样本编码后,通过计算编码后的潜在表示与各记忆项之间的相对距离,即相似度,由该相似度与记忆项数据相乘的结果进行解码,获取重建样本;各记忆项在预先的不断训练过程中,会逐渐匹配原始样本中的正常数据,使得自编码器以正常数据进行解码,使得重建样本不存在对异常数据的泛化解码,避免了自编码器的泛化问题。
[0060]
作为一种优选的实施方式,步骤3还包括:对寻址向量依次进行整流和标准化操作,对寻址向量进行整流和标准化使寻址组合更加有效。
[0061]
具体地,整流的计算表达式为:
[0062][0063]
式中,为整流后的第i条记忆项对应的寻址向量,qi为第i条记忆项对应的寻址向量,λ为预设的可选择的稀疏化阈值,n为记忆项的总数;
[0064]
标准化的计算表达式为:
[0065][0066]
式中,q为标准化后的寻址向量,ε为预设的标准阈值。
[0067]
作为一种优选的实施方式,重建损失的计算表达式为:
[0068][0069][0070]
式中,为重建损失,为基于原始样本和重建样本之间的损失函数,为记忆模块稀疏化度量指数,qi为第i条记忆项对应的寻址向量,n为记忆项的总数,η为预设的可调节超参数。为基于mse的损失函数。
[0071]
损失值由mse重建损失和稀疏化度量指数两部分组成,并存在一个可调节的超参数η控制稀疏化度量指数的影响程度,实现寻址向量的稀疏化。
[0072]
工作原理:自编码器利用重构误差来判断数据异常,但对于物联网中的时间序列数据,在没有确切的衡量过模型复杂度和数据维度的情况下,有时也能很好的重建异常,导致异常的重建误差也很低。然而衡量模型复杂度与数据空间的量级是一个漫长而低效的过程,本实施例设计了一个针对物联网时序数据异常检测的无监督、端到端、不容易过过度泛化的方法。首先引入了记忆机制来抑制模型的泛化能力,设计了一种针对时间序列数据异常检测的记忆增强型自动编码器tsmae(time series memory autoencoder)。将经过自编码器编码后的潜在表示在记忆模块中与正常样本的进行匹配,重新组合出一个最相似的、消除了异常的样本潜在表示,再将这个潜在表示进行解码得到重构样本与原样本计算异常值。其次通过在loss中加入惩罚项和可求导的整流函数稀疏化寻址向量,鼓励记忆模块提取出典型的正常模式,从而抑制模型泛化能力。同时针对时序数据,引入lstm进行解码和编码工作,以获得时序数据的上下文特征。本实施例所给出的方法能够抑制模型的过度泛化能力,增大异常数据和正常数据之间的异常分数,极大提高识别异常的准确率。
[0073]
将上述优选的实施方式进行任意组合可以得到更优的实施方式,下面对一种最优的实施方式的实施过程进行具体描述。
[0074]
针对物联网中时序数据异常检测的需求,本实施例设计了一种记忆增强的自编码器模型,如图1为该模型的整体结构,数值具体计算和流动方式如图2所示。
[0075]
步骤1:首先对原始数据进行预处理获得可计算的时序数据,从整个时间维度根据传感器每次同一时间点的上下文数据进行归一化。将采集的一条时序数据作为输入。整个原始数据为包含n条时序样本的矩阵,每条样本长度为t,分别表示t次采集动作收集回来的数据。对其中每个数据点d,求该数据所在列的最大值和最小值,作为该数据点的归一化参数。具体归一化方式为:
[0076][0077]
步骤2:使用lstm编码器将归一化后的数据编码为潜在表示z。
[0078]
步骤3:用softmax计算潜在表示与各个记忆项之间的相对距离组成寻址向量。这里采用的利用inner product计算潜在表示与各项记忆项之间的匹配程度,再通过softmax与其他记忆项比较得到一个相对的相似度距离。
[0079]
qi=softmax(z
t
mi)
[0080]
式中,编码器产生的潜在表示定义为n条记忆项组成的记忆模块,mi表示第i条记忆项,注意力寻址向量
[0081]
对寻址向量进行整流。
[0082][0083]
对整流后的寻址向量进行标准化。
[0084][0085]
λ是一个可选择的稀疏化阈值,满足
[0086]
如图3-5所示,为对寻址向量进行整流和标准化的结果对比。
[0087]
步骤4:将记忆项按寻址向量的权重组合出新的潜在表示
[0088][0089]
式中,为新的潜在表示,q为寻址向量组合,m为记忆项组合,qi为第i条记忆项对应的寻址向量,mi为第i条记忆项,n为记忆项的总数。
[0090]
步骤5:使用lstm解码器对新组合的潜在表示进行解码得到重建的样本。
[0091]
步骤6:采用l2距离表示原始样本和重建样本之间的重建误差,作为异常分数。同时将mse作为损失函数计算模型的重建损失,结合记忆模块稀疏化度量指数一起作为损失值
[0092][0093]
其中具体衡量方式为:
[0094][0095]
结合步骤3的整流和步骤6的诱导稀疏操作的寻址向量结果如图3所示。寻址向量有明显的稀疏趋势,无复杂组合的低值权重。
[0096]
步骤7:在图6和图7的结果中可以明显的看到模型对于正常样本和异常样本直接重建误差大小,即阴影面积大小的区别。根据异常分数的数据分布,遍历找到最佳阈值作为任务中正常和异常结果的判断标准。
[0097]
本实施例提供一种基于记忆增强型自编码器的时序数据异常检测装置,包括存储器和处理器,存储器存储有计算机程序,处理器调用计算机程序执行如上的方法的步骤。
[0098]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1