




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于神经网络的网络入侵检测本章从人工神经网络的角度出发,对基于神经网络的网络入侵检测系统展开 研究。在尝试用不同的网络结构训练和测试神经网络后,引入 dropout层并给出 了一种效果较好的网络结构。基于该网络结构,对目前的神经网络训练算法进行 了改进和优化,从而有效避免了训练时出现的过拟合问题,提升了训练效率。4.1 BP神经网络相关理论本章从学习算法与网络结构相结合的角度出发,神经网络包括单层前向网络、多层前向网络、反馈神经网络、随机神经网络、竞争神经网络等多种类型。构造 人工神经网络模型时主要考虑神经元的特征、网络的拓补结构以及学习规则等。 本文选择反向传播神经网络(Back Propa
2、gation Neural Network, BPNN)作为基本 网络模型。BP神经网络是一种通过误差逆传播算法训练的多层前馈神经网络,是目前 应用最广泛的神经网络模型形式之一。网络中每一层的节点都只接收上一层的输 出,而每一层节点的输出都只影响下一层的输入,同层节点之间没有交互,相邻两层节点之间均为全连接模式。BP神经网络在结构上分为输入层、隐含层与输 出层三部分,其拓扑结构如图4-1所示。图4-1 BP神经网络拓扑结构Figure 4-1 Topological Structure of BP Neural Network这里隐含层既可以是一层也可以是多层,数据在输入后由隐含层传递到输出
3、层,通过各层的处理最终得到输出结果。传统的BP网络算法可分为两个过程:神经网络中信号的前向传播和误差函 数的反向传播。算法在执行时会不断调整网络中的权值和偏置, 计算输出结果与 期望结果之间的误差,当误差达到预先设定的值后,算法就会结束。前向传播隐含层第J个节点的输出通过式(4-1)来计算:式中ij代表输入层到隐含层的权重,a(4-1)j代表输入层到隐含层的偏置,n为输入层的节点个数,f(.)为激活函数。输出层第k个节点的输出通过式(4-2)来 计算:。我=w "汹柒+讥I ” I(4-2)式中jk代表隐含层到输出层的权重,bk代表隐含层到输出层的偏置,l为 隐含层的结点个数。根据实
4、际输出与期望输出来计算误差,见式(4-3)。 itim(4-3)E = g_ Ok)2 = 豌k=lk=l式中(Yk-Ok)用ek来表示,Yk代表期望输出,m为输出层的结点个数当E不满足要求时,就会进入反向传播阶段。(2)反向传播反向传播是从输出到输入的传播过程。从式(4-1)至式(4-3 )中,可以发现网络误差E是与各层权值和偏置有关的函数,所以如果想减小误差,需要对权值 和偏置进行调整。一般采取梯度下降法反向计算每层的权值增量,令权值的变化量同误差的负梯度方向成正相关,调整的原则是令误差沿负梯度方向不断减少。 权值的更新公式见式(4-4),偏置的更新公式见式(4-5)。(4-#)孙J3疗十
5、川力(1 一%)* 2面萨餐313执二叫依+ 芦*(4-5)(叼=Qj +3为口 一耳)2山水。尻=小+ 4%式中“为学习速率。BP算法的整体流程如图4-2所示。Figure 4-2 Flow Chart of Back Propagation Algorithm4.2 网络结构的设计4.2.1 设计思路设计网络结构时确定隐含层的层数以及隐含层的节点数是非常重要的。 增加 隐含层的层数有利于提高精度同时降低网络误差,但是 BP神经网络的隐含层层 数越多,所需的训练时间也就越长。对于单隐层神经网络而言,隐含层的神经元 数量过少会导致网络的学习能力不足。相反,神经元数量越多,网络的学习能力就越强,
6、越容易达到预期的精度,但是相对地会削弱网络的泛化能力, 使网络容 易达到过拟合状态。为了保证网络拥有足够强的性能及泛化能力,尽量避免在训 练时出现过拟合现象,本文在设计网络结构时主要遵循以下原则 :(1)在保证神经网络检测精度的前提下,尽量减少神经元的数量;(2)通过仿真实验试探查找隐含层节点数的最优值。本文中网络结构选择的是多层前馈神经网络, 它的结构虽然简单,但是能够 实现任意精度逼近任意连续函数,并且可以获得复杂的处理能力,因此分类能力 和模式识别能力一般都会强于反馈网络。激活函数选择的是线性整流函数(Rectified Linear Unit, ReLU),也叫作修正线性单元,函数曲线
7、如图 4-3所示, 其公式见式(4-6)。图4-3 ReLU函数曲线Figure 4-3 Function Curve of ReLU,.:(4-6)ReLU激活函数定义了神经元在线性变换 wTx+b以后的非线性输出。换句话 说,来自上一层网络的输入向量x在进入神经元后,将输出max(0, wTx + b)至下 一层神经元。采用ReLU激活函数可以使梯度下降和反向传播的过程更加高效, 同时避免了梯度爆炸与梯度消失的问题。止匕外,该函数没有其他复杂激活函数如 Sigmoid函数中指数的影响,并且活跃度较为分散,使得神经网络整体的计算成 本减少,从而简化计算过程。目标函数选择的是Softmax函数
8、。Softmax函数是式(4-7)取负对数后得到的损失函数,其公式见式(4-8)。(4-7)(4-#)式中Sj表示j上的得分,Yi表示真实类别。4.2.2 网络结构及对应实验分析本文利用生长法来设计神经网络的网络结构,即设计网络结构时,首先确定一种较为简单的网络结构,然后通过增加隐含层数和隐含层节点数来形成其他的 网络结构。根据4.2.1中的设计思路,设计并训练了五种不同的神经网络模型, 对应的网络结构如图4-4所示。在图4-4的网络结构中,输入层均由41个神经元构成,输出层由5个神经 元构成。x为输入向量,数据输入后通过隐含层最终输出分别属于五个类别的概 率,然后将概率最大的类别作为最终的判
9、断结果。其中网络结构a,b,c包含一个隐含层,分别由50,100, 500个神经元构成;网络结构d, e由两个隐含层构成,前 者每个隐含层包含50个神经元,后者每个隐含层包含100个神经元。a)网络2构aa) Network Structure ab)网络结构bb) Network Structure bc)网络结构cd)网络结构dc) Network Structure cd) Network Structure d般含层 隐含惚e)网络2构ee) Network Structure e 图4-4神经网络的网络结构Figure 4-4 Structure of Neural Network本
10、章训练和测试神经网络时使用了 Google推出的Tensorflow深度学习框架, Tensorflow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。 它的灵活性和可延展性让用户可以在各种平台上展开计算,例如台式计算机中的单个或多个CPU(GPU)、服务器、移动设备等等,因此主要用于机器学习和深度 神经网络方面的研究。本章实验部分的机器配置,显卡采用的是GeForceGT 750M, 显存大小为2G,网络训练和测试时使用 GPU模式。用完整训练集分别训练图4-4中的五种网络结构,训练时的参数batch size每 次从训练集中取的数据量)和epochs仗用完
11、整训练集训练的轮数)将影响模型的 精度和训练时间。在合理范围内增大batch size对训练有一定好处,可以提高训练的速度,并且batch size越大其确定的下降方向越准确,引起的训练震荡越小。 但受显存的限制,不能无限地增大batch size,因此在本实验中batch size设为50。Epochs代表使用完整训练集训练的轮数,由于训练集共包含 494021条数据,在 batch size = 50的情况下,训练一次完整的数据集就需要 9881轮迭代,而完成全 部训练过程的总迭代数=9881 x epochs考虑到完整训练集的数据量过于庞大,因此用完整训练集训练时epochs设为50。模
12、型参数采用高斯分布初始化(Gaussian方法进行初始化, base1r=0.01调整策略使用新,其中 gamma=0.1, iter训练时使用随机梯度下降法,基础学习率设置为step策略,stepsize=500O,学习率按照式(4-9)进行更是当前的训练迭代次数。在以上参数条件下,本文所设计的几种网络结构均可以达到收敛。a - basejr x gqmm尸(“中齿、(4-9)训练完成后用测试集分别对这五个模型进行测试,得到的结果见表4-1和4-2。表4-1不同网络结构每种类别的检测率Table 4-1 Detection Rate of Different Network Structur
13、es for Each CategoryDR(%)NormalDosProbeU2RR2L网络结构a98.679X259L6710.0818.85网络结阂b98.5397.28S8.4010 JO18.80网络结均G98.6897.2489.9610.0718.81网络结构d97.50如8886.599.9718.56网络结构e97.4596.8286.509.9718.56表4-2不同网络结构的整体效果Table 4-2 Overall Effect Using Two Training Sets to Train the Structure aDR(H)FAR(K)Training JFi
14、tne(£)Testing网络结构a92.011404g3,991538.46网络结构b91.9S090168191,711599.53网羯造陶。9L96087191272361704.Li词络结构d91,56037225139.761983,0591,510和256128,112159,76从表4-1中可以看出使用网络结构 a训练的模型在四种攻击类别上的检测 率都比较高。虽然网络结构 c在Normal类别上的检测率高于网络结构 a,但是 对入侵检测系统来说,检测出攻击流量是最为重要的,并且从表4-2中可以看到网络结构a对整体攻击流量的检测率最高,同时训练和检测时间要少于其他四种 结
15、构,这是由于网络结构a的复杂度最低,因此使用它进行训练和测试所需要的 时间也就比较少。综上所述,本章选取网络结构a作为神经网络的一个基础候选 网络结构,后续的研究也主要是在网络结构a的基础上进行一系列的改进。4.2.3 Dropout 层的引入训练BP神经网络时经常会遇到的一个问题是容易达到过拟合状态,过拟合 是指模型在训练集上损失函数较小, 但是在测试集上损失函数较大,预测准确率 较低的现象。而dropout的出现可以很好地解决这些问题。dropout是指在神经网 络的训练过程中,对于网络中的神经元,按照一定的概率暂时将其从网络中丢弃, 即在每个batch中,让一部分隐层节点值为0。由于是随
16、机丢弃,所以每一个batch 都在训练不同的网络,这种方式可以减少神经元之间的相互作用。Hinton在论文中证实了 dropout对于全连接网络有防止过拟合的效果。图4-5为dropout的可视化表示,其中图a)为应用dropout前的神经网络,图b)是应用dropout后的同一个网络,虚线代表临时删除的神经元>a)应用out前的神经网络b)应用dropout后的神经网络a)Neural Network Before Applying Dropoutb)Neural Network after ApplyingDropout图4-5应用dropout前后的神经网络Figure 4-5 N
17、eural Network Before and after Applying DropoutDropout会以概率p舍弃部分神经元,其他神经元以概率 1-p被保留,输 入层和输出层神经元不作变动,舍去的神经元的输出都被设置为零。然后,将输入数据通过修改后的网络进行前向传播,将误差通过修改后的网络进行反向传播。 对一个批次的样本完成上述操作以后, 更新相应的权重和偏置,这样重复迭代处 理,直至训练结束。Dropout能够减轻过拟合现象的发生,主要是因为它达到了一种投票的作 用。对于全连接神经网络,用相同的数据去训练多个不同的神经网络可能会得到 多个不同的结果,这时采用投票机制可以相对提升网络的
18、精度与鲁棒性。同理, 对于单个神经网络。如果将其进行分批,虽然不同的网络可能会产生不同程度的 过拟合,但是他们共用一个损失函数,相当于同时对其进行了优化,取了平均, 因此可以较为有效地防止过拟合的发生。此外,当隐藏层神经元被随机删除后使 得全连接网络具有了一定的稀疏性,从而有效地减轻了不同特征之间的协同效应。 也就是说,有些特征可能会依赖于特定关系的隐含节点的共同作用,而 dropout 有效地阻止了那些在其他特征存在下才有效果的情况,提高了神经网络的鲁棒性。将dropout添加到4.2.2中的网络结构a后训练使用的epochs量增加为100这是 因为dropout会使每次训练时随机失效一些节
19、点,因此需要更多的训练轮数来使网络达到收敛。表4-3和表4-4展示了添加dropout后网络结构a的效果,可以 发现网络的检测效果有一定的提升。虽然训练时间有所增长,但是训练时间增长 的倍数并没有达到与epchos增长相同的倍数,这是由于每次训练时一些节点失 效,使得实际的网络结构要比原始的网络结构a更简单。表4-3添加dropout前后网络结构a对每种类别的检测率Table 4-3 Detection Rate of Network Structure a for Each Category Before and after AddingD取%)Nonna!DosPro加U2RR2L添加dr
20、opcin前98.67912591,6710,0818.85添加dropout .后98,6697.279L7010.1118,90表4-4添加dropout前后网络结构a的整体效果Table 4-4 Overall Effect of Network Structure a Before and after Adding DropoutDR(%) FAR(%) Train ing Timefs) Testing T1mc(5) 添加 dmpout 前92 OJ0£*14G483.991538.46添加 dropoin 后92.03090220823.544.3 数据集聚类与分层检测
21、框架在神经网络入侵检测上的应用本文提出了一些针对数据集和检测框架的改进方法,本节尝试将部分方法应用在神经网络的入侵检测上,并通过实验验证算法在神经网络入侵检测上的效果。 训练使用4.2.3中添加了 dropout的网络结构,训练时batch_size设为50, epochs 设为100,网络初始化和学习率的设定同4.2.2节。表4-5用两种训练集训练网络结构a所得每种类别的检测率4-5 Detection Rate for Each Category Using TwoSets to Train the Structure aDR(%)NormalDosProbeU2RR2L完整训练集98,6
22、697.27917010J1I&90子训练集98.5597309L72Id3s21.23表4-6用两种训练集训练网络结构a的整体效果DRj(陶Irainine Timers)Testing完整训练第02.03D.9022082154159A.12子训虢集92 JI1.15153.671(505.29表4-5和表4-6展示了使用聚类后的训练集的实验效果,可以发现用子训练 集训练神经网络模型后每一种攻击的检测率均高于用完整训练集训练神经网络 模型后的检测率,并且用子训练集进行训练所需的时间远远低于用完整训练集训 练的时间。因此在后续实验中均采用子训练集来训练神经网络模型。实验所用网络结构如
23、图4-6所示,由于采用小类别后最终分类目标类别实际 有15种,故输出层由之前的5个节点改为15个节点,训练集得到的结果见表 4-7和表4-8,从表中可以看出这种小类结构的训练集应用于神经网络后也对检 测效果有了明显提升,说明这种训练集的重构方法与分类器无关。图4-6使用15个小类别的神经网络结构图Figure 4-6 Structure of Neural Network Using 15 Small Classes表4-7用小类别训练集训练网络结构a所得每种类别的检测率Table 4-7 Detection Rate for Each Category Using Small Class T
24、raining Sets toTrain the Structure aD丸%)NormalDosFrobeU2RR2L子训练集9835”3091.72103521.2315小类别练集9*.5297.329235162128窥表4-8用小类别训练集训练网络结构 a的整体效果Table 4-8 Overall EffectUsing Small Class Training Sets to Train the Structure aDR(54) FAR(%) Training Time(s) Testing Time<s)子研练集92.211.15153.671605,29】5小类调练集9
25、274L2939】S1885.19现对应到分层检测框架中需要使用的是15个二分类器,故模型结构如图4-7所示,输出层节点数为2。表4-9和表4-10展示了利用神经网络分层检测框架进 行检测的结果,可以发现 Normal. U2R和R2L类别的检测率有一定的损失,但 是剩余二类的检测率有所提升。检测率损失的部分原因是Normal, U2R和R2L类别在分层检测框架中位于框架的末端,故这三类数据中有一些被前几种类别的 分类器识别成对应类别而未能传递到应该被正确识别的层次上。但好在这种损失比较轻微,尤其是R2L类别只减少了 0.01%的检测率,并且Probe和Dos类别以 及整体的检测率还有所提升。
26、图4-7分层检测框架中用于二分类的神经网络结构图Figure 4-7 Structure of Neural Network as Binary Classifier in Hierarchical Detection Framework.表4-9用神经网络分层检测框架检测所得每种类别的检测率Table 4-9 Detection Rate for Each Category Using Neural Network Hierarchical Detection FrameworkDR(%)NonnalDosProbeU2RR2L15小类训练集98 J1973893,2015.9928,974
27、-10用神经网络分层检测框架检测的整体效果Table 4-10 Overall Effect Using Neural Network Hierarchical DetectionFrameworkDR(%)FAR(%)Training Timers)Testing Timers)15小类训小集92.811.593510.29140L55本节的三个实验可以证明本文提出的对数据集的精简聚类、训练集数据重新 构造方法和分层检测框架都是分类器无关的通用方法, 神经网络可以获得检测效 果的提升。4.4 BP算法优化4.4.1 传统BP神经网络的局限性尽管彳统BP神经网络在非线性映射能力、自学习和自适应
28、、泛化能力和容 错能力等方面相较传统机器学习方法有一定优势,但是它也在近些年的应用中暴露了一些不足之处:(1)易陷入局部最优:从数学的角度上看,BP神经网络本质上是一种基于局部 搜索的方法,要解决的问题一般是复杂的非线性问题, 其网络权值的调整是沿局 部梯度的方向进行的,有陷入到局部最优的风险。同时, BP神经网络对网络权 值的初始值比较敏感,使用不同的初始网络权值往往会得到完全不同的结果。(2) BP神经网络训练时的收敛速度较慢:反向传播算法本质是梯度下降,通 常给定的目标函数都比较复杂,因此训练时往往都会出现震荡,这使得 BP算法 的训练效率变低。与此同时,在训练中如果神经元的输出比较靠近
29、0或者1,就会出现一些梯度很小的区域,这些平坦区内的权值变化往往很小, 这使得梯度下 降法的训练非常缓慢;训练BP神经网络模型时,对于权值改变的步长一般也会提 前设置一些静态的更新规则,这些规则不能及时获得每次迭代的权值变化情况, 也会引发一些效率问题。(3) BP神经网络预测能力和训练能力的矛盾问题:一般情况下神经网络的预 测能力会随着训练能力的提升而提高, 但是当训练达到一定程度后,预测能力反 而会有所下降,即出现了过拟合现象。这是由于网络学习了过多的样本细节, 导 致模型己经不能反映总体样本的规律,所以如何把握学习的程度来解决网络的预 测能力和训练能力之间的矛盾也是 BP神经网络的重要研
30、究内容。4.4.2 BP算法的改进针又t 4.4.1中提出的几个传统BP神经网络的问题,在先前的研究中已经通 过在网络结构中引入dropout层后在一定程度上解决了 BP神经网络预测能力和 训练能力的矛盾问题,并且通过使用第三章中重新构造的训练集来优化了网络的 训练速度。本节将从BP算法的权值初始化、增加动量项和自适应调节学习速率 的角度对BP算法进行改进。(1)权值初始化常用的神经网络权值初始化是采用高斯分布来生成随机初始值, 这种做法的 本质是将所有权值初始化为接近 0的小随机数,从而避免将权值全部初始化为0 导致的训练后同层的神经元得到相同的参数的问题。He等人提出了一种针对ReLU神经
31、元的特殊初始化,文章给出了采用ReLU 神经元的网络在通过高斯分布对权值进行初始化时的方差设置方法。基于方差的计算并带入ReLU神经元函数公式,最后推导出的方差表达式如式 (4-10)所示, 其中nl指第1层的维数,Varwl指第1层的参数的方差,即wl的初始化公式为 N(O,2/nl),本文将此公式作为神经网络参数的初始化公式。"/研卬=12(4-10)(2)增加动量项BP神经网络在训练过程中调整权值时,只按照当前迭代的梯度下降方向进 行调整,而未考虑之前迭代的梯度方向,这有可能会导致训练出现震荡而减慢收 敛速度。为了解决这一问题,考虑在权值调整公式中添加动量项,动量项实际上是从前
32、一次权值调整中取出一部分叠加到本次权值调整中,添加动量项以后的权 值调整表达式如式(4-11)所示。式中的mcAwij(k)即为动量项,mcAwij(k)=mc(wij (k)-Wij(k)-1),其中me代表动量因子,0< mc<1,本实验中me取0.9可以看出 动量项反映了上一次迭代所积累的调整经验。(4-11)Wij(k + 1) =+ £q如。厅十 mcdwif(k)动量项的作用如下:在训练过程中,当顺序加入训练数据时,在第t次迭代时, 如果本次迭代的任(t)/?wij(式中E为单个样本的训练误差)和上一次迭代同符号, 动量项起到加快调节权值wij的作用;而如果本
33、次迭代的?E(t)/?wij和上一次迭代 正负相反,说明有一定的震荡存在,此时动量项使得权值 Wij的变化变小,起到 了稳定的作用。(3)自适应调节学习率学习率”也称为步长,在标准 BP算法中设置为一个常数,然而在实际应用 中一般不会将其固定,比如在本节之前的网络训练中,使用式(4-9)来改变学习率, 本质上就是随着训练迭代次数的增加,逐步降低学习率,使训练得以收敛。这种降低学习率的方法通常按照经验设置参数值,设定较为困难,并且若只根据迭代 次数去调整学习率,在遇到本章研究中这种需要频繁更换网络结构和实验训练集 条条件下难以保证效果,故引入一种自适应调节学习率的方法。从BP算法在训练时学习率”
34、的作用来看,“太小会使训练迭代次数增加, 此时希望加大”的值;而当误差变化剧烈时,学习率“太大则会导致对权值的调 整量过大,很容易跳过最优点,使训练迭代次数增加,此时则希望降低学习率” 的值。为此提出一种可变学习率的 BP算法,其规则如式(4-12)所示。式中a和 B是设置的用于调整学习率变化的参数,范围是 (0,1),实验中a =0.5 P =0.2, T 是设置的用于条件判断的参数,实验中设定为3%。f (1 a) x - 1)利之)=k1 +町*爪之一1)Q- I) >y- 1) <01)(4-12)公式所代表的含义是,如果迭代的均方误差增加且超过了设置的阂值丫, 说明学习率“可能太大,取消本次权值更新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业经营管理过程中的企业法律风险及其防范
- 水稻种植面积变化统计表
- 框架结构建筑物维护检查标准
- 大白工程合同协议
- 建筑工地安全施工作业指导书
- 市场趋势的深度分析与对策
- 工程合作意向协议书
- 2025年山东货运从业资格证模拟试题及答案大全
- 用于个体经营三方借款合同
- 单位与个人劳务合同
- 解读 国家数据局首批20个“数据要素x”典型案例-31正式版-WN8
- 《跨境直播运营》课件-跨境直播的意义和要素
- 3 学会反思(教学设计)部编版道德与法治六年级下册
- 第一单元 歌唱祖国-《 中华人民共和国国歌》课件 2023-2024学年人音版初中音乐七年级上册
- 2024-2030年中国肾性贫血疗法行业市场发展趋势与前景展望战略分析报告
- DL∕T 1281-2013 燃煤电厂固体废物贮存处置场污染控制技术规范
- 办公家具采购项目质量保证售后服务承诺书
- 2024年时政试题库(b卷)
- 2024助贷委托服务协议合同模板
- 广东省住院病历评分标准
- 关于315食品安全
评论
0/150
提交评论