一种独立于数据类型的无监督异常检测方法

文档序号:25733198发布日期:2021-07-06 18:41阅读:123来源:国知局
一种独立于数据类型的无监督异常检测方法

本发明涉及异常检测领域,特别涉及工业生产中传感器网络,可靠系统等的一种独立于数据类型的无监督异常检测方法。



背景技术:

异常检测是保证系统运行可靠性和安全性的基础技术之一。在大数据时代,各种数据无时无刻不在被收集。收集的数据通常反映运行系统的质量。当异常发生时,系统中可能会出现意外情况。如何检测异常成为一个迫切需要解决的问题。异常检测的目的是监控这些系统,发现异常,以便操作人员及时做出反应。

对于异常检测,虽然有监督异常检测和半监督异常检测在精度上取得比较好的成果,但在现实数据中,异常标签的获得通常是耗费很大的人力物力的,所以采用无监督的异常检测方法更为现实。而如今的无监督异常检测方法的假设前提是,正常数据的数据量是远远大于异常数据的,所以在训练中不区分正常数据和异常数据是可行的。但当训练数据中的异常数据占据了一定数据量后,这些无监督异常检测方法的性能就会大大下降,因此,如何在训练中保证正常数据和异常数据的分离是必不可少的。此外,现有的方法都是针对一到两种具体的数据类型进行异常检测,而不能适用于其他类型的数据,而为一种新的数据类型设计一个新的方法的成本是巨大的。因此,异常检测所面临的挑战包括,异常标签通常是很难获得的,并且针对特定数据类型设计的模型无法应用于其他数据类型。一方面,异常标签难以获得,例如文献(zong,b.,song,q.,min,m.r.,cheng,w.,lumezanu,c.,cho,d.,chen,h.:deepautoencodinggaussianmixturemodelforunsupervisedanomalydetection.i)(zhai,s.,cheng,y.,lu,w.,zhang,z.:deepstructuredenergybasedmodelsforanomalydetection.arxivpreprintarxiv:1605.07717(2016).)的性能在无监督的条件下表现良好,但当训练数据中的异常数据逐渐增加时性能会降低。另一方面,大多数为特定数据类型而设计的模型在处理其他数据类型的数据时表现较差,例如文献(yang,b.,fu,x.,sidiropoulos,n.d.,hong,m.:towardsk-means-friendlyspaces:simultaneousdeeplearningandclustering.in:internationalconferenceonmachinelearning,pp.3861-3870.pmlr(2017).)被证明是有效的,但仅适用于静态数据类型。有些处理图像数据表现出良好的性能,但它们在其他数据类型上的结果一般。现有的为时序数据设计的模型也面临着同样的难题。



技术实现要素:

本发明的目的在于针对异常检测所面临的异常标签难以获得和针对特定数据类型设计的模型无法应用于其他数据类型的挑战,如何在训练中分离正常数据和异常数据,并且在不改变核心步骤的基础下适用多种数据类型。

本发明至少通过如下技术方案之一实现。

一种独立于数据类型的无监督异常检测方法,包括以下步骤:

(1)对给定的任意类型的数据进行预处理,构建训练数据集;

(2)构建自编码器网络,对数据进行维度压缩和特征提取;

(3)构建正常数据提取层,对数据进行进一步正常特征提取;

(4)用概率密度函数高斯混合模型对正常特征的数据分布进行拟合;

(5)对无监督异常检测网络进行训练;

(6)使用训练完成的神经网络对测试数据集进行预测,当测试数据的异常概率大于指定阈值时,将该数据视为异常。

优选的,步骤(1)中,对给定的任意类型的数据进行预处理包括:

对于静态数据类型,对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布;

对于图像数据类型,对每一个像素点进行简单缩放,使得经过处理后的数据分布在[0,1]的区间范围内;

对于时间序列数据类型,先对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布,再以步长为s的固定大小的滑动窗口对序列进行采样。

优选的,所述自编码器网络对数据进行维度压缩和特征提取如下:

z=ε(x)

其中,x表示为输入数据;ε为采用的自编码器网络,根据不同的数据类型的特点和输入数据的表示形式不同,自适应地选择不同的自编码器网络对相应的数据类型数据进行维度压缩和特征提取。

优选的,对于静态数据类型,输入数据表示为[批数,特征数],自编码器网络为采用全连接层的自编码器网络,对数据进行维度压缩和非线性特征提取;

对于图像数据类型,输入数据表示为[批数,图片高度,图片宽度,通道数],自编码器网络为采用卷积神经网络的自编码网络,对数据进行维度压缩和空间特征提取;

对于时间序列数据类型,输入数据表示为[批数,步长,特征数],自编码器网络为采用长短期记忆网络的自编码器网络,对数据进行维度压缩和时间依赖特征提取。

优选的,步骤(3)具体为:假定数据中的异常是由于数据的部分特征发生异常而引起的,那么原始数据被划分为正常的数据特征和异常的数据特征,基于此,正常的数据特征用低秩的矩阵表示,异常的数据特征用一个稀疏的矩阵表示;通过线性转换找到子空间,使正常的数据特征都分布在这个子空间上,而异常的数据特征分布在这个子空间外,从而进行正常数据的提取:

z′=m×z

其中,m是一个服从正态分布的正交矩阵,z为特征向量,经过线性转换后的z′被视为仅包含正常数据的特征表示。

优选的,所述概率密度函数高斯混合模型为k个高斯分布函数线性组合的模型,每个高斯分布函数都有一组参数,这组参数包括:混合模型权重γ、混合模型分布φ、混合模型均值μ、混合模型方差σ;使用多层感知器来生成初始的混合模型权重γ,再在这基础上计算合模型分布φ、混合模型均值μ和混合模型方差σ:

γ=softmax(mlp(z′))

其中,γi,k表示混合权重,φk、μk、σk分别表示k个模型分布,混合模型均值和混合模型方差,z′表示仅包含正常数据的特征表示,mlp为多层感知器,softmax()为归一化指数函数,k为高斯混合模型的高斯分布函数个数,n为数据批数。

优选的,训练中使用的目标函数为:

其中,l表示目标函数,xi表示原始数据,x′i表示重建数据,zi表示特征向量,m为正交矩阵,i为和mmt维数相同的单位矩阵,为l2,1范数,||·||f为f范数,λ1、λ2、λ3、λ4均为平衡因子;目标函数的第一项为自编码器的重建数据和原始数据间的误差,第二项为正常数据提取层的投影误差,第三项为正常数据提取层的正则项,用来保证投影矩阵m接近于正交矩阵,第四项为高斯混合模型的输出结果,即数据是异常的概率,第五项为高斯混合模型的正则项,用来防止高斯混合模型中有可能出现的奇异解问题;训练达到一定轮次直到收敛即可停止训练。

优选的,步骤(6)包括以下步骤:

6.1对测试数据根据不同的数据类型进行预处理,构建测试数据集;

6.2将获得的数据组成测试集,输入到训练完成的神经网络中,用高斯混合模型的概率输出结果作为测试数据的异常概率;

6.3用测试数据的异常概率和人工设定的阈值做比较,当异常概率大于指定阈值时,则将该数据视为异常。

优选的,在步骤6.3中,用测试数据的异常概率和人工设定的阈值做比较,当异常概率大于指定阈值时,则将该数据视为异常的具体方法为:

人工预测在测试数据集中,设定异常数据的占比百分数,然后用测试数据集中该百分数所对应的数值作为阈值,当测试数据的异常概率大于该阈值时,则将该测试数据视为异常。

优选的,所述测试数据的异常概率计算如下:

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

克服异常检测中异常标签难以获得和针对特定数据类型设计的模型无法应用于其他数据类型的挑战,提高性能的同时又保证了数据类型可扩展性。

附图说明

图1为实施例提供的一种独立于数据类型的无监督异常检测方法的总体流程图;

图2为实施例提供的一种独立于数据类型的无监督异常检测方法的架构图;

图3为实施例提供的一种独立于数据类型的无监督异常检测方法的针对静态数据类型的自编码器网络框架;

图4为实施例提供的一种独立于数据类型的无监督异常检测方法的针对图像数据类型的自编码器网络框架;

图5为实施例提供的一种独立于数据类型的无监督异常检测方法的针对时间序列数据类型的自编码器网络框架。

具体实施方式

下面结合附图对本发明的一种独立于数据类型的无监督异常检测方法的具体实施方式作详细描述。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。

如图1所示的一种独立于数据类型的无监督异常检测方法,包括如下步骤:

s1.对给定的任意类型的数据进行预处理,构建训练数据集。

具体地,对于静态数据类型,如没有时间和空间依赖关系的数据,对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布。

对于图像数据类型,对每一个像素点进行简单缩放,使得经过处理后的数据分布在[0,1]的区间范围内。

对于时间序列数据类型,如由传感器获得的连续时间的采集数据,先对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布,再以步长为s的固定大小的滑动窗口对序列进行采样。

s2.构建自编码器网络,对数据进行维度压缩和特征提取。具体地,根据不同的数据类型的特点,可以自适应地选择不同的自编码器网络对相应的数据类型数据进行维度压缩和特征提取:

z=ε(x)

对于静态数据类型,x可以表示为[批数,特征数],ε为采用全连接层的自编码器网络,对数据进行维度压缩和非线性特征提取。

对于图像数据类型,x可以表示为[批数,图片高度,图片宽度,通道数],ε为采用卷积神经网络的自编码网络,对数据进行维度压缩和空间特征提取。

对于时间序列数据类型,x可以表示为[批数,步长,特征数],ε为采用长短期记忆网络的自编码器网络,对数据进行维度压缩和时间依赖特征提取。根据输入数据的表示形式不同,可以自适应地选择不同的自编码器网络进行处理。

参考图2,图2为实施例提供的一种独立于数据类型的无监督异常检测方法的架构图。

图3为实施例提供的一种独立于数据类型的无监督异常检测方法的针对静态数据类型的自编码器网络框架,图中的每个圆代表静态数据的一个特征,该自编码器网络能将数据的高维特征进行逐步的特征提取,压缩成低维特征,然后通过重建逐步将低维特征恢复成高维特征。

图4为实施例提供的一种独立于数据类型的无监督异常检测方法的针对图像数据类型的自编码器网络框架,图中的每个矩阵代表图像的数据特征,该自编码器网络能将图像的高维空间特征进行逐步的特征提取,压缩成低维空间特征,然后通过重建逐步将低维空间特征恢复成高维空间特征。

图5为实施例提供的一种独立于数据类型的无监督异常检测方法的针对时间序列数据类型的自编码器网络框架,图中的每个圆代表一个时间点的特征,每个矩阵代表一个lstm模块,该自编码器网络能将时间序列的时间依赖特征进行逐步的特征提取,压缩成低维时间特征,然后通过重建逐步将低维时间特征恢复成高维时间特征。[xt,xt+t]为时间t到t+t的原始时间序列数据,[x′t,x′t+t]为时间t到t+t的重建时间序列数据。

作为另外的实施例,可以用attention网络或者transformer网络代替自编码器网络对高维数据进行特征提取。

s3.构建正常数据提取层,对数据进行进一步正常特征提取。

具体地,假定数据中的异常是由于数据的少部分特征发生异常而引起的,那么原始数据就可以被划分为数据特征是正常的部分和数据特征是异常的部分。基于此,数据特征是正常的部分可以用一个低秩的矩阵表示,数据特征是异常的部分可以用一个稀疏的矩阵表示。于是,可以通过线性转换找到一个子空间,正常数据都分布在这个子空间上而异常数据分布在这个子空间外,从而进行正常数据的提取:

z′=m×z

其中,m是一个服从正态分布的正交矩阵,z为从步骤s3得到的特征向量,经过线性转换后的z′可以被视为仅包含正常数据的特征表示。

s4.用概率密度函数高斯混合模型对正常特征的数据分布进行拟合。具体地,使用高斯混合模型对正常数据进行拟合,高斯混合模型是多个高斯分布函数的线性组合,每个高斯分布函数都有一组参数,这组参数包括:混合模型权重γ、混合模型分布φ、混合模型均值μ、混合模型方差σ;使用传统的最大期望算法无法做到自编码器网络和高斯混合模型的共同训练,而神经网络可以弥补这一缺陷。使用多层感知器来生成初始的混合模型权重γ,再在这基础上计算合模型分布φ、混合模型均值μ、混合模型方差σ:

γ=softmax(mlp(z′))

其中,γi,k表示混合权重,φk、μk、σk分别表示k个模型分布,混合模型均值和混合模型方差,z′表示从步骤5得到的仅包含正常数据的特征表示,mlp为多层感知器,softmax()为归一化指数函数,k为高斯混合模型的高斯分布函数个数,n为数据批数。

s5.对无监督异常检测网络进行训练。具体地,用目标函数进行优化:

其中,l表示目标函数,x表示原始数据,x′表示重建数据,z表示从步骤3得到的特征向量,m为从步骤s5得到的正交矩阵,i为和mmt维数相同的单位矩阵,φ、μ、σ分别表示从步骤s6得到的模型分布,混合模型均值和混合模型方差,为l2,1范数,||·||f为f范数,λ1、λ2、λ3、λ4为平衡因子。目标函数的第一项为自编码器的重建数据和原始数据间的误差,第二项为正常数据提取层的投影误差,第三项为正常数据提取层的正则项,用来保证投影矩阵m接近于正交矩阵,第四项为高斯混合模型的输出结果,即数据是异常的概率,第五项为高斯混合模型的正则项,用来防止高斯混合模型中有可能出现的奇异解问题。训练达到一定轮次直到收敛即可停止训练。

作为另外的实施例,可以用其它聚类方法、概率密度函数或核函数代替高斯混合模型对各自适用的数据进行特征提取。

s6.使用训练完成的神经网络对测试数据集进行预测,当测试数据的异常概率大于指定阈值时,将该数据视为异常。

具体地,对于静态数据类型,对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布。

对于图像数据类型,对每一个像素点进行简单缩放,使得经过处理后的数据分布在[0,1]的区间范围内。

对于时间序列数据类型,先对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布,再以步长为s(1≤s≤100)的固定大小的滑动窗口对序列进行采样。

6.1对测试数据根据不同的数据类型进行预处理,构建测试数据集。

具体地,对于静态数据类型,对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布。对于图像数据类型,对每一个像素点进行简单缩放,使得经过处理后的数据分布在[0,1]的区间范围内。对于时间序列数据类型,先对每一个特征维度进行标准差标准化,即均值为0,标准差为1,使得经过处理后的数据服从标准正态分布,再以步长为1的固定大小的滑动窗口对序列进行采样。

6.2将获得的数据组成测试训练集输入到训练完成的神经网络中,用高斯混合模型的概率输出结果作为测试数据的异常概率:

6.3用测试数据的异常概率和人工设定的阈值,可根据经验选择80%-99%之间的值作为阈值做比较,当异常概率大于指定阈值时,则将该数据视为异常。具体地,人工预测在测试数据集中,异常数据的占比百分数,然后用测试数据集中该百分数所对应的数值作为阈值,当测试数据的异常概率大于该阈值时,则将该测试数据视为异常。

本发明提供了一种独立于数据类型的无监督异常检测方法,克服异常检测中异常标签难以获得和针对特定数据类型设计的模型无法应用于其他数据类型的挑战,提高性能的同时又保证了数据类型可扩展性,在传感器网络,可靠系统等领域都具有广阔的应用前景。具体可用于检测计算机入侵检测的数据集kddcup99,安全水处理数据集swat,水分布系统数据集wadi等。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1