G06K9/62 G06N3/04 G06N3/08
1.一种基于神经网络的时间序列数据异常检测方法,其特征在于,包括以下步骤:
步骤1:收集数据
收集具有一定持续时间的某类时间序列数据,和各种可能引起数据突变的事件,然后通过移动终端或其他设备将收集的数据上传到云端,此部分为我们的现有技术;
步骤2:基于神经网络的时间序列数据异常检测过程
本发明提出了一种基于神经网络的时间序列数据异常检测方法,异常检测器由递归神经网络驱动,并采用强化学习方法来实现自学习过程,例如通过采用X学习方法来训练用于估计X(z,a)的循环神经网络,异常检测器不对异常类型和异常模式做任何假设,通过从经验值中自我学习从而不断改进异常检测器,本发明所提的异常检测方法可以广泛应用于健康医疗、智能交通和大型生产系统等行业中的人体疾病监测、交通事故发现、设备故障诊断、网络入侵检测等众多领域;
步骤3:异常检测方法的性能验证
我们对多种类型时间序列数据集进行了异常检测(如慢性心力衰竭患者的体征数据、公交网络的服务数据、生产系统中的设备能源数据等),以消除由突发事件或紧急状况引起的异常数据,首先通过训练某持续时间段的数据记录集,得到异常检测经验,然后在实时数据集中验证了本发明中异常检测方法的性能,该方法能够识别目标时间序列的均值,点异常和异常模式的偏移,在测试数据集中能够获得高质量的结果,其准确度约为100%。
2.根据权利要求1所述的基于神经网络的时间序列数据异常检测方法,其特征在于,在步骤2中,异常检测器不对异常类型和异常模式做任何假设。
3.根据权利要求1所述的基于神经网络的时间序列数据异常检测方法,其特征在于,在步骤3中,异常检测器不需要选择阈值,不需要调整参数。
本发明涉及一种时间序列异常检测方法,具体涉及一种基于神经网络的时间序列数据异常检测方法,属于人工智能和大数据应用技术领域。
异常检测是广泛存在于很多领域的热门话题。例如健康医疗中的人体疾病监测,智能交通中的交通事故发现,大型生产系统中的设备故障诊断、网络入侵检测等众多领域,可见,异常检测非常重要。理想情况下的异常检测方法应该适用于各类不同场景,并且可以轻松操作。
但是,现有的异常检测方法无法满足需求。文献(Chandola V, Banerjee A, andKumar V. Anomaly detection: A survey. ACM Computing Survey, 41(3): 1-58,2009)对异常检测方法进行了深入总结,发现不同的异常检测方法对异常模式都做出了各种强假设(Gandhimathi L, Murugaboopathi G. A novel hybrid intrusion detectionusing flow-based anomaly detection and cross-layer features in wirelesssensor network. Automatic Control and Computer Sciences, 54(1):62-69, 2020),如基于分布式的方法,但是在假设条件不成立的情况下,异常检测方法可能无法取得令人满意的结果(Feng F, Liu X, and Yong B. Anomaly detection in ad-hoc networksbased on deep learning model: A plug and play device. Ad Hoc Networks, 84:82-89, 2019)。另一方面,异常检测方法并不总是很容易操作。2015年,雅虎发布了他们的时间序列异常检测系统EGADS(Laptev N, Amizadeh S, and Flint I. Generic andscalable framework for automated time-series anomaly detection. ACM SIGKDDInternational Conference on Knowledge Discovery and Data Mining, 1939-1947,2015),在系统内,实施并集成了一组方法以生成异常检测结果。但是如此复杂的系统要求工程师不仅要了解组件,还要理解方法集,以便能够为每个组件调整参数。此外,业界使用的方法很少考虑异常模式的演变(Carreno A, Inza I, and Lozano J. Analyzing rareevent, anomaly, novelty and outlier detection terms under the supervisedclassification framework. Artificial Intelligence Review,53(5): 3575- 3594,2020),这导致静态异常检测参数在动态场景下的性能较差。
综上,现有方法存在以下不足:
(i)现有异常检测方法对异常类型和异常模式都做出了各种强假设,当假设条件不满足时,无法得到满意的结果;
(ii)现有的异常检测方法构建复杂,需要频繁调整参数,可操作性不强;
(iii)现有方法很少考虑异常模式的演变,在动态场景下的性能较差。
基于此,本发明提出了一种基于神经网络的异常检测方法,不对异常模式的潜在机制做出任何假设;避免阈值设置的繁琐工作,以获得良好的异常检测性能;随着异常检测经验的增长而不断学习改进,从而对时间序列数据做出异常检测。
为了消除突发事件或紧急状况等引起的异常数据,本发明提出了一种基于神经网络的时间序列数据异常检测方法,通过使用强化学习框架不断进行培训。异常检测方法的过程描述如图2所示,该过程包括三个主要组件:异常检测器,累积的异常值和经验值,它们都是自学习的。
为了实现上述目标,本发明采用如下的技术方案:
一种基于神经网络的时间序列数据异常检测方法,其特征在于,包括以下步骤:
步骤1:收集数据
收集具有一定持续时间的某类时间序列数据,和各种可能引起数据突变的事件,然后通过移动终端或其他设备将收集的数据上传到云端,此部分为我们的现有技术;
步骤2:基于神经网络的时间序列数据异常检测过程
本发明提出了一种时间序列数据异常检测方法,异常检测器由递归神经网络驱动,并采用强化学习方法来实现自学习过程,例如通过采用X学习方法来训练用于估计X(z,a)的循环神经网络,通过从经验值中自我学习从而不断改进异常检测器,获得良好的异常检测性能。所提出的异常检测方法具有以下特征:不对异常类型和模式做任何假设,不需要选择阈值,随着异常检测经验的增长而不断学习改进,从而可以广泛应用于众多领域;
步骤3:异常检测方法的性能验证
我们对多种类型时间序列数据集进行了异常检测(如慢性心力衰竭患者的体征数据、公交网络的服务数据、生产系统中的设备能源数据等),以消除由突发事件或紧急状况引起的异常数据,首先通过训练某持续时间段的数据记录集,得到异常检测经验,然后在实时数据集中验证了本发明中异常检测方法的性能,该方法能够识别目标时间序列的均值,点异常和异常模式的偏移,在测试数据集中能够获得高质量的结果,其准确度约为100%。
本发明的有益之处在于:
(1)异常检测器不对异常类型、异常模式的潜在机制做任何假设,但可以通过学习从训练数据集中获得相关概念;
(2)异常检测器不需要选择阈值,避免了阈值设置的繁琐工作,从而可以获得良好的异常检测性能;
(3)随着异常检测经验的积累,异常检测器不断进行动态改进,学习新的异常,从而增强其对异常检测的知识积累;
(4)本发明所提的异常检测方法可以广泛应用于健康医疗、智能交通和大型生产系统等行业中的人体疾病监测、交通事故发现、设备故障诊断、网络入侵检测等众多领域。
图1是我们的真实科研项目HeartCarer截图;
图2是基于神经网络的时间序列数据异常检测过程;
图3是异常检测方法的性能验证。
以下结合附图和具体实施例对本发明作具体的介绍。
以慢性心力衰竭患者体征监测数据为例。
一、收集数据
通过可穿戴技术收集慢性心力衰竭患者的各种生理体征数据(例如:心率、血压、血糖等)和各类可能引起体征数据突变的事件(例如:情绪变化,饮食情况,精神压力,过度体力消耗,环境因素等),然后通过移动终端或电话线将收集的数据上传到云端。此部分为我们的现有技术。
在本具体实施例中,数据来自于我们的一个真实科研项目——HeartCarer,如图1所示。这是一个面向家庭的远程监控系统,基于云平台,专门用于监控慢性心力衰竭患者并及时进行干预。该远程监控系统通过可穿戴技术监测慢性心力衰竭患者的各种生理体征数据(具体有:心率、血压、血糖等)和各类可能引起体征数据突变的事件(例如:情绪变化,饮食情况,精神压力,过度体力消耗,环境因素等),并通过移动终端或电话线将监测到的数据上传到云端。
该远程监控系统已经应用于中国6家医疗机构的2607名慢性心力衰竭患者的临床观察研究中。这些慢性心力衰竭患者分别在2015年至2019年期间接受了护理,其中多数超过60岁(63.8±12岁),并且大部分是男性(占70%),这些人的各类信息数据量超过100GB。
我们使用OrientDB Cluster来存储大规模矩阵图,使用HBase作为顶点属性,使用Hadoop MR进行数据分析和计算。该集包括8台运行CentOS 7.4操作系统的服务器,配备12核(24线程)Intel Xeon CPU,运行频率为2.80 GHz,内存为64 GB。
二、基于神经网络的时间序列数据异常检测过程
本发明提出了一种时间序列数据异常检测方法,异常检测器由递归神经网络驱动,并采用强化学习方法来实现自学习过程。具体的异常检测过程如图2所示,该过程包括三个主要组件:异常检测器,累积的异常值和经验值,其关系描述如下:
经验值Y是一组元组,每个元组表示为,其中分别表示在给定时间点有事件a和没有事件a的相应数据记录,r是由事件a引起的瞬时异常。这些事件是由异常检测方法中的异常检测器发现的,因此经验值记录了异常检测器的所有行为。
我们用条件概率分布π:= p(A|Z)来表示异常检测器,其中A和Z分别是项目中的事件集合和实际数据记录。通常A={0,1},其中1表示当前的数据记录存在异常,0表示没有异常。公式π(z, a) = p(A=a|Z=z)表示某特定数据记录z存在事件异常的概率。
本发明使用异常检测能力来测量异常检测器的性能,其定义为:
,
其中是具有异常检测器π的实际数据记录z的概率,而X(z,a)表示在事件a作用下从数据记录z开始的累积异常。也就是说,性能是在使用异常检测器π情况下的平均累积异常。
如果检测器满足下列条件
,
本质上该检测器就是最优异常检测器,它可以最大化性能。同时,对于所有,大致相同。如果成立,则π(z,a)=1。也就是说,最优异常检测器π*完全由累积异常函数X(z,a)确定。
根据上述过程描述,经验值可用于更好地估计X(z,a),可以通过从经验值中自我学习从而不断改进异常检测器,并且可以采用X学习方法来训练用于估计X(z,a)的循环神经网络,获得良好的异常检测性能。总之,所提出的异常检测方法具有以下特征:(1)不对异常类型和模式做任何假设;(2)不需要选择阈值;(3)随着异常检测经验的增长而不断学习改进,从而可以广泛应用于众多领域。
三、异常检测方法的性能验证
如步骤1所述,用于训练的数据集是HeartCarer基准数据集,其中包括2607名慢性心力衰竭患者的各种生理体征数据,各类信息数据量超过100GB。
使用滑动窗口方法将每个时间序列转换为一组多维数据实例。X学习中的事件为,其中0表示没有异常,1表示有异常。为了增强模型训练的过程,使用了二叉树策略,即通过对先前的数据记录z执行不同的操作0和1,将生成的两个数据记录和都添加到用于训练的经验集中。也就是说,在训练的过程中将两条记录和添加到经验集中。通过在数据集Z中执行不同的操作,我们可以获得奖励r0和r1。
如图3所示,我们对慢性心力衰竭患者的各类体征数据集进行异常检测,以消除由情绪变化或环境因素等引起的异常数据。首先通过训练前三年的体征数据记录集,得到异常检测经验,然后在实时体征数据集中验证了本发明中异常检测方法的性能,图3(a)和3(b)分别显示了在心率指标和血压血糖指标的异常检测性能。
从图3中我们可以看到:
(1)灰线表示原始体征数据记录,黑线表示异常检测中的突发事件;
(2)心率指标与慢性心力衰竭有直接关联,其测试时间间隔设为120分钟,血压血糖等指标有间接关联,其间隔设为240分钟;
(3)本发明中的异常检测方法能够识别目标时间序列的均值,点异常和异常模式的偏移;
(4)该异常检测方法在测试数据集中能够获得高质量的结果,其准确度约为100%。
需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
本文发布于:2024-09-22 19:37:05,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/4/84978.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |