一种基于壳向量式SVM增量学习模型的流量实时分类方法与流程

文档序号:17893293发布日期:2019-06-13 15:49阅读:253来源:国知局
一种基于壳向量式SVM增量学习模型的流量实时分类方法与流程

本发明涉及大规模数据背景下,基于svm的网络流量实时在线分类的增量学习算法。



背景技术:

网络流量分类的实现是运行和优化各种网络资源的重要基础,在网络资源管理、入侵检测等方面发挥重要作用。在网络流量识别研究中分类技术主要经历了三个阶段:基于固定端口号的流量分类阶段、基于深度包流量检测(deeppacketinspection,dpi)分类阶段和基于机器学习的流量分类阶段。随着动态端口技术和伪装端口技术的出现,给基于固定端口的流量分类系统带来了严峻挑战。为解决基于端口的流量分类技术存在的不足,yang等人使用dpi流量分类技术,即以透视的形式深度检查数据包是否携带目标流量类型的特征码,从而实现对网络流量的分类识别。然而基于dpi的流量分类是以分组数据信息可见性及荷载目标特征已知为前提的,因此不适用于加密流量和未知特征码的网络流量。基于固定端口、dpi的流量分类技术本质上可以理解专家系统,即通过人为的制定规则来实现对网络流量的匹配和识别,不具备智能识别、分类能力。近年来,随着人工智能的兴起,机器学习作为人工智能的主要实现方式,越来越多的机器学习技术被应用到网络流量分类当中。

基于机器学习的网络流量分类技术是对各网络流量统计信息进行计算,利用相关算法对数据包进行识别,进而对相应的网络流量进行分类。机器学习方法主要分为有监督学习和无监督学习。无监督学习是指根据样本间的相似特性对训练集中的样本进行聚类来设计分类器,例如k均值聚类,最大期望算法等。然而在无监督网络流量分类中,利用聚类结果构造未知类别的流量是困难的。有监督学习是指在已知网络流量类别的基础上来构造分类器,其主要算法有svm,贝叶斯网络(bayesiannetworks),k-近邻(k-nearestneighbor,knn)等。以上典型的监督学习算法中,bayesian、knn等容易陷入局部最优解,而svm基于结构风险最小化原则可以将原问题转化为凸二次规划问题,进而求得全局最优解,并且核函数的引入,svm将现有维度线性不可分问题转化为高维度线性可分问题,从而实现对非线性数据的分类。wang等人将lasso特征选择算法应用到网络流异常检测中,以降低特征维度的方式加快模型的训练和网络流量的分类。萧平等人提出一种基于遗忘因子t的svm增量学习算法。

在二分类问题中,假设训练样本集为(xi,yi),i=1,2,..,n,yi∈{-1,1},分类目标是根据训练样本构造最优分离超平面,使得训练集可以被该超平面分离且离超平面最近的向量,即支持向量,到超平面的距离最大。分类决策函数形式如(1)所示,得到线性可分支持向量机。

f(x)=sign(w*·x+b)(1)

为最大化几何间隔且引入松弛变量ξ>0,化简后可得到形如(2)所示的软间隔支持向量机,在约束条件下求解最小w,进而得到相应最优决策函数。

其中,c为惩罚参数,c越大表示对误分类的惩罚越大。

通过拉格朗日乘子法和wolfe对偶定义,原始问题的对偶问题是极大极小问题,即把在约束条件下求解最小w的原问题转化为求解最大αi的对偶问题,对偶问题如式(3)所示。

其中,αi是lagrange乘子。

当训练样本线性不可分时,引入核函数k(xi,xj),将当前线性不可分样本映射到某高维空间,使其成为线性可分样本。则上式可转化为式(4)

上述对偶问题的最优解集合α=[α1,α2,...,αn],使得所有样本xi满足kkt(5)条件

svm中,当αi=0的训练集数据分布在分离间隔之外;当0<αi<c训练集数据正好在分离间隔上;当αi=c的训练集数据分布在分离间隔之内。

但是,svm算法训练数据样本时存在训练时间长、内存占用大、响应时间长、实时性差、增量学习效率低、成本高等问题,严重影响对网络流量的管理和对异常入侵的检测,特别是大数据背景下,传统svm算法越发捉襟见肘。



技术实现要素:

本发明的目的在于一种基于壳向量式svm增量学习模型的流量实时分类方法,以克服现有技术的缺陷,本发明增量学习的训练时间大幅减少,准确率逐步提高并趋于稳定,符合增量学习特点,满足大数据背景下网络流量的实时在线分类功能的需求。

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

一种基于壳向量式svm增量学习模型的流量实时分类方法,包括以下步骤:

1)对初始训练数据按特征维度分别进行归一化得到特征集;

2)对初始特征集ft1进行fcbf特征选取,删除大量冗余、不相关特征得到优化特征集ft2;

3)对特征集ft2进行pca处理,实现特征提取操作得到特征集ft3,将主要信息集中在少数维度,为后续低维空间求解壳向量做准备;

4)以经过预处理的特征集ft3训练svm模型,得到模型。使用初始模型对网络流量分类并得到含有样本几何信息的壳向量集合;

5)增量学习更新模型,根据新网络流量的信息和壳向量来更新模型;

6)使用模型进行网络流量实时在线分类。

进一步地,所述步骤1)中,按特征维度进行归一化是对数据集中每一维特征分别进行线性变换,使每一维特征值在保持原有数据意义下映射到[0,1]之间,消除各维度特征值量纲差别带来的影响,从而得到归一化后的特征集,表示为其中包含n个样本,每个样本有d个维度。

进一步地,所述步骤2)中,fcbf算法实现步骤如下:

2.1)计算每个特征fi与目标o之间的相关性。

2.2)然后将相关性su(fi,o)大于预先设置好的阈值δ的特征选出并从大到小排列。

2.3)依次遍历降序排列中小于su(fi,o)的所有特征fj并计算su(fi,fj)。

2.4)如果su(fi,fj)大于等于su(fj,o),则删除特征fj,否则保留特征fj。

2.5)遍历所有特征fi,最后得到无重复特征的特征子集ft2,该特征子集的特征维度远远小于原特征维度。

进一步地,所述步骤2.1)中,目标o依次取特征集的所属类别,则特征fi与目标o之间的相关性其中ig(x,y)=e(x)-e(x|y),ig(x,y)表示信息增益,e(x),e(y)表示信息熵,e(x|y)表示当随机变量y单独发生时,随机变量x发生的条件概率,p(xi)表示特征x取值为i时的概率,可以由大数定理以样本出现的频率代替,z为类别数。

进一步地,所述步骤2.2)中,阈值δ取0.02时为最优。

进一步地,所述步骤3)中,通过坐标轴的旋转实现将特征集的主要信息集中在少数维度,即对特征集使用pca操作来用较少维度数据表示较多维度数据,得到新的特征集ft3,该特征集的维度比fcbf算法得到的特征集维度更少。

进一步地,所述步骤4)中,壳向量是特征集几何意义上最边缘的数据,即特征集最外层数据,以基于最小超球概念求解。

进一步地,基于最小超球概念来对壳向量集合求解,具体为:

4.1)假设x={x1,x2,...,xn}是给定的训练集,hv表示特征空间的凸壳,v是凸壳上的凸顶点,vp是凸壳上可能存在的极点,v是vp的子集,ψ(x,v)用来判断x是否在v的内部,若v中任意一个非线性映射可以由v的凸组合表达,则是v的内点,记ψ(x,v)=1,ψ(x,v)=0表示x不在v的内部。

4.2)ψ(x,v)优化后:

其中,βi表示集合v的样本点的个数,βi是加权系数。

4.3)首先求出给定点的最小超球,最小超球定义:其中,r是最小超球半径,ξi是松弛变量,c为惩罚函数值,控制惩罚程度。然后以最小超球的球面上点作为初始壳向量;然后迭代求出vp,再从vp中依次删除非极点后得到凸壳上的凸顶点v,最后以凸顶点v作为当前壳向量。

进一步地,所述步骤5)中,当实时网络流量xi到达时,对xi进行上述数据预处理后判断其是否满足kkt条件,若xi不违反kkt条件,则xi所含的特征信息已包括在历史支持向量中,则保持原模型;否则,xi可能与原壳向量集合中所含的隐含信息一同构成新的分类,即上次训练的非支持向量有可能转化为支持向量,则取xi与历史壳向量集合s的并集,即sk+1=sk∪{xi},作为新特征集,进而重新训练得到模型mi,再以模型mi作为最新的预测模型,从而实现svm的增量学习。

进一步地,所述步骤6)中,对实时网络流量进行归一化、fcbf算法处理、pca算法处理得到实时流量特征集,然后拿这个特征集作为上述模型的输入,经过模型的计算得到一个输出,根据输出的结果来实现对实时网络流量的分类。

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

在svm算法分类领域,数据特征容易受到量钢的影响,甚至会直接影响svm分类效果和泛化能力,因此本发明采用最大-最小归一化方法对特征集的每个维度进行规范化,降低特征数据量纲对本发明分类的影响。然后对归一化处理后的特征数据分别进行fcbf特征选择和pca特征提取,删除冗余和不相关的特征,降低特征维度并集中表达特征数据所包含信息,很大程度上提高网络流量实时分类的效率。同时较低维度且集中的特征集能减少训练的时间和方便本发明后续壳向量的计算。然后在增量学习过程中,取含有原训练数据几何意义信息的壳向量和违反kkt条件的新网络流量的并集作为新训练数据集,避免重复训练原训练集,从而在保证原有训练数据集几何信息且保证分类准确性和和时效性的基础上,实现了网络流量的增量学习,符合大数据意义上网络流量实时在线分类的需求。

附图说明

图1为网络流量特征集的数据预处理图;

图2为基于壳向量式svm增量学习模型流程图;

图3为验证fcbf_pca算法特征选取效果图;

图4为三种svm增量学习准确率对比效果图;

图5为三种svm增量学习时间消耗对比效果图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细描述:

网络流量特征具有明显的自相似性、自依赖性和高维性。因此本发明利用基于对称不确定性的fcbf算法删除高维训练集的冗余特征和不相关特征,然后线性叠加pca算法进行降维处理得到新训练集,再以此训练svm模型,进而实现网络流量分类。实现增量学习时,对实时网络流量采用相同数据预处理,再将违反kkt条件的新样本数据和壳向量的并集作为新训练集重新训练svm模型,从而实现svm的增量学习。

本发明是一种基于壳向量式svm增量学习模型的流量实时分类方法,svm的增量学习主要分为两种形式:历史训练集结合新样本训练模型和支持向量结合新样本训练模型。历史训练集结合新样本训练模型是原训练集结合在线新样本作为新的训练集来训练模型,进而使模型适用于新的样本,由于训练时间长,实时性差等原因,不符合在线分类的需求。支持向量结合新样本训练模型是历史模型得到的支持向量结合新样本作为新的训练集,然后在此基础上训练得到新的模型,从而实现svm的增量学习,此种方式虽然一定程度上加快了训练的速度,提高了实时性,但是该方法选取历史支持向量作为增量数据的原型时,并不能完全包含新增样本集的分类信息,即为得到历史训练集的最优解可能舍弃部分对新样本分类有效的非支持向量,从而导致对新样本的分类效果的降低;同时,未考虑新增样本与历史样本可能存在重叠,从而存在大量重复训练造成训练时间增加。

因此,本发明根据是否违反kkt条件,即新增样本是否可由历史支持向量分类,来决定该新增样本是否加入具有原训练集几何特性的原壳向量集合,再以此集合作为新的训练集来训练模型,减少模型的训练时间和提高分类准确性,从而实现对网络流量实时在线分类的增量学习。本发明实现流程如图2所示:

(一)快速过滤特征选择(fcbf)

在高维数据中,一般会存在大量不相关特性或冗余特征,这些不相关特征会降低算法性能,而冗余会造成资源的浪费并降低算法的学习效率。fcbf算法是一种快速过滤的特征选择算法,其主要是基于对称不确定性的思想,采用后向顺序搜索策略快速有效地选择一个显著特征并删除它的所有冗余特征,从而确定最优特征子集。算法步骤如下:

1)计算每个特征fi与目标o之间的相关性,计算公式如(6)所示。

2)然后将相关性su(fi,o)大于预先设置好的阈值δ的特征选出并将su(fi,o)降序排列。3)依次遍历降序排列中小于su(fi,o)的所有特征fj并计算su(fi,fj)。

4)如果su(fi,fj)大于等于su(fj,o),则删除特征fj,否则保留特征fj。

5)遍历所有特征fi,最后得到最优特征子集。

其中ig(x,y)=e(x)-e(x|y),ig(x,y)表示信息增益,e(x),e(y)表示信息熵,e(x|y)表示当随机变量y单独发生时,随机变量x发生的条件概率,p(xi)表示特征x取值为i时的概率,z为类别数。

fcbf算法的优势在快速过滤冗余特征(fi,fj),保留与目标o相关性更大的特征fi,删除相关性更小的特征fj,同时利用相关度更高的特征fi去筛选其他特征,进而达到了特征选择效果。

(二)主成分分析(pca)

主成分分析的目标是通过坐标轴的旋转实现削弱相关性或者将主要信息集中在少数维度。算法步骤如下:

1)设有且均值为0,在xi想v轴做投影,得到投影向量为(7)式。

2)若向量v是单位向量,则(2)式可以改写成有式(8),则所有xi在归一化方向v上的投影是vtx1,vtx2,...,vtxn。

3)目标函数是最大化投影方差,从而得到主成分向量,如(9)式所示。

其中,θ为xi与v的夹角,为协方差矩阵。

pca技术可以对数据进行降维,同时也最大程度保存原有数据集本身的信息,原有且各个主成分之间正交,皆宜消除原始数据成分之间的相互影响。

经过fcbf_pca对数据集处理后,将大大减少了特征集的维数,减少svm模型的训练时间和提高分类准确率。

(三)svm模型训练

支持向量机是基于特征集样本在样本空间中找到一个划分超平面将不同类别的样本分开且样本到该划分超平面的距离最大。svm基于结构风险最小化原则可以将原问题转化为凸二次规划问题,进而求得全局最优解,并且核函数的引入,svm将现有维度线性不可分问题转化为高维度线性可分问题,从而实现对数数据的分类。

本发明中使用经过fcbf_pca算法处理后的网络流量特征作为svm模型训练的输入,通过模型的计算,根据拥有不同特征值找到不同的划分超平面,实现对网络流量的分类。

(四)壳向量与支持向量

svm向量的核心是找支持向量,进而形成一个最优分离间隔。对svm分类来说,每一类训练集几何意义上最边缘的样本可以代表本训练集的几何信息,而支持向量一定是每一类训练集的几何意义上最边缘的点,而不是几何内部的点,即支持向量一定是训练集凸顶点集合的子集。因此,每次增量学习时,可将训练集凸顶点集合作为新的训练集,舍弃其余凸壳内部样本,进而大幅减少训练样本数量,加快增量学习效率。

假设x={x1,x2,...,xn}是给定的训练集,hv表示特征空间的凸壳,v是凸壳上的凸顶点,vp是凸壳上可能存在的极点,ψ(x,v)用来判断x是否在v的内部,ψ(x,v)=1表示,x在v的内部,ψ(x,v)=0表示x不在v的内部,如式(10)所示。

其中,βi表示集合v的样本点的个数,βi是加权系数。

可由v中点的凸组合是否可以表达任意一个非线性映射来判断其是否是v的内点。

基于最小超球思想求解壳向量v,首先求出给定点的最小超球,以最小超球的球面点作为初始壳向量,然后迭代求出vp,再从vp中依次删除非极点后得到v。

求解壳向量基本步骤如下:

1)根据已知样本信息,寻找最小超球,o为最小超球的中心,半径为r,使得最小超球包含所有样本点xi,即满足式(11)。

其中,ξi是松弛变量,c为惩罚函数值,控制惩罚程度。

引入lagrange乘子和核函数概念,得其对偶形式(12):

特征空间中任意一点(其中是非线性映射),到球中心o的距离可以通过(13)求出,将特征空间中所有点到o的距离降序排列,其下标记为lxl。

2)令vp初始化为球面上的所有点,v初始为空集,lv为可能为极点集合的下标,lo为极点集合,从lxl中删除可能极点的下标记为l*,则l*=lxl-lv。

3)从l*中遍历得出所有可能的极点集合vp。如果不是vp的内点,即ψ(xi,vp)=0.则将下标i加入lv,即lv=lv∪{i},重复直到遍历l*中所有点。

4)从所有可能极点集合vp的下标lv中删除一些多余的内点下标,所得即为壳向量。取j∈lv,如果ψ(xj,(vp-xj))=0,则xj不是j得内点,将j加入lo,即lo=lo∪{j},重复直至遍历lv中所有点,则lo为最终所求的壳向量的下标集合。从lo从中得到相应集合的壳向量。

(五)增量学习

增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识,其可以渐进的进行知识更新,且能修正和加强以前的知识,使得更新后的知识能适应新到达的数据,而不必重新对全部数据进行学习。增量学习降低了对时间和空间的需求,更能满足实际要求。

本发明基于上述思想设计基于svm的增量学习,当实时网络流量xi到达时,对xi进行fcbf_pca算法处理,得到新的特征集,然后判断该特征集是否满足kkt条件,若该特征集不违反kkt条件,则该特征集所含的特征信息已包括在历史支持向量中,不需要更新历史模型,则保持原模型不变。否则,该特征集可能与原壳向量集合中所含的隐含信息一同构成新的分类,即上次训练的非支持向量由可能转化为支持向量,则取该特征集与历史壳向量集合s的并集,即s=s∪{xi},作为新特征值,进而重新训练得到模型mi,再以模型mi作为最新的预测模型,从而实现svm的增量学习。

(六)实时流量的分类

当实时网络流量xi到达时,对xi进行上述数据预处理后判断其是否满足kkt条件,若xi不违反kkt条件,则xi所含的特征信息已包括在历史支持向量中,则保持原模型;否则,xi可能与原壳向量集合中所含的隐含信息一同构成新的分类,即上次训练的非支持向量有可能转化为支持向量,则取xi与历史壳向量集合s的并集,即sk+1=sk∪{xi},作为新特征集,进而重新训练得到模型mi,再以模型mi作为最新的预测模型,从而实现svm的增量学习。

(七)仿真实验

1)实验环境和数据集

本发明使用pycharm作为仿真实验平台,python为实现语言,调用skearn包下svm、decomposition、feature_selection等方法进行svm训练,调用scipy包下convexhull等方法求壳向量。硬件配置:dell笔记本,8g内存,酷睿i5处理器。

实验采用moore数据集,该数据集由10个数据子集组成,即data_set={entroy01,…,entroy10},合计12种label分类,377526条网络流量样本数据,其中每个样本数据由248维特征和1个label标签构成。为方便统计,将样本中12种label标签分别映射为数字1到12。

2)实验结果及分析

为了验证本文特征选择和提取的实用性,对三种不同特征选取方法并以本文改进后svm模型进行对比:其中方法一是选择全部特征,方法二是以filter特征选取方法选择特征值进行实验,方法三是以本文所述特征选择和提取方法进行实验。特征样本是分别从数据集中随机抽取5000条样本(s1)、10000条样本(s2)、30000条样本数据(s3)。实验结果如表1所示:

表1特征选择和提取对比表

上述实验结果数据和图3对比效果图表明:fcbf_pca特征选择和提取算法较之全部特征和filter特征提取方法优势如下:a.保证svm分类较高的准确率且算法稳定性较好;b.训练时间大幅减少;c.用较低维度特征表现整体样本信息。

为了验证本发明算法效率和实用性设计对比实验,使用fcbc_pca特征选择和提取后的特征集对三种不同算法进行仿真:其中算法一(m1)采用标准svm增量方法,即每次使用全部样本作为训练集来实现增量学习,算法二(m2)采用取原支持向量与新增向量的并集作为训练集合来实现增量学习,算法三(m3)采用本文所述方法来实现增量学习。进行三次增量学习,分别在初始训练集基础上增量23801条样本数据、66865条样本数据和261997条样本数据,即依次增量{entroy02},{entroy03,entroy04,entroy05},{entroy06,…,entroy10}。采用10折交叉验证法进行实验,每轮实验结果取均值。实验结果如下表2所示:

表2svm算法效率对比表

表2显示:在时间上,初次训练模型时,m3因为需要计算壳向量导致训练时间大于m1、m2,随着增量学习样本数的增加,m3方法在训练时间上的明显优于m1、m2。三种svm增量学习准确率对比如图4所示,三种svm增量学习时间消耗对比如图5所示,在第三次增量学习过程中,当增量样本约为初始训练集的1053%时,m3增量学习时间约为初始训练时间的15.7%,m1的增量训练时间约为初始训练时间的1527%,m2的增量训练时间约为初始训练时间的1007%。在算法准确率上,m1方法准确率最高,m2方法准确率最低,m3方法的准确率略低于m1但高于m2,且随着增量学习的继续,m1方法准确率趋于稳定,m2算法的准确率大幅降低,m3方法的准确率不断提高。因此,本发明方法较之于传统svm增量方法,其增量学习的训练时间大幅减少,准确率逐步提高并趋于稳定,符合增量学习特点,满足大数据背景下网络流量的实时在线分类功能的需求。

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