首页> 中国专利> 一种基于时间卷积网络的序列异常检测方法及系统

一种基于时间卷积网络的序列异常检测方法及系统

摘要

本发明公开一种基于时间卷积网络的序列异常检测方法及系统,包括:基于因果卷积层、膨胀卷积层和残差连接模块构建时间卷积网络;采用时间卷积网络对原始数据序列进行重构得到重建序列,根据重建序列中每个点的异常评分设置异常阈值;根据候选时间步长内的异常点数得到候选时间步长的异常密度,根据异常密度在候选时间步长内选取异常检测时间步长;根据异常检测时间步长选择集体异常检测或点异常检测的异常检测类型,并根据异常检测时间步长内的总异常评分与异常阈值的比较结果,得到集体异常或点异常的异常检测结果。是一种通过时间步长timestep参数实现集体异常检测和点异常检测切换的泛化系统,具有较高的检测效率和准确性。

著录项

  • 公开/公告号CN113076973A

    专利类型发明专利

  • 公开/公告日2021-07-06

    原文格式PDF

  • 申请/专利权人 山东师范大学;

    申请/专利号CN202110255259.0

  • 申请日2021-03-09

  • 分类号G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人闫伟姣

  • 地址 250014 山东省济南市历下区文化东路88号

  • 入库时间 2023-06-19 11:44:10

说明书

技术领域

本发明涉及序列异常检测技术领域,特别是涉及一种基于时间卷积网络的序列异常检测方法及系统。

背景技术

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

异常检测是一种识别异常和挖掘不合逻辑数据的技术,广泛应用于欺诈检测、网络入侵检测、医疗异常检测等领域。根据异常数据类型,异常检测可分为三类:点异常检测、上下文异常检测和集体异常检测。集体异常和点异常通常发生在时间序列中,虽然这些异常可以通过隔离林(Isolation Forest)和一类支持向量机(One-Class Support VectorMachine)等几种经典异常检测方法进行检测,但由于这些方法只关注当前数据而非历史数据,因此被认为不够有效,换言之,这些方法未能考虑异常数据的时间性质。

近年来,一些用于时间序列异常检测的深度学习系统得到了研究和报道,可以显著提高异常检测的有效性,这些深度学习的方法大多只关注基于循环神经网络(RNN)的系统,如长短期记忆网络(LSTM)和门控循环单元神经网络(GRU),而不是基于卷积神经网络的系统(CNN)或集成系统,目前很少有一种既可以检测集体异常又可检测点集异常的泛化异常检测系统。

综上所述,传统深度学习方法不能考虑历史序列的问题以及异常检测泛化系统尚缺乏解决办法。

发明内容

为了解决上述问题,本发明提出了一种基于时间卷积网络的序列异常检测方法及系统,是一种通过时间步长timestep参数实现集体异常检测和点异常检测切换的泛化系统,具有较高的检测效率和准确性。

为了实现上述目的,本发明采用如下技术方案:

第一方面,本发明提供一种基于时间卷积网络的序列异常检测方法,包括:

基于因果卷积层、膨胀卷积层和残差连接模块构建时间卷积网络;

采用时间卷积网络对原始数据序列进行重构得到重建序列,根据重建序列中每个点的异常评分设置异常阈值;

根据候选时间步长内的异常点数得到候选时间步长的异常密度,根据异常密度在候选时间步长内选取异常检测时间步长;

根据异常检测时间步长选择集体异常检测或点异常检测的异常检测类型,并根据异常检测时间步长内的总异常评分与异常阈值的比较结果,得到集体异常或点异常的异常检测结果。

第二方面,本发明提供一种基于时间卷积网络的序列异常检测系统,包括:

网络构建模块,被配置为基于因果卷积层、膨胀卷积层和残差连接模块构建时间卷积网络;

序列重建模块,被配置为采用时间卷积网络对原始数据序列进行重构得到重建序列,根据重建序列中每个点的异常评分设置异常阈值;

时间步长选取模块,被配置为根据候选时间步长内的异常点数得到候选时间步长的异常密度,根据异常密度在候选时间步长内选取异常检测时间步长;

异常检测模块,被配置为根据异常检测时间步长选择集体异常检测或点异常检测的异常检测类型,并根据异常检测时间步长内的总异常评分与异常阈值的比较结果,得到集体异常或点异常的异常检测结果。

第三方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。

第四方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。

与现有技术相比,本发明的有益效果为:

本发明提出一种能够切换点异常检测和集体异常检测的泛化系统(CPA-TCN)以及统一检测方法,与现有技术相比,本发明根据当前输入特征和历史特征重构序列特征,并且这些特征只在正常数据集上训练,与基于RNN的系统相比,在不同的任务和数据集方面,以及显示更长的有效内存方面具有更高的速度和准确性。

本发明的CPA-TCN系统是一个“统一”系统,通过引入时间步长timestep参数实现集体异常检测和点异常检测之间的切换。

本发明通过仅使用前向信息而不使用后向信息的二维卷积网络提高检测效率,从而避免了未来信息泄漏到过去的问题。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为本发明实施例1提供的基于时间卷积网络的序列异常检测方法流程示意图;

图2为本发明实施例1提供的时间卷积网络图;

图3为本发明实施例1提供的残差链接模块图;

图4为本发明实施例1提供的网络训练过程示意图;

图5为本发明实施例1提供的基于时间卷积网络的序列异常检测方法对实例数据的重构曲线图以及异常检测结果;

图6为本发明实施例1提供的混淆矩阵示意图。

具体实施方式:

下面结合附图与实施例对本发明做进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例1

如图1所示,本实施例提供一种基于时间卷积网络的序列异常检测方法,包括:

S1:基于因果卷积层、膨胀卷积层和残差连接模块构建时间卷积网络;

S2:采用时间卷积网络对原始数据序列进行重构得到重建序列,根据重建序列中每个点的异常评分设置异常阈值;

S3:根据候选时间步长内的异常点数得到候选时间步长的异常密度,根据异常密度在候选时间步长内选取异常检测时间步长;

S4:根据异常检测时间步长选择集体异常检测或点异常检测的异常检测类型,并根据异常检测时间步长内的总异常评分与异常阈值的比较结果,得到集体异常或点异常的异常检测结果。

在本实施例中,首先定义以下参数:

集体异常(CA):指与其余数据整体不同的一组数据点,而单个数据点不被认为是异常。

点异常(PA):数据值与其他数据点有很大差异,则该数据值被认为是点异常。

时间步长(timestep):检测异常的最小时间间隔,根据时间步长确定异常检测的类型;时间步长定义为公式(1):

异常评分(AS):输入值x和重建值y之间的绝对误差,也称为重建误差,如公式(2)所示:

AS(x,y)=|x-y| (2)

异常检测方法的输出为异常评分或二进制标签,因为异常评分比二进制标签能够显示更多的信息,所以本实施例采用异常评分,异常评分描述每个数据点的偏差水平,数据实例可以根据异常评分进行排序,并通过特定的阈值识别异常或正常。

总异常评分(TAS):一个时间步长内的所有数据点异常评分的总和,如公式(3):

阈值(Threshold):由验证数据集确定,检测异常是否在时间步长内发生的指示器,超出阈值的的TAS值表示异常。

异常密度(DA):DA是时间步长内点异常的比例;设N为时间步长上的异常点数,DA定义为公式(4):

在所述步骤S1中,构建时间卷积网络时,本实施例采用一维卷积网络,一维卷积网络可以保留历史信息,捕捉局部语义关系,同时具有预测长度灵活、预测结果不依赖于未来信息、接受场增加和保持有效性等优点;

本实施例的时间卷积网络由因果卷积层、膨胀卷积层和残差连接模块组成,如图2所示,具体地:

S1-1:所述因果卷积层具有包含一维卷积层的体系结构,在因果卷积层中,时间t的值只取决于当前时间t和先前层的值;然而,一个简单的因果卷积层只能回顾网络深度的线性历史,这使得将因果卷积层应用于长序列任务具有挑战性,为了解决这一问题,本实施例提出膨胀卷积层。

S1-2:膨胀卷积层通过增加膨胀因子和滤波器大小,使顶层输出能够表示广泛的输入,并允许广泛的有效输入使用深层网络的历史;

定义膨胀卷积层如下:假设输入序列为x

其中,d是膨胀因子,k是滤波器大小,s是序列中的元素,x是输入码,s-d·i是前面数据的方向,F(s)表示s序列中的卷积运算。

如公式(5)所示,在处理大量的时间序列数据和较长的历史连接距离时,本实施例基于因果卷积构造多个膨胀卷积层,从而使注入普通卷积的空穴进一步扩展系统的接收场,当膨胀率增大,接受场范围增大时,表明卷积输出与长历史信息有关。

S1-3:所述残差连接模块如图3所示,解决较深网络结构的梯度消失或梯度爆炸问题,提高卷积神经网络的泛化能力;设模块的输入为X,因果卷积模块的输出为H(X),同时,设置因果膨胀卷积网络和非线性激活函数;

为了提高泛化能力,归一化卷积核权重,并在残差模块中设置丢包层;

所述残差连接模块的输出特征嵌入矩阵为:

Z=Activation(X+D(X)) (6)

本实施例构建的时间卷积网络具有灵活的接收场大小、稳定的梯度和训练的低内存需求等优点,在包含膨胀卷积层和残差连接层的情况下,与LSTMS等递归结构相比,简单的卷积结构在不同的序列建模任务中更有效。

基于上述优点,本实施例构建了基于时间序列异常检测的时间卷积网络模型,通过对正常数据的训练,时间卷积网络模块可以对原始数据进行重建,得到重建序列数据和重建误差。

下述算法1描述时间卷积网络模块对输入数据的重建过程,其中,第1-5行定义了时间卷积网络,第6-7行利用损失函数收敛优化系统参数。

在所述步骤S2-3中,确定时间步长timestep值,根据timestep值确定异常检测类型,其中,timestep=1时,异常检测类型为点异常检测,timestep>1时,异常检测类型为集体异常检测,并通过迭代计算确定timestep的值;

具体地,预先设置timestep的取值范围,从最大值迭代到最小值,在每次迭代中,计算每个时间步长内的异常密度DA,选择DA的最大值,当DA

下述算法2为选取timestep的过程,其中,第1-15行迭代计算,得到使DA

在所述步骤S4中,确定异常检测类型后,通过设置异常评价标准检测异常,具体地:

S4-1:在每个异常检测时间步长内,通过时间卷积网络对输入数据进行重建,得到重建序列;

S4-2:计算每个输入值与重建值之间的异常评分;

S4-3:将每个异常检测时间步长内,数据的异常评分相加得到总异常评分;

若异常检测类型为点异常时,在检测时间步长中,AS=TAS;

S4-4:本实施例基于对正常数据时间序列的学习,能够更准确地重构正常数据,然而在重建以前从未见过的异常数据时,将出现很大的偏差。因此,通过每个异常检测时间步长内的TAS与阈值的比较,若TAS高于阈值,则将识别异常。判断公式为:

TAS>Threshold (7)

下述算法3为异常评估的过程,其中,第1-10行计算每个时间步长内的总异常分数,并将结果存储在列表L

本实施例采用KDD 1999网络异常数据集,将验证实验限制在一个特定的网络攻击范围内—“Neptune”异常;表1为数据信息;

表1数据信息

本实施例将上述两个数据集的一部分分为三组:训练数据集(只有正常数据)、验证数据集(正常数据和异常数据)和测试数据集(正常数据和异常数据)。使用训练数据集训练TCN,使用验证数据集确定阈值和时间步长,使用测试集评估系统。

首先构建TCN网络,将KDD中的正常数据输入到TCN网络中进行训练,其中,超参数如表2所示,训练过程如图4所示;

表2超参数设置

训练结束后,在验证数据集中,根据时间步长选择系统求出timestep取值,决定异常检测类型。以验证数据集为依据,计算每个时间步长内的TAS,从小到大排列,选择合适的值进行截取,将截取的值作为阈值,结果如表3所示;

表3确定时间步长内和阈值

将测试集输入TCN中,得到重构数据列表,计算每个数据点的异常评分和每个时间步长内的总异常评分,并将TAS与Threshold相比较,进行异常判断。异常检测结果如图5所示,从图中可以看出,正常值的重建值与输入值非常接近,而异常值的重建值与输入值相差很远,如图6所示,通过可视化混淆矩阵以了解网络性能。

除此之外,本实施例建立对照实验,分别用LSTM系统和GRU系统对相同数据进行异常检测实验,使用曲线下面积(AUC)作为系统评估标准。AUC定义为坐标轴包围的接收者操作特征曲线(ROC)下的面积,由于ROC曲线一般在y=x线以上,所以AUC的取值范围在0.5~1之间,AUC越接近1.0,精度越高;当AUC等于0.5时,精度最低,无应用价值。接收机工作特性曲线(ROC)是根据一系列不同的二分法绘制的曲线,以真阳性率(TPR)为纵坐标,假阳性率(FPR)为横坐标,实验结果如表4所示,实验结果表明,本实施例的序列异常检测方法准确率高,且比LSTM和GRU更能准确地检测异常。

表4对照实验AUC结果

实施例2

本实施例提供一种基于时间卷积网络的序列异常检测系统,包括:

网络构建模块,被配置为基于因果卷积层、膨胀卷积层和残差连接模块构建时间卷积网络;

序列重建模块,被配置为采用时间卷积网络对原始数据序列进行重构得到重建序列,根据重建序列中每个点的异常评分设置异常阈值;

时间步长选取模块,被配置为根据候选时间步长内的异常点数得到候选时间步长的异常密度,根据异常密度在候选时间步长内选取异常检测时间步长;

异常检测模块,被配置为根据异常检测时间步长选择集体异常检测或点异常检测的异常检测类型,并根据异常检测时间步长内的总异常评分与异常阈值的比较结果,得到集体异常或点异常的异常检测结果。

此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在更多实施例中,还提供:

一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。

应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。

一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。

实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号