基于GAN-PSO-ELM的网络入侵检测方法

2020-06-18 05:48杨彦荣宋荣杰周兆永
计算机工程与应用 2020年12期
关键词:准确率样本优化

杨彦荣,宋荣杰,周兆永

1.西北农林科技大学 网络与教育技术中心,陕西 杨凌712100

2.西北农林科技大学 信息工程学院,陕西 杨凌712100

1 引言

近年来各种网络攻击、非法入侵的情况屡见不鲜,并且手段也越来越复杂,网络信息安全正面临着海量数据、复杂入侵模式等完全问题,如何有效、快速地识别各种网络攻击已成为网络信息安全中一个亟待解决的问题[1-2]。网络入侵检测采用主动防范方式进行安全检测,弥补了被动式方法的不足,能够主动检测识别出正常网络流量中包含的异常攻击信息,已成为当前网络安全技术研究的热点[3]。

随着机器学习方法的发展,国内外学者对基于机器学习的入侵检测方法进行了大量研究。文献[4]提出一种布谷鸟算法优化支持向量机的入侵检测方法,此方法在处理小样本数据集时检测准确率较高,但处理海量数据集时性能较差,无法满足检测实时性要求。文献[5]提出一种基于聚类和遗传算法的复合入侵检测方法,该方法采用无监督算法,没有利用样本标签信息,因此检测性能容易达到上限。文献[6]设计了一种KNN离群点检测和随机森林相结合的算法,采用KNN离群点检测重构训练集,然后使用多层次的随机森林进行分类,提高了检测准确率,降低了误报率。文献[7]利用和声搜索算法优化BP神经网络,并将其应用到网络入侵检测中,通过实验验证了该方法在入侵检测领域的优良性,但是处理海量数据时鲁棒性较低,且收敛速度低,训练时间过长。文献[8]提出一种基于多尺度卷积神经网络的入侵检测方法,利用不同尺度卷积核提取数据最优特征,该方法不仅收敛速度快,而且能够提高检测准确率。文献[9]利用深度自编码网络提取原始网络数据,获得新的低维特征数据集,然后利用BP算法进行分类识别,有效提高了检测准确率,但是检测时间过长,检测实时性差。

尽管上述基于机器学习的入侵检测方法取得不错的效果,但是未考虑入侵检测数据的不平衡问题,对于整个网络访问行为而言,正常行为的数量要远远大于入侵行为的数量,入侵行为的数量很小,正常行为与入侵行为之间存在类别分布不均衡,并且入侵攻击类别之间也存在类别分布不均衡。直接将机器学习方法应用于非平衡的入侵检测数据时,容易导致多数类的分类精度较高而少数类的分类精度较低。

为解决机器学习中数据不平衡问题,一种思路是从算法层面入手,根据算法在解决不平衡问题时的缺陷,结合不平衡数据的特点,有针对性地对算法进行改进,提高算法处理不平衡分类问题的能力[10]。另一种是从数据层面入手,通过对少数类的上采样和对多数类的下采样来改变样本分布,降低数据的不平衡程度[11]。由于基于数据层面的方法对分类算法的普适性以及处理方法简单直观,在解决不平衡问题中得到广泛采用,但是在实际应用中过采样只是基于少数样本的信息,缺乏数据多样性,易导致训练过拟合;欠采样会造成大量样本数据的信息丢失,并且解决不平衡度的能力有限[12]。

生成式对抗网络(Generative Adversarial Nets,GAN)作为一种新的生成式模型[13],能够通过学习给定样本数据的概率分布,从而生成类似真实样本的伪造样本。与传统的生成模型不同,GAN不再需要一个假设的真实样本分布,而是直接比较生成样本和真实样本的分布来训练生成网络,可以生成无限逼近真实样本的伪造样本,从而提升生成样本的质量,避免了由于训练样本不足而导致的过拟合问题。因此GAN自提出以来被应用于多个领域的生成数据研究中[14-16],均取得较好的效果,但目前尚未运用到网络入侵检测数据的不平衡问题中。极限学习机(Extreme Learning Machine,ELM)是一种单隐层前馈神经网络[17],只需要设定隐含层的神经元个数,不需要迭代,与传统机器学习算法支持向量机和神经网络相比,具有学习速度快、泛化性能好等优点,近年来,被广泛应用到网络入侵检测研究中。刘金平等人[18]提出一种基于核极限学习机选择性集成的网络入侵检测方法,实验表明该方法确保了高检测率的同时降低了模型训练时间。顾兆军等人[19]将ELM与K最近邻算法相结合,提出基于ELM-KNN算法的入侵检测模型,该模型能防止过拟合现象,并且能提高网络侵检测速度。然而由于ELM随机给定隐含层权重与偏置,容易导致输出结果不稳定,因此需要参数优化。粒子群优化算法(Particle Swarm Optimiztion,PSO)是一种全局迭代优化算法[20],具有运算速度快、容易实现等优点,在参数优化中得到广泛应用,并取得较好的效果。基于PSO算法的ELM已应用于图像分类、故障预测等领域[21],然而将其应用到网络入侵检测中的研究较少。

综上分析,为解决入侵检测数据不平衡而导致少数类检测率低的问题,本文提出一种GAN-PSO-ELM的入侵检测方法。该方法通过整体类扩充的方式,利用GAN对数据集进行少数类样本进行扩充,降低入侵检测数据的不平衡程度;然后在新的数据集上训练ELM,同时利用PSO优化ELM的隐含层权重与偏置,并建立入侵检测模型。实验结果表明,本文方法在保证较高整体检测准确率和检测效率的同时,能够提高少数类检测准确率。

2 相关工作

2.1 生成式对抗网络

生成对抗网络GAN是Goodfellow等在2014年提出的一种新型生成模型,其在结构上受博弈论中的二人零和博弈的启发,一方的收益是另一方的损失,博弈双方的收益和损失总和永远为零。GAN由生成模型(Generative model,G)和判别模型(Discriminative model,D)组成,并通过G和D交替学习模拟现实生成样本。生成模型G可以看作是一个能捕捉给定样本的潜在分布,同时模仿并伪造样本的生成器,它通过输入一个随机向量z,生成与真实样本具有一致的潜在分布的新样本。判别模型D可以看作是一个二分类器,判别输入数据是否为真实样本。

GAN的基本结构如图1所示。GAN的训练和优化过程可看成一个动态的“二元极小极大”博弈过程,G和D在对抗训练过程中不断迭代优化,两个模型的能力越来越强,当生成模型生成的样本达到以假乱真的地步,同时判别模型能够区分真实样本和生成样本时,最终达到稳态,此时G能够生成接近真实样本分布的伪造样本。其核心思想可用数学公式表示如下:

式中,V(D,G)为代价函数;Pdata表示真实样本分布;Pz表示生成样本分布;G(z)表示生成模型G依据输入z生成的样本,其中z为随机向量;D(x)表示x为真实样本的概率;D(x)和G(z)交替地最小化和最大化V(D,G),也就是使D(x)无限接近于1,D(G(z))无限接近于0,最终求得近似最优解的生成式模型min G。

图1 生成对抗网络框架图

2.2 极限学习机

极限学习机ELM是一种前馈神经网络,网络结构通常分为3层,分别为输入层、隐含层和输出层。在训练之前随机给定隐含层权重以及偏置,并且在训练过程中保持不变,只需确定激活函数及隐含层神经元数量,即可计算出输出层权值,从而通过一次训练便可得到唯一的最优值。对于输入的N个任意的样本(xi,ti),其中:

那么具有L个隐含层神经元的ELM可以表示为:

式(3)中,αi表示第i个神经元输入层和隐含层之间的输入权重;βi表示输出权重,αi和βi在训练之前随机给定;g为激活函数;bi为第i个隐含层神经元的偏置。

式(3)可用矩阵形式表示为:

其中:

式(4)中H为隐含层节点的输出矩阵;β为输出权重矩阵;T为期望输出矩阵。

极限学习机ELM算法是一种求解SLFN的学习算法,文献[17]已证明,对于任意给定N个训练样本,当激活函数g无限可微时,只要N大于隐含层神经元个数L,SLFN就能在随机给定隐含层权重以及偏置情况下都可零误差逼近训练样本。

ELM的训练过程可等效为求解方程Hβ=T的最小二乘解:

式(8)中,H+为H的广义逆,可用正交法计算求得,所求解最小且唯一。

2.3 粒子群算法

粒子群优化算法PSO是受鸟群和鱼群捕食行为启发而产出的一种全局迭代优化算法。PSO算法具有结构简单、收敛速度快、鲁棒性强等优点,在参数优化领域中得到普遍应用,并取得良好的效果。

粒子群优化算法实现过程如下:在一个由m个粒子组成的群里,每个i粒子可以被看作是在N维搜索空间中的一个搜索个体,并都有对应的位置xi=(xi1,xi2,…,xid)和速度vi=(vi1,vi2,…,vid)。适应度函数确定空间中每一个粒子适应度值,粒子运动的方向和距离由粒子的运动速度决定。在优化迭代中,每个粒子通过自身找到个体最优和整体最优不断更新自身的速度和位置,并将最优位置记录下来,最终通过不断迭代学习最优解。粒子的速度和位置按公式(9)和(10)更新。

式中,ω表示惯性权重;r1和r2为随机数,取值范围[0,1];pBesti表示粒子i搜索过的最优位置;gBesti表示整个粒子群搜索到的最优位置;c1和c2分别表示粒子个体和粒子群体的加速系数,为非负常数,在标准PSO算法[22]中通常将c1和c2统一设置为2。

3 基于GAN_PSO_ELM的入侵检测

GAN是一种优秀的生成模型,通过对抗的方式学习真实样本分布的生成式模型,不需要预先建模,能生成高质量的新样本。由于入侵检测数据人工标注工作巨大,并且网络访问数据中入侵行为数据的数量极少,数据类别分布不均衡,因此将GAN应用到入侵检测训练样本生成任务中,使用GAN增加训练样本数量,降低不平衡训练样本对检测准确率的影响。

ELM是一个单隐含层的前馈神经网络,具有训练速度快,泛化性好,分类精度高等优点。然而由于在训练之前随机给定隐含层权重以及偏置,参数随机给定会导致部分参数未达到最优状态,进而容易导致输出结果不稳定。而PSO是一种全局优化算法,可以对ELM随机给定的参数随机进行优化,寻找ELM权值和偏差量的最优值。

针对这三座山,一是要激活民营企业内在潜力,融化市场的“冰山”。要提升产品核心竞争力,打造区域性品牌,并借助电子商务平台,拓展优势产品的销售半径;鼓励企业“走出去”,参与发展中国家的资源开发,依托本地优势产业基础,与有关国家合作建立境外生产加工基地。二是要健全融资信用保障体系,削低融资的“高山”。要通过健全民营企业融资信用保障体系,解决银行不敢或不愿贷款给中小民营企业的问题。三是要以优化创新创业条件来跨越转型的“火山”。

考虑到入侵检测数据的海量、不平衡等特性,鉴于生成对抗网络(GAN)、单隐层前馈神经网络ELM、粒子群优化算法(PSO)的各种优良性能,将其结合起来,充分利用它们各自的优点,克服其缺点,构建基于CANPSO-ELM入侵数据检测分类方法。整体框架如图2所示。

图2 基于GAN-ELM-PSO的入侵检测框架

其检测流程为:

(1)利用网络监听捕获模块采集网络访问数据,对采集到的历史访问数据进行特征映射、数字化、归一化等预处理,再对预处理后的数据进行人工标注,形成训练数据集。

(2)训练数据集是从网络中捕捉到的行为数据,其中包括正常行为数据和入侵行为数据,然而一般情况下入侵行为数据的数量远远小于正常行为数据的,并且入侵行为数据也存在类别不平衡。因而通过生成式对抗网络(GAN)对训练数据集中少数类进行样本数据扩充,使训练数据平衡。

(3)在扩充后的训练数据集上训练ELM网络,同时利用PSO优化ELM的输入权重与隐含层偏置,优化流程如图3所示,最后可得到最优PSO-ELM入侵检测模型。

图3 PSO算法优化ELM参数流程

(4)在线检测时,对采集到的实时网络数据进行数据预处理,并形成测试数据,然后利用PSO-ELM模型对测试数据集进行入侵检测分类,从而实时实现的网络入侵检测。

4 实验与分析

实验环境:使用的软件为Pycharm,Python 3.6,Tensorflow 1.1.0版本;操作系统为64位Ubuntu16.04,CPU为Intel core i5-3230 2.60 GHz,内存为16 GB DDR。

4.1 实验数据集及数据预处理

KDD CUP99数据集被广泛地应用于入侵检测仿真实验中,NSL-KDD是其改进版,剔除了KDD CUP99中大量的冗余数据,并调整了训练集和测试集,可以更好地适用于网络检测实验。NSL-KDD数据集包含用于的125 973个训练数据和11 850个测试数据,其攻击行为数据包括拒绝服务攻击(Dos)、端口扫描与探测(Probe)、对本地超级用户的非法访问(U2R)和远程机器的非法访问(R2L)四种类型,正常的访问数据为Normal。具体实验数据的类型分布情况如表1所示。

表1 实验数据的类型分布情况表

NSL-KDD每一条记录包括一个类别标识和41维特征,其中特征区间1~9为TCP连接基本特征,10~23为TCP连接的内容特征,24~31为时间的网络流量统计特征,32~41为主机的网络流量统计特征,类别标识用于表明该条记录是攻击行为还是正常访问。每一条记录的特征值有字符型、数值型,需要标准化预处理,预处理过程如下。

(1)字符型特征数值化。

对字符型属性进行特征映射,将其转换成二进制特征。例如协议类型TCP、UDP、ICMP,使用二进制数字将这三种协议类型分别表示为[1,0,0]、[0,1,0]、[0,0,1]。通过特征映射,最终41维的特征转换为122维特征。

(2)归一化处理。

为了避免各个特征属性的量纲对检测结果造成影响,需要对特征映射后的数据做均值化处理,将数据归一化到[0,1]范围,转化公式如下:

4.2 训练数据扩充

生成对抗网络GAN广泛地应用于数据生成任务中,利用GAN生成数据的方式大致分为两种方法:一种方法是类别内扩充[23],在需要生成数据的类别中进行GAN训练,并生成相应类别的数据;另外一种方法是整体类扩充[24],在整体类别中进行GAN训练并生成数据,再对生成的数据进行类别识别。在本文实验中采用后一种方式进行数据生成,具体步骤为:

(1)使用训练数据对ELM进行训练,并使用PSO优化,生成一个PSO-ELM分类器。

(2)依据GAN模型输入格式要求将122维的训练数据维度重组为12×12矩阵向量,因训练数据维度数不够,需要在矩阵的末位进行补0。

(3)根据设定的迭代次数训练GAN,同时生成样本,将生成样本输入到训练好的PSO-ELM进行类别检测,依据检测的类别选取扩充样本,在本实验中,主要针对样本数量较少的U2R和R2L两类进行样本扩充。

(4)将扩充的样本维度重组为144维特征向量,选取前面122维作为扩充样本的特征,并将扩充样本加入到原始训练数据集中形成新的训练数据集。

4.3 评价指标

本文采用准确率AC和误报率FA作为入侵检测的评价指标,AC和FA的计算方法为:

4.4 实验参数设置

本文采用标准PSO算法,在参考已有研究的基础上[25-26],选择迭代次数为80,粒子群数量为60;同时为了确定ELM网络隐含层节点数,ELM选择不同的激活函数,并逐渐增加隐含层节点数进行实验,实验结果如图4所示。当隐含层节点数大于40时,入侵检测准确率趋于稳定,并且当激活函数为Sigmoid时,能获得相对最优的入侵检测准确率,故本文实验中隐含层节点数设为40,选择Sigmoid为激活函数。

图4 不同隐含层节点数和激活函数的检测准确率

实验过程中,本文分别选用迭代次数为100、300、500、700和900进行GAN训练样本扩充实验,实验结果如图5所示,在迭代次数500以后的检测准确率趋于稳定,随着迭代次数的增加检测准确率无明显提高。综合考虑时间效率和实验结果,在后续的实验中GAN迭代次数选择500次。

图5 不同迭代次数的检测准确率

4.5 结果分析

为分析训练集扩充大小对检测准确率的影响,利用GAN分别对训练数据集中U2R和R2L两个少数类别进行样本扩充,扩充比例分别选择原样本数的20%、40%、60%、80%、100%、120%以及0%进行7组对比实验。表2为不同扩充比例的测试检测准确率。

从表2可知,随着扩充比例的提高GAN-PSO-ELM的准确率先提升再降低,扩充比例为80%时分类结果最佳,准确率达到96.56%,相比0%也就是原训练集总体准确率提高3%以上,因此后续实验训练集扩充比例选择80%。

为验证GAN-PSO-ELM对入侵检测识别的效果,选用相同的训练集和测试集,分别采用SVM、ELM、PSO-ELM进行对比实验,得到不同方法的检测误报率和检测准确率(表3)。

表2 不同扩充比例的AC和FA

表3 不同方法的检测误报率和检测准确率 %

由表3的结果可知,与SVM、ELM、PSO-ELM相比,GAN-PSO-ELM整体准确率比平均提高了3.74%,误报率平均降低了2.81%;尤其是在少数类R2L和U2R上,GAN-PSO-ELM准确率分别为82.28%和80.53%,相比其他三种检测方法的准确率平均提升了28.13%和16.84%,同时检测误报率平均分别降低了4.33和6.64%。ELM和PSO-ELM能很好地识别Normal、Dos和Probe,但是对小类别攻击R2L和U2R的检测率均比较低,GAN-PSO-ELM具有较高的整体类别检测率,同时能很好地检测出R2L和U2R。

网络异常行为的实时性检测是入侵检测方法的一个重要的效率指标,为了验证GAN-PSO-ELM在入侵检测中的检测效率,在不同规模的测试集上对GAN-PSOELM、SVM和ELM进行实验,测试所需时间如图6所示。

图6 不同规模测试集上的检测时间比较

由图6可知,在不同规模的测试集上,GAN-PSOELM的检测效率都要高于SVM,并且随着测试集数据的增大检测花费的时间差也变大;与ELM相比,GANPSO-ELM运行时间要稍微高一点,但是总体相差时间有限。

综上分析,从少数类攻击检出率、整体检测准确率以及检测时间方面考虑,在处理非平衡的海量入侵检测数据时,GAN-PSO-ELM具有较高的整体检测准确率的同时,也能很好地检测出少数类攻击R2L和U2R,并且整体检测的效率也有一定优势。

5 结论

本文提出融合生成式对抗神经网络、粒子群算法和极限学习机的入侵检测方法(GAN-PSO-ELM)。针对入侵检测中少数类检测率低以及入侵检测的实时性要求,采用生成式对抗神经网络对少数类样本数据进行扩充,降低数据的不平衡程度;在扩充后的数据上进行ELM训练,同时利用PSO对ELM的参数进行优化,并建立PSO-ELM入侵分类模型。将SVM、ELM、PSO-ELM和GAN-PSO-ELM方法在NSL-KDD数据集上进行仿真对比实验,结果表明GAN-PSO-ELM能有效提高少数类样本检测准确率,同时具有较高的整体检测准确率和检测效率。下一步工作的重点在不同数据集上验证GAN-PSO-ELM方法的有效性,并进一步探索改进方法使其应用于实时网络检测中。

猜你喜欢
准确率样本优化
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
一道优化题的几何解法
2015—2017 年宁夏各天气预报参考产品质量检验分析
用样本估计总体复习点拨
推动医改的“直销样本”
高速公路车牌识别标识站准确率验证法