首页> 中国专利> 基于双向二维主成分分析的在线网络流量异常检测方法

基于双向二维主成分分析的在线网络流量异常检测方法

摘要

本发明公开了一种基于双向的二维主成分分析进行在线的网络流量异常检测的方法,其涉及在线网络流量异常检测技术领域,该方法包括三种不同的BPCA方法,包括通过迭代进行计算的BPCA计算方法、近似的BPCA方法、通过增量型(incremental)方法加速的BPCA方法;该方法通过主成分分析方法对异常数据与正常数据的敏感性来进行异常检测,其主要应用于对实时的网络流量数据进行检测,判断采集到的实时数据是否存在异常数据。从而,确定采集到的数据不存在异常,同时也使得网络管理更加便捷,能够提高在线异常检测的准确率和减少计算时间。

著录项

  • 公开/公告号CN106941490A

    专利类型发明专利

  • 公开/公告日2017-07-11

    原文格式PDF

  • 申请/专利权人 湖南友道信息技术有限公司;

    申请/专利号CN201710164648.6

  • 发明设计人 李晓灿;文吉刚;曾彬;

    申请日2017-03-20

  • 分类号

  • 代理机构北京中济纬天专利代理有限公司;

  • 代理人陆薇薇

  • 地址 410000 湖南省长沙市开福区湘雅路街道芙蓉中路一段416号泊富商业广场21025、21026号

  • 入库时间 2023-06-19 02:49:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-27

    授权

    授权

  • 2017-08-04

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170320

    实质审查的生效

  • 2017-07-11

    公开

    公开

说明书

技术领域

本发明涉及机器学习以及计算机网络领域,特别是涉及处理现代网络产生的大量流量数据、需要进行实时在线检测是否存在异常数据的应用,具体为一种基于双向的二维主成分分析进行在线的网络流量异常检测的方法。

背景技术

随着计算机和英特网的高速发展,各大运营商或者IT公司需要采集正常的网络流量数据进行数据分析或者网络状况分析。但是网络的数据流量不断加大、网络部署的不断增加,以及日趋多样化和复杂化的计算机环境,造成越来越多的异常的网络流量数据出现。因此,对采集的网络数据进行预处理来剔除异常数据成十分必要。然而,由于网络节点数的增加以及网络数据的增加,使得各种算法的计算代价和存储空间代价同样增长迅速。因此,对网络数据进行又快又准的判断与预处理成为一个迫切解决的问题。

主成分分析方法(PCA)是机器学习中对数据进行降维处理的一种算法,它通过向主成分方向投影的方法,利用数据之间的相似性,大数据的冗余性等等特点。对原有数据进行简化,从而将复杂数据降维,揭示隐藏在复杂数据背后的简单结构。由于主成分分析(PCA)算法充分利用了数据本身的空间相关性。因此通过它降维得到的数据往往都具有很高的特性表征作用,也正是因为该方法利用主成分方向来 投影,使得一旦新加入的数据一旦存在异常就会影响其主成分方向从而与历史数据的主成分方向形成夹角。这就使得,通过主成分分析方法进行在线异常检测成为可能。

然而,主成分分析方法(PCA)自1933年提出以来,被广泛应用到图像处理,信号处理,机器学习等各种学科当中,通过,几十年的发展,人们发现了主成分分析方法的各种不足。比如,传统的主成分分析方法不管数据模型如何,都需要将数据转化为向量类型数据,才能进行降维处理,这种做法无疑破坏了各个数据之间的本身存在的很多特性。另外,传统的主成分分析方法仅仅分析了数据行空间的数据特征,而忽略了数据的列空间的特征,另外主成分分析方法(PCA)将数据向量化,使得数据内部性质与特性遭到破坏,同时将数据向量化后会使得计算代价与内存代价都增加。因此,主成分分析方法(PCA)进行在线异常检测不仅准确率不够高,同时,计算时间代价也无法满足在线检测的代价。

针对现在网络的部署状况和采样方法的情况,当网络中存在N个节点时,我们将网络流量数据模型建立为N×N×T的数据模型,如图1.1所示,每个时刻采集的N个节点之间相互的流量数据构成一个N×N的矩阵,前t个时刻的数据为历史数据当第t+1个时刻(新时刻)Xt+1的数据到来的时候,本发明通过提出的双向的二维主成分分析方法来进行异常检测。如果存在异常我们将该数据丢弃或者进一步处理,当不存在异常时,我们将该数据存入历史数据集中。

发明内容

本发明的目的在于提出一种能够提高在线异常检测的准确率和减少计算时间的基于双向的二维主成分分析进行在线的网络流量异常检测的方法。

为实现上述目的,本发明采取的技术方案具体包括如下步骤:

一种基于双向的二维主成分分析进行在线的网络流量异常检测的方法,其包括以下步骤:

第一步:先利用BPCA方法对前t个时刻的历史数据进行计算行、列空间的主成分方向Ut、Vt,令Mt=[Ut,Vt],并将其存储;

第二步:在线采样一个t+1时刻下的数据Xt+1

第三步:通过BPCA方法进行计算t+1时刻到来后的行、列空间向量Ut+1、Vt+1,令Mt+1=[Ut+1,Vt+1];

第四步:计算

第五步:判断CosineValue>Score?如果为真,则判定t+1时刻采样的数据为正常数据,并将t+1数据存入数据库作为历史数据同时更新Ut=Ut+1,Vt=Vt+1;否则判定t+1时刻采样数据存在异常数据,并将其舍弃,其中Score参数为网络数据中心自定义的异常判别评分。

作为本发明方法技术方案的进一步改进,所述BPCA方法为通过迭代进行计算的BPCA计算方法,其包括以下步骤:

第一步:初始化U0=I其中I为单位向量,i=0;

第二步:判断是否收敛,或者i≥MaxIter,其中MaxIter 为自行设置的算法最大迭代次数;

第三步:计算并通过CV的奇异值分解,求得Vi,其中

第四步:计算并通过CU的奇异值分解,求得Ui

第五步:i=i+1;

第六步:并返回至第二步;

第七步:结束。

作为本发明方法技术方案的进一步改进,所述BPCA方法为近似的BPCA方法,其包括以下步骤:

第一步:计算其中并通过Ci的奇异值分解,求得Vi

第二步,计算其中并通过CU的奇异值分解,求得Ui

第三步:结束。

作为本发明方法技术方案的进一步改进,所述BPCA方法为通过增量型(incremental)方法加速的BPCA方法,其包括以下步骤:

第一步:输入新采样数据矩阵Xt+1,历史采样数据均值矩阵以及历史数据在列空间与行空间上的特征向量以及奇异值矩>

第二步:计算

第三步:计算QR分解:其中Qu、Ru,Qv、Rv为分别针对矩阵>

第四步:计算SVD分解(Singular Value Decomposition):

其中为分别针对矩阵进行奇异值分解所得到的三个矩阵。

第五步:更新双向主成分方向:

与现有技术相比,本发明具有以下有益效果:

本发明提出了一种基于双向的二维主成分分析进行在线的网络流量异常检测的方法,该方法包括通过迭代进行计算的BPCA计算方法、近似的BPCA方法、通过增量型(incremental)方法加速的BPCA方法等三种不同的BPCA方法,通过主成分分析方法对异常数据与正 常数据的敏感性来进行异常检测,其主要应用于对实时的网络流量数据进行检测,判断采集到的实时数据是否存在异常数据,从而,确定采集到的数据不存在异常,同时也使得网络管理更加便捷。

附图说明

图1.1现有技术网络流量在线采集模型说明图;

图1.2主成分分析方法(PCA)示意图;

图1.3双向主成分分析方法(BPCA)示意图;

图1.4双向主成分分析方法(BPCA)处理采样数据的空间示意图;

图1.5双向主成分分析方法(BPCA)处理正常采样数据与异常采样数据的空间的差别示意图;

图2为本发明给定一个历史网络流量数据集χ={X1,…Xt}具体模型图;

图2.1为本发明七种不同算法针对Abliene数据集在不同均值的高斯分布结构化异常攻击下的检测的查准率与误判率的对比图;

图2.2为本发明七种不同算法针对Geant数据集在不同均值的结构化异常攻击下的检测的查准率与误判率的对比图;

图2.3为本发明七种不同算法针对Abliene数据集在不同标准差的结构化异常攻击下的检测的查准率与误判率的对比图;

图2.4为本发明七种不同算法针对Geant数据集在不同标准差的结构化异常攻击下的检测的查准率与误判率的对比图;

图2.5为本发明七种不同算法针对Abliene数据集在不同均值的在随机异常攻击下的检测的查准率与误判率的对比图;

图2.6为本发明七种不同算法对Geant数据集在不同均值的在随机异常攻击下的检测的查准率与误判率的对比图;

图2.7为本发明七种不同算法对Abliene数据集在不同标准差的在随机异常攻击下的检测的查准率与误判率的对比图;

图2.8为本发明七种不同算法对Geant数据集在不同标准差的在随机异常攻击下的检测的查准率与误判率的对比图;

图3.1为本发明不同加倍数r对两种不同数据集的查准率的影响的对比图;

图3.2为本发明不同加倍数r对两种不同数据集的误判率的影响的对比图。

具体实施方式

下面结合附图对本发明做进一步详细说明。

主成分分析方法(称PCA),该方法通过将高维数据投影到低维空间从而达到降维的作用。如图1.2所示,通过主成分(列空间向量)U,将数据集{x1,x2,x3}从二维数据降到一维数据,其中优化目标为:最小化图中Distance之和。

针对传统的主成分分析方法,本发明提出了更加优化的二维双向主成分分析方法(称为:BPCA),不同于PCA方法中需要将数据向量化的特点以及仅仅使用列空间向量来进行数据降维的特点,本发明提出的方法不需要将数据向量化,从而很好的保证了数据内部信息的完整性。另外BPCA方法使用了包括行空间向量V在内的两种空间向量来进行双向降维。如图1.3所示,本发明中的BPCA算法可以将一个3×3的数据降维成2×1的数据。

该方法具体优化方式如图1.4所示,其中一个圆圈代表一个图1.3中所示的数据样本。本发明将多个该维度的数据样本进行降维。通常表达为将M×N的数据降维成R×L的数据。

正是因为上述的主成分分析方法中的降维过程,由于优化目标为图1.2中所示的Distance,因此,当数据样本中存在异常的时候,发现行、列空间向量(U,V)发生一定量的偏移,而当数据样本不存在异常的时候,则基本没有偏移或者仅仅少量的偏移,如图1.5所示。

本具体实施方式针对上文所阐述的主成分分析方法的性质,提出了一种基于双向的二维主成分分析进行在线的网络流量异常检测的方法,其包括如下步骤:

第一步:先利用BPCA算法对前t个时刻的历史数据进行计算行、列空间的主成分方向Ut、Vt,令Mt=[Ut,Vt],并将其存储;

第二步:在线采样一个t+1时刻下的数据Xt+1

第三步:通过BPCA算法进行计算t+1时刻到来后的行、列空间向量Ut+1、Vt+1,令Mt+1=[Ut+1,Vt+1];

第四步:计算

第五步:判断CosineValue>Score?如果为真,则判定t+1时刻采样的数据为正常数据,并将t+1数据存入数据库作为历史数据同时更新Ut=Ut+1,Vt=Vt+1;否则判定t+1时刻采样数据存在异常数据,并将其舍弃,其中Score参数为网络数据中心自定义的异常判别评分。

第一实施例:

本发明第一实施例的所述BPCA算法如下:

给定一个数据集其中Xi∈RN×N,i=1……T,将这些数据中心化处理其中如图1.2中所示的Distance在BPCA中表示为:

其中U、V分别为列、行空间向量,UT、VT,为U、V转置。可以发现

证明如下:

首先令则

因为是一个常数,所以(1)式可以表示为

求导后可得:

当且仅当:(3)式取得最小值,因此带入到(2)式中。

同样的第一项为常数,所以:

为了最优化目标函数(6),当给定一个Uopt,Uopt可以通过计算协方差矩阵的奇异值分解的前L个特征向量获得,同样的,给定Vopt,Vopt可以通过计算协方差矩阵的奇异值分解的前R个特征向量获得,其中Vopt和Uopt为主成分方向V和U假定最优化求解结果。

通过上述推导过程,可以得出以下的具体实现步骤:

第一步:初始化U0=I其中I为单位向量,i=0;

第二步:判断是否收敛,或者i≥MaxIter,其中MaxIter为自行设置的算法最大迭代次数;

第三步:计算并通过CV的奇异值分解,求得Vi

第四步:计算并通过CU的奇异值分解,求得Ui

第五步:i=i+1;

第六步:并返回至第二步;

第七步:结束。

第二实施例:

通过观察上述方法的计算过程,发现这个过程需要反复迭代,因此计算代价较高。因此,在第二实施例中,本发明提出了该BPCA方法的一种近似求解的算法,具体方法如下:

通过观察上述的方法步骤中第三步和第四步,可以知道当进行奇异值分解时,取R和L足够大时,可以得以及 因此本具体实施例提出了近似的BPCA方法,其包括如下具体步骤:

第一步:计算并通过CV的奇异值分解,求的Vi

第二步:计算并通过CU的奇异值分解,求的Ui

第三步:结束。

第三实施例:

通过大量实验证明,这种近似的BPCA方法仍然不能够满足在线检 测的要求,因此,针对这种近似的BPCA方法,本发明的第三实施例提出了一种增量型(incremental)的方法,通过这种方法,可以大大的减少计算代价。

增量型(incremental)的方法包括如下步骤:

第一步:输入新采样数据矩阵Xt+1,历史采样数据均值矩阵以及历史数据在列空间与行空间上的特征向量以及奇异值矩阵

第二步:计算

第三步:计算QR分解:其中Qu、Ru,Qv、Rv为分别针对矩阵进行QR分解得到的两个矩阵;

第四步:计算SVD分解(Singular Value Decomposition):

其中为分别针对矩阵进行奇异值分解所得到的三个矩阵;

第五步:更新双向主成分方向:

本发明提出的三种实施例方法原理证明如下:

给定一个历史网络流量数据集具体模型形式如图2所示。

第一步,通过中心化处理历史数据集得到其中 然后通过求数据集的协方差矩阵

其中

并通过奇异值分解算法(SVD)求的行、列空间上的主成分方向:

[Ut,~,~]=SVD{(CU)t}>

[Vt,~,~]=SVD{(CV)t}>

第二步,当新的时刻(t+1时刻)的网络流量数据Xt+1到来时,数据集变为:需要获得Ut+1和Vt+1。同样的,可以使用上述求Ut和Vt的方法求的,然而,这种更新方法,求协方差矩阵的计算代价随数据集的增加而迅速增加,这就使得计算代价过大,而无法>

证明如下:

通过观察历史数据的协方差矩阵为:

其中:

加入新数据后的协方差矩阵为:

所以:

其中:

从(5)式中可以知道:是以下三部分之和:

其中(6)式

将带入(7)式可以得到:

而(8)式可以写为:

其中代入公式(10),所以有:

另外所以:

总结:

证明完毕。

同样的通过上述方法可以得到:

以下进行时间复杂度的分析:

给定一个数据集当该发明检测节点个数为N时,则X1∈N×N。而通过incremental加速的BPCA方法计算一次QR分解的时间为:O(N3),奇异值分解计算时间为:O((N+rank)3),所以总时间为O(N3)+O((N+rank)3)。当没有使用加速的检测方法时,每次检测时都重新计算协方差矩阵的时间为:O(N3T2),而计算该协方差矩阵的奇异值分解的时间为O(N3)。

通过分析发现,当累积的历史时间T越来越多的时候,新加入的数据对历史数据的影响以及对BPCA中Ut和Vt影响越来越小,因此,本发明提出了加倍的策略来保持新加入数据对历史数据中的Ut和Vt的影响足够大,加倍策略具体操作如下:

给定历史数据集历史数据为T个时刻的矩阵面,当采集到新时刻的数据XT+1,本发明将其翻λ倍得到然后将翻倍的数据集进行检测,其中λ=β*T,通过大量实验证明β一般取0.1。

本发明通过对Abilene和Geant公开数据集(具体情况如表1.6所示)进行检测计算时间对比如表1.7所示,其中IterBPCA为存在迭代过程的BPCA方法,而ABPCA为近似的BPCA方法,OnlineBPCA为通过incremental加速后的BPCA方法。

表1.6

Time(sec.) IterBPCA ABPCA OnlineBPCA Abilene 2.0e+4 178.31 2.0e-4 Geant 8.0e+4 721.26 2.5e-3

表1.7

另外,为了测试本发明的有效性,测试了该发明针对Abliene和Geant两个不同网络流量数据集在不同种类的攻击下的检测效果,同时比较了传统主成分分析方法,和二维主成分分析方法的检测效果,具体分布如图2.1-3.2所示。

本领域技术人员将清楚本发明的范围不限制于以上讨论的示例,有可能对其进行若干改变和修改,而不脱离所附权利要求书限定的本发明的范围。尽管己经在附图和说明书中详细图示和描述了本发明,但这样的说明和描述仅是说明或示意性的,而非限制性的。本发明并不限于所公开的实施例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号