APP下载

人工神经网络的改进及其在入侵检测中的应用

2016-06-14刘博文

电脑知识与技术 2016年12期
关键词:Matlab仿真入侵检测BP神经网络

刘博文

摘 要:随着传统的入侵检测方法不断暴露出误报、漏报率较高,对未知攻击检测力低等缺点,人工神经网络技术开始运用到了入侵检测领域,为入侵检测技术开辟了新的研究途径。在标准BP神经网络的基础上,提出了一种新的改进方法,引入了带有可调因子的转移函数,克服BP网络在误差平坦区收敛速度慢的缺点,以提高BP网络在入侵检测中的检测速度。最后采用KDDCUP99入侵检测数据集在MATLAB 8.0下进行了仿真实验。实验结果表明,该算法在一定程度上提高了入侵识别速度和检测效率。

关键词:BP神经网络;算法改进;入侵检测;Matlab仿真

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2016)12-0188-03

随着网络攻击手段的日趋复杂和多样化,传统的入侵检测方法暴露出了检测速度慢、虚警率高、不能实时检测出攻击行为等缺陷。为了构造具有自适应和自学习能力的入侵检测系统,人们开始尝试将智能化的学习方法引入到入侵检测领域。目前,神经网络、模糊技术、智能免疫原理等方法都是常用的智能化方法,特别是神经网络技术的发展空间很大。

BP神经网络(Back Propagation Neural Network)作为一种最具代表性的前向型神经网络模型,应用十分广泛,并成为了最流行的神经网络模型之一[1]。由于其具有良好的自适应、自学习能力和较强的非线性映射及容错能力,即使是背景知识不清楚、环境复杂、甚至样本缺损较严重的问题,也能成为其处理对象,因此在入侵检测中可以达到较好的检测效果。尽管BP网络有很多显著的优点,但也存在着一定的局限性,会影响入侵检测的效率。一般学者从启发式和数值优化两种方式[2]不断对BP算法进行了改进。对入侵检测来说,精准率及实时响应时间十分重要,因此针对BP算法收敛速度慢的缺点,提出了一种新的改进方法。

1 BP神经网络

1.1 BP神经网络模型

BP神经网络结构可被划分为输入层(Input Layer)、隐含层(Hide Layer)和输出层(Output Layer)。网络中每层都由多个能执行并行计算的神经节点构成,隐含层可以是一层或者多层。信号被输入后经隐含层各层的处理后最后得到输出信息[3],通过持续更新连接权值,使输出不断接近网络的期望输出[4]。

1.2 BP算法的优、缺点

BP神经网络具有良好的自适应、自学习和非线性映射等能力,并且采用分布式结构,具有较强的容错性和泛化能力,能够通过非线性方式对数据进行分析,其输入至输出的传播过程即为一个数学非线性映射的问题[5][6]。同时BP网络也存在一些不足,主要体现在以下几个方面:

1)收敛速度慢。由于转移函数存在过饱和区间,并且学习速率难以确定,这将增加迭代次数,降低算法的速度,这时只可能以增加训练次数来慢慢退出该区域。

2)梯度下降法易使得函数陷入局部极小点。当网络训练陷入了局部极小点,网络训练无法收敛于给定的误差。

3)网络隐含层数及隐含层节点数的确定缺乏理论指导。

2 对BP神经网络的改进

标准的BP网络常以log-sigmoid型函数作为转移函数,而log-sigmoid型函数的误差曲面较为复杂,既有较平坦的区域,也有曲率较大的区域,当进入较为平坦的区域时导数值会趋近于0,则权、阈值的修改量很小,网络会长时间处于一个几乎停滞的状态,如图1所示,此时只能通过以牺牲时间为代价慢慢退出平坦区域。因此为了避免网络长时间处于平坦区域,提高网络收敛速度,对转移函数提出了改进。

其中,k就是可调因子,0

3 实验及分析

3.1 实验环境及实验目的

进行仿真实验的电脑环境为:Windows 7 64位操作系统,处理器为Intel(R) Core(TM)2,内存为8GB,开发及仿真平台为MATLAB 8.0,实验数据为KDDCUP99数据集,辅助工具为Excel 2013。

实验目的:在MATLAB 8.0平台下,通过使用KDDCUP99数据集对改进后的BP算法和标准的BP算法分别进行训练,使其获得一定的入侵识别能力。在检测阶段计算出检测率、漏报率、误报率和所用时间。通过对结果的分析来证明该改进算法是否具有较高的入侵检测效率。

3.2 实验样本的选取

实验选取美国麻省理工学院林肯实验室发布的离线测试评估数据集KDDCUP99[7],它是目前公认的、性能优良的网络安全审计数据集,实验采用其中的10%数据集,其由训练数据集、测试数据集组成。数据集包含了目前最常见的4类攻击手段[8]:User to Root(U2R)、Denial-Of-Service(DOS)、Remote to Local(R2L)、Surveillance or probe(Probe)。为保证比较符合实际分布情况,实验从10%数据集中选取了8020条记录作为训练样本,并另选取了5000条记录作为测试样本,其中包括3500条正常记录和1500条攻击记录。

3.3 在MATLAB下进行实验

首先,确定BP神经网络的层数,Robert Hecht-Nielson已证明了只含一个隐含层的三层BP网络足能够胜任任何m至n维的非线性映射。因此,基于对效率和复杂度的考虑,本文采用三层的BP神经网络,最大迭代次数为3000,然后通过多次训练对比发现,隐含层节点数为7误差精度为0.001时网络收敛效果较好。对改进算法和标准BP算法训练结束后开始进入检测阶段。

3.4 实验结果分析

由实验结果可以证明,改进后的BP算法在一定程度上提高了收敛速度和入侵识别的检测率,入侵识别能力得到了提高。

4 结束语

首先分析了标准BP算法的优缺点,针对其可能会长时间工作在转移函数饱和区、收敛速度慢的缺点,提出了一种新的BP改进算法。网络的输出层采用了带有可调整因子的转移函数,可使转移函数图形更为陡峭,即梯度的变化量增大,缓解了学习率在转移函数趋于饱和区间时调节效果不佳的问题,可使误差函数及早摆脱平坦区,提高BP网络收敛速度。最后,采用KDDCUP99数据集在MATLAB 8.0平台上进行仿真实验,通过实验证明了改进后的算法在一定程度上提高了入侵识别速度和检测效率,侵识别能力得到了一定提高。下一步,在规范BP神经网络的拓扑结构、克服网络已陷入局部极小值等方面仍然需要进一步深入研究,提高改进后算法的实际应用能力。

参考文献:

[1] 李明,程显毅.基于改进BP神经网络的智能Agent分布式入侵检测系统[J].计算机应用与软件,2009,26(1):105-107

[2] 周国雄,廖迎新,沈学杰.基于神经网络的孵化过程组合预测方法[J].系统仿真学报, 2014,26(4):892-896.

[3] XU SEN,HUANG C T.Security issues in privacy and key management protocols of IEEE 802.16[C]//Proceedings of the 44th Annual Southeast Regional Conference.New York:ACM Press,2006:113-118

[4] 刘延涛.基于混合神经网络技术的入侵检测模型[D].长春: 东北师范大学,2010: 20-30.

[5] Zhiguo Zhang.Learning algorithm of wavelet network based on sampling theory[J]. Neurocomputing.2007(71):244-269

[6] Zhihong Yao,Minrui Fei,Kang Li.Recognition of blue-green algae in lakes using distributive genetic algorithm-based neural networks[J].Neurocomputing.2007,70:641-647

[7] DAVID NEWMAN.The University of California Irvine KDD Archive. [EB/OL].(2007-06-26) [2012-12-15].http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.

[8] 张新有,曾华燊,贾磊.入侵检测数据集KDD CUP99研究[J].Computer Engineering and Design.2010,31(22):4810.

猜你喜欢

Matlab仿真入侵检测BP神经网络
常规PID控制和常规模糊控制的比较