浅谈如何改进遗传算法优化的BP神经网络入侵

时间:2023-06-25

  入侵检测(Intrusion Detection)是对入侵行为的检测。它通过收集和分析网络行为、安全日志、审计数据、其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。因此被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测。

入侵检测通过执行以下任务来实现:监视、分析用户及系统活动;系统构造和弱点的审计;识别反映已知进攻的活动模式并向相关人士报警;异常行为模式的统计分析;评估重要系统和数据文件的完整性;操作系统的审计跟踪管理,并识别用户违反安全策略的行为。 入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。

普通GA的适应度函数不灵敏,其选择方法易产生随机误差,通用性较差,影响算法的性能。本文对GA的适应度函数和选择方法进行改进,用其优化BP神经网络,并应用在入侵检测中。

1 BP神经网络及遗传算法简介

  1.1 BP神经网络简介

BP神经网络模型是由一个输入层、一个或多个隐含层和一个输出层组成的一种多层前馈型网络,并用BP算法进行训练,是一种有导师的学习方法,利用梯度下降法对权值进行修正。在实际应用和研究中通常一个隐含层就能满足要求。

BP 算法的过程可以分为两个阶段。阶段是由输入层开始逐层计算各层神经元的输入和输出,直到输出层为止。第二阶段是由输出层开始逐层计算各层神经元的输出误差,并根据误差梯度下降原则来调节各层的连接权值和节点阈值,使修改后的网络的终输出能接近期望值[2]。如果训练以后还达不到要求,可以重复训练,直到满足训练为止。

 1.2 遗传算法简介

遗传算法是由DARWIN的生物进化论和MENDEL的遗传理论发展而来的一种高效的全局搜索算法,它模拟自然选择和遗传中发生的繁殖、交配和突变现象,从初始种群出发,根据适应度函数计算出的适应度函数值,通过选择、交叉和变异这3个操作,产生新的更适应环境的个体(问题的解),使群体进化到搜索空间中越来越接近问题的解的区域。这样一代一代不断进化,收敛到适应环境的个体上,即求得问题的解。


在遗传算法求解问题时,个体的优劣程度是由适应度函数值的大小来判定的。通常对高于平均适应度值的个体做交叉,而对低于平均适应度值的个体进行变异,从而一代一代地提高群体的平均适应度值。对于同一种群而言,采用不同的适应度函数,平均适应度值就会不同,优于平均适应度值的个体数目也不同,即求解问题的能力有差别。由此可见,适应度函数在遗传算法求解问题的过程中起着至关重要的作用。

遗传算法中的选择、交叉和变异这3个操作是实现优胜劣汰进化的关键过程。理想情况下,如果每次选择操作选取的都是适合解决问题的那些解,那么得到的解即为解。因此,遗传算法有必要进行改进。

2.2 基于种群交流的选择方法

基于种群交流的选择方法就是利用两种或两种以上的选择方法,综合各种选择方法的优点,既能保证找到全局解,又能保证以一个相对较快的速度收敛,所以其性能通常较好。本文采用的基于种群交流的选择方法综合运用轮盘赌选择法和锦标赛选择法。

以群体A和群体B为例详细说明基于种群交流选择方法的基本思想。群体A和群体B是两个不同的种群。在进化中,群体A代中的a11与群体B代中的b12产生的后代a11′和a12′进入到群体A中的第二代;群体B代中的b11与群体A代中a12产生的后代b11′和b12′进入到群体B中的第二代。而群体A代中剩余的个体进行轮盘赌选择,群体B代中剩余的个体进行锦标赛选择。以后的每一代都按照上述的方式进化,直至达到进化代数N[5]。

可以看出,在遗传算法进化过程中如果对每一个种群的每一代都进行种群间交流,当进化代数N很大时会严重影响算法的执行效率,而且效果也不一定好。所以在该方法具体应用过程中,以一定的概率(称为种群交流概率)随机对某两个种群进化过程中的某些代进行交流。这样既能发挥种群交流的优点,又有助于提高算法的效率。


3 基于改进遗传算法优化的BP神经网络原理

本文用改进的遗传算法优化BP神经网络权值的主要思想是:初始化神经网络权值后,首先用BP神经网络进行训练,如果能满足要求就结束;如果不能满足,再用改进的遗传算法对BP神经网络权值进行优化,在解空间中找出一个较好、较小的搜索空间;然后,用BP算法在这个较小的解空间中搜索出解[7]。该算法的主要步骤如下:

(1)初始化连接权值和节点阈值,先用BP神经网络进行训练。若满足训练,则停止训练;否则,将这些初始权阈值初始化为一个初始种群,用改进的遗传算法进行优化。

(2)编码,在遗传算法中,编码影响着算法的性能和种群的多样性。二进制编码和实数编码相比较而言,二进制编码比实数编码搜索能力更强,而实数编码在变异操作上能更好地保持种群的多样性。本文采用这两种编码相结合的方式[8],对网络结构采用二进制编码,对权阈值范围、学习速率和动量因子采用实数编码[9]。

(3)用适应度函数计算出各初始种群对应的适应度函数值。

(4)选择,采用基于种群交流的选择方法。

(5)交叉,将选择后得到的新的群体按照预先确定的交叉率用均匀交叉的方式进行交叉。

(6)变异,依据预先给定的变异率进行变异操作。

(7)重复进行步骤(4)、(5)、(6),直至满足达到进化代数后结束。

(8)将得到的权值再次用BP神经网络训练判断是否满足要求。若满足,则算法结束;否则,继续对该权值进行训练,直至达到要求为止。


4 入侵检测MATLAB仿真

  4.1 数据获取

将本文提出的入侵检测方法用Matlab 7.6进行仿真,验证其性能。样本数据采用美国麻省理工学院林肯实验室提供的网络攻击评估数据。为了使神经网络能够处理非数值型数据,对数据特征中数值特征和非数值特征统一进行数值编码,并进行归一化处理。

 4.2 参数设置

整个神经网络输入层节点为10,隐含层节点为15,输出层为1;隐含层传递函数为tansig,输出层传递函数为logsig,训练函数为traingda,目标为0.001,训练周期为1 000;遗传算法初始种群大小为200,进化代数为200,选择概率为0.9,交叉率为0.8,变异率为0.09,种群交流概率为0.6。

4.3 仿真结果比较

将所选取的数据应用到遗传算法优化的神经网络和改进的遗传算法优化的神经网络,并用Matlab 7.6对两种神经网络分别进行入侵检测仿真。


仿真结果进行的比较和分析,可以看出:基于改进遗传算法优化的BP神经网络入侵检测取得较好的效果。由此可见,采用改进遗传算法优化BP神经网络的入侵检测,训练、漏报率、误报率和检测率都明显提高,时间也比前者缩短了一半以上,性能较好。

本文主要是对遗传算法的适应度函数和选择方法进行改进,用改进的遗传算法优化BP神经网络,并将其应用在入侵检测中。有效克服了BP神经网络容易陷入局部极值和收敛速度慢等问题,增强了全局搜索能力,提高了训练、漏报率、误报率和检测率,缩短了训练时间,从而提升入侵检测的性能。

上一篇:浅谈uIP中UDP协议改进方案
下一篇:信息工程质量监理在隐马尔可夫模型中的实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料