

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于神经网络的网络入侵检测本章从人工神经网络的角度出发,对基于神经网络的网络入侵检测系统展开研究。在尝试用不同的网络结构训练和测试神经网络后,引入dropout层并给出了一种效果较好的网络结构。基于该网络结构,对目前的神经网络训练算法进行了改进和优化,从而有效避免了训练时出现的过拟合问题,提升了训练效率。4.1BP神经网络相关理论本章从学习算法与网络结构相结合的角度出发,神经网络包括单层前向网络多层前向网络、反馈神经网络、随机神经网络、竞争神经网络等多种类型。构造人工神经网络模型时主要考虑神经元的特征、网络的拓补结构以及学习规则等。本文选择反向传播神经网络(BackPropagationNeu
2、ralNetwork,BPNN)作为基本网络模型。BP神经网络是一种通过误差逆传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络模型形式之一。网络中每一层的节点都只接收上一层的输出,而每一层节点的输出都只影响下一层的输入,同层节点之间没有交互,相邻两层节点之间均为全连接模式。BP神经网络在结构上分为输入层、隐含层与输出层三部分,其拓扑结构如图4-1所示。镐入层隐含层幡出层图4-1BP神经网络拓扑结构Figure4-1TopologicalStructureofBPNeuralNetwork这里隐含层既可以是一层也可以是多层,数据在输入后由隐含层传递到输出层,通过各层的处理最终得到输出结
3、果。传统的BP网络算法可分为两个过程:神经网络中信号的前向传播和误差函数的反向传播。算法在执行时会不断调整网络中的权值和偏置,计算输出结果与期望结果之间的误差,当误差达到预先设定的值后,算法就会结束。(1)前向传播隐含层第J个节点的输出通过式(4-1)来计算:(4-1)式中sij代表输入层到隐含层的权重,aj代表输入层到隐含层的偏置,n为输入层的节点个数,f(.)为激活函数。输出层第k个节点的输出通过式(4-2)来计算:(4-2)式中sjk代表隐含层到输出层的权重,bk代表隐含层到输出层的偏置,1为隐含层的结点个数。根据实际输出与期望输出来计算误差,见式(4-3)。丘=*5?氏_ST=字用Jt
4、-L(4-3)式中(Yk-Ok)用ek来表示,Yk代表期望输出,m为输出层的结点个数。当E不满足要求时,就会进入反向传播阶段。(2)反向传播反向传播是从输出到输入的传播过程。从式(4-1)至式(4-3)中,可以发现网络误差E是与各层权值和偏置有关的函数,所以如果想减小误差,需要对权值和偏置进行调整。一般采取梯度下降法反向计算每层的权值增量,令权值的变化量同误差的负梯度方向成正相关,调整的原则是令误差沿负梯度方向不断减少。权值的更新公式见式(4-4),偏置的更新公式见式(4-5)。式中n为学习速率。BP算法的整体流程如图4-2所示。幵始Nt=t+1,工满至要启计算每一层各节点晡输入输出*圧向调节
5、T榛在权值和闽值4榆入今训傍样右t=G计聲诒并本卜,的误羞初始化网络藝数4_Y结亲图4-2BP算法流程图Figure4-2FlowChartofBackPropagationAlgorithm4.2网络结构的设计4.2.1设计思路设计网络结构时确定隐含层的层数以及隐含层的节点数是非常重要的。增加隐含层的层数有利于提高精度同时降低网络误差,但是BP神经网络的隐含层层数越多,所需的训练时间也就越长。对于单隐层神经网络而言,隐含层的神经元数量过少会导致网络的学习能力不足。相反,神经元数量越多,网络的学习能力就越强,越容易达到预期的精度,但是相对地会削弱网络的泛化能力,使网络容易达到过拟合状态。为了保
6、证网络拥有足够强的性能及泛化能力,尽量避免在训练时出现过拟合现象,本文在设计网络结构时主要遵循以下原则:(1)在保证神经网络检测精度的前提下,尽量减少神经元的数量;(2)通过仿真实验试探查找隐含层节点数的最优值。本文中网络结构选择的是多层前馈神经网络,它的结构虽然简单,但是能够实现任意精度逼近任意连续函数,并且可以获得复杂的处理能力,因此分类能力和模式识别能力一般都会强于反馈网络。激活函数选择的是线性整流函数(RectifiedLinearUnit,ReLU),也叫作修正线性单元,函数曲线如图4-3所示其公式见式(4-6)。图4-3ReLU函数曲线Figure4-3FunctionCurveo
7、fReLU/(.-d一(4-6)ReLU激活函数定义了神经元在线性变换wTx+b以后的非线性输出。换句话说,来自上一层网络的输入向量x在进入神经元后,将输出max(O,wtx+b)至下一层神经元。采用ReLU激活函数可以使梯度下降和反向传播的过程更加高效,同时避免了梯度爆炸与梯度消失的问题。此外,该函数没有其他复杂激活函数如Sigmoid函数中指数的影响,并且活跃度较为分散,使得神经网络整体的计算成本减少,从而简化计算过程。目标函数选择的是Softmax函数。Softmax函数是式(4-7)取负对数后得到的损失函数,其公式见式(4-8)。4.2.2网络结构及对应实验分析本文利用生长法来设计神经
8、网络的网络结构,即设计网络结构时,首先确定一种较为简单的网络结构,然后通过增加隐含层数和隐含层节点数来形成其他的网络结构。根据4.2.1中的设计思路,设计并训练了五种不同的神经网络模型,对应的网络结构如图4-4所示。在图4-4的网络结构中,输入层均由41个神经元构成,输出层由5个神经元构成。X为输入向量,数据输入后通过隐含层最终输出分别属于五个类别的概率,然后将概率最大的类别作为最终的判断结果。其中网络结构a,b,c包含一个隐含层,分别由50,100,500个神经元构成;网络结构d,e由两个隐含层构成,前者每个隐含层包含50个神经元,后者每个隐含层包含100个神经元。a)网络结构aa)Netw
9、orkStructureab)网络结构bb)NetworkStructureb223344995SO帝”血C)网络结构Cd)网络结构dC)NetworkStruCtureCd)NetworkStruCturede)网络结构ee)NetworkStruCturee图4-4神经网络的网络结构Figure4-4StruCtureofNeuralNetwork本章训练和测试神经网络时使用了Google推出的Tensorflow深度学习框架,Tensorflow是一个采用数据流图(dataflowgraphs),用于数值计算的开源软件库。它的灵活性和可延展性让用户可以在各种平台上展开计算,例如台式计算机
10、中的单个或多个CPU(GPU)、服务器、移动设备等等,因此主要用于机器学习和深度神经网络方面的研究。本章实验部分的机器配置,显卡采用的是GeForceGT750M,显存大小为2G,网络训练和测试时使用GPU模式。用完整训练集分别训练图4-4中的五种网络结构,训练时的参数batchsize(每次从训练集中取的数据量)和epochs(使用完整训练集训练的轮数)将影响模型的精度和训练时间。在合理范围内增大batchsize对训练有一定好处,可以提高训练的速度,并且batchsize越大其确定的下降方向越准确,引起的训练震荡越小。但受显存的限制,不能无限地增大batchsize,因此在本实验中batc
11、hsize设为50。Epochs代表使用完整训练集训练的轮数,由于训练集共包含494021条数据,在batchsize=50的情况下,训练一次完整的数据集就需要9881轮迭代,而完成全部训练过程的总迭代数=9881Xepochs。考虑到完整训练集的数据量过于庞大,因此用完整训练集训练时epochs设为50。模型参数采用高斯分布初始化(Gaussian)方法进行初始化,训练时使用随机梯度下降法,基础学习率设置为base_lr=0.01调整策略使用step策略,stepsize=5000,学习率按照式(4-9)进行更新,其中gamma=0.1,iter是当前的训练迭代次数。在以上参数条件下,本文所
12、设计的几种网络结构均可以达到收敛。a=basejr凭#测尬口曲期虽(4-9)训练完成后用测试集分别对这五个模型进行测试,得到的结果见表4-1和4-2表4-1不同网络结构每种类别的检测率Table4-1DetectionRateofDifferentNetworkStructuresforEachCategoryDR(%)NormalDosProbeU2RR2L网络结构込98.6797*259L67IO.OS18.85网络结构b98.5397J888.4010-1018.80网络结构匚98.6897.2489.9610.0718.81网络结构U97.5096.8886.599.9718.56网络
13、结构e97X596,8286.509.9718.56表4-2不同网络结构的整体效果Table4-2OverallEffectUsingTwoTrainingSetstoTraintheStructurea两轴)FAR(旳TrainingTime(5)TestingTime(s)电络结掏耳92.01140483.99153B.46网络姑构h0.9016819L711599.53网络结构C91.960.S715J272.3617M.11网络结徇d91.560.7225139,761983,05网络结构91.5:0.7256128,112159,76从表4-1中可以看出使用网络结构a训练的模型在四种
14、攻击类别上的检测率都比较高。虽然网络结构c在Normal类别上的检测率高于网络结构a,但是对入侵检测系统来说,检测出攻击流量是最为重要的,并且从表4-2中可以看到网络结构a对整体攻击流量的检测率最高,同时训练和检测时间要少于其他四种结构,这是由于网络结构a的复杂度最低,因此使用它进行训练和测试所需要的时间也就比较少。综上所述,本章选取网络结构a作为神经网络的一个基础候选网络结构,后续的研究也主要是在网络结构a的基础上进行一系列的改进。4.2.3Dropout层的引入训练BP神经网络时经常会遇到的一个问题是容易达到过拟合状态,过拟合是指模型在训练集上损失函数较小,但是在测试集上损失函数较大,预测
15、准确率较低的现象。而dropout的出现可以很好地解决这些问题。dropout是指在神经网络的训练过程中,对于网络中的神经元,按照一定的概率暂时将其从网络中丢弃,即在每个batch中,让一部分隐层节点值为0。由于是随机丢弃,所以每一个batch都在训练不同的网络,这种方式可以减少神经元之间的相互作用。Hinton在论文中证实了dropout对于全连接网络有防止过拟合的效果。图4-5为dropout的可视化表示,其中图a)为应用dropout前的神经网络,图b)是应用dropout后的同一个网络,虚线代表临时删除的神经元。a)应用out前的神经网络b)应用dropout后的神经网络a)Neura
16、lNetworkBeforeApplyingDropoutb)NeuralNetworkafterApplyingDropout图4-5应用dropout前后的神经网络Figure4-5NeuralNetworkBeforeandafterApplyingDropoutDropout会以概率p舍弃部分神经元,其他神经元以概率1-p被保留,输入层和输出层神经元不作变动,舍去的神经元的输出都被设置为零。然后,将输入数据通过修改后的网络进行前向传播,将误差通过修改后的网络进行反向传播对一个批次的样本完成上述操作以后,更新相应的权重和偏置,这样重复迭代处理,直至训练结束。Dropout能够减轻过拟合现
17、象的发生,主要是因为它达到了一种投票的作用。对于全连接神经网络,用相同的数据去训练多个不同的神经网络可能会得到多个不同的结果,这时采用投票机制可以相对提升网络的精度与鲁棒性。同理,对于单个神经网络。如果将其进行分批,虽然不同的网络可能会产生不同程度的过拟合,但是他们共用一个损失函数,相当于同时对其进行了优化,取了平均,因此可以较为有效地防止过拟合的发生。此外,当隐藏层神经元被随机删除后使得全连接网络具有了一定的稀疏性,从而有效地减轻了不同特征之间的协同效应也就是说,有些特征可能会依赖于特定关系的隐含节点的共同作用,而dropout有效地阻止了那些在其他特征存在下才有效果的情况,提高了神经网络的
18、鲁棒性将dropout添加到4.2.2中的网络结构a后训练使用的epochs量增加为100这是因为dropout会使每次训练时随机失效一些节点,因此需要更多的训练轮数来使网络达到收敛。表4-3和表4-4展示了添加dropout后网络结构a的效果,可以发现网络的检测效果有一定的提升。虽然训练时间有所增长,但是训练时间增长的倍数并没有达到与epchos增长相同的倍数,这是由于每次训练时一些节点失效,使得实际的网络结构要比原始的网络结构a更简单。表4-3添加dropout前后网络结构a对每种类别的检测率Table4-3DetectionRateofNetworkStructureaforEachCa
19、tegoryBeforeandafterAddingDR(临)NormalDosPrpbEU2RR2L添110dropoutnJ9S.6797.1591,6710.081S,85添ilfUropoirt后9蛰669工27giJOID.lll&$0表4-4添加dropout前后网络结构a的整体效果Table4-4OverallEffectofNetworkStructureaBeforeandafterAddingDropoutDR(%)PAR(览)TrainingTimc(s)TestingTimcfs):dropout92.01O.gg140483.9?153846添皿dropM后9280.
20、90220823*5*159&卩4.3数据集聚类与分层检测框架在神经网络入侵检测上的应用本文提出了一些针对数据集和检测框架的改进方法,本节尝试将部分方法应用在神经网络的入侵检测上,并通过实验验证算法在神经网络入侵检测上的效果训练使用4.2.3中添加了dropout的网络结构,训练时batch_size设为50,epochs设为100,网络初始化和学习率的设定同4.2.2节。表4-5用两种训练集训练网络结构a所得每种类别的检测率4-5DetectionRateforEachCategoryUsingTwoSetstoTraintheStructureaDR(沟NormalDosProbeU2RR
21、2L完整训练集98.6697*2791.7010.1118.90子训练集9855973091.72103521,23表4-6用两种训练集训练网络结构a的整体效果Table4-6OverallEffectUsingTwoTrainingSetstoTraintheStructureaDR(怖)FAR羯TrainingTimefaTestingTimc(5)完整训练集22M23541现12子训粽集1.15153.671605.29表4-5和表4-6展示了使用聚类后的训练集的实验效果,可以发现用子训练集训练神经网络模型后每一种攻击的检测率均高于用完整训练集训练神经网络模型后的检测率,并且用子训练集进
22、行训练所需的时间远远低于用完整训练集训练的时间。因此在后续实验中均采用子训练集来训练神经网络模型。实验所用网络结构如图4-6所示,由于采用小类别后最终分类目标类别实际有15种,故输出层由之前的5个节点改为15个节点,训练集得到的结果见表4-7和表4-8,从表中可以看出这种小类结构的训练集应用于神经网络后也对检测效果有了明显提升,说明这种训练集的重构方法与分类器无关。图4-6使用15个小类别的神经网络结构图Figure4-6StructureofNeuralNetworkUsing15SmallClasses表4-7用小类别训练集训练网络结构a所得每种类别的检测率Table4-7Detectio
23、nRateforEachCategoryUsingSmallClassTrainingSetstoTraintheStructureaDR(怖)NormalDosProbeU2RR2L王训练集98.5597.3091.7210.3521.2315小类训练集98.529732923:5J6.212S.98表4-8用小类别训练集训练网络结构a的整体效果Table4-8OverallEffectUsingSmallClassTrainingSetstoTraintheStructureaDRWFAR(%)TrainingFjine(s)TestingTime(s)子训练集92-211,15153.6
24、71605,29】5小类训练集92.肚1.29391.571885J9现对应到分层检测框架中需要使用的是15个二分类器,故模型结构如图4-7所示,输出层节点数为2。表4-9和表4-10展示了利用神经网络分层检测框架进行检测的结果,可以发现Normal.U2R和R2L类别的检测率有一定的损失,但是剩余二类的检测率有所提升。检测率损失的部分原因是Normal,U2R和R2L类别在分层检测框架中位于框架的末端,故这三类数据中有一些被前几种类别的分类器识别成对应类别而未能传递到应该被正确识别的层次上。但好在这种损失比较轻微,尤其是R2L类别只减少了0.01%的检测率,并且Probe和Dos类别以及整体
25、的检测率还有所提升。图4-7分层检测框架中用于二分类的神经网络结构图Figure4-7StructureofNeuralNetworkasBinaryClassifierinHierarchicalDetectionFramework.表4-9用神经网络分层检测框架检测所得每种类别的检测率Table4-9DetectionRateforEachCategoryUsingNeuralNetworkHierarchicalDetectionFrameworkDRNormalDosProbeU2RR2L15小类训练集98.11A7.3S1534-10用神经网络分层检测框架检测的整体效果Table4-
26、10OverallEffectUsingNeuralNetworkHierarchicalDetectionFrameworkDR(%)FAR%)TrainingTiine$)TestingTimers)15小类训练集92.811.593510,291401.55本节的三个实验可以证明本文提出的对数据集的精简聚类、训练集数据重新构造方法和分层检测框架都是分类器无关的通用方法,神经网络可以获得检测效果的提升。4.4BP算法优化4.4.1传统BP神经网络的局限性尽管传统BP神经网络在非线性映射能力、自学习和自适应、泛化能力和容错能力等方面相较传统机器学习方法有一定优势,但是它也在近些年的应用中暴露
27、了一些不足之处:(1) 易陷入局部最优:从数学的角度上看,BP神经网络本质上是一种基于局部搜索的方法,要解决的问题一般是复杂的非线性问题,其网络权值的调整是沿局部梯度的方向进行的,有陷入到局部最优的风险。同时,BP神经网络对网络权值的初始值比较敏感,使用不同的初始网络权值往往会得到完全不同的结果。(2) BP神经网络训练时的收敛速度较慢:反向传播算法本质是梯度下降,通常给定的目标函数都比较复杂,因此训练时往往都会出现震荡,这使得BP算法的训练效率变低。与此同时,在训练中如果神经元的输出比较靠近0或者1,就会出现一些梯度很小的区域,这些平坦区内的权值变化往往很小,这使得梯度下降法的训练非常缓慢;
28、训练BP神经网络模型时,对于权值改变的步长一般也会提前设置一些静态的更新规则,这些规则不能及时获得每次迭代的权值变化情况,也会引发一些效率问题。(3) BP神经网络预测能力和训练能力的矛盾问题:一般情况下神经网络的预测能力会随着训练能力的提升而提高,但是当训练达到一定程度后,预测能力反而会有所下降,即出现了过拟合现象。这是由于网络学习了过多的样本细节,导致模型己经不能反映总体样本的规律,所以如何把握学习的程度来解决网络的预测能力和训练能力之间的矛盾也是BP神经网络的重要研究内容。4.4.2BP算法的改进针对4.4.1中提出的几个传统BP神经网络的问题,在先前的研究中已经通过在网络结构中引入dr
29、opout层后在一定程度上解决了BP神经网络预测能力和训练能力的矛盾问题,并且通过使用第三章中重新构造的训练集来优化了网络的训练速度。本节将从BP算法的权值初始化、增加动量项和自适应调节学习速率的角度对BP算法进行改进。(1)权值初始化常用的神经网络权值初始化是采用高斯分布来生成随机初始值,这种做法的本质是将所有权值初始化为接近0的小随机数,从而避免将权值全部初始化为0导致的训练后同层的神经元得到相同的参数的问题。He等人提出了一种针对ReLU神经元的特殊初始化,文章给出了采用ReLU神经元的网络在通过高斯分布对权值进行初始化时的方差设置方法。基于方差的计算并带入ReLU神经元函数公式,最后推
30、导出的方差表达式如式(4-10)所示,其中nl指第1层的维数,Varwl指第1层的参数的方差,即wl的初始化公式为N(0,2/nl),本文将此公式作为神经网络参数的初始化公式。(4-10)、畑晒=1(2)增加动量项BP神经网络在训练过程中调整权值时,只按照当前迭代的梯度下降方向进行调整,而未考虑之前迭代的梯度方向,这有可能会导致训练出现震荡而减慢收敛速度。为了解决这一问题,考虑在权值调整公式中添加动量项,动量项实际上是从前一次权值调整中取出一部分叠加到本次权值调整中,添加动量项以后的权值调整表达式如式(4-11)所示。式中的mcAwij(k)即为动量项,mcAwij(k)=mc(wij(k)-
31、Wij(k)-l),其中me代表动量因子,0Wmcv1,本实验中me取0.9可以看出动量项反映了上一次迭代所积累的调整经验。旳点+D=十+mcAwifCk)(4-11)动量项的作用如下:在训练过程中,当顺序加入训练数据时,在第t次迭代时,如果本次迭代的dE(t)/dwij(式中E为单个样本的训练误差)和上一次迭代同符号,动量项起到加快调节权值wij的作用;而如果本次迭代的dE(t)/dwij和上一次迭代正负相反,说明有一定的震荡存在,此时动量项使得权值Wij的变化变小,起到了稳定的作用。(3)自适应调节学习率学习率n也称为步长,在标准bp算法中设置为一个常数,然而在实际应用中一般不会将其固定,
32、比如在本节之前的网络训练中,使用式(4-9)来改变学习率,本质上就是随着训练迭代次数的增加,逐步降低学习率,使训练得以收敛。这种降低学习率的方法通常按照经验设置参数值,设定较为困难,并且若只根据迭代次数去调整学习率,在遇到本章研究中这种需要频繁更换网络结构和实验训练集的条件下难以保证效果,故引入一种自适应调节学习率的方法。从bp算法在训练时学习率n的作用来看,n太小会使训练迭代次数增加,此时希望加大n的值;而当误差变化剧烈时,学习率n太大则会导致对权值的调整量过大,很容易跳过最优点,使训练迭代次数增加,此时则希望降低学习率n的值。为此提出一种可变学习率的BP算法,其规则如式(4-12)所示。式中a和B是设置的用于调整学习率变化的参数,范围是(0,1),实验中a=0.53=0.2,Y是设置的用于条件判断的参数,实验中设定为3%。y7j(k)=|(1+/?)x-1)AE(k1)0(4-12)公式所代表的含义是,如果迭代的均方误差增加且超过了设置的阂值Y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广告工程合同
- 2025标准版上海仓库租赁合同书
- 2025租赁合同(先付租金后使用)
- 一般承揽合同
- 彩票人工缩水服务合同范本
- 2025二级建造师建设工程施工管理考点知识:合同变更与现场签证与合同价款期中支付
- 2025年度装修合同范本
- 2025(范本)设备采购合同
- 广东房屋借住协议书
- 避险安置协议书范文
- 湖南省炎德英才名校联考联合体2024-2025学年高二下学期3月月考-数学+答案
- 2025年高考作文备考之题目解析及范文:“搭子”
- 蔬菜水果食材配送服务投标方案(技术方案)
- 中医内科学知到课后答案智慧树章节测试答案2025年春浙江中医药大学
- 第二单元第10课《小型网络的搭建》教学设计 2023-2024学年浙教版(2023)初中信息技术七年级上册
- 《高效能NLP沟通技巧》课件
- 电力应急物资储备与管理
- 中国公民健康素养-基本知识与技能(2024年版)试题及答案
- 【语文】第三单元整本书阅读《骆驼祥子》圈点、批注、做笔记课件-2024-2025学年统编版语文七年级下册
- 新目录监理规划2025
- 2024年天翼云认证运维工程师考试复习题库(含答案)
评论
0/150
提交评论