一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用无监督深度神经网络的多维时序数据实时异常检测方法与流程

2021-10-30 02:40:00 来源:中国专利 TAG:多维 序列 检测方法 异常 时间


1.本发明涉及一种多维时间序列异常检测的方法。


背景技术:

2.随着信息时代的到来,每天都会产生巨量的数据,这些数据中的一部分是时间序列数据。时间序列数据是按时间顺序在某个指标上每间隔一定的时间所采集的数据排列成的序列。序列中的每一个数据都与先前的数据相关,这类数据可以描述事物随时间的变化情况,能反映事物的发展趋势。在众多研究方向中,对多维时间序列异常检测的研究占据重要的地位。能否及时发现异常,解决异常关乎到生产、生活能否正常进行。近些年随着物联网的发展,我们能监测收集到更多的多维时间序列数据,由于异常随时可能产生严重的后果,那么对已收集到的数据进行整理分析可及时发现影响安全的因素,及时处理可能的影响因素,可以尽可能地减小损失。因此对多维时间序列异常检测方法做研究具有十分重要的现实意义。
3.实时的多维时间序列异常检测对现实生活中的安全生产、生活具有重要的意义。现在主流的异常检测方法包括基于传统统计的方法,基于机器学习的方法和深度学习的方法。基于传统统计的异常检测方法通常将时间序列数据当作数据集合分析其分布,这种技术需要事先获得全体数据,其无法实时判断异常,且存在不可避免的噪声。而机器学习中基于距离、密度,基于集成学习等技术无法获得时间序列数据之间的相关性。相对来说,深度学习模型更适用于多维时间序列的异常检测,它能自动捕获到时间序列之间的非线性关系,提供端到端的训练,不需要复杂的调参。但不同的深度学习模型只能针对不同的应用场景。


技术实现要素:

4.本发明的目的是:融合了多种深度神经网络模型,使其在多维时间序列异常检测过程中既克服了传统统计方法受噪声影响的缺陷,又克服了机器学习方法中无法捕获序列之间相关性的缺点。
5.为了达到上述目的,本发明的技术方案是提供了一种使用无监督深度神经网络的多维时序数据实时异常检测方法,其特征在于,包括以下步骤:
6.步骤1、获得当前时刻之前设定时间段内的m组实时历史数据组,相邻实时历史数据组之间步长为w,每组实时历史数据组包含ω条实时历史数据,每条实时历史数据包含n个属性的实时历史属性数据;
7.获得当前时刻的一条新采集数据,该条新采集数据包含n个属性的新采集属性数据;
8.步骤2、计算每组实时历史数据组的相关性特征,得到每组实时历史数据组的相关性特征矩阵fm,相关性特征矩阵fm为n阶方阵,m个相关性特征矩阵fm组成长度为m的特征矩阵序列;
9.将最新的一条新采集数据看作一个大小为n
×
1的一维矩阵,用计算相关性特征的方法计算这个一维矩阵的特征矩阵,得到自身特征矩阵sfm,该自身特征矩阵sfm为n阶方阵;
10.步骤3、将特征矩阵序列输入提取特征重建数据模块,提取特征重建数据模块使用四层卷积神经网络作为特征提取器,为每一层卷积神经网络增加一层专门处理时间序列数据的lstm网络结构,对每一层lstm网络结构输出的特征提取矩阵进行重构获得重构矩阵,每一层重构矩阵的大小与当前一层lstm网络结构输出的特征提取矩阵大小一致,所有重构矩阵构成了重构矩阵序列,该重构矩阵序列为特征提取器的输出,且重构矩阵序列的大小与输入的特征矩阵序列的大小一致;
11.提取特征重建数据模块将重构矩阵序列作为一线性回归的输入,线性回归的输出为预测采集数据,该预测采集数据的表现形式为n阶方阵psfm;
12.步骤4、进行数据异常评估,包括以下步骤:
13.步骤401、计算方阵psfm与自身特征矩阵sfm的差异;
14.步骤402、依据上一步计算得到的差异计算异常得分sc;
15.步骤403、根据给定的阈值δ判断异常得分sc是否达到了异常的范围:如果异常得分sc大于阈值δ,则说明可能发生了异常,立即将异常信号返回;如果异常得分sc不大于阈值δ,则直接将结果存储。
16.优选地,步骤2中,所述相关性特征矩阵fm的计算公式为:
[0017][0018]
式中,每组实时历史数据组的ω条实时历史数据为一个大小为n
×
ω的矩阵m。
[0019]
优选地,步骤401中,将距离矩阵dm作为所述方阵psfm与所述自身特征矩阵sfm的差异,dm=‖psfm

sfm‖2。
[0020]
优选地,步骤402中,计算异常得分sc时,统计所述距离矩阵dm中大于给定阈值θ的元素值的数量,将统计结果作为所述异常得分sc,sc=f(dm,θ),f是统计距离矩阵dm中大于阈值θ的元素的数量。
[0021]
优选地,所述阈值θ根据多个历史正常数据的距离矩阵hndms设定,则有:
[0022]
θ=1.5
×
(q3(max(hndms))

q1(max(hndms))) q3(max(hndms))
[0023]
其中,max(hndms)为所有距离矩阵hndms中的最大数值组成的集合,q1和q3分别表示集合max(hndms)的下四分位数和上四分位数。
[0024]
优选地,步骤403中,采用以下方法设定所述阈值δ:
[0025]
步骤4031、得到多个历史正常数据的异常得分的异常得分集合sn,基于异常得分集合sn计算得到临时阈值δ

,有:
[0026]
δ

=1.5
×
(q3(sn)

q1(sn)) q3(sn)
[0027]
q1和q3分别表示异常得分集合sn的下四分位数和上四分位数;
[0028]
步骤4032、判断异常得分集合sn中是否存在大于临时阈值δ

的值,如果存在,则将所述阈值δ设置为异常得分集合sn中大于临时阈值δ

那部分值的上四分位数;如果不存在,则直接将所述阈值δ设为异常得分集合sn中的最大值,即有:
[0029]
δ表示为:
[0030]
本发明根据历史数据提出了一种实时的时间序列异常检测方法,适用于多种真实场景中的多维时间序列实时异常检测。本发明根据当前的预测数据与真实数据之间的差异大小判断是否出现了异常。一旦预测数据和真实数据之间的距离超过了设定的阈值,就采取必要的安全措施,以提醒可能发生了异常行为并及时做检查以减小损失。
[0031]
与现有技术相比,本发明具有如下特点:
[0032]
(1)融合多种深度学习模型的优点,建立了一个自动实时检测多维时间序列中异常事件的模型。
[0033]
(2)设计了一种根据历史数据的异常情况判定异常的办法和设定阈值的办法。
[0034]
(3)具有很好的可扩展性,适用于多种场景下的多维时间序列异常检测。
附图说明
[0035]
图1为本发明的整体架构图;
[0036]
图2为检测异常流程图;
[0037]
图3为模型架构图;
[0038]
图4为判断异常阈值算法流程图。
具体实施方式
[0039]
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。
[0040]
本发明适用于多种真实场景中的多维时间序列实时异常检测,可以分为两个阶段,分别为训练阶段和检测阶段。训练阶段需要利用历史采集的数据训练模型,拟合出符合这一应用场景的监测系统。在检测阶段,在真实数据产生之前,提前预测出接下来要到达的数据,根据真实到达的数据与预测数据之间的差异判断是否异常。一旦新到达的数据与预测数据之间的距离大于系统设定的阈值,判断该时刻采集的数据为异常数据,并发出异常提醒。具体而言,本发明通过对采集的历史多维时间序列分析构建模型,模拟出真实应用中数据发展趋势的模型。在未收集新数据之前,用模型预测出符合当前发展趋势的数据,当新数据产生后,对比新数据与预测数据之间的差异,差异超过给定的阈值则视为发生了异常事件,此时及时根据异常结果发出异常警告。
[0041]
本实施例以互联网房屋火灾报警系统为例,将本发明提供的检测方法放到服务器中,输入到本发明中的数据是反映房屋不同属性的数据,这些数据是多维时间序列数据。使用zigbee无线传感网络监测一个房屋中温度、一氧化碳浓度和二氧化碳浓度三个属性,每个无线节点每10分钟采集一次数据,数据集添加了从最近的气象站获取的温度属性的数据,共包含四个属性。
[0042][0043][0044]
表1标准化后的一段多维时序数据
[0045]
上表1展示了一段标准化后的多维时间序列数据集,展示出来了10个时刻的数据,第二列中的省略号表示前面未展示出来的多维时间序列数据。
[0046]
通过网络将多维时间序列数据集上传到服务端,服务端检测数据的异常情况。如果服务端将数据判断为异常,则将异常结果返回,连接着返回结果的报警器一旦接收到异常信号就发出警报,直到人为确认异常情况后才能停止报警器。上述房屋火灾警报系统的工作流程可抽象为四个阶段,整体架构图如图1所示:先由第一阶段中的传感器采集数据;第二阶段将采集的数据上传至服务器并存储;第三阶段用放在服务器中的检测方法对新存储的数据做异常检测;最后一个阶段将检测结果存储在服务器中,并在检测结果为异常时触发警报器。
[0047]
因此,本发明提供的一种异常检测方法可分为三个阶段,预处理数据阶段、提取特征预测数据阶段、评估异常情况阶段。异常检测方法的整体流程如图2所示,大致包括以下步骤:
[0048]
首先对历史数据和新采集的数据进行相关性特征提取,历史数据相关性特征的表现形式为矩阵序列,新采集的数据的相关性特征的表现形式为矩阵。将历史数据矩阵序列作为提取特征重建数据模块的输入。提取特征重建数据模块是一个融合多种神经网络的模型,既具有自编码器模型的健壮性又具有lstm模型捕获时间模式的优势,此提取特征重建数据模块的输出为预测数据,再根据预测数据和真实数据(即新采集的数据)计算异常得分。最后判断异常得分和给定的阈值之间的关系,若异常得分大于阈值,则认为发生了异常,即刻发出异常提醒并存储结果,若异常得分不大于阈值,则直接将判断结果保存。
[0049]
针对表1中给出的一段标准化后的多维时间序列数据,本实施例以判断表1中第10个时刻的异常情况为例,详细介绍本发明提供的一种异常检测方法的工作原理与过程:
[0050]
图3中展示了检测模型的整体架构图,如图3中的(s)为收集的多维时间序列数据,这些数据由监测房屋属性的传感器收集,并且这些数据已经被上传至服务器中,最新采集的第10个时刻的数据也已经存储在服务端。
[0051]
(1)预处理数据阶段:该阶段需要对两部分数据做预处理,一部分为最近的历史数据,另一部分为新采集的数据。在采集新数据之前,为了能预测出即将采集的数据,先对最近的历史数据做预处理,包括以下步骤:
[0052]
第一步,从服务器的数据库中取出最近m组历史数据组作为提取特征预测数据阶段的输入,每组历史数据组包含ω条历史数据,相邻历史数据组之间设置步长为w。m、ω和w可以根据不同场景的应用做调整,本实施例中,默认值分别设为10、10和5。每一条历史数据
包含所有属性的数据,属性的数量记为n。可将每组历史数据组的ω条历史数据看作一个矩阵,记为m,m的大小为n
×
ω。
[0053]
第二步,计算矩阵m中历史数据之间的相关性特征,将相关性特征称为特征矩阵,记做fm,则有:
[0054][0055]
一组历史数据的特征矩阵fm为n阶方阵。
[0056]
第三步,采用上述第一步以及第二步分别对m组历史数据组计算相关性,可得到长度为m的特征矩阵序列,用该特征矩阵序列作为提取特征重建数据模块的输入。
[0057]
为了计算异常得分,需要对新采集的数据做预处理,预处理的方式与计算特征矩阵的方式类似,即将最新的一条新采集数据看作一个一维矩阵,该矩阵的大小为n
×
1,用计算相关性特征的方法计算这个一维矩阵的特征矩阵,此结果也为n阶方阵,将这种利用新采集的数据计算得到的特征矩阵称为自身特征矩阵,记为sfm。
[0058]
表1中给出的标准化后数据是一段维度为4的多维时间序列,即n=4。
[0059]
对历史数据做预处理:其中取m=4,ω=3,w=2。
[0060]
从第9个时刻开始取出m组历史数据组,对于表中第9个时刻的ω条数据形成的矩阵为其大小为4
×
3,矩阵m的特征矩阵为fm,则:
[0061][0061][0063]
向前移动w=2个时刻,可以计算出第7个时刻的特征矩阵。同理,再向前移动w=2个时刻计算第5个时刻的特征矩阵。重复上述步骤直到计算出m=4个特征矩阵,分别为第3个时刻、第5个时刻、第7个时刻、第9个时刻的特征矩阵,这4个4
×
4的矩阵将输入到提取特征重建数据模块。
[0064]
对新采集的新采集数据做预处理:第10个时刻的新采集数据的自身特征矩阵为sfm,则:
[0065][0066]
(2)提取特征预测数据阶段:
[0067]
提取特征重建数据模块分为三个部分,分别为编码特征矩阵、解码特征矩阵和重构特征矩阵并预测数据,如图3中的(a)(b)(c)三部分所示。
[0068]
提取特征重建数据模块在编码特征矩阵阶段使用了四层卷积神经网络作为特征提取器,为了强化提取的特征,分别对每一层加上了一层专门处理时间序列数据的lstm网络结构。提取特征重建数据模块在解码特征矩阵阶段,分别对每一层的特征提取结果进行重构获得重构矩阵,每一层的重构矩阵都与提取出来的特征矩阵大小一致。解码器输出的
结果是重构的特征矩阵序列,它与输入的特征矩阵序列大小一致的。将重构出来的特征矩阵序列作为一线性回归的输入,如图3中的(d)所示,而经过(d)计算后的输出便是预测出来的即将采集的数据。这种利用自编码器思想的模型具有更强的健壮性,而加上时间特征提取模型更能捕获到时间序列的特征。通过该网络可预测出来即将到达的数据,该数据的表现形式为n阶方阵,记为psfm。
[0069]
在特征提取预测数据阶段中,模型预测的第10个时刻的数据为psfm,则:
[0070][0071]
(3)评估异常情况阶段:在采集了真正的数据后,将采集的数据上传至服务器,先预处理新采集的数据,再根据新采集的真实数据与预测出来的数据之间的差异决策出异常情况。决策异常情况的过程可分为三步:第一步,计算预测矩阵psfm和真实矩阵sfm(即前述的自身特征矩阵为sfm)之间的差异,将预测矩阵和真实矩阵的差异称为距离矩阵,记为dm,则计算dm的公式为:
[0072]
dm=‖psfm

sfm‖2[0073]
第二步,计算异常得分。统计距离矩阵dm中大于给定阈值的元素的数量,将此处的阈值记为θ,将统计结果作为当前时刻的异常得分,将异常得分记为sc。则:
[0074]
sc=f(dm,θ)
[0075]
其中,f是统计距离矩阵dm中大于θ的元素的数量,阈值θ根据历史正常数据的距离矩阵(记为hndms)设定,则有:
[0076]
θ=1.5
×
(q3(max(hndms))

q1(max(hndms))) q3(max(hndms))
[0077]
其中,max(hndms)为每个距离矩阵中的最大数值组成的集合,这里使用的距离矩阵都是历史正常数据的距离矩阵,q1和q3分别表示集合的下四分位数和上四分位数。
[0078]
第三步,决策异常情况。根据给定的阈值δ判断此刻的异常得分是否达到了异常的范围,如果此刻的异常得分sc大于阈值δ,说明可能发生了异常,则立即将异常信号返回,报警器接收到异常信号便立即做出响应。如果此刻的异常得分sc不大于阈值δ,则直接将结果存储,不做任何提醒。其中判断是否异常的阈值δ设定需要根据具体的实际情况来设定。一种根据正常历史数据设定阈值的算法流程图如图4所示,该算法的第一步为输入正常历史数据的异常得分,第二步根据正常历史数据的异常得分计算一个临时阈值,第三步判断正常历史数据的异常得分中是否存在大于临时阈值的值,如果存在,则将判断是否异常的阈值设置为历史数据异常得分中大于临时阈值那部分值得上四分位数,如果不存在,则直接将该阈值设为历史数据异常得分中的最大值。
[0079]
下面将详细介绍设定阈值算法每一步详细的计算步骤,已经得到历史正常数据的异常得分,记为sn。用sn计算一个临时阈值δ

,则:
[0080]
δ

=1.5
×
(q3(sn)

q1(sn)) q3(sn)
[0081]
判断历史正常数据的异常得分sn中是否存在大于临时阈值δ

的值,如果存在,则将阈值δ设为历史正常数据的异常得分sn中大于临时阈值δ

的那部分值的上四分位数,否则阈值δ取历史正常数据的异常得分sn中的最大值。
[0082]
δ可表示为:
[0083]
该算法得到的阈值结果可以为阈值的设定提供良好的参考,如果没有人为设定阈值,则默认用此阈值设定算法设定阈值,初始阈值根据训练模型的正常数据集设定。
[0084]
在房屋火灾报警系统的评估异常阶段中,首先计算第10个时刻的距离矩阵dm,则:
[0085][0086]
该距离矩阵dm中的最大数值为0.093。用历史数据的距离矩阵中最大数值组成的集合计算出来的θ=0.016,则第10个时刻的异常得分为sc,则:
[0087][0088]
表2中展示了所有时刻的异常得分,从第10时刻之前所有时刻中取出判断为正常数据的异常得分sn={

,3,0,0,1,1,0,0,2,4},根据异常得分sn计算的临时阈值δ

=3.750。
[0089]
时间

12345678910得分

3001100247异常

否否否否否否否否否是
[0090]
表2所有时刻异常得分表
[0091]
异常得分sn中存在大于临时阈值δ

的值,阈值δ=q3({s|sn>δ

})=4。第10个时刻的异常得分sc>4,判断第10个时刻为异常。服务端将异常结果记录并立刻将此刻的异常信号返回,同时火灾报警器立刻响起,提醒人们房屋中可能发生了火灾这样的紧急事件。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜