一种余弦时变PSO-SVM的入侵检测方法与流程

文档序号:15281803发布日期:2018-08-28 23:37阅读:186来源:国知局

本发明涉及一种余弦时变pso-svm的入侵检测方法,属于网络信息安全技术领域。



背景技术:

如今,计算机系统几乎存在于人类生活的各个方面。然而,现有的互联网受到网络安全和数据隐私问题的困扰,这也将成为工业物联网的重大挑战和障碍,入侵检测系统(ids)监视网络环境的行为,并确定入侵和合法的活动。特别是,scada系统用于化工厂、输配电系统、配水网络和污水处理设施等关键基建设施,网络环境数据量大增,内容容易受到各种攻击。在上述系统中部署入侵检测系统是一项重要的防御措施。

现有的入侵检测系统,从检测方法上看主要有误用检测、异常检测以及综合检测的方法。误用检测是对异常攻击行为进行分析总结,提取相应行为操作的特征,建立异常行为的数据知识库,通过将新的行为数据特征与已知攻击行为特征进行匹配,检测出新的异常攻击行为操作。该方法的优点是对已知类型攻击行为检测率较高,但对新型未知攻击则检测能力较弱。异常检测是利用系统通信行为数据,建立正常行为通信模式的入侵检测系统,实现异常攻击操作的有效检测。该方法优点是能够对新型未知攻击进行检测,不足之处在于误报率高,需要进一步研究检测特征及算法设计。

基于人工智能(ai)的误用检测系统近几十年来引起了研究人员的广泛关注。以pso-svm为基础的入侵检测模型,虽然已经是入侵检测中的经典模型,且得到了广泛的应用,但时变pso算法在参数寻优时,惯性权重和加速系数只能是以常数或线形时变的速度进行搜索,这种情况可能使得粒子在局部和全局寻优方向上失去平衡,导致pso算法陷入局部最优的境地或搜索能力缓慢。

所以,更需要一种更好地平衡时变加速系数在全局和局部的搜索能力,同时也提高对当前最优目标区域搜索的精细程度和搜索效率,从而提高时变pso-svm入侵检测模型的检测精度,为网络入侵检测提供较为精确地检测结果。



技术实现要素:

本发明的目的是在于改进一种余弦时变pso算法结合svm的误用入侵检测方法。

为了达到上述目的,本发明所述的基于余弦时变pso-svm的入侵检测方法,按照如下步骤实施:

步骤一:数据预处理:将包括正常样本和攻击样本的nsl-kdd数据集和adfa入侵检测数据集中的所有数据进行数值化处理。为了减少不同特征之间的相互影响,使得每一个特征的重要性不受数值的影响,还可以将数值归一化处理,采用min-max标准化法,得到一个n维的向量组。

步骤二:余弦时变pso优化:将步骤一中数值化和归一化处理后1的数据传递给svm异常检测模型作为svm惩罚参数c和高斯径向基参数γ,将svm异常检测模型返回的交叉验证意义下的分类准确率作为pso优化模型中的适应度值,并据此进行粒子群迭代更新,得到最优的svm惩罚参数c和高斯径向基参数γ;

pso算法基础模型如下:

vid(t+1)=wvid(t)+c1r1(pid,best(t)-xid(t))+c2r2(pgd,best(t)-xid(t))(1)

xid(t+1)=xid(t+1)+vid(t+1)(2)

式(1)、(2)中i=1,2,...,n,n表示粒子群数量,pi(t)和vi(t)分别表示第t次迭代时的位置和速度适量,w表示惯性权重,r1和r2表示[0,1]区间内的随机数;关于c1和c2表示加速因子,为了更好地平衡时变加速系数在全局和局部的搜索能力,有效控制粒子全局搜索和快速收敛到全局最优解,提出一种余弦时变加速因子:

式(3)、(4)中,t表示当前迭代次数,t表示总迭代次数,b和a是设定值;

关于惯性权重w,为使粒子的惯性权重根据粒子的早熟收敛程度,进行非线性自适应地调整,加快其寻优能力,所述余弦时变惯性权重w是一种基于适应度值变化的自适应余弦时变惯性权重,其取值方式:

首先定义三个平均适应度变量

式(5)、(6)、(7)、(8)中是第t次迭代粒子的适应度值,表示最小适应度值,表示最大适应度值。

使用上述改进的pso算法优化svm模型参数寻优。选取数据训练集,训练svm入侵检测模型,继而对svm入侵检测模型进行测试分类。计算粒子适应度值根据k折交叉验证意义下的检测精度作为适应度值进行评估各个粒子,搜寻最优粒子。根据粒子适应度值更新粒子的相关参数。根据粒子适应度值及上文中所提方法确定惯性权重w的值、更新加速系数、位置xid(t+1)和速度vid(t+1),判断是否满足要求,若是,则停止运行并输出最优参数;

步骤三:余弦时变pso-svm误用检测:利用最优的svm惩罚参数c和高斯径向基参数γ,建立pso-svm流程模型进行异常检测,并且返回交叉验证意义下的分类正确率。

具体的,svm通过使用核函数将nsl-kdd数据和adfa数据集中的特征向量映射到高维空间中,寻找最优超平面划分训练种类。

subjecttoyi(ωtφ(xi)+b)≥1-ξi,ξi≥0(10)

式(9)、(10)中w表示分类器得到的最优超平面的权值向量,xi是训练样本,b表示偏置向量,ξi表示松弛变量,惩罚参数c用于提高svm的泛化能力,使用原始对偶关系,最优决策函数如下:

式中αi是拉格朗日乘子,yi表示训练样本标签,k(x,xsv)=φ(xi)tφ(xj)是核函数,sv表示支持向量的个数,本发明选用rbf核函数利用决策函数对数据集进行分类,步骤三中xi=(xic,xiγ)表示该粒子位置有惩罚参数c和核函数参数γ两个分量组成,并设置两个参数的取值区间,c取值范围[2-5,25],γ取值范围[2-4,24],通过使用10折交叉验证,从所选数据构建了训练数据集和测试数据集。

6、优点和积极效果

本发明与现有的技术相比具有以下优点:

1.与现有部分时变粒子群优化svm模型相比,根据余弦函数非线性,改进时变粒子群算法在检测过程中的学习能力,更好地平衡时变加速系数在全局和局部的搜索能力,有效地提高时变pso-svm入侵检测模型的检测率。

2.与时变加速系数相对而言,所提余弦时变加速系数表达式更加简洁,并没有多个参数设置。

3.改进惯性权重的取值策略,提高对当前最优目标区域搜索的精细程度和搜索效率,从而加快时变pso-svm入侵检测模型的收敛速度。

附图说明

图1是时变加速系数和余弦时变加速系数关系图。

图2是余弦时变惯性权重函数。

图3是余弦时变pso-svm实现流程。

图4是nsl-kdd数据集适应度值。

图5是adfa-ld数据集适应度值。

具体实施方式

实施例1

步骤一数据预处理中的数值化和归一化处理。

在nsl-kdd数据集中包含tcp连接的基本特征、tcp连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征。其中,异常攻击有dos、r2l、u2r、probing四大类39种攻击类型。normal标注为0、probing标注为1、dos标注为2、u2r标注为3;对于其中的协议类型,1为icmp、2为tcp、3为udp、4为others。对于adfa数据集中分为normal(training和validation)和attack,将normal标注为1,attack标注为2。同时,为了减少不同特征之间的相互影响,使得每一个特征的重要性不受数值的影响,将数值归一化处理,采用min-max标准化法,使其属于[0,1]之间,公式如下:

式中x'是归一化后的值,xmin是特征中的最小值,xmax是特征中的最大值,x为特征的初始值,并定义训练和测试样本数据集。

安装svm入侵检测模型。

将得到的libsvm压缩包解压放在matlab安装目录下的toolbox文件下,运行matlab,将currentfolder中路径设置到libsvm\matlab的文件目录下在matlab命令窗口输入

>>mex–setup

这时matlab会提示你选择编译mex文件的c/c++编译器。

选择一个安装的c/c++编译器,例如microsoftvisualc++2010。

输入命令>>make

看到当前目录生成了二进制文件:libsvmread.mexw32、libsvmwrite.mexw32、svmpredict.mexw32、svmtrain.mexw32。将当前目录添加到matlab路径中即可。

步骤二:余弦时变pso优化。

将初始化的粒子传递给svm异常检测模型作为svm惩罚参数c和高斯径向基参数γ,将svm异常检测模型返回的交叉验证意义下的分类准确率作为pso优化模型中的适应度值,并据此进行粒子群迭代更新,得到最优的svm惩罚参数c和高斯径向基参数γ。

pso算法基础模型如下:

vid(t+1)=wvid(t)+c1r1(pid,best(t)-xid(t))+c2r2(pgd,best(t)-xid(t))(1)

xid(t+1)=xid(t+1)+vid(t+1)(2)

式中i=1,2,...,n,n表示粒子群数量,pi(t)和vi(t)分别表示第t次迭代时的位置和速度适量,c1和c2表示加速因子,w表示惯性权重,r1和r2表示[0,1]区间内的随机数。式(1)中,时变pso在参数寻优过程中,为了能够在搜索早期阶段避免过早的收敛,期望能让所有粒子在整个d维搜索空间中寻优,而不是在局部最优值周围聚集,为了更好地平衡时变加速系数在全局和局部的搜索能力,有效控制粒子全局搜索和快速收敛到全局最优解,提出一种余弦时变加速系数(ctvac),如下式:

式(3)、(4)中t表示当前迭代次数,t表示总迭代次数,b和a是设定值,根据余弦函数的性质,通过计算可以得到b=1.5、a=1。根据ctvac函数在始末位置时的斜率变化,可以有效地增加在始末位置的取值次数,图1所示。

式(1)中,余弦时变惯性权重w如式(13)、式(14)、式(8)所示。为使粒子的惯性权重根据粒子的早熟收敛程度,进行非线性自适应地调整,加快其寻优能力,本实施例采用了一种基于适应度值变化的自适应余弦时变惯性权重的取值方式,图2所示。

具体地,首先定义三个平均适应度变量

式(5)中是第t次迭代粒子的适应度值,式(6)中表示最小适应度值,式(7)中表示最大适应度值。

根据适应度值所在区间不同选择不同的惯性权重取值,取值方式如下:

使用上述改进的pso算法优化svm模型参数寻优,选取数据训练集,训练svm入侵检测模型,继而对svm入侵检测模型进行测试分类,模型算法步骤为:

step1:初始化设置最大迭代次数t,随机生成n个粒子种群pop=(p1,p2,...,pn)及b、a、w1和w2的数值,[cmin,cmax]和[γmin,γmax]等参数。随机产生初始速度vi=(vic,viγ)和位置,式中xi=(xic,xiγ)表示该粒子位置有惩罚参数c和核函数参数γ两个分量组成,并设置两个参数的取值区间。

step2:计算粒子适应度值根据k折交叉验证意义下的检测精度作为适应度值进行评估各个粒子,搜寻最优粒子。

step3:根据粒子适应度值更新粒子的个人最佳位置pi,best(t)和全局最佳位置pgd,best(t)。如果粒子适应度那么更新pi,best(t)=xi(t+1)。否则保留原来位置。如果粒子比全局最佳位置pg,best(t)处好,那么更新pgd,best(t)=xi(t),否则保留原来位置,粒子速度和位置调整公式。

step4:根据粒子适应度值及上文中所提方法确定惯性权重w的取值。更新加速系数c1和c2。更新粒子的位置xid(t+1)和速度vid(t+1)。

step5:判断是否满足最大迭代次数,若是,则停止运行并输出最优参数。

步骤三时变pso-svm误用检测

流程图如图3所示,按照数据出现的先后排列得到特征向量,为了解决非线性问题,svm通过使用核函数将nsl-kdd数据和adfa数据集中的特征向量映射到高维空间中,寻找最优超平面划分训练种类。

subjecttoyi(ωtφ(xi)+b)≥1-ξi,ξi≥0(10)

式中w表示分类器得到的最优超平面的权值向量,xi是训练样本,b表示偏置向量,ξi表示松弛变量,惩罚参数c用于提高svm的泛化能力,使用原始对偶关系,最优决策函数如下:

式(11)中k(x,xsv)=φ(xi)tφ(xj)是核函数,sv表示支持向量的个数,本发明选用rbf核函数利用决策函数对数据集进行分类,步骤三中xi=(xic,xiγ)表示该粒子位置有惩罚参数c和核函数参数γ两个分量组成,并设置两个参数的取值区间,c取值范围[2-5,25],γ取值范围[2-4,24],通过使用10倍交叉验证,从所选数据构建了训练数据集和测试数据集。

基于上述阐述,使用matlab2014b软件对改进后的算法进行验证,通过图4可以看出本发明在nsl-kdd数据集上进行实验的最佳适应度起始值可以达到97.3%左右,同时迭代10次左右时很趋近于最优值,在50次左右时达到最优稳定值。由图5可知本发明在adfa-ld数据集上进行试验的最佳适应度值起始值高达91%左右,经过两三次迭代之后达到稳定值,而平均适应度值方面经过100次左右的迭代达到稳定值,本发明的最佳适应度值可以得到很快的收敛,说明在adfa-ld数据集上本发明所提模型算法有较高的寻优效率。

表1nsl-kdd数据集试验结果对比

表2adfa-ld数据集测试结果对比

通过表1和表2中对比可以看出,将本发明在两种数据集上分别与其他几种方法进行对比,结果显示本发明的检测精度都优于其他几种方法。表中fs表示特征选择,“√”表示进行特征选择,“×”表示未进行特征选择。

虽然本发明已以较佳实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可做各种的改动与修饰,因此本发明的保护范围应该以权利要求书所界定的为准。

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