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

时间序列异常的动态检测方法、系统、存储介质及终端

2023-01-15 05:51:19 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及时间序列异常的动态检测方法、系统、存储介质及终端。


背景技术:

2.时间序列是指将某领域某一统计指标在不同时刻下的数值、按照时间先后顺序排列而形成的序列。时间序列异常检测一直是学术界和工业界比较关注的问题。时间序列数据的异常检测是数据挖掘的一个重要研究方向,在很多应用领域中都有研究,例如工业生产领域从监控系统运行状态的传感器中采集到的时序数据发现系统运行的异常状态,并进行异常诊断,寻找导致异常产生的根源;智能运维系统中使用异常数据检测模型自动发现运维数据中的异常模式,并根据异常类别和等级产生不同的异常告警和异常分析报告;信息安全领域通过异常检测发现系统中的异常网络流量、恶意攻击等异常行为,能够极大的提高系统的安全性。因此,可行且高效的异常检测方法至关重要。
3.伴随着人工智能技术的发展,时间序列的异常检测方法逐渐被分为两类,一类是传统的普通异常检测方法,包括基于距离、基于密度以及基于聚类的方法等,另一类则是基于深度学习的方法,利用复杂的神经网络来实现异常检测,由于各种深度学习异方法在异常检测领域的性能表现尤为突出且有效,能够有效的识别出时序数据中的各种异常,并且可以应对数据模式越来越复杂的问题,因此,深度学习已经成为异常检测领域的主流。
4.而现有基于滑窗的时间序列检测中,通过滑窗内的统计信息,如平均数、中位数等对下一时间点的数值做出预测,其需要对时序数据采取滑动窗口划分操作,增加了计算量,同时基于异常分数计算每个滑动窗口对应的阈值,使得异常检测对阈值改变的敏感性较高,检测的效果不够稳定。此外,现有异常检测在计算指标过程中划定固定窗口会将出现将异常临近区域的正常数据窗口划分为异常的情况,导致检测不准确。


技术实现要素:

5.本发明的目的在于克服现有技术中时间序列异常检测的问题,提供了一种时间序列异常的动态检测方法、系统、存储介质及终端,提高检测的稳定性。
6.本发明的目的是通过以下技术方案来实现的:在第一方案中,提供一种时间序列异常的动态检测方法,所述方法包括以下步骤:s1、利用神经网络模型重构初始时间序列,得出重构时间序列,并根据所述初始时间序列和重构时间序列计算重构误差序列;s2、在所述重构误差序列的上下限内设定阈值;s3、按照所述阈值划分重构误差序列中各个点为阳性或阴性;s4、将所述阈值动态取值,并利用初始时间序列携带的异常标签进行匹配,得到真假阳性/阴性序列。
7.在一个示例中,一种时间序列异常的动态检测方法,所述方法还包括步骤:
s5、根据所述真假阳性/阴性序列得出评价指标。
8.在一个示例中,一种时间序列异常的动态检测方法,所述神经网络模型包括输入整条初始时间序列的接口、用于训练时间序列的多层神经网络以及输出层,所述输出层输出整条重构时间序列。
9.在一个示例中,一种时间序列异常的动态检测方法,所述步骤s1之前还包括对所述神经网络模型的训练过程,所述训练包括:将初始时间序列标准化后输入所述神经网络模型;利用所述神经网络模型训练得到重构时间序列;将所述重构时间序列与所述初始时间序列对比得出损失;得到损失后继续训练,直到损失降低且长时间保持不变,停止训练。
10.在一个示例中,一种时间序列异常的动态检测方法,将所述初始时间序列和重构时间序列做差得到重构误差序列。
11.在一个示例中,一种时间序列异常的动态检测方法,所述步骤s4中的匹配包括:s41、将所述阈值之上的点归为阳性点集,阈值之下的点归为阴性点集;s42、以异常标签点为中心的一个异常标签范围内如果出现至少一个阳性点,则该异常标签点检测成功,为一例真阳性tp;若该异常标签范围内未出现任何阳性点,则该异常标签点检测失败,为一例假阴性fn;s43、任何阳性点集如果没有任意一点处在异常标签范围内,则该阳性点集为一例假阳性fp;异常标签范围之外的任何连续区间,若该区间内的所有点都为阳性,则该区间检测错误,为一例假阳性fp;s44、将阈值动态取值,匹配异常标签,直到得到最高f1分数,输出计算结果。
12.在一个示例中,一种时间序列异常的动态检测方法,所述f1分数的计算如下:其中,精确率;召回率。
13.在第二方案中,提供一种时间序列异常的动态检测系统,所述系统包括:数据重构模块,用于利用神经网络模型重构初始时间序列,得出重构时间序列,并根据所述初始时间序列和重构时间序列计算重构误差序列;阈值设定模块,用于在所述重构误差序列的上下限内设定阈值,并将所述阈值动态取值;数据点划分模块,用于按照所述阈值划分重构误差序列中各个点为阳性或阴性;时间序列分类模块,利用初始时间序列携带的异常标签匹配动态阈值,得到真假阳性/阴性序列。
14.在第三方案中,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行任意一项所述动态检测方法的步骤。
15.在第四方案中,提供一种终端,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行任意一项所述动态检测方法的步骤。
16.需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组
合或替换构成新的技术方案。
17.与现有技术相比,本发明有益效果是:(1)本发明在重构误差的上下限内设定动态阈值,利用动态的子序列区间得到真假阳性/阴性序列,从而来确定异常范围和区间,打破传统检测划分窗口的模式,有效的避免使用人为阈值和参数造成的误差,使异常检测对阈值改变的敏感性降低,检测的效果更稳定可靠,同时,能够突破划定窗口的限制,实现对异常区间的准确划分,并减少窗口划分大小不同带来的误差。
18.(2)在一个示例中,神经网络模型包括输入整条初始时间序列的接口、用于训练时间序列的多层神经网络以及输出层,所述输出层输出整条重构时间序列,采用无监督的方式,可实现大量无标注时间序列数据的异常检测,利用了深度学习框架抓取数据深层特征,同时对比现有无监督异常检测,可以实现整条数据输入直接训练,减少了计算步骤,提高了效率。
19.(3)在一个示例中,本发明根据真假阳性/阴性序列得出评价指标,重构的误差直接用于准确率等指标的计算,不进行分割与对比,将重构序列动态划分,以自动得出指标和异常范围,能提高计算框架整体效率,减少人为划分导致的误差。
附图说明
20.图1为本发明实施例示出的一种时间序列异常的动态检测方法的流程图;图2为本发明实施例示出的带有评价指标计算的检测方法流程图;图3为本发明实施例示出的tp判别标准示意图;图4为本发明实施例示出的fn判别标准示意图;图5为本发明实施例示出的fp判别标准示意图;图6为本发明实施例示出的深度学习模型训练流程图。
具体实施方式
21.下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
23.在一示例性实施例中,提供一种时间序列异常的动态检测方法,如图1所示,所述方法包括以下步骤:s1、利用神经网络模型重构初始时间序列,得出重构时间序列,并根据所述初始时间序列和重构时间序列计算重构误差序列;s2、在所述重构误差序列的上下限内设定阈值;s3、按照所述阈值划分重构误差序列中各个点为阳性或阴性;s4、将所述阈值动态取值,并利用初始时间序列携带的异常标签进行匹配,得到真假阳性/阴性序列。
24.在一可能的实施例中,一种时间序列异常的动态检测方法,如图2所示,所述方法
还包括步骤:s5、根据所述真假阳性/阴性序列得出评价指标,将做差得到的重构误差序列利用上述重构误差动态检测方法进行指标评判。
25.具体地,结合步骤s5说明该动态检测方法的过程,首先将初始时间序列数据输入神经网络模型中进行重构,得到重构时间序列数据,将所述初始时间序列数据和重构时间序列数据做差得到重构误差序列。其中,重构误差序列本质上为数据点组成的折线,初始时间序列数据中含有标签,该标签只用于验证计算,无标注数据可以用于模型进行训练重构得到重构误差,但无法进行该种方法的验证计算,在神经网络模型的训练过程中,模型本身不输入标签,它获取的数据在训练过程中为无标注的数据,模型看不到数据的标签状况;而在验证过程中需要利用标签对整体模型的效果进行评价验证,这里的标签和无标注数据并不冲突。然后在重构误差序列的上下限内设定动态阈值,以往的异常的窗口实验者会规定在固定的数值中,这个数值取决于该时间序列的周期或者标签的间隔范围,而本文的动态阈值可以不利用数据本身的周期和标签的范围给出窗口,他在遍历计算中会自动查找符合定义的相关指标数量并给出最终分数。
26.步骤s3中阳性(阴性)点集定义为:重构误差序列中分值高出(低于)设定动态阈值的点组成的子序列。
27.进一步地,所述步骤s4中的匹配包括:s41、将所述动态阈值之上的点归为阳性点集,阈值之下的点归为阴性点集;s42、以异常标签点为中心的一个异常标签范围内如果出现至少一个阳性点,则该异常标签点检测成功,为一例真阳性tp,如图3所示,异常标签范围用矩形框表示,直线表示阈值线,阈值线上方的数据点为阳性点,阈值线下方的数据点为阴性点,在矩形框内存在至少一个阳性点,则整个矩形框代表的区别为一例真阳性tp,表示该异常标签点检测成功;若该异常标签范围内未出现任何阳性点,则该异常标签点检测失败,为一例假阴性fn,如图4所示,在矩形框内没有任何的阳性点,检测失败。
28.s43、任何阳性点集如果没有任意一点处在异常标签范围内,则该阳性点集为一例假阳性fp;异常标签范围之外的任何连续区间,若该区间内的所有点都为阳性,则该区间检测错误,为一例假阳性fp,如图5所示,阈值线上方没有落入矩形框的阳性点集均为假阳性fp。
29.其中,异常标签范围对应一个序列周期范围,表示该序列发生异常的普遍范围,周期序列的普遍异常范围为一个周期,非周期序列需要给定标签点代表的异常区域大小。
30.s44、将阈值动态取值,匹配异常标签,直到得到最高f1分数,输出计算结果。具体地,取不同的阈值,遍历序列的最小值到最大值,每个阈值根据步骤s42、s43的算法,可以得到相应的tp、fn、fp数值,每一组数值又对应一个f1值,遍历结束后,在这所有的f1值中取最大值为最终评价分时,并返回记录当前阈值、tp、fn、fp个数,统计给出最后结果。
31.在一可能的实施例中,一种时间序列异常的动态检测方法,所述f1分数的计算如下:
其中,精确率;召回率,tp、fn、fp分别为上述真阳性、假阴性、假阳性。在异常检测完成后输出精确率,召回率以及f1分数。
32.在一可能的实施例中,一种时间序列异常的动态检测方法,所述神经网络模型包括输入整条初始时间序列的接口、用于训练时间序列的多层神经网络以及输出层,所述输出层输出整条重构时间序列,计算初始时间序列和重构时间序列的差值为重构误差序列,该模型可以实现整条数据输入直接训练,减少了计算步骤,提高了效率。其中,所述神经网络模型采用tcnae模型或其他可达到本发明检测方法的深度学习模型,tcnae模型是采用论文《temporal convolutional autoencoder for unsupervised anomaly detection in time series》中的时态卷积自编码器模型,它可以实现对时间序列的主要特征的重构,同时异常特征不易抓取,因此经过tcnae模型的时间序列在正常数据部分相似度高,异常部分相似度低。
33.在一可能的实施例中,一种时间序列异常的动态检测方法,所述步骤s1之前还包括对所述神经网络模型的训练过程,如图6所示,所述训练包括:将初始时间序列标准化后输入所述神经网络模型;利用所述神经网络模型训练得到重构时间序列;将所述重构时间序列与所述初始时间序列对比得出损失;得到损失后继续训练,直到损失降低且长时间保持不变,停止训练,得到已经训练完成的神经网络模型,该模型具有一定重新构建初始时间序列数据的能力。
34.在另一示例性实施例中,本发明提供一种时间序列异常的动态检测系统,所述系统包括:数据重构模块,用于利用神经网络模型重构初始时间序列,得出重构时间序列,并根据所述初始时间序列和重构时间序列计算重构误差序列;阈值设定模块,用于在所述重构误差序列的上下限内设定阈值,并将所述阈值动态取值;数据点划分模块,用于按照所述阈值划分重构误差序列中各个点为阳性或阴性;时间序列分类模块,利用初始时间序列携带的异常标签匹配动态阈值,得到真假阳性/阴性序列。
35.进一步地,该系统也看扩展为整体检测框架,还包括前端的数据训练模块,其中数据训练模块也依赖于神经网络模型。
36.在另一示例性实施例中,本发明提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述时间序列异常的动态检测方法。
37.基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
38.在另一示例性实施例中,本发明提供一种终端,包括存储器和处理器,存储器上存
储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行所述时间序列异常的动态检测方法。
39.处理器可以是单核或者多核中央处理单元或者特定的集成电路,或者配置成实施本发明的一个或者多个集成电路。
40.本说明书中描述的主题及功能操作的实施例可以在以下中实现:有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。
41.本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
42.适合用于执行计算机程序的处理器包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
43.虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
44.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
45.以上具体实施方式是对本发明的详细说明,不能认定本发明的具体实施方式只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演和替代,都应当视为属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献