基于遗传的CNN优化方法在入侵检测中的应用

2021-11-17 04:31谭敏生
计算机仿真 2021年2期
关键词:阈值遗传算法准确率

谭敏生,彭 敏,丁 琳,吴 冕

(南华大学计算机学院,衡阳 421000)

1 引言

随着网络技术的迅速发展,网络安全问题备受国家与社会的强烈关注。入侵检测作为安全防范的一种重要手段,通过收集和分析计算机系统和用户的事件信息,及时发现入侵行为,提醒管理人员采取相应措施,有效防范攻击,减少相应损失。目前主流的入侵检测技术主要是将智能算法与入侵检测相结合[1],聚类算法和支持向量机算法研究较多。Ambusaidi等人[2]提出了一种基于非线性相关系数的入侵检测方法,能够较准确地提取网络流量记录之间的线性和非线性相关性,降低误报率,有效区分正常和异常行为。Kumar 等人[3]提出了一种基于 K 均值聚类算法来提高入侵检测的准确率。Bhavsar等人[4]将支持向量机分类算法应用于入侵检测中。Gadal等人[5]提出了一种基于K-均值聚类和序列最小优化分类相结合的混合机器学习入侵检测技术。上述方法能在一定程度上取得更好的检测效果,但特征提取具有一定的复杂性,不能全面反应数据的相关性。

近年来,深度学习已经成为当今研究热点,深度神经网络和卷积神经网络等多种深度学习算法已逐步应用于入侵检测领域。Jin等人[6]提出了一种基于深度神经网络的入侵检测模型,该模型有4个隐含层,每一层有100个隐含单元,使用线性修正单元作为激活函数。Alom等人[7]利用改进的深度信念网络进行入侵检测,获得了较好的准确率。Raman等人[8]将概率神经网络应用于入侵检测技术中来提高检测性能。Nadeem等人[9]构建的梯形网络将神经网络与无监督学习相结合,取得了较好的精确度。Zou 等人[10]利用遗传算法具有的全局优化能力结合神经网络,在入侵检测领域取得了较好的效果。Kim J等人[11]将深度学习中的长短期记忆神经网络体系结构应用于入侵检测中,验证了LSTM分类器比其它分类器具有一定的有效性。Kolosnjaji等人[12]通过将卷积神经网络和LSTM神经网络结合起来,构造了一个分层次特征提取的体系结构。Vinayakumar等人[13]根据卷积神经网络的特点,将网络流量建模为时间序列的入侵检测系统。Liu等人[14]将卷积神经网络与循环神经网络结合,构造了入侵检测模型;贾凡等人[15]提出了基于卷积神经网络的入侵检测算法,通过深度学习,将非线性模型转化成更抽象的形式,强化原始数据的分类能力,提高特征提取的准确度。

然而,基于深度学习的卷积神经网络方法应用于入侵检测领域时,其检测性能与全连接层、卷积层的初始权重、阈值、网络结构参数、优化器以及全连接层神经元数等选取有较大关系,若选取不好,容易导致网络波动,学习过程也易陷入局部最优。本文利用遗传算法强大的全局寻优能力,通过遗传算法的选择、交叉和变异等操作获得最优初始权重、阈值、网络结构参数、优化器及全连接层神经元数等来优化卷积神经网络;并将优化后的卷积神经网络应用于入侵检测,对入侵数据进行学习和识别,与未优化的卷积神经网络和典型机器学习算法相比,准确率有明显提高,误报率有明显降低。

2 卷积神经网络框架构建

利用卷积神经网络(Convolutional Neural Network,CNN)能够充分对数据特征进行非线性映射,挖掘各个特征之间的联系,提高特征提取的准确度,处理多维数据。同一层部分神经元之间的权重和偏移相同,当输入层的特征维度较多时,只需将卷积层的神经元与前一层的部分神经元进行连接。本文根据LeNet5的基本模块构建卷积神经网络框架,采用如图1所示的结构图进行构建,固定1个输入层、1个输出层、1个全连接层,卷积层和池化层相互交替且具有相同的层数。

图1 卷积神经网络结构图

卷积层为特征提取层,可以使原信号特征增强,并且降低噪音。卷积运算是卷积核与原始特征或上一层的输出特征进行卷积,然后再加上偏置值,得到当前的特征,其运算方法如(1)所示

(1)

(2)

卷积层输出特征向量的大小则由式(3)确定,其中o为输出特征的大小,i为输入的特征大小,k为卷积和的大小,s为移动的步长,p为填充数

(3)

下采样层(池化层)一般在卷积层下面,主要降低卷积层输出的特征向量,减少参数数量,进一步提取主要特征。下采样输出特征的大小由式(4)确定,其中ps为采样的大小

(4)

3 基于遗传算法的卷积神经网络优化算法

遗传算法(Genetic Algorithm,GA)是一种模拟生物进化的算法,其具有强大的全局寻优能力和良好的收敛速度改善能力。通过将卷积神经网络(Convolutional Neural Network,CNN)的卷积层、全连接层的初始权重、阈值、网络结构参数、优化器及全连接层神经元数等作为遗传算法的种群,然后经过选择、交叉和变异等操作后获得最优后代,构建了一种基于遗传算法的卷积神经网优化算法(Genetic Algorithm Optimization Convolutional Neural Network,GAOCNN),该算法利用遗传算法强大的全局随机搜索能力及卷积神经网络挖掘特征联系能力,克服卷积神经网络因初始权重、阈值、网络结构参数、优化器及全连接层神经元数等容易导致的网络波动、陷入局部最优问题。

3.1 染色体编码

将卷积神经网络的卷积层与全连接层的初始权重、阈值、网络结构参数及优化器等作为遗传算法的种群,通过python语言字典中一个键对应多个值的形式来保存种群内的所有个体。

3.2 适应度函数

适应度函数是遗传算法评价各个体好坏的依据,一般将适应度高的个体进行下一代遗传操作。本文将卷积神经网络训练和预测后使用二分类交叉熵作为损失函数,由损失函数得到的准确率来定义适应度函数,方法如式(5)所示;卷积神经网络训练中使用EarlyStopping()函数,并设定patience的值为5,如果epoch为5的范围内精确度不再提升则停止训练。

(5)

3.3 选择、交叉和变异算子

选择算子是将当前种群中选择好的个体作为父代将基因传给下一代,本文首先利用利用式(6)计算平均适应度,将其作为选择适应度大于平均适应度时的阈值(sum为种群适应度的总和,popsize为种群的大小)。使用sorted函数对适应度进行排序,对群体中所有个体获得的适应度大小进行排序,然后根据保留率选取适应性强的个体作为父代,最后从剩余适应性不强的幸存个体中按选取率进行选取。

变异算子是从种群中根据已知的变异率,随机选取某个个体所对应的键,再随机选取该键所包含多个值中的一个。交叉算子是遗传算法中产生新个体的来源,本文首先利用式(7)确定需要繁殖孩子的大小(其中pl为父代的大小),然后根据需要孩子的量进行繁殖;在繁殖的过程中,首先随机产生两个不同的父代和母代,然后随机产生交叉点,再将父代和母代进行交换,最后通过变异算子对孩子进行变异。

(6)

dl=popsize-pl

(7)

3.4 GAOCNN算法主要步骤如下

1)建立卷积神经网络基本框架,确定种群大小和最大遗传代数等相关参数;

2)初始化种群,同时将损失函数值和准确率函数值设置为0;

3)将初始权重、阈值、网络结构参数、优化器以及全连接层神经元数等编码成染色体;

4)由3)中的染色体,随机生成一个完整的卷积神经网络,并进行相关训练;

5)计算染色体的适应度值,如果符合优化标准,则进入9);

6)对染色体进行选择操作;

7)对染色体进行交叉操作;

8)对染色体进行变异操作;

9)查看新个体是否满足最优标准或是否达到最大进化代数,若满足继续下一步;否则返回步骤5);

10)使用遗传算法得到的最优初始权重、阈值、网络结构参数、优化器及全连接层神经元数等,更新卷积神经网络作为新的网络训练模型。

4 基于优化卷积神经网络的入侵检测算法

根据上节提出的基于遗传算的卷积神经网络优化算法,提出一种基于优化卷积神经网络的入侵检测算法(Genetic Algorithm Optimization Convolutional Neural Network Intrusion Detection Algorithm,GAOCNN-IDA)。利用遗传算法的全局寻优能力和卷积神经网络的特征提取能力,对入侵数据进行检测,将通过GAOCNN算法获得的初始权重、阈值、网络结构参数、优化器及全连接层神经元数等,更新到基于卷积神经的入侵检测算法中,并重新进行训练测试,通过对攻击数据和正常数据进行学习来判断入侵数据的属性。GAOCNN-IDA主要步骤如下:

1)将KDDCUP99数据集进行特征提取,筛选出所需要的数据;

2)对特征提取之后的数据集进行数值化处理,保证所数据为数值类型;

3)对数值化数据集进行归一化处理;

4)根据1)~3)确定卷积神经网络的基本框架;

5)调用GAOCNN算法优化所使用的卷积网络的初始权重、阈值、网络结构参数、优化器及全连接层神经元数等;

6)对卷积神经网络进行训练;

7)采用训练好的卷积神经网络对入侵数据进行检测。

5 实验

5.1 数据预处理

实验数据采用KDDCUP99网络入侵数据集,该数据集约有500万条连接数据记录,每一条数据记录包含41个特征属性和1个类标签属性,数据集包含四种攻击类型和一种正常数据标签。如下是部分的数据记录:

0,tcp,http,SF,181,5450,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,5,5,0.00,0.00,0.00,0.00,1.00,0.00,0.00,6,6,1.00,0.00,0.17,0.00,0.00,0.00,0.00,0.00,normal.

0,tcp,private,SH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1.00,1.00,0.00,0.00,0.50,1.00,0.00,14,1,0.07,0.71,0.50,0.00,0.50,1.00,0.00,0.00,nmap.

0,tcp,http,SF,54540,8314,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,1,3,0.00,0.00,0.00,0.67,1.00,0.00,1.00,2,2,1.00,0.00,0.50,0.00,0.00,0.00,0.00,0.00,back

5.1.1 特征的提取

KDDCUP99数据集的每一个连接都由41维特征组成,样本数据集数据非常多,所以要从中选择合理的数据进行实验分析。本文实验根据文献[16]所提出的观点,将对决策判定没有任何作用的属性删除,即删除数据集中land、urgent、su_attempted、num_outbound_cmds和is_hot_login五项属性。

5.1.2 数据数值化处理

由于该数据集每一条正常或者异常数据记录都含41个特征属性,大部分特征数据是数值型的,但协议名、网络服务类型和flag标志位为非数值型,为便于卷积神经网络计算和处理,将这些非数值数据进行数值化编码。例如,对于protocol_typr特征,其包含3个符号:tcp,udp,icmp,将其编码为0,1,2。同理对网络服务类型和flag标志位进行相应的数值化处理。

5.1.3 数字特征归一化

为了让卷积神经网络更容易训练,运行时的收敛速度更快,实验选择对所有的数据按照式(8)进行归一化处理。

(8)

其中Mmin为某一列中最小的值,Mmax为某一列中最大的值,y为需要归一化的值。将“kddcup.data_10_percent_corrected”数据用做训练数据,将“corrected”数据用做测试数据,详见表1,将训练数据集和测试数据集都经过上述数据预处理。

表1 KDD数据类型

5.2 实验环境

实验在台式计算机上完成,配置为:Inter3.50GHz处理器,128GB内存,64位Windows10操作系统;编程工具为基于tensorflow的keras。遗传算法相关参数设置如表2所示,卷积神经网络部分参数优化范围如表3所示。

表2 遗传算法相关参数

表3 卷积神经网络参数优化的部分范围

5.3 实验及结果分析

5.3.1 入侵检测核心指标

入侵检测的核心指标主要是准确率(accuracy,Ac)、检测率(detection rate,Dr)和误报率(flase alarm,Fa),其计算方法如下:

(9)

其中,Tp为正确分类攻击数据的数目,Tn为正确分类正常数据的数目,Fp为错误分类正常数据的数目,Fn为错误分离错误数据的数目。

5.3.2 GAOCNN-IDA与CNN(未优化的普通卷积神经网络)比较

为证明本文所提算法的有效性,利用遗传算法优化后的卷积神经网络与具有相同卷积层的未优化的卷积神经网络进行攻击检测比较,其中卷积神经网络结构参数如表4所示,训练次数epoch都为30,batch_size=1000,所用数据集都经过前述预处理过程,得到检测结果如表5所示。CNN1算法的准确度为90.53%,检测率为81.36%,误报率为2.52%;而GAOCNN1-IDA算法的准确率提高到92.26%,检测率提高到83.13%,误报率则降为2.12%;CNN2算法的准确度为91.07%,检测率为83.08%,误报率为2.03%;而GAOCNN2-IDA算法的准确率提高到94.67%,检测率提高到88.43%,误报率则降为1.31%;CNN3算法的准确度为91.54%,检测率为83.89%,误报率为1.71%;而GAOCNN3-IDA算法的准确率提高到94.86%,检测率提高到89.67%,误报率则降为1.28%;实验结果表明,GAOCNN-IDA算法的准确率和检测率有明显提高,误报率有一定程度降低。

表4 卷积神经网络结构参数

表5 GAOCNN-IDA与CNN性能比较

5.3.3 GAOCNN-IDA与其它机器学习算法比较

将本文GAOCNN2-IDA算法与典型机器学习算法应用于入侵检测进行对比,所用数据集同样都经过上述预处理过程,检测结果如表6所示。其中,基于支持向量机(Support Vector Machine, SVM)的入侵检测算法准确率为90.13%,检测率为82.67%,误报率为6.28%;基于BP(Back Propagation)神经网络的入侵检测算法准确率为76.81%,检测率为70.14%,误报率为8.23%;基于决策树C4.5的入侵检测算法准确率为86.18%,检测率为80.29%,误报率为6.43%;而 GAOCNN2-IDA算法准确率为94.67%,检测率为88.43%,误报率为1.31%。GAOCNN2-IDA算法的准确率和检测率明显高于其它典型机器学习算法,误报率明显低于其它典型机器学习算法。因此,本文提出的GAOCNN2-IDA算法明显优于其它几种典型机器学习算法。

表6 GAOCNN2-IDA与其它典型机器学习算法性能比较

6 总结

卷积神经网络算法应用于入侵检测领域,其检测性能与卷积层、全连接层的初始权重、阈值、网络结构参数、优化器及全连接层神经元数等密切相关。本文利用遗传算法强大的全局寻优能力,通过遗传算法的选择、交叉和变异等操作获得最优初始权重、阈值、网络结构参数、优化器及全连接层神经元数等来优化卷积神经网络;将优化后的卷积神经网络应用于入侵检测,对入侵数据进行学习和识别。与BP神经网络、决策树、支持向量机等算法相比,本文的算法对入侵数据检测的准确率、检测率有明显提高,误报率有明显降低

利用遗传算法优化卷积神经网络虽有时间消耗,但优化过程可独立于检测过程。更为重要的是一旦获取到最优初始权重、阈值、网络结构参数、优化器及全连接层神经元数等,可缩短卷积神经网络训练和检测时间。

猜你喜欢
阈值遗传算法准确率
基于改进遗传算法的航空集装箱装载优化
非平稳声信号下的小波变换去噪方法研究
基于改进阈值的MRI图像降噪
土石坝坝体失稳破坏降水阈值的确定方法
一种改进小波阈值去噪法及其仿真
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
基于遗传算法的高精度事故重建与损伤分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察