一种面向大规模高维传感器数据的在线式异常检测方法与流程

文档序号:17383307发布日期:2019-04-13 00:00阅读:246来源:国知局
一种面向大规模高维传感器数据的在线式异常检测方法与流程

本发明涉及传感器网络异常数据处理方法领域,具体是一种面向大规模高维传感器数据的在线式异常检测方法。



背景技术:

随着物联网的普及,无线传感器网络已经被广泛地应用于各个领域,通过分析与挖掘传感器所采集上报的数据,能够为各个行业提供极具价值的有效信息。然而复杂的部署环境以及传感器自身的内存、cpu以及能源的条件非常容易使传感器发生软硬件故障,从而产生异常数据,而对掺杂异常数据集合的分析会严重影响有效信息的挖掘及关键决策的制定。因此实时准确地检测出无线传感器网络所采集的异常数据变得愈发重要。及时检测出异常数据一方面可以更好的保证传感器所采集数据的安全性和可靠性;另一方面,异常数据在某些监测环境下能够发挥重要的作用,例如,可通过采集到的异常数据来判断是否发生了某种突发事件(如火灾、空气污染、洪水及人为破坏等)。然而,随着传感器网络规模的不断扩大,及所采集数据的日趋复杂,对传感器数据异常的检测变得越来越困难,主要表现为以下几个方面:(1)无论是分布式还是集中式的数据处理,均要求对异常数据的检测要具备较低的时间和空间复杂度,从而应对海量的采集数据;(2)由于传感器通常实时地采集并上传数据,因此要求数据的异常检测需要具备在线检测的能力;(3)现如今,越来越多的数据呈现高维的特征(一个数据项包含温度,湿度,光照,坐标,位移等诸多维度),高维数据一方面会增加异常检测的计算时间,另一方面若异常仅出现在少部分维度上,则这些异常数据很难与正常数据相区分。

过去的几年中,已经有不少学者提出了无线传感器网络的异常数据检测方法,主要可以分为以下四类:

第一种类型是基于近邻的方法,通过计算自身数据与相邻节点数据之间的距离来确定自身数据是否异常,如果某个数据与邻居节点采集的数据存在较大差异则称为异常数据,但是计算每个数据之间的距离会花费较长的时间,无法应用在大规模传感器网络中。

第二种类型是基于聚类的方法,通过对数据分簇来孤立异常数据,但此方法需要在得到全部数据后再进行分簇,不能在线式地检测异常数据。

第三种类型是基于统计的方法,是利用历史数据分布,建立数据的统计模型,不符合该模型的数据视为异常数据。但对于维度较大的数据集合,该方法很难建立较准确的统计模型。

第四种类型是基于分类的方法,通过历史数据训练得到一个分类模型,再将待检测数据分类到所属的模型之中,不属于任何类型的数据,将视为异常数据.该方法能够在保证检测准确度的情况下满足在线检测的需求,并可应用于高维数据集合的异常检测,是近几年较为主流的异常检测方法。其中基于单类支持向量机的异常检测方法是目前应用最广泛的基于分类的异常检测方法之一,它能在无监督模式下高效实时地检测所采集数据中的异常数据,但单分类支持向量机也存在重要的缺陷,由于在训练过程中需要求解非线性规划问题,当数据维度增加时,训练时间会呈指数级增加。

传感器网络实时所采集的数据在很多情况下呈现高维度的特征,而目前的研究都未考虑在处理高维数据的同时,实现高效准确地在线检测的需求。

现有技术申请号为cn201810314827的中国专利:适用于无线传感器网络的异常数据检测方法,其利用基于pca提出了局部检测和全局检测相结合的双重检测机制,重点关注如何选择簇头节点的分类方法,并没有考虑传感器网络数据的高维特性。

申请号为cn201711439910的中国专利:一种无线传感器网络异常数据检测方法,其重点通过置信区间来进行异常数据检测,也没有考虑传感器网络数据的高维特性。

申请号为cn201710047973的中国专利:传感器网络异常数据检测方法与系统,该方法同样仅利用空间相关检测及时间相关检测的检测结果,判断该异常数据是事件数据或恶意数据,同样没有考虑传感器网络实时数据的高维特性。

申请号为cn201510305314的中国专利:基于多维数据模型的传感器数据流异常检测方法,主要针对传感器节点采集的多维属性数据提出了异常数据检测方法,虽然考虑了传感器数据流之间的时空相关性和多维属性数据之间的关联性,但其对高维数据的处理方式无法满足传感器网络实时数据检测的要求。

刊物名称patternrecognition,于2016-10发布的由作者sarahm.erfanisutharshanrajasegarar1shanikakarunasekerachristopherleckie撰写的文献:high-dimensionalandlarge-scaleanomalydetectionusingalinearone-classsvmwithdeeplearning,该文献中采用线性单分类svn方法对高维数据进行处理,对于异常数据的检测效果较差,并且无法满足传感器网络实时数据检测的要求。



技术实现要素:

本发明的目的是提供一种面向大规模高维传感器数据的在线式异常检测方法,以解决现有技术无法对高维传感器数据进行实时检测的问题。

为了达到上述目的,本发明所采用的技术方案为:

一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:包括以下步骤:

(101)、获取历史数据:选择某时间段内的若干连续传感器数据样本作为用于模型训练的历史数据x;

(102)、建立深度信念网络和1/4球面支持向量机的混合模型;

(103)、利用步骤(101)得到的历史数据x对混合模型进行训练:

以深度信念网络作为数据的降维工具,将步骤(101)得到的高维的历史数据x作为输入向量输入深度信念网络,通过深度信念网络进行压缩提取后,输出降维后的低维的特征向量,该特征向量即为降维后的历史数据

将低维的特征向量作为1/4球面支持向量机的输入,通过1/4球面支持向量机对低维的特征向量进行检测,根据检测结果去除历史数据x中的异常数据,得到正常的数据集合完成对混合模型的训练;

(104)、重新以固定时间间隔获取实时采集的传感器数据y;

(105)、将步骤(103)中得到的正常的数据集合与步骤(104)获取的传感器数据y组成滑动窗口;

(106)、用1/4球面支持向量机对步骤(105)得到的滑动窗口中数据进行异常检测,以去除滑动窗口中异常数据并单独保存异常数据;

(107)、最终由1/4球面支持向量机输出检测出的异常数据。

所述的一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:步骤(101)和步骤(104)中的传感器数据,均是从传感器网络后台的管理监测系统中得到的。

所述的一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:步骤(102)的混合模型中,深度信念网络由多层叠加合成的受限玻尔兹曼机rbm,以及bp神经网络构成;

每层受限玻尔兹曼机rbm分别由隐藏层和可见层构成,隐藏层、可见层之间的神经元相互独立,且每层受限玻尔兹曼机rbm中隐藏层和可见层之间是全连接关系;

多层受限玻尔兹曼机rbm中,下层受限玻尔兹曼机rbm的输出作为上层受限玻尔兹曼机rbm的输入,最后一层受限玻尔兹曼机rbm连接bp神经网络;

高维的历史数据x作为输入向量输入多层叠加合成的受限玻尔兹曼机rbm,通过对多层叠加合成的受限玻尔兹曼机一层一层的训练,由bp神经网络接收训练后的特征数据,然后由bp神经网络将接收的特征数据与期望数据进行比对并调整,最终由bp神经网络输出调整后的低维的特征向量。

所述的一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:步骤(103)中,利用步骤(101)得到的历史数据x对混合模型进行训练的具体步骤如下:

(301)、将历史数据x输入到混合模型,通过历史数据对混合模型进行训练,得到模型参数;

(302)、深度信念网络输出降维后的低维的特征向量,即输出降维后的历史数据

(303)、将步骤(302)得到的降维后的历史数据输入到1/4球面支持向量机,通过1/4球面支持向量机进行检测,对每个数据都产生标签,其中正常数据为1,异常数据为-1,检测过程如下:

降维后的数据在特征空间的1/4球面半径r可通过求解以下公式(1)得到:

约束条件:

公式(1)中,φ(·)为样本到高维特征空间的映射函数,r为高维空间中超球面的半径,ξi是松弛变量,允许部分样本在球面之外,v∈(0,1)为在球面之外样本的比率,表示实数集,表示n维的实数集;

为简化公式(1)的计算,可将公式(1)转换为对偶形式,将半径r的求解问题转换为拉格朗日乘子αi的求解问题,对偶形式的表达公式(2)为:

约束条件:

公式(2)中,为基于距离的核函数,αi为拉格朗日系数;

由于基于距离的核函数对于任何样本节点均相等,因此公式(2)无法求得有意义的解,可以通过将核函数中心化的方法解决无法求得有意义的解的问题,即定义中心化后的核函数kc如公式(3):

kc=k-1nk-k1n+1nk1n(3),

公式(3)中,1n为n×n的矩阵,矩阵元素均为

此时公式(2)可转换为:

约束条件:

根据公式(4)解出的拉格朗日系数αi的取值,可判断对应的样本节点与超球体的关系:

当αi=0时,样本节点为正常数据,即标签为1;当样本节点为异常数据,即标签为-1;当该样本节点为边界支持向量,标签仍然为1;根据任意的边界支持向量与原点的距离,可以得到1/4球面半径r;

(304)、根据步骤(303)检测的结果,去除历史数据中的异常数据,得到正常的数据集合

所述的一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:步骤(105)中组成滑动窗口的过程如下:

(501)、初始化窗口,并设置窗口大小w_size;

(502)、对步骤(104)采集到的传感器数据y,采用步骤(103)中训练后的混合模型中的深度信念网络进行降维处理,得到一组降维后的数据

(503)、将正常的数据集合与步骤(502)中降维后的数据根据时间相关性组成大小为w_size的滑动窗口。

所述的一种面向大规模高维传感器数据的在线式异常检测方法,其特征在于:步骤(106)中对滑动窗口中数据进行异常检测的具体过程如下:

(601)、每次滑动步骤(105)得到的滑动窗口后,采用步骤(103)训练后的混合模型中的1/4球面支持向量机,对滑动窗口中数据进行检测;

(602)、每次检测完滑动窗口中的数据,产生数据标签,其中正常数据的标签为1,异常数据的标签为-1;

(603)、根据标签对异常数据进行处理;去除异常数据的同时单独保存异常数据,保证滑动窗口内除了将要滑入的数据以外,其余全部为正常数据;

(604)、调整滑动窗口内数据,更新滑动窗口。

本发明提出了一种面向大规模高维传感器数据的在线式异常检测方法。该方法首先使用深度信念网络对数据进行降维处理,再利用1/4球面支持向量机结合滑动窗口模型实现了对降维后数据的在线实时检测。本发明的方法能够很好的解决高维数据异常检测的同时实现在线检测的问题,节省了时间成本,同时提高了测量结果的正确率。

本发明提供了一种面向大规模高维传感器数据的在线式异常检测方法,改进了现有技术的相关算法和流程,主要有益效果在于:

1)提出了深度信念网络和1/4球面支持向量机异常检测模型;

2)大大地提高了异常数据检测的正确率;

3)提出了基于滑动窗口的在线式异常检测算法,实现了高维数据在线检测技术;

4)该发明通过将高维数据进行降维处理,避免了高维数据的高时间复杂度,大大地节省了时间。

附图说明

图1为本发明方法流程框图。

图2为本发明步骤(102)深度信念网络-1/4球面支持向量机混合模型。

图3为本发明步骤(102)中受限玻尔兹曼机模型。

图4为本发明步骤(102)中深度信念网络模型。

图5为本发明步骤(103)历史数据对混合模型进行训练流程框图。

图6为本发明步骤(105)中滑动窗口检测示例图。

图7为本发明步骤(106)训练好的混合模型对窗口中数据进行异常检测流程框图。

具体实施方式

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

如图1所示,本发明了提供了一种面向大规模高维传感器数据的在线式异常检测方法,包括以下步骤:

(101)、获取历史数据:从传感器网络后台的管理监测系统中提取某时间段内的若干连续数据样本作为模型训练的历史数据x。

(102)、建立深度信念网络-1/4球面支持向量机混合模型,如图2所示;其中受限玻尔兹曼机(restrictedboltzmannmachine,rbm)是一种概率神经网络,主要由两层神经元构成,分别称为隐藏层和可见层。如图3所示,h为隐藏层神经元状态向量,v为可见层神经元状态向量,向量b是隐藏层的偏执系数,向量a为可见层的偏执系数,wij表示隐藏层中第i个神经元与可见层中第j个神经元之间的连接权重,每一层之间的神经元相互独立,隐藏层与可见层之间是全连接关系。

深度信念网络是由多个受限玻尔兹曼机rbm叠加合成的深度学习网络。如图4所示,该网络通过对受限玻尔兹曼机rbm一层一层的训练,下层受限玻尔兹曼机rbm的输出作为上层受限玻尔兹曼机rbm的输入,在深度信念网络的最后一层设置bp神经网络,用来接收受限玻尔兹曼机rbm训练后的特征数据。由于每一层受限玻尔兹曼机rbm的训练都只能保证自身的最优,因此一层一层训练也无法保证全局最优,bp神经网络能够将得到的数据与期望数据比对,并进行自顶层向下的调整从而优化训练结果。

在本发明中主要使用深度信念网络作为数据的降维工具,将高维的输入向量x∈rn×d通过深度信念网络进行压缩提取后,输出低维的特征向量其中s<d。本发明利用深度信念网络将输入数据进行无监督模式地降维,并将降维后的特征向量作为1/4球面支持向量机的输入,从而也可以将计算复杂度大大降低。

(103)、如图5所示,利用历史数据x对混合模型进行训练,具体步骤如下:

(301)、将历史数据x输入到混合模型输入层,对混合模型进行训练,得到模型参数;

(302)、深度信念网络输出层输出的低维的特征向量即为降维后的历史数据

(303)、将步骤(302)得到的降维后的历史数据输入到1/4球面支持向量机,通过1/4球面支持向量机进行检测,对每个数据都产生标签,其中正常数据为1,异常数据为-1,检测过程如下:

降维后的数据在特征空间的1/4球面半径r可通过求解以下公式(1)得到:

约束条件:

公式(1)中,φ(·)为样本到高维特征空间的映射函数,r为高维空间中超球面的半径,ξi是松弛变量,允许部分样本在球面之外,v∈(0,1)为在球面之外样本的比率,表示实数集,表示n维的实数集;

为简化公式(1)的计算,可将公式(1)转换为对偶形式,将半径r的求解问题转换为拉格朗日乘子αi的求解问题,对偶形式的表达公式(2)为:

约束条件:

公式(2)中,为基于距离的核函数,αi为拉格朗日系数;

由于基于距离的核函数对于任何样本节点均相等,因此公式(2)无法求得有意义的解,可以通过将核函数中心化的方法解决无法求得有意义的解的问题,即定义中心化后的核函数kc如公式(3):

kc=k-1nk-k1n+1nk1n(3),

公式(3)中,1n为n×n的矩阵,矩阵元素均为

此时公式(2)可转换为:

约束条件:

根据公式(4)解出的拉格朗日系数αi的取值,可判断对应的样本节点与超球体的关系:

当αi=0时,样本节点为正常数据,即标签为1;当样本节点为异常数据,即标签为-1;当该样本节点为边界支持向量,标签仍然为1;根据任意的边界支持向量与原点的距离,可以得到1/4球面半径r;

(304)、根据步骤(303)检测的结果,去除历史数据中的异常数据,得到正常的数据集合

(104)、以固定时间间隔从监测系统中获取实时采集的传感器数据y。

(105)、滑动窗口是一种模型,最早在tcp协议中使用,用来控制发送方每轮发送出去的数据。本发明的滑动窗口借鉴tcp滑动窗口模型,用来控制每轮输入给支持向量机检测的数据。本发明建立的滑动窗口模型如图6所示,将正常的数据与新采集的数据y组成滑动窗口,如图4所示,具体步骤如下:

(501)、初始化窗口,并设置窗口大小w_size;

(502)、对步骤(104)采集到的传感器数据y,采用步骤(103)中训练后的混合模型中的深度信念网络进行降维处理,得到一组降维后的数据

(503)、将正常的数据集合与步骤(502)中降维后的数据根据时间相关性组成大小为w_size的滑动窗口。

(106)、如图7所示,利用1/4球面支持向量机对窗口中数据进行异常检测,具体步骤如下:

(601)、每次滑动步骤(105)得到的滑动窗口后,采用步骤(103)训练后的混合模型中的1/4球面支持向量机,对滑动窗口中数据进行检测;

(602)、每次检测完窗口中的数据,产生数据标签(正常标签为1,异常标签为-1);

(603)、根据标签对异常数据进行处理;去除异常数据的同时并单独保存异常数据(f),保证窗口内除将要滑入的数据以外,全部为正常数据;

(604)、调整窗口内数据,更新滑动窗口;

(107)、输出检测出的异常数据。

步骤(102)、(103)、(104)、(105)、(106)、(107)算法的伪代码如表1所示:

表1伪代码表

伪代码说明:

输入历史数据x,新采集数据y(1:n)(其中y(1),y(2),...,y(n)表示个时刻所采集到的数据),窗口大小(w_size);

输出异常数据f(1:n),f(1),...,f(n)表示n个时刻检测到的异常数据;

算法首先用历史数据学习深度信念网络模型参数dbn_m(第3行),并利用深度信念网络模型对历史数据x进行降维,得到降维后的训练数据(第4行),再用1/4球面支持向量机对数据集合进行检测,得到数据的标签标签为1的样本数据表示正常数据,为-1的为异常数据(第5行),并将异常数据从集合中剔除,得到正常的数据集合(第6行),用初始化滑动窗口(第7行)。最后循环地检测n个时刻采集到的数据y(1:n)(第8-14行),在每一次循环中,算法首先通过深度信念网络对y(i)降维,得到(第9行),然后更新滑动窗口(第10行),将新的窗口数据输入给1/4球面支持向量机模型得到采集数据的标签(第11行),最后将新采集数据(y)中的异常数据存储在f中(第12行),并微调窗口,将异常数据从窗口中移除,为下一轮检测做准备(第13行),返回异常数据(第15行)。

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