APP下载

基于IM-GA-BPNN的网络入侵检测算法设计

2019-11-04周丽娟

关键词:个数遗传算法神经元

周丽娟

(山西财经大学实验教学中心,山西太原030006)

随着互联网的飞速发展和网络费用的进一步降低,网络已经深入几乎每个家庭和社会的每个角落,直接影响了人们生活的健康和社会的安全[1]。网络入侵检测技术即通过对网络进行实时监控,通过从网络节点处收集信息,来发现网络中是否存在着违反安全策略以及攻击的行为。

网络入侵检测方法根据检测方法的不同可以误用入侵检测和异常入侵检测两类方法[2]。误用入侵检测方法主要是通过对知识库的检测来匹配网络入侵检测行为,其缺点是当知识库中的知识存储不完备时,会存在一些无法被检测的行为。异常入侵检测是一种通过对可接受行为的描述来判断其是否与正常行为存在偏差,当该行为与正常行为存在较大偏差时,就将该行为检测为入侵行为[3]。异常入侵检测方法能实现未知网络的实时有效检测,目前已经成为了网络入侵检测的研究热点[4]。网络入侵检测的主要方法有:人工智能方法、统计类方法和计算机免疫方法。刘珊珊等[5]提出了一种基于PCA 的PSO-BP 入侵检测方法,能结合PCA 理论和BP 局部搜索理论和PSO 的全局搜索能力,并通过PCA来实现特征提取,作为BP网络的输入,以提高检测的准确率。高妮等[6]提出了一种基于自编码网络并基于支持向量机的入侵检测模型,该模型采用多层无监督的限制玻尔兹曼机来对原始数据进行降维,建立高维空间和低维空间的网结构,实现低维数据的高维表示。张永良等[7]提出了一种基于改进的卷积神经网络的周界的入侵检测方法,在深层特征的基础上融入浅层的特征,并利用softmax 进行分类,并通过实验表明了改进后的卷积神经网络能具有较高的鲁棒性。沈夏炯等[8]设计了一种基于人工蜂群优化的BP 神经网络入侵检测方法,在初始化神经网络参数时,尤其是在权值和阈值的选择上,尽量选择适应度更高的参数,避免陷入局部最优或者导致整个网络的收敛速度过慢。

在以上工作的基础上,提出了一种基于IMGA-BPNN 的网络入侵监测算法,能有效实现网络的入侵检测,并能克服经典神经网络的不足,并通过实验证明了文中方法的有效性。

1 BP神经网络

BP 神经网络是 1986年由 Rumelhart 和 McCelland 提出的前馈型网络,它基于梯度下降算法,可以分为正向传播和反向传播两个部分组成。BP 神经网络是由1 个输入层、多个隐含层和1 个输出层组成。三层的BP神经网络如图1所示:

图1 三层BP神经网络模型

BP 神经网络在进行正向传递的过程中,将输入信息输入到输入层,然后经过若干隐含层的非线性变换,最后通过输出层得到输出结果。在反向传递的过程中,网络的真实输出值与标签值之间的差距为误差信号,将误差信号经过计算得到目标函数,并通过目标函数对网络权值和阈值进行调整,直到误差接近于0。

2 基于神经网络入侵检测

2.1 网络入侵检测总体模型

网络设计的入侵检测模型原理为:首先获取训练样本集,即在网络上采集能对网络入侵检测的数据,然后根据这些数据的种类来确定神经网络输入层神经元的数量,同理,根据网络可能产生的入侵类型来确定网络的输出神经元的个数,而隐含层神经元的数量以及层次则决定于样本集的大小,当样本集很大时,要设计较大的隐含层数量以及较多的神经元数量,以使得网络不容易陷入过拟合;同理,如果训练样本集数量较少,网络的隐含层神经元的层次不宜过多,同时隐含层神经元的个数不能太多,以防止网络陷入欠拟合。

对于网络的权值和阈值,除了采用训练样本对该网络进行训练,获得一组训练后的最优值,然后,再通过免疫遗传算法对这些参数再次训练,得到一组最优值,最后用于对整个网络进行初始化。

在网络经过训练,并采用免疫遗传算法优化后就得到了训练后的模型,将测试样本输入到训练后的模型后就能实现网络入侵检测。

2.2 权值和阈值的训练

采用训练数据对神经网络的参数训练的过程就是:

(1) 建立网络模型,根据训练数据来确定网络的输入层神经元个数、隐含层神经元层数以及对应的神经元个数以及输出层的神经元个数;

(2)随机初始化网络的权值和阈值;

(3)根据训练数据得到网络的输出结果,计算输出结果和标签值的差异来计算网络的误差平方和:

其中,训练样本个数为N,网络输出的第i个样本的第j个输出值yij和真实值^yij;

(4) 采用反向传播算法对网络进行训练,即从网络的最后一层开始从输出层开始向输入层反向进行传播,各层的权值和阀值调整如下:

其中,参数学习率η、训练过程中的当前迭代次数t以及当前层r都需手动设置。

3 基于IM-GA-BPNN的神经网络入侵检测

3.1 免疫遗传算法概述

免疫遗传算法(GA)是将免疫算法和遗传算法相结合的全局优化算法,该算法通过不断提高适应度,即减少公式(1)对应的预测误差。在调整解的过程中,通过引入遗传操作中的复制、选择、交叉和变异操作来增加解的多样性,防止算法尽早陷入局部最优,从而尽早获取全剧最优解。

基本的免疫遗传算法的算法流程如图2所示:

图2 免役遗传算法的算法流程

3.2 基于免疫遗传算法的入侵检测算法

采用基于免疫遗传神经网络(IM-GA-BPNN)算法的网络入侵检测算法,在传统神经网络训练算法的基础上再次训练,而免疫算法和遗传算法又利用各自的优势来对神经网络进行再次的训练,因此,能更好地寻求到全局最优解。

基于IM-GA-BPNN神经网络入侵检测算法

初始化:初始化当前进化代数λ=1 和迭代次数的最大值λmax,交叉概率pc和变异概率pm。

步骤1:在采用训练集训练了神经网络后得到的网络参数来作为初始解,并在该初始解附近生成规模为M的初始抗体种群;

步骤2:种群中的每个个体的编码方式为:编码的长度为所有权值和阈值数量总和,而每个的编码的初始值为实数,初始值为BP 算法训练后得到的参数值;

步骤3:计算每个样本的个体适应度,个体适应度为公式(1)的倒数即:

步骤4:计算各抗体的亲和度,并按照亲和度的大小来选择相应数量的个体进行复制,复制的数量为:

步骤5:对个体进行交叉和变异,交叉和变异的概率分别为pc和pm,交叉操作即调整编码中任意两个位置的值,变异操作即随机对某个位置的值进行增减一个很小的数;

步骤6:更新迭代次数λ=λ+1,直到迭代次数达到最大值λmax,此时将最优解作为最优的网络结构。

4 仿真实验

对方法进行验证,将KDD99 CUP 入侵检测数据库中的数据作为仿真数据,该数据库中的攻击一共可以四种即使:

(1)拒绝服务攻击(DOS);

(2)远程用户未授权访问攻击(R2L);

(3)本地用户权限提升攻击(U2R);

(4)探测攻击(Probe)。

该数据库中的数据一共有41 个特征。根据入侵的种类和数据的特征种类,设计BP 神经网络的层数为4,输入层的神经元个数为41,输出神经元个数为4,第一层隐含层神经元个数为20,第二层隐含层神经元个数为8。选取KDD99 CUP 数据集中的2000 组数据作为训练数据集,训练的目标是误差达到0.002,在训练600 轮后,IM-GA-BPNN 模型得到的训练误差仿真情况如图3 所示:

图3 训练结果

从图3中可以看出,GA-BPNN 模型在大概300轮后,训练误差就急速下降,到第750 轮时,训练误差就降低到了目标值0.0001,而经典BP 神经网络的训练误差为接近0.08。

为了验证训练的效果,从训练的检测率DR、误检率FPR和漏报率MR来进一步验证本文所提方法的性能,它们的表达方式如下所示:

误检率FPR的计算为:

三种方法对应的迭代次数、训练时间、检测率DR和误检率FPR结果如表1所示:

表1 各类方法比较结果

从表1中可以看出,基于免疫遗传优化BP神经网络的入侵检测模型具有最高的检测率,即高达98.5%,而BP 神经网络、PCA-NN、PCA-PSO-NN方法得到的检测率分别为79.5%、90.6%和91.8%,显然,所提的模型较另外三种方法在检测率上分别提高了9%、7.9%和6.7%。

5 结语

为了实现对网络进行有效的入侵检测,设计了一种基于免疫遗传算法和BP 神经网络的网络入侵检测方法,首先采用训练数据对BP 神经网络进行训练,然后采用免疫遗传算法对BP 神经网络进行参数优化,得到优化的BP 神经网络。采用KDD99 CUP 入侵检测数据库中的数据作为仿真数据实验,结果表明文中方法能有效实现网络的入侵检测,能达到较高的误检率,较其他方法相比,具有检测率高和收敛速度快的优点。

猜你喜欢

个数遗传算法神经元
怎样数出小正方体的个数
等腰三角形个数探索
怎样数出小木块的个数
基于遗传算法的智能交通灯控制研究
怎样数出小正方体的个数
跃动的神经元——波兰Brain Embassy联合办公
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于改进的遗传算法的模糊聚类算法
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用
毫米波导引头预定回路改进单神经元控制