基于高斯过程模型的异常检测算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于高斯过程模型的异常检测算法
于冰洁;夏战国;王久龙
【摘要】为检测数据中的异常信息,提出基于高斯过程模型的异常检测算法.高斯过程可以根据训练样本从先验分布转到后验分布,对核函数的超参数进行推理,预测输出具有清晰的概率解释.对基于高斯过程模型的异常检测算法进行定义和描述,用Server Computers(电脑服务器)数据进行仿真实验,结合高斯过程先验和回归理论,在实验中选取RBF作为核函数,利用目标类数据的特性构造特征向量集,在TE工业过程时序数据集上验证了该算法的适用性和有效性.
【期刊名称】《计算机工程与设计》
【年(卷),期】2016(037)004
【总页数】8页(P914-920,953)
【关键词】高斯过程;协方差函数;异常检测;先验;回归
【作者】于冰洁;夏战国;王久龙
【作者单位】中国矿业大学计算机科学与技术学院,江苏徐州221116;中国矿业大学计算机科学与技术学院,江苏徐州221116;中国矿业大学计算机科学与技术学院,江苏徐州221116
【正文语种】中文
【中图分类】TP181
近年来,基于数据挖掘[1]的异常检测研究取得了一些进展,翁鹤等[2]提出了混沌RBF神经网络异常检测算法;左青云等[3]提出了一种基于SDN的在线流量异常检
测方法;范晓诗等[4]研究了加权条件熵在异常检测中的应用。

本文研究的是基于
高斯过程模型的异常检测算法。

针对高斯过程方法,Rasmussen C.E.和Christopher K.I.Williams教授从机器学
习的核方法角度出发,针对回归以及分类两类问题做出了系统的理论阐述与数值实验分析。

高斯过程有着严格的统计学习理论基础,是传统的多变量高斯分布从向量到函数的自然扩展。

高斯过程方法对于高维非线性的小样本数据,具有非常强的适用性和泛化能力,在机器学习研究领域中得到了广泛的重视[5]。

高斯过程精炼的
协方差函数结构能极大的降低函数数据分析中参数估计任务。

同时,高斯过程具有完全的贝叶斯公式化表示,能够准确计算出先验概率值,进而很好地提高了高斯过程模型的性能,同时能够对未知的数据样本进行预测分析,给出相应的均值和方差。

高斯过程定义请见参考文献[6]。

高斯过程公式表示请参见文献[7]。

高斯过程模型
优点请参见文献[8]。

高斯随机过程的各种特性通过协方差函数来保证[9],譬如鲁棒性、同向性、平滑度、周期性等。

高斯过程模型建立的过程中,对于协方差函数的构造以及如何通过学习获得最优的超参数是最重要的两个任务。

由于协方差函数与均值函数唯一确定一个高斯过程,因此高斯过程模型的性能好坏与协方差函数的选取息息相关。

2.1 相关定义
定义1 高斯核函数:根据RKHS的性质,不是任意的函数都是符合条件的协方差函数,一般只有满足半正定特征的函数才是符合条件的核函数。

高斯核函数表示形式如下
定义2 负对数边缘概率:对于高斯过程来说,是通过进行负对数边缘概率关于超参数θ的最小化而获得最优超参数。

这里,负对数边缘概率表示如下
高斯过程模型在解决回归或是分类的问题时,通过对样本数据进行一个训练过程,
即可构造出用于预测或判别的通用模型,进而找到一个合适的核函数以及适合该核函数的最优超参数。

定义3 高斯过程先验与后验:通常假定输入样本x和标签y满足映射关系:
y=f(x)+ε,其中f是一个未知的功能函数,ε表示噪声项。

一个常见的建模方法是假设函数f包含一些参数,表示为f(x;θ),然后通过学习找到最能描述训练数据的
参数θ。

高斯过程是基于无参数的贝叶斯框架,它的特点在于可以将底层函数f直接作为一个潜在的随机变量来训练模型,而无需任何固定的参数设置(因为所有参数配置都
考虑在内)。

潜在函数f的先验,现在可以建模为均值为0,协方差函数K的高斯
过程:高斯过程GP(0.K)。

这里允许采用通过核函数计算的输入样本的相似性,来建模函数值的相关性,在此选用径向基核函数(RBF)
假设高斯噪声为ε,p(y,f)服从高斯分布,所有涉及的边缘化都可以计算为接近于
后验概率)的形式,该后验概率也服从高斯分布并有如下均值和标准差
其中:K表示训练数据样本的核矩阵,其数学式为K=k(X,X),k*代表了新的样本
及训练集在核矩阵中的向量值,表示为k*=k(X,x*),k**表示k**=k(x*,x*),而
y∈{-1,1}n是所有二类训练标签的矢量,而变量I用来代表一个n*n的单位矩阵。

定义4 高斯过程分类:高斯过程分类的目标是对于任意输入的x*,准确的预测
其类别输出y*。

若y取值为{0.1}或者{1,-1}称为二类分类;若y取值为多个整数值,称为多类分类[10]。

定义5 高斯过程回归:概率性高斯回归:当给定训练数据集D={(xi,yi),i=1,...,n}
的n对连续的矢量xi、yi,对于新输入的x*,预测其分布函数值f*或其输出值y*,给出预测概率函数及参数估计。

2.2 算法描述
本文实现的基于高斯过程模型的异常检测算法是结合高斯过程先验及回归的相关理
论知识进行的。

其核心思想是根据高斯过程回归的预测分布,得到一组的评分值。

算法在设计实现的过程中,利用选择合适的高斯过程先验,使得我们获得了一组有用的且直观的OCC评分值。

其主要思想是使用一个相比正类标签(如y=1)更小的先验的均值,这将限制潜在函数的置信区间,当远离样本观测点时,先验的均值μ*将会逐渐减小,在选择一个平滑的协方差函数时,将获得一个重要的潜在函数集用于异常检测。

高斯过程回归使用均值为零的高斯过程先验,用其均值以及相应的置信区间来呈现预测分布,图1中,十字代表了训练样本点,实线线条代表了均值的变化,可以很清楚的看到,在训练样本点相对集中的区域,均值μ*的值也集中在1值附近(对应预测概率y*的值),相应的方差集中在0值附近。

由上述分析可知,本文采用预测概率)(记为方法P)作为异常检测的一个评分值,是合理可行的。

本文还选择了预测均值μ*(记为方法M)和方差(记为方法V)来共同作为算法的性能评分值。

以上几种评价方法的详细描述见表1。

表1中,设置类别标签y*≡1后,M方法的数学公式如下
综上所述,算法流程总的来说可以分为以下3个步骤:
(1)模型建立,选择合适的核函数。

由于在实际情况中,可供我们选择的核函数的种类很多,所以在建立模型时我们根据应用需要选择了RBF作为本算法中所用的核函数;
(2)模型训练,确定最优参数及边缘概率。

利用输入的训练数据集对模型训练,推导出训练集中各数据项的边缘概率以及最大边缘似然函数;
(3)模型预测,给出预测结果。

对于新的测试样本输入给出其预测值,实现对无标签数据的正确预测。

算法的具体执行步骤如下:
输入:输入数据X,训练集标记Y,高斯协方差矩阵K,方差,似然函数);
输出:分类预测分布函数f。

步骤1 初始化预测函数f=0;
步骤2 对矩阵L做cholesky矩阵分解,使得;
步骤3 计算α的值,;
步骤4 计算预测均值;
步骤5 计算方差的值,,边缘似然函数;
步骤6 返回均值,方差V[f*],以及边缘似然值),算法结束。

算法步骤6的输出,即为下文提出的3种评价方法P、M、V的对应值,分别为边缘似然值、均值及方差。

3.1 仿真实验
实验采用的数据集是Server Computers[11](电脑服务器)吞吐量和响应延迟的数
据集,针对电脑服务器的异常行为进行异常检测。

无标记数据集{x(1),x(2),...,x(m)}是在服务器运行时收集的307个数据。

其中大多数数据是服务器正常工作时的数据,但在数据集中,也存在一些非正常的服务器行为数据,即异常行为数据。

实验采用的是二维数据集,实验的关键是给数据集确立一个高斯分布,其中概率非常低的值,可以认为就是异常点。

实验用到的二维数据集如图2所示。

对该数据
集的异常检测的过程可分为:①构建仿真数据;②确立高斯分布参数;③确立阈值;
④得出结果。

首先,建立模型,即为训练样本{x(1),x(2),...,x(m)}每一个特征向量x(i)确立高斯分布,即确立参数μi和。

高斯分布如下所示
式中:μ——均值,σ2——方差。

i维特征向量的高斯分布参数确立方法如式(8)、式(9)所示
高斯参数确立后便可得到图3所示的高斯分布轮廓,确立训练样本点是否异常的
方法之一就是以交叉验证集为基础设立一个阈值。

概率低于阈值的点可以被认为是异常点。

交叉验证集可表示为),...,)},其中标记着y=1的点表示异常训练样本,而
y=0表示正常的训练样本。

对于每一个交叉验证训练样本,都需要计算)。

实验采用了for循环遍历的方法确立最佳阈值,遍历所有的交叉验证训练样本来计算F1的值(计算tp,fp,fn)作为阈值确立的标准。

F1表示当前阈值分类的准确度。

F1值由precision(prec)和recall(rec)计算得来
其中,tp:标签认为该训练样本点为异常点,算法将它正确的划分为异常点。

fp:标签认为该训练样本点不是异常点,算法将它错误的划分为异常点。

fn:标签认为该训练样本点是异常点,算法将它错误的划分为不是异常点。

实验确立的最佳阈值ε的值为8.95e-0.5。

实验结果如图4所示,图中圈出的点为异常点。

图中曲线为高斯概率密度函数确
定的高斯概率密度曲线,由内而外概率依次递减。

异常点区别于正常点的表现为概率低于所设定的阈值。

3.2 TE时序数据集实验
实验选用田纳西-伊斯曼化工过程公测数据集作为实验所用数据集行了多组实验。

在实现算法过程中,经过了阅读相关文献与多次实验,本文最终选择了RBF核函数,RBF核函数中的σ2取值为e-2.5,对于相关的噪音参数的值,在本实验实现
过程中,采用了从0,10-8,10-7,…依次增大的方法,直到取得的某一值可以确
保对矩阵L进行Cholesky分解后,得到的核矩阵为正定矩阵为止。

TEP工业过程流程如图5所示,整个实验过程是由4种反应物生成了两种产品,
一种添加物以及一种副产品。

其中,A、C、D和E为反应物,B为惰性组分,当TEP流程启动后,反应物和B被送入到反应器中,经过一段时间的化学反应,生
成了系统产物G和H,同时生成了副产物F。

在反应器中的化学反应式主要表示
如下
在上述反应式中,(g)代表此物质为气体,(liq)代表该物质为液体。

以上化学反应均为不可逆的放热反应。

剩余的反应物及生成物经过冷凝器冷凝后,被送到汽/液分离器。

未被冷凝的气体则经过多次循环后被送回进料口,这样可以高效提高反应物的使用效率。

经过分离器的分离后大部分主产物被分离下来,主产物G和H被送入汽提塔底部,通过11送到下流,经过进一步的提纯之后即可得到最终产品。

田纳西-伊斯曼化学过程仿真系统的数据集,一共包含了22组数据,分为1组正常数据和21组异常(故障)数据,在每一组数据集中,都包含了训练样本数据集和相应的测试样本数据集。

测试样本集中的数据是通过进行了22次不同情况下的仿真过程得到的,仿真开始时都是正常无故障的,21种异常情况都是在仿真开始8小时后引进的,每次仿真过程运行的时间都是48小时。

对数据集中的各数据采样时,每间隔3分钟采样一次,因此在一次仿真过程中可得到48×20=960个测试样本,即各类异常样本数据集中均包含960个数据样本。

每个样本数据包含52维特征,因此每一类异常数据样本是一个960×52的样本矩阵。

各训练样本集中包含了480组样本数据,每个样本数据也包含了52维特征,因此训练集是一个480×52的样本矩阵。

而正常状态下的训练样本集比较特殊,包含了500×52组数据。

在TE数据集中,所有的训练样本集存放在dx中,测试样本集存放在
dx_te中,其中x=0,...,21,0代表了正常无故障样本。

TE过程的22种不同运行状态中,每个样本记录的52维特征中,均包含了11个控制变量和41个测试变量,对于每个样本点的52维特征将其表示如下
X= [XMEAS(1),…,XMEAS(41),
XMV(1),…,XMV(11)]T
其中,XMEAS代表了测量变量,XMV代表了控制变量。

在此,为了更好的理解TE仿真系统的异常检测过程,本文以异常1(A/C进料比发生变化(成分B不变))为例进行详细的分析说明。

分析了各特征变量的意义后,可以很容易的找到变量XMEAS(1)和XMEAS(4)直接反应了A/C进料比,导致流4中的阶跃变化,它导致流4中的C料增加,A料减少。

分析图5反应流程可知,流4到流5是一个再循环的过程,所以必然也会导致流5中A料的减少,此时反馈给流1,作为整个化学反应过程的直接输入端,反应物A的进料量将会在异常1发生后明显增加。

由于变量XMEAS(1)代表这反应流1中A的进料量的变化情况,由此我们绘制了48小时内变量XMEAS(1)关于时间变化的曲线如图6所示。

从图6中,很容易看出在正常运行状态下,流1中A的进料量48小时内基本在0.3左右浮动,趋于稳定。

而自第8小时引入异常后,流1中A的进料量突然增大至1.0,随后才逐步趋于稳定,但仍高于正常状态。

由图6知,实际采集的时序数据特征与本文前文中对异常1的分析是相符的。

流5中A的减少,导致流1中A的增加,这两种效应随着反应的进行,将会在一段时间后导致输出端流6中A的含量达到平衡状态,成为一个常数。

由于变量XMEAS(23)表示了流6中A的含量,得出其关于时间的函数曲线如图7所示。

从图7中变化曲线知,流6中A的含量在异常发生一段时间后,逐步回复到了正常状态,成为常数。

在图5的TEP流程中可以看出,流6进入反应器中,由于其A含量的变化以及反应速度的影响,会通过回路反过来影响流4的A/C进料量的变化,使得流4中
A/C进料量速度低于正常运行状态。

虽然A/C进料比的变化也受其它特征参量的影响,但在本文中,选择直接影响变量XMEAS(4)作为主键(正常状态和异常状态之间最大的区别),对异常1进行分类。

TE数据中的训练集和测试集都是按时间顺序记录,所以特征变量XMEAS(4)是时间的函数,其时序分布如图8所示。

由图8可知,由于第8小时异常1的发生,导致了A/C进料量在很长一段时间内处于不稳定的状态,在正常情况中,XMEAS(4)的正常值为约9.3477,而当异常1
发生大概17小时后,变量XMEAS(4)才恢复稳定状态,并且其值低于正常状态值。

上述内容中以异常1为例,说明了当异常发生后在异常样本的主要特征随时间的
变化情况,其它20类异常分析方法与其类似。

3.3 实验结果分析
下面将重点分析采用高斯过程模型方法,对本文所选用的TE过程中采集到的时间序列数据进行异常检测,实验以正常情况下采集到的数据d00作为目标类来进行
训练,异常1的训练样本集(d01)作为测试样本,总的样本数为980个,其中前500个数据样本为正常样本,并选用变量XMEAS(1)、XMEAS(4)作为特征向量进行实验。

为了评价异常检测算法的学习结果,本文选择了两个参数指标η1,η2来度量学习效果的好坏,η1是用来表示训练集上的准确性,代表了经验风险,η2用来表示测试集上的准确性,代表了置信风险。

图9为对异常情况1检测后的部分
结果。

可以用上文所述的M、V、P方法不同的评分值来评价基于高斯过程模型的异常检测算法的性能,如图9所示,在对异常1进行检测时,总的样本数包括了训练集
和测试集总和,即共980个样本,图9(a)为采用M方法得到的每个数据样本的均值μ*的评分值,分析该图可以看出前500个样本因为为正常类样本,所以得到的评分值趋于稳定,而在500以后由于异常数据类型的加入,对其检测后得到的评
分值则呈现出了较大的波动变化的趋势。

同理,在图9(b)和图9(c)中选用方差和
边缘似然概率的评分标准,得到了与图9(a)相同的变化趋势。

通过对异常1类型
的异常检测,有效的验证了3种评价方法的有效性和实用性。

为了评价本文算法的性能,本文相比较SVDD(支持向量数据描述)、GMM(高斯混合模型)异常检测算法进行对比实验,实验时,本文对异常1进行了仔细的分析,
选择了其中的两个变量特征值:XMEAS(1)和XMEAS(4),以此构成原始的特征向量,本文结果是取3种评价方法所得检测结果的平均值,3种异常检测方法对异常
1的检测结果见表2。

从表2的实验结果中可以看出,各类异常检测算法的精度保持在一个较高的水平。

比较η1、η2以及算法执行时间,本文提出的基于高斯过程模型的异常检测算法(GP),其分类的准确率以及算法的执行效率都要高于SVDD和GMM算法。

首先,对比3种异常检测算法的检测时间可以看出,本文算法对异常1进行检测所用的
时间仅为3.21 s,而SVDD和GMM算法用时为3.53 s和4.75 s,分别高于本文算法0.32 s和1.22 s,说明了本文算法在处理时序数据问题上具有时间短、效率
高的优势。

其次,对比度量学校效果好坏的参数指标,本文算法分类准确率分别为99.4%和93.7%,其次是SVDD算法,分别为98.8%和91%,分类准确率最差的是GMM分类算法,分别为95.2%和85.5%,说明了本文算法在处理异常检测问
题时,相比较传统的SVDD和GMM算法更加有效,对异常数据的检出率更高。

本文实验重点对TE过程的前1-12类异常进行检测,而第13-31类异常在实际的工业过程中发生的情况较少,本文不做重点分析。

对第2-12类异常的分析方法与上文介绍的第1类异常分析方法相同,即要在每个52维时序数据中,找到引发该异常的直接相关变量,作为特征向量,以此构成原始的特征向量,指导完成异常检测算法。

对3种方法进行训练和测试,分别对d01至d12训练数据进行异常检测,在训练集中的分类结果见表3。

运用以上3种异常检测算法,对d01_te至d12_te测试数据进行异常检测,结果
见表4。

由表3和表4可知,本文提出的基于高斯过程模型的异常检测算法,相比较SVDD和GMM两种异常检测算法,在检测性能上有显著提高。

实验结果表明,
本文算法在对前12类异常进行检测时,在训练集和测试集上的平均分类准确率为97.3%和90%,而SVDD为94.6%和86.2%,分别低于本文算法2.7个百分点和3.8个百分点,GMM为93.3%和81%,分别低于本文算法4.0个百分点和9.0个
百分点,说明了本文算法在异常检测问题中,具有检测效率高、误判率低、准确率高等优势,对处理非线性和小样本问题具有非常强的泛化能力,训练速度快且不存在过拟合和求极值点的问题,具有非常强的应用前景。

本文提出的基于高斯过程的异常检测算法在准确性及时间复杂度方面具有了很大的提高。

但是目前对于高斯过程学习方法的半监督研究及异常检测研究都尚处于起步阶段,本文仍存在一些需要不断深入研究和总结的地方,主要包括以下几个方面:(1)进一步研究在数据样本较大的情况下,如何更加有效提高算法的运行效率。

在利用半监督高斯过程异常检测算法进行数据异常检测时,更加有效地利用半监督信息中的标记数据和未标记数据,是下一步研究的重点内容;
(2)本文针对具体应用进行了相关分析选取了特征向量集,而在今后的研究中,将会深入的学习如何选择具有适用性的方法来构造特征向量集,以构造出最优的算法模型;
(3)在实际的应用中,如何通过用户简单的描述信息,通过语义分析,获知用户真正想要获得的知识,以及进一步提高检测的准确度,将数据处理的结果自动的转化为用户可以很容易理解的知识,这些也都将是下一步工作要重点解决的问题。

【相关文献】
[1]BAI Ning.An outlier detection method based on k-means clustering[J].Computer and Modernization,2014(1):93-95(in Chinese).[白宁.一种基于k-均值聚类的异常检测技术[J].计算机与现代化,2014(1):93-95.]
[2]WENG He,PI Dechang.Chaotic RBF neural network anomaly detection
algorithm[J].Computer Technology and Development,2014,24(7):29-33(in Chinese).[翁鹤,皮德常.混沌RBF神经网络异常检测算法[J].计算机技术与发展,2014,24(7):29-33.]
[3]ZUO Qingyun,CHEN Ming,WANG Xiulei.Online traffic anomaly detection method for SDN[J].Journal of Xidian University,2015,42(1):38-42(in Chinese).[左青云,陈鸣,王秀
磊.OpenTAD:一种基于SDN的在线流量异常检测方法[J].西安电子科技大学报,2015,42(1):38-42.] [4]FAN Xiaoshi,LI Chenghai.Application of weighted conditional entropy in anomaly
detection[J].Application Research of Computers,2014,12(1):203-205(in Chinese).[范晓诗,李成海.加权条件熵在异常检测中的应用[J].计算机应用研究,2014,12(1):203-205.]
[5]Ashish Kapoor,Kristen Grauman,Raquel Urtasun.Gaussian processes for object categorization[J].International Journal of Computer Vision,2010,88(2):169-188.
[6]Barber D.Bayesian reasoning and machine learning[M].English:Cambridge University Press,2012.
[7]Xia Zhanguo,Wan ling,Cai Shiyu.Research progress of Gaussian process[J].International Journal of Digital Content Technology and its Applications,2012,6(14):369-378.
[8]ZHANG Jianzhong.Research on model identification and nonlinear predictive control of continuous chemical processes[D].Harbin:Harbin Institute of Technology,2010(in Chinese).[张健中.一类连续化工生产过程的模型辨识及非线性预测控制研究[D].哈尔滨:哈尔滨工业大学,2010.]
[9]Rodner E,Denzler J.One-shot learning of object categories using dependent Gaussian processes[C]//Proceedings of the DAGM,2010:232-241.
[10]XIA Zhanguo,XIA Shixiong,CAI Shiyu.Semi-supervised Gaussian process classification algorithm addressing the class imba-lance[J].Journal on Communications,2013,34(5):42-51(in Chinese).[夏战国,夏士雄,蔡世玉.类不均衡的半监督高斯过程分类算法[J].通信学
报,2013,34(5):42-51.]
[11]Andrew NG:CS229 machine learningautumn 2014[EB/OL].[2014-03-
17]..。

相关文档
最新文档