基于GA改进BP神经网络网络异常检测方法

时间:2022-07-16 10:33:08

基于GA改进BP神经网络网络异常检测方法

摘 要: 考虑到常规BP神经网络算法容易陷入局部最优解,所建立的网络遗传流量检测模型检测效率低,准确率不高等问题,提出一种改进型GA优化BP神经网络算法,并使用其建立网络遗传流量检测模型。常规遗传算法在搜索过程中,往往会由于出现影响生产适应度高的个体而对遗传算法搜索过程产生影响的现象发生,因此需要对常规遗传算法进行改进。使用的方法是通过混合编码方式进行改进,同时对交叉算子、变异算子、交叉概率以及变异概率等参数进行优化修正。使用KDD CUP99数据库中的网络异常流量数据进行实验研究,研究结果表明,所提出方法的检测性能要明显优于常规算法,其对BP神经网络的结构、权值以及阈值进行同步优化,避免了盲目选择BP神经网络结构参数带来的问题,避免了常规BP神经网络容易陷入局部最优解的问题。

关键词: 网络异常检测; BP神经网络; 遗传算法; 异常流量

中图分类号: TN711?34; TP393 文献标识码: A 文章编号: 1004?373X(2016)03?0090?04

Network anomaly detection method with improved BP neural network based on GA

CUI Baocai

(Tianjin Electronic Information College, Tianjin 300350, China)

Abstract: Since the conventional BP neural network algorithm is easy to fall into local optimal solution, and the established network abnormal flow detection model has low detection efficiency and poor accuracy, an improved BP neural network algorithm based on GA is proposed, by which the network abnormal flow detection model was established. The conventional genetic algorithm in the search process often influences on the search effect because of the high fitness individual, so it is necessary to improve the conventional genetic algorithm. The hybrid encoding mode is used to optimize and correct the parameters of crossover operator, mutation operator, crossover probability and mutation probability. The experiment study for network abnormal flow data in KDD CUP99 database is conducted, and the research results show that the detection performance of the proposed method is better than that of the conventional algorithm. The improved genetic algorithm is used to synchronous optimization the network, weight and threshold of BP neural, and can avoid the problem causing by the blind selection of BP neural network structure parameter, and avoid that the BP neural network is easy to fall into the local optimal solution.

Keywords: network anomaly detection; BP neural network; genetic algorithm; abnormal flow

0 引 言

网络异常流量类型多样复杂,异常可能来自Alpha Anomaly异常流量、DDos异常流量、Port Scan异常流量、Network Scan异常流量、Worms异常流量以及Flash Crowd异常流量等。在大型Internet供应商以及企业网络中对异常进行检测具有非常大的难度。常规异常检测具有检测率低、误报率高等问题,因此本文对网络异常流量检测方法进行深入研究[1?3]。

近年来,人们常常利用BP神经网络建立网络异常流量检测模型,但是由于BP神经网络算法存在容易陷入局部最优解,训练时间长,效率低等问题,因此本文提出一种利用遗传算法对BP神经网络进行改进的方法以提高BP神经网络算法性能[4?5]。

1 遗传算法优化BP神经网络模型

1.1 遗传算法优化BP神经网络

使用遗传算法对BP神经网络算法进行优化可以描述为:

式中:[E1]是BP神经网络训练输出与实际样本的总体误差;[yi(t)]是期望的输出;[yi(t)]是BP神经网络的实际输出。

BP神经网络的实际输出[yi(t)]表示为:

式中:[f]是输出神经元的激励函数;[g]是隐含层神经元的激励函数;[wij]是BP神经网络输入层和隐含层节点之间的连接权值;[vit]是隐含层与输出层节点之间的连接权值;[ξi]是过程神经元的阈值;[ηt]是输出神经元的阈值。

权值的修正值可以用如下方法表示:

式中:[α]是动量因数;[n]是迭代次数;[η]是自适应学习率;[g(n)]是误差函数对权值的梯度。

建立遗传算法优化BP神经网络的检测模型过程如下:

步骤1:建立BP神经网络,设定BP神经网络的初始结构参数和函数等;

步骤2:使用遗传算法对BP神经网络进行参数优化,生产初始种群,通过种群优化、交叉、变异等操作对BP神经网络的权值、阈值等进行优化;

步骤3:使用遗传算法得到的最优权值、阈值等参数更新BP神经网络,使用训练数据对模型进行训练,完成检测模型的建立。

建立遗传算法优化BP神经网络的检测模型流程如图1所示[6?7]。

1.2 遗传算法改进方法

常规遗传算法在搜索过程中,往往会由于出现影响生产适应度高的个体而对遗传算法搜索过程产生影响的现象发生,因此需要对常规遗传算法进行改进。本文使用的方法是通过混合编码方式进行改进,同时对交叉算子、变异算子、交叉概率[Pc]以及变异概率[Pm]等参数进行优化修正。

(1) 混合编码方案

二进制编码解码的优点是操作简便、易于实现等;实数编码方法的优点是针对连续参数优化问题的精度高、直观等。因此本文将两种编码方式进行结合,发挥其各自优点,实现对遗传算法的改进。通过此种方法改进后,遗传操作速度加快、全局搜索范围增加,同时也提高了优化的精度等。

(2) 适应值函数选取

寻找使得所有进化过程网络误差平方和最小的网络权值即为遗传算法的搜索目标。遗传算法通常的进化方向是向着适应值增加的方向发展,因此,本文通过优化得到的权值、阈值,计算得到对应神经网络的误差平方和,适应误差的倒数为适应度函数。各个个体的适应值可以表示为:

网络的目标函数表示为:

式中:[qijk]是使用第[j]个训练数据样本进行输入时,第[k]个节点的输出;[pjk]是期望网络的输出;[n]是训练数据样本数量;[m]是BP神经网络的输出层神经元个数;[L]为种群规模数;[i=1,2,…,L。]

(3) 选择算子

本文使用的选取方法为排序法。排序法思想是把个体适应度的不同转换为排序序列,适应度较大的个体被选取的概率就越大,适应度较小的个体被选取的概率就越小。针对个体按照其适应度完成升序的排序,之后按下面方法对个体的选取概率进行计算:

式中:[Pmax]是最优染色体选取概率;[n(i)]是种群中第[i]个染色体适应值的排序。

对个体使用比例选择法进行选取。对每个个体累计选取概率[qi(i=1,2,…,L)]进行计算,在[(0,qL)]区域内生产一个随机序列[rj(j=1,2,…,L),]该序列为升序排序,如果[qi-1

(4) 交叉算子

交叉算子对于确保优良性能得以遗传具有重要作用。本文使用的方法是在二进制的编码过程中,使用单点交叉法,随机抽取2个父代串中的交叉点并交换对应子串,在交叉点的第[k]位进行交叉操作的方法为:

在进行实数编码时,使用算数交叉法,即通过两个个体组合成新的染色体。两个个体[Xli]和[Llj]是通过种群随机抽取的,交叉算子为:

式中:[Xli]和[Xlj]是交叉前的一对个体;[Xli]和[Xlj]是交叉后的一对个体;[c]是0~1的随机数。

本文使用的这种交叉方法因为能够得到多种组合,所以使得两个个体的信息得到充分交换对找到全局的最佳值是有利的[9]。

(5) 变异算子

保证种群多样性的一个主要方法就是通过变异操作。本文在二进制编码过程中使用基本位变异操作,实数编码过程使用非均匀变异操作。非均匀变异操作中使用的新基因值[x′k]为:

式中:[Δ(t,Ukmax-ηk)]是[0,Ukmax-ηk]范围内的随机数;[Δ(t,ηk-Ukmin)]是[0,ηk-Ukmin]范围内的随机数。

(6) 确定交叉和变异概率

交叉概率[Pc]以及变异概率[Pm]对遗传算法的优化性能具有至关重要的作用。本文使用自适应交叉概率和变异概率以不对适应值高的个体进行破坏的同时确保种群的多样性:

式中:[λ1,][λ2,][λ3,][λ4]为0~1的常数;[fmax]是种群中适应值的最大值;[f]是种群中适应值的平均值;[f]是较大的交叉互换适应值;[f]是变异个体的适应值。

当种群陷入局部最小值时可以将交叉概率[Pc]以及变异概率[Pm]适当增加;当种群在解空间比较分散时,可以将交叉概率[Pc]以及变异概率[Pm]适当减小;另外,对于适应度较高的个体,应减小交叉概率[Pc]以及变异概率[Pm;]对于适应度较低的个体,应增加交叉概率[Pc]以及变异概率[Pm,]这样交叉概率[Pc]以及变异概率[Pm]会跟随种群个体的适应度改变而变化[10]。

2 实验分析

本文使用Mitlincoln实验室的KDD CUP99数据库中的网络异常流量数据进行实验研究。主要选取常见的Alpha Anomaly异常流量、DDos异常流量、PortScan异常流量、NetworkScan异常流量、Worms异常流量以及FlashCrowd异常流量数据各100条。对各种流量数据样本随机抽取50条作为训练样本,另外50条用于对检测模型进行性能测试[11]。

网络异常流量类型与主要流特征对应关系如表1所示[12]。

为了对比本文研究的GA改进BP神经网络网络异常流量检测方法的性能,使用常规BP神经网络建立同样的检测模型。使用Matlab建立两种方法的检测模型,神经网络采用3层结构,由异常类型及异常类型对应的特征流决定了神经网络的输入层有6个神经元,输出层也有6个神经元,设定学习速率为0.1。常规BP神经网络使用随机函数对权值、阈值进行初始化设定,而本文研究的遗传算法优化BP神经网络则使用经过训练得到的最佳个体对权值、阈值进行初始化设定[13]。

两种算法的网络误差平方和响应曲线如图2所示。

可以看出,本文研究的方法通过对个体交叉概率和变异概率进行调节,相比常规BP神经网络能够使用更短的速度达到误差要求,迭代步数更少,训练速度更快,效率更高。

针对上述测试数据,使用两种方法进行测试。使用误报率和检测率对网络异常检测方法的检测性能进行评价:

[误报率=被误报为异常的正常样本数量正常样本总数×100%] (13)

[检测率=检测出异常样本数量异常样本总数×100%] (14)

使用两种算法建立的检测模型的检测率和误报率对比如表2所示。

从测试结果可以看出:本文研究方法针对6种异常流量的平均检测率为95.3%,平均误报率为4.7%;而常规BP神经网络算法建立的检测模型的平均检测率仅为81.8%,平均误报率为18.2%。本文研究方法的检测性能要明显优于常规算法,说明本文提出的改进型遗传算法对BP神经网络的结构、权值以及阈值进行同步优化,避免了盲目选择BP神经网络结构参数带来的问题,避免了常规BP神经网络容易陷入局部最优解的问题。

3 结 语

由于网络异常流量类型多样复杂,在大型Internet供应商以及企业网络中对异常进行检测具有非常大的难度,而常规异常检测具有检测率低、误报率高等问题,因此本文对网络异常流量检测方法进行深入研究。针对BP神经网络算法存在容易陷入局部最优解,训练时间长,效率低等问题,本文提出一种利用遗传算法对BP神经网络进行改进的方法以提高BP神经网络算法性能。本文将二进制编码和实数编码两种编码方式进行结合,发挥其各自优点,实现对遗传算法的改进。通过此种方法改进后,遗传操作速度加快、全局搜索范围增加,同时也提高了优化的精度等。通过遗传算法对BP神经网络的权值、阈值进行优化,加快了BP神经网络的学习速率,提高训练效率,极大改进了BP神经网络的逼近能力以及泛化能力。

参考文献

[1] 王涛,余顺争.基于机器学习的网络流量分类研究进展[J].小型微型计算机系统,2012(5):1034?1040.

[2] 姚宏林,韩伟杰,吴忠望.基于模糊相对熵的网络异常流量检测方法研究[J].信息安全与技术,2014(8):16?18.

[3] 赵鑫.基于NetFlow的网络流量异常检测技术研究[D].保定:河北大学,2014.

[4] 李洪洋.浅析网络异常流量分析检测研究与实现[J].网络安全技术与应用,2013(10):63?64.

[5] 燕发文,黄敏,王中飞.基于BF算法的网络异常流量行为检测[J].计算机工程,2013(7):165?168.

[6] 彭基伟,吕文华,行鸿彦,等.基于改进GA?BP神经网络的湿度传感器的温度补偿[J].仪器仪表学报,2013(1):153?160.

[7] 行鸿彦,邹水平,徐伟,等.基于PSO?BP神经网络的湿度传感器温度补偿[J].传感技术学报,2015(6):864?869.

[8] 何嘉.基于遗传算法优化的中文分词研究[D].成都:电子科技大学,2012.

[9] 夏玫.BP神经网络泛化能力改进研究[D].太原:太原科技大学,2009.

[10] 周凌翱.改进BP神经网络在模式识别中的应用及研究[D].南京:南京理工大学,2010.

[11] 吴小花.网络异常流量识别技术的研究[D].长春:长春工业大学,2013.

[12] 申磊.基于机器学习的异常流量检测系统研究[D].北京:北京邮电大学,2013.

[13] 李春林,黄月江,牛长喜.一种面向云计算的网络异常流量分组方法[J].计算机应用研究,2014(12):3704?3706.

上一篇:东莞市中老年人群骨质疏松流行病学情况分析 下一篇:遥感卫星接收系统故障诊断专家系统知识库设计