一种多维数据异常检测方法及装置与流程

文档序号:14950579发布日期:2018-07-17 22:27阅读:242来源:国知局

本发明涉及移动通信大数据领域,特别涉及一种多维数据异常检测方法及装置。



背景技术:

信息技术和互联网的迅猛发展和普及应用,数据已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。企业的数据质量与业务绩效之间存在着直接联系,高质量的数据可以使公司保持竞争力并在经济动荡时期立于不败之地。有了普遍深入的数据质量,企业在任何时候都可以信任满足所有需求的所有数据。在日常维护过程中,监控是很棘手的问题,对于许多公司而言,服务模块数量众多,针对每个服务或组件,都有各种各样的性能指标,而当这些指标数据规模成长到百万、千万级别时,对于只有几十或几百人的工程师团队来讲,即使有各种美观的图表展示,也可能花费较长的时间。

传统监控系统的出现解决了一部分问题,工程师或专家可以去配置一些指标的异常阈值,当数据超出阈值时系统就会触发警报。但是,如果某个指标没有被监控覆盖到(不管是系统还是人),那么它表现异常后就可能没有人会知道,造成不可预期的问题或故障。另外,许多问题不是靠人工设定阈值就能够解决的,特别是在对超大规模的性能指标进行监控时,很难依靠人工配置完成监控。

异常检测的核心问题是如何准确快速的建立一个检测模型,通过对数据的学习建立主观检测模型,一些新理论通过揭示数据本身的规律能够建立客观检测模型。将学习方法与新理论应用到异常检测中,对于解决异常检测面临的问题,提高检测准确度与速度具有重要的意义。

常见异常检测方法,例如统计方法、基于邻近度的离群点检测、基于密度的离群点检测、基于聚类的技术等,都不能很好的检测数据的各维度或特征间具有某种比较稳定的关系,而当这种关系发生异常所导致的数据异常。本发明的方法能够很好的解决该问题。



技术实现要素:

本发明实施例提供的一种多维数据异常检测方法及装置,能够在数据的多维特征间具有某种未知关系时,解决数据的异常检测问题。

根据本发明实施例提供的一种多维数据异常检测方法,包括:

将待检测多维数据输入经训练的数据重构模型;

利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据;

根据所述多维重构数据,确定所述待检测多维数据是否异常。

优选地,在所述将待检测多维数据输入经训练的数据重构模型之前,还包括:

利用多维训练数据对数据重构模型进行训练,确定一组使所述数据重构模型的重构损失函数值最小的参数作为所述数据重构模型的参数,从而得到经训练的数据重构模型。

优选地,在得到所述经训练的数据重构模型之后,还包括:

利用训练数据集中每个多维训练数据与其多维重构训练数据的误差,确定误差阈值区间。

优选地,所述利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据包括:

利用所述经训练的数据重构模型,对所述待检测多维数据进行编码处理,得到维数下降的编码数据,并对所述维度下降的编码数据进行解码处理,得到与所述待检测多维数据维数相同的多维重构数据。

优选地,所述根据所述多维重构数据,确定所述待检测多维数据是否异常包括:

若所述多维重构数据与所述待检测多维数据的误差不在误差阈值区间内,则确定所述待检测多维数据异常。

优选地,所述经训练的数据重构模型是至少含有一个隐含层的神经网络。

根据本发明实施例提供的存储介质,其存储用于实现上述多维数据异常检测方法的程序。

根据本发明实施例提供的一种多维数据异常检测装置,包括:

输入模块,用于将待检测多维数据输入经训练的数据重构模型;

重构模块,用于利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据;

判决模块,用于根据所述多维重构数据,确定所述待检测多维数据是否异常。

优选地,所述重构模块具体用于利用所述经训练的数据重构模型,对所述待检测多维数据进行编码处理,得到维数下降的编码数据,并对所述维度下降的编码数据进行解码处理,得到与所述待检测多维数据维数相同的多维重构数据。

优选地,所述判决模块在所述多维重构数据与所述待检测多维数据的误差不在误差阈值区间内时,确定所述待检测多维数据异常。

优选地,所述经训练的数据重构模型是至少含有一个隐含层的神经网络。

本发明实施例提供的技术方案具有如下有益效果:

本发明实施例能够检测出由于数据的特征之间的关系异常导致的数据异常问题,适用于高维数据异常检测。

附图说明

图1是本发明实施例提供的多维数据异常检测方法框图;

图2是本发明实施例提供的多维数据异常检测装置框图;

图3是进行数据异常检测的流程说明图;

图4是稀疏自编码器的基本结构图;

图5是训练数据异常检测模型的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的多维数据异常检测方法框图,如图1所示,步骤包括:

步骤s101:将待检测多维数据输入经训练的数据重构模型。

步骤s101的经训练的数据重构模型是至少含有一个隐含层的神经网络,隐含层数目与输入数据的维度有关。

在执行步骤s101之前,利用多维训练数据对数据重构模型进行训练,确定一组使所述数据重构模型的重构损失函数值最小的参数作为所述数据重构模型的参数,从而得到经训练的数据重构模型。换句话说,训练的目的是得到神经网络的一组参数,在这组参数下进行数据重构时,能够使重构损失函数值最小。

在得到经训练的数据重构模型之后,利用训练数据集中每个多维训练数据与其多维重构训练数据的误差,确定误差阈值区间。

本发明实施例对训练数据集含有少量异常数据的情形具有鲁棒性。

步骤s102:利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据。

步骤s102包括:利用所述经训练的数据重构模型,对所述待检测多维数据进行编码处理,得到维数下降的编码数据,并对所述维度下降的编码数据进行解码处理,得到与所述待检测多维数据维数相同的多维重构数据。

步骤s103:根据所述多维重构数据,确定所述待检测多维数据是否异常。

步骤s103包括:若所述多维重构数据与所述待检测多维数据的误差不在误差阈值区间内,则确定所述待检测多维数据异常。

本发明实施例能够对数据的异常进行检测与判断,特别是数据具有多维特征,且某些特征之间具有某种未知的关系时的数据异常检测。例如:单从数据的每一个维度来看,数据不存在问题,但是把多维综合在一起数据就可能存在异常的情形,如人的年龄与身高,年龄从0到100之间的任何一个整数都有可能,身高从50厘米到220厘米中的任何数据都有可能,但是如果一个人的年龄是1岁,身高是210厘米就是异常数据。该方法在训练数据集中含有少量异常数据,但不确定哪些是异常数据时,也能很好的进行数据的异常检测,即本发明实施例的方法具有鲁棒性。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤s101至步骤s103。进一步说,本发明还可以提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时至少实现以下步骤:将待检测多维数据输入经训练的数据重构模型;利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据;根据所述多维重构数据,确定所述待检测多维数据是否异常。其中,所述的存储介质可以包括rom/ram、磁碟、光盘、u盘。

图2是本发明实施例提供的多维数据异常检测装置框图,如图2所示,包括:

输入模块,用于将待检测多维数据输入经训练的数据重构模型。

重构模块,用于利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据。

判决模块,用于根据所述多维重构数据,确定所述待检测多维数据是否异常。

本实施例的装置在检测数据是否异常时,输入模块将待检测多维数据输入经训练的数据重构模型;重构模块利用所述经训练的数据重构模型,对所述待检测多维数据依次进行编码、解码处理,得到多维重构数据;判决模块在所述多维重构数据与所述待检测多维数据的误差不在误差阈值区间内时,确定所述待检测多维数据异常。

本实施例的数据重构模型是稀疏自编码器,具体是至少含有一个隐含层的神经网络。

所述装置还可以进一步包括:

训练模块,用于利用多维训练数据对数据重构模型进行训练,换句话说,训练的目的是得到神经网络的一组参数,在这组参数下进行数据重构时,能够使重构损失函数值最小。

阈值确定模块,用于在得到经训练的数据重构模型之后,利用训练数据集中每个多维训练数据与其多维重构训练数据的误差,确定误差阈值区间。

所述装置在检测数据异常前,训练模块利用多维训练数据对数据重构模型进行训练,确定一组使所述数据重构模型的重构损失函数值最小的参数作为所述数据重构模型的参数,从而得到经训练的数据重构模型;所述阈值确定模块利用经训练的数据重构模型,得到训练数据集中每个多维训练数据的多维重构训练数据,并根据每个多维训练数据及其多维重构训练数据的误差,确定误差阈值区间。

本发明实施例还提供一种多维数据异常检测装置,包括存储器和处理器,其中,所述处理器在执行所述存储器存储的程序或指令时,至少实现以下内容:将待检测多维数据输入经训练的数据重构模型;利用所述经训练的数据重构模型,对所述待检测多维数据进行数据重构,得到多维重构数据;根据所述多维重构数据,确定所述待检测多维数据是否异常。

图3是进行数据异常检测的流程说明图,如图3所示。

在检测数据异常前,需要对数据重构模型进行训练,然后确定误差阈值区间,具体计算过程包括:

1、数据预处理,即对训练数据集进行预处理,包括去除无效值,对数据进行标准化等。

2、模型训练,即利用预处理的数据来训练稀疏自编码模型(即数据重构模型、稀疏自编码器),具体地说,是训练稀疏自编码模型的参数。

3、误差阈值区间的计算,即利用训练好的模型重构训练数据集的数据,计算训练数据集中的每条数据与其对应的重构数据之间的误差,然后利用箱线图或置信区间确定出误差的阈值区间。

当检测数据是否异常时,分为数据预处理、数据重构、异常判别三个阶段,具体计算过程包括:

1、数据预处理,即对待检测的数据进行预处理,包括去除无效值、数据进行标准化等。

2、数据重构,即将数据输入到稀疏自编码器中进行数据的编码和数据的解码。其中,稀疏自编码器是至少含有一个隐含层的神经网络,网络的各个参数可由训练数据获得。

3、异常判别,判断待判别数据(即待检测的数据)与其重构数据之间的误差是否在误差阈值区间内,若在区间内,则该数据正常,反之,该数据异常。

也就是说,首先将待检测的数据进行标准化,然后经过稀疏自编码器进行编码、解码得到重构数据,计算标准化后的数据与重构数据的误差,最后比较该误差是否在阈值区间内,若在则该数据正常,否则异常。

本实施例适合于多个特征的数据异常检测,一般是三个或者三个以上的特征;稀疏自编码器中隐藏层的数目一般可以设为输入特征的一半。

图4是稀疏自编码器的基本结构图,如图4所示,它由输入层、隐含层、和输出层三层组成。

输入层的n个特征对应着一个n维向量x=(x1,x2,…,xn),即,特征的维数与输入向量的维数一致,标上+1的圆圈被称为偏置节点。

将输入层的特征映射到隐含层,隐含层的特征记为一个k维向量h=(h1,h2,…,hk),则该映射可以表示为h=f(w1x+b1)。式中,w1,b1分别表示为输入层到隐含层的单元之间的联接参数和偏置项参数,可通过训练集数据训练出来,f为激活函(通常使用sigmoid或者tanh函数),隐含层的维数在异常检测算法中一般设置为输入层特征的一半(若为小数,则向上取整)。隐含层表达h又通过映射得到重构向量y=(y1,y2,…,yn),该映射表示为y=g(w2h+b2)。式中w2,b2分别表示为隐含层到输出层的单元之间的联接参数和偏置项参数,可通过训练集数据训练出来,g为激活函数。

图5是训练数据异常检测模型的结构示意图,如图5所示,首先需要将输入的数据进行标准化处理。自编码网络(即稀疏自编码器)可以看成将数据进行压缩,然后再在需要的时候利用损失尽量小的方式将数据恢复出来。

不失一般性,设训练样本数目为m,分别表示经过标准化后的第i样本和xi经过重构后的值,hj为隐含层第j个神经元的输出,为表示输出和某个输入相关,记为hj(xi),令为隐藏层第j个单元对所有输入样本的输出平均值,则可以用如下函数表示样本数据的重构损失:

其中,惩罚函数为m为训练样本数目,ρ为稀疏参数,通常用一个接近于0的常数代替(例如ρ=0.05),w=(w1,b1,w2,b2),λ为非负常数,称为正则化参数。然后将预处理后的数据输入到自编码网络,训练出一组参数w1,b1,w2,b2,使上面的损失函数值最小,从而学习出从输入层到输出层的一个映射,也就是本发明异常检测系统中的重构系统(即数据重构模型)。

通过训练数据和上面的损失函数通过梯度下降的方法学习到参数w1,b1,w2,b2之后,进行误差阈值区间的设计。首先计算出每个训练样本与重构后的样本的误差,然后利用置信区间或箱线图计算出m个误差组成的数据集的阈值区间。例如,计算出每个训练样本与重构后的样本的均方误差(yi-xi)2,然后计算由这m个均方误差组成的数据集的均值μ和方差σ,这样就可以得出正常数据的均方误差阈值区间[μ-3σ,μ+3σ]。

综上所述,本发明的实施例具有以下技术效果:

本发明实施例的多维数据是具有多个特征的数据,通过上述步骤,能够检测出由于数据特征之间的关系异常(例如,数据特征间的比值是比较稳定的,而某个数据的特征间的比值与整体数据所呈现出来的有很大不同,则该数据就为关系异常数据)导致的数据异常问题,而且不必了解和知道其内在的具体关系。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

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