基于神经网络的网络入侵检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于神经网络的网络入侵检测
本章从人工神经网络的角度出发,对基于神经网络的网络入侵检测系统展开研究。在尝试用不同的网络结构训练和测试神经网络后,引入dropout 层并
给出了一种效果较好的网络结构。基于该网络结构,对目前的神经网络训练算
法进行了改进和优化,从而有效避免了训练时出现的过拟合问题,提升了训练效率。
4.1 BP 神经网络相关理论
本章从学习算法与网络结构相结合的角度出发,神经网络包括单层前向网
络、多层前向网络、反馈神经网络、随机神经网络、竞争神经网络等多种类型。
构造人工神经网络模型时主要考虑神经元的特征、网络的拓补结构以及学习规
则等。本文选择反向传播神经网络(Back Propagation Neural Network, BPNN)作
为基本网络模型。
BP 神经网络是一种通过误差逆传播算法训练的多层前馈神经网络,是目前
应用最广泛的神经网络模型形式之一。网络中每一层的节点都只接收上一层的
输出,而每一层节点的输出都只影响下一层的输入,同层节点之间没有交互,
相邻两层节点之间均为全连接模式。BP 神经网络在结构上分为输入层、隐含层与输出层三部分,其拓扑结构如图4-1
所示。
图4-1 BP 神经网络拓扑结构
Figure 4-1 Topological Structure of BP Neural Network
这里隐含层既可以是一层也可以是多层,数据在输入后由隐含层传递到输出层,通过各层的处理最终得到输出结果。
传统的BP 网络算法可分为两个过程:神经网络中信号的前向传播和误差函数的反向传播。算法在执行时会不断调整网络中的权值和偏置,计算输出结果
与期望结果之间的误差,当误差达到预先设定的值后,算法就会结束。
(1)前向传播
隐含层第J 个节点的输出通过式(4-1)来计算:
(4-1)
式中ωij 代表输入层到隐含层的权重,αj 代表输入层到隐含层的偏置,n
为输入层的节点个数,f(.)为激活函数。输出层第k 个节点的输出通过式(4-2)来
计算:
(4-2)式中ωjk 代表隐含层到输出层的权重,bk 代表隐含层到输出层的偏置,l
为隐含层的结点个数。
根据实际输出与期望输出来计算误差,见式(4-3)
。
(4-3)
式中(Yk-Ok)用ek 来表示,Yk 代表期望输出,m 为输出层的结点个数。当E 不满足要求时,就会进入反向传播阶段。(2)反向传播
反向传播是从输出到输入的传播过程。从式((4-1)至式(4-3 )中,可以发现网
络误差E 是与各层权值和偏置有关的函数,所以如果想减小误差,需要对权值
和偏置进行调整。一般采取梯度下降法反向计算每层的权值增量,令权值的变化量同误差的负梯度方向成正相关,调整的原则是令误差沿负梯度方向不断减少。
权值的更新公式见式(4-4),偏置的更新公式见式(4-5)。
(4-4)
(4-5)式中η为学习速率。
BP算法的整体流程如图4-2
所示。
图4-2 BP算法流程图
Figure 4-2 Flow Chart of Back Propagation Algorithm
4.2 网络结构的设计
4.2.1 设计思路
设计网络结构时确定隐含层的层数以及隐含层的节点数是非常重要的。增加隐含层的层数有利于提高精度同时降低网络误差,但是BP神经网络的隐含层层数越多,所需的训练时间也就越长。对于单隐层神经网络而言,隐含层的神经元数量过少会导致网络的学习能力不足。相反,神经元数量越多,网络的
学习能力就越强,越容易达到预期的精度,但是相对地会削弱网络的泛化能力,使网络容易达到过拟合状态。为了保证网络拥有足够强的性能及泛化能力,尽量避免在训练时出现过拟合现象,本文在设计网络结构时主要遵循以下原则:
(1)在保证神经网络检测精度的前提下,尽量减少神经元的数量;
(2)通过仿真实验试探查找隐含层节点数的最优值。
本文中网络结构选择的是多层前馈神经网络,它的结构虽然简单,但是能够实现任意精度逼近任意连续函数,并且可以获得复杂的处理能力,因此分类能力和模式识别能力一般都会强于反馈网络。激活函数选择的是线性整流函数( Rectified Linear Unit, ReLU),也叫作修正线性单元,函数曲线如图4-3所示,其公式见式(4-6)
。
图4-3 ReLU函数曲线
Figure 4-3 Function Curve of ReLU
(4-6) ReLU激活函数定义了神经元在线性变换w T x+b以后的非线性输出。换句话说,来自上一层网络的输入向量x在进入神经元后,将输出max(0, w T x + b)至下一层神经元。采用ReLU激活函数可以使梯度下降和反向传播的过程更加高效,同时避免了梯度爆炸与梯度消失的问题。此外,该函数没有其他复杂激活函数如Sigmoid函数中指数的影响,并且活跃度较为分散,使得神经网络整体的计算成本减少,从而简化计算过程。
目标函数选择的是Softmax函数。Softmax函数是式(4-7)取负对数后得到的损失函数,其公式见式((4-8)。
(4-7)
(4-8)
式中Sj 表示j 上的得分,Yi 表示真实类别。4.2.2 网络结构及对应实验分析
本文利用生长法来设计神经网络的网络结构,即设计网络结构时,首先确
定一种较为简单的网络结构,然后通过增加隐含层数和隐含层节点数来形成其
他的网络结构。根据4.2.1中的设计思路,设计并训练了五种不同的神经网络模型,对应的网络结构如图4-4所示。
在图4-4的网络结构中,输入层均由41个神经元构成,输出层由5个神经
元构成。x 为输入向量,数据输入后通过隐含层最终输出分别属于五个类别的概率,然后将概率最大的类别作为最终的判断结果。其中网络结构a,b,c 包含一
个隐含层,分别由50, 100, 500个神经元构成;网络结构d, e 由两个隐含层构成,
前者每个隐含层包含50个神经元,后者每个隐含层包含100
个神经元。
a)网络结构a
b)网络结构b
a) Network Structure a
b) Network Structure b