结合随机森林的PSO-CNN入侵检测研究

2021-12-14 01:37谭敏生杨帅创
计算机应用与软件 2021年12期
关键词:网络结构卷积粒子

谭敏生 杨帅创 丁 琳 彭 敏

(南华大学计算机学院 湖南 衡阳 421001)

0 引 言

据统计2018年全球互联网用户突破40亿,数据的传输呈现爆发式增长。传统的入侵检测技术(Intrusion Detection System,IDS)已不能满足人们的需求,并日益显露弊端。因此,如何更好地提高网络的有效防御已成为当前网络安全技术的研究热点。

近阶段的入侵检测技术主要是将机器学习运用于IDS中[1]。所采用的机器学习算法主要有支持向量机(SVM)[2]、神经网络[3]、卷积神经网络[4]。在此基础上为进一步提高检测系统的检测性能[5],机器学习融合群体智能算法的检测系统也逐渐被研究者提起。例如:利用蚁群算法优化SVM参数[6],混沌粒子群算法结合最小二乘支持向量机的混合算法[7],以及遗传算法优化卷积神经网络的方法[8-9]。针对原始网络数据包含大量冗余和无用特征,易出现“维数灾难”[10]降低入侵检测效率,群体智能算法融合传统机器学习存在入侵检测准确率低,卷积神经网络(CNN)的网络结构及初始参数对其性能影响较大的问题,本文提出结合随机森林(RF)和粒子群(PSO)优化CNN网络结构和初始参数的方法构建入侵检测模型。利用随机森林对独热编码后的数据进行特征度量。在不影响分类性能的基础上,保留主要特征信息,实现数据的最优压缩[11-12]。以此来缩减建立模型时数据的特征数,降低模型复杂度。采用粒子群优化卷积神经网络的网络结构和初始参数,使卷积神经网络在非经验指导下自主选择[13]最佳网络结构参数和初始权重。实验证明,相比之下,本文方法有效地提升了分类的准确率和精确率,降低了误报率。

1 相关工作

1.1 随机森林

随机森林(RF)是由一组决策树构成的集成机器学习算法。运用其鲁棒性和分类准确性特点,可对数据特征进行筛选。使用随机森林进行特征选择的两个基本指标分别是袋外数据误差和基尼指数。

(1)

随机森林使用基尼指数作为特征分割效果度量指标,其原则是选择基尼指数小的特征,其值越小得到的分割效果就越好。主要计算过程是:根据所给节点t可计算出当前节点的基尼指数,然后选择某一个特征构建分离节点,划分后的两个子集也可计算出各自的基尼指数,计算父节点与子节点的基尼指数差值作为当前特征的重要性度量。其公式如下:

(2)

式中:Q为目标变量的样本个数;p(k/t)为节点t中目标变量为第k类的条件概率。使用式(2)计算所有决策树的基尼指数,对所有特征的重要性进行排名,作为本文训练模型的输入数据。

1.2 粒子群算法

粒子群优化算法(PSO)最初是由Eberhart和Kennedy于1995年提出的群体智能启发式全局算法。该算法是模拟鸟群在飞行中觅食的社会行为,通过群体协作改进目标解来优化问题的计算方法。粒子群算法与其他优化方法相比具有的明显特色是所需调整的参数少、收敛速度快、搜索范围广。其算法原理如下:

假设一个具有m个粒子的种群在一个D维空间进行搜索,每个粒子都具有记忆功能,存储所搜寻到的最佳位置表示为pbest,种群所搜寻的最好位置表示为gbest。每个粒子都根据搜索到的pbest和gbest调节自身速度vd和xd位置,以实现搜寻整个区域空间。通常位置变化范围限定在[Xmin,d,Xmax,d],速度变化范围限定在[-Vmax,d,Vmax,d]。第i个粒子在D维中的速度和位置更新公式为:

(3)

(4)

1.3 卷积神经网络

卷积神经网络起始于20世纪70年代,基本特征包含稀疏连接、权重共享和降采样。其中LeNet-5是1998年LeCun等提出的迄今为止最经典的卷积神经网络结构。其网络模型结构如图1所示。

图1 LeNet-5网络结构

卷积神经网络的卷积层主要通过上一层的特征向量使用激活函数与卷积核进行卷积来进行特征提取。假设yi为神经元的输出,xi为输入向量。对于输入向量与输出向量之间对应关系可表示为:

(5)

式中:n为输入到神经元j的向量总数;*表示为卷积;wij为输入向量xi与神经元j连接的权重参数;bj为偏置参数;f()是激活函数。

本文卷积神经网络使用池化类型为Max-pooling,主要用于降采样、全连接层整合卷积层或者池化层中具有类别区分性的局部信息[14]。

2 RF-PSO-CNN的入侵检测流程

本文采用结合随机森林(RF)的粒子群(PSO)优化CNN网络结构和初始参数的融合算法构建入侵检测模型。主要使用随机森林对原始数据进行特征度量以减少数据维度和对硬件的依赖性;运用粒子群算法的全局寻优能力强、参数少等特点来优化CNN网络结构及初始权重,有效地避免了CNN使用梯度下降算法使训练落入局部最优,影响模型性能。

2.1 粒子群优化CNN结构

传统的卷积神经网络结合权值共享与局部区域连接技术,降低了网络模型的复杂度,减少了参数规模。但是,在研究过程中,传统的卷积神经网络人工选取的滤波器大小、滤波器个数、激活函数和学习率等参数对卷积神经网络学习准确率有较大影响。而且,传统卷积神经网络的初始权重在使用最陡梯度下降算法训练过程中容易陷入局部最优,对学习性能产生较大影响。所以,本文提出利用具有参数少、收敛速度快、搜索范围广等特点的粒子群算法优化CNN网络结构及初始参数。每一个粒子就是一种CNN网络结构,其原理为:在卷积神经网络计算出期望值与实际值之间的误差后,每个粒子都将CNN网络的滤波器大小、滤波器个数、激活函数、学习率、初始权重、初始偏置作为粒子维度。以卷积神经网络训练数据得到的测试误差作为适应度函数值,经过粒子群迭代选取训练过程最优模型即为最终测试模型。图2为PSO优化CNN网络结构及初始参数算法流程。

图2 PSO-CNN算法流程

PSO优化CNN网络结构和初始参数的融合算法过程如下:

(1) 初始化系统参数,如粒子群算法的迭代次数、学习因子、种群规模、每个粒子的位置向量及速度向量、常系数c1和c2、惯性权值、每个粒子个体极值与全局最优值及其他参数[15]。

(2) 设置卷积神经网络需优化的超参数取值范围,并作为各粒子维度的速度和位置的更新区间,其中粒子位置作为网络参数取值。随机生成包括位置和速度的种群粒子作为PSO粒子初始化。

(3) 将初始化粒子作为CNN网络结构,根据式(3)和式(4)更新粒子速度和位置,通过训练CNN得到CNN测试误差作为粒子适应度函数值,如果得到的适应度值优于个体最佳值,则更新个体最佳值;若得到的粒子适应度值优于群体极值,则更新群体极值;若群体极值满足阈值判定或者迭代次数结束,所得的群体极值即为所求最优的CNN网络结构。否则,返回步骤(3)。

2.2 RF-PSO-CNN算法应用

本文依据CIDF(Common Intrusion Detection Framework)及IDWG(Intrusion Detection Working Group)两个组织的入侵检测系统设计标准[16]构建基于随机森林与粒子群优化CNN结构的入侵检测模型。该模型主要包括原始数据、数据规范化、PSO-CNN模块、响应模块4个模块,其模型结构如图3所示。

图3 RF-PSO-CNN入侵检测结构

PSO-CNN模块主要分为PSO-CNN入侵检测模型和PSO-CNN检测代理两部分,PSO-CNN入侵检测模型部分功能为输入规范化数据进行模型训练得到最优分组检测模型,PSO-CNN检测代理部分功能为对数据进行分析并完成检测阶段的数据检测与处理。

结合随机森林(RF)的粒子群(PSO)优化CNN网络结构和初始参数的融合算法构建入侵检测模型过程如下:

(1) 原始数据:本实验数据集采用KDD-CUP99入侵检测数据集。

(2) 数据规范化:本文对原始数据集进行one-hot编码后,使用随机森林特征度量标准筛选显著特征,以降低数据特征数和计算复杂度。并对选择出的子特征数据集进行归一化处理,以提高网络训练准确率。

(3) PSO-CNN模块:CNN使用PSO优化后的最优参数及初始权重来进行训练样本并建造入侵检测模型,使用规范化后的测试数据对最优模型分类器进行验证分析。

(4) 响应模块:本模块主要用以接收PSO-CNN模块的检测结果,并对入侵行为进行响应。

3 实验与分析说明

3.1 数据描述

本文采用KDD-CUP99中10%的网络入侵检测数据子集,该数据集的测试数据包含了一些未出现在训练数据中的攻击类型,使得检测更具有现实性。整个数据子集中入侵行为细分为39类,又可分为远程攻击(R2L)、获取根权限攻击(U2R)、拒绝服务攻击(DOS)、探测攻击(Probe)四种类型。该数据集包含训练样本数494 021条,测试样本数311 029条。实验数据类别、数量见表1。

表1 实验数据的类别与数量

3.2 数据预处理

KDD-CUP99数据集的每条记录都有41维特征和1个被标注为正常或者异常的标签特征。本文使用Python对数据进行预处理。具体步骤如下:

(1) 字符型特征数字化后才能输入到模型,因此将41维特征中的服务类型特征转化为70维能被计算机识别的二进制特征,协议类型特征转换为3维二进制特征,状态特征转换为11维二进制特征。41维特征的数据集转换为122维数据集。

(2) 将独热编码后得到的122个数字特征,使用随机森林进行特征重要性度量,获取32维特征。

(3) 将筛选出的数值型特征进行归一化,消除特征间的量纲影响,提升模型的收敛速度。使用式(6)将数据统一映射到[0,1]区间上。

(6)

式中:Mmax为特征数据中的最大值;Mmin为特征数据中最小值;y为要归一化的特征数据。

3.3 随机森林特征提取

随机森林特征提取思想是由贝尔实验室提出的一种特征度量方法,主要通过袋外数据误差和基尼指数这两个基本指标实现特征提取。具体到本文来讲,独热编码后的特征向量还包含大量冗余和无用特征,会造成模型性能变差。为了提取出强相关性特征,使用随机森林进行特征提取处理。具体步骤:(1) 计算符号特征数字化后所得到的122维特征的重要性,并按降序排序;(2) 确定要剔除的比例,由于随机森林的随机性,每次大约产生25~35个显著特征,所以本文每次选取前35个特征;(3) 重复9次度量,选取特征交集,最终获取32维特征。

数据集经上述过程处理后,随机森林算法将无代表性的特征剔除,所产生的子数据集在随机森林群投票机制下,取得了不错的特征相关性效果。综上,随机森林算法降低了特征维数,减少了特征间的冗余性,并且使得特征可以被自动提取。

3.4 实验环境

为了验证本文提出的结合RF降维的PSO优化CNN网络结构的有效性,本文采用Linux系统,使用Python 3.6编写以TensorFlow为后端的深度学习框架Keras,该框架逻辑清晰,可快速实现卷积神经网络。

本文所述的粒子群算法和卷积神经网络算法都需要配置一些参数,其中,粒子群算法相关参数见表2,卷积神经网络相关参数初始化范围见表3。

表2 粒子群算法相关参数

表3 卷积神经网络相关参数初始化范围

本文使用卷积神经网络进行训练,其中卷积层数量为2层,卷积池化类型为Max-pooling,全连接层激活函数类型为Sigmoid,每一批次训练的批量大小为1 024,迭代次数为10次。

3.5 实验结果分析

首先在经RF预处理过的KDD-CUP99数据集下验证根据人工经验选取的卷积神经网络参数在不同的组合方式下对CNN准确率的影响,结果如表4所示。其中:C1代表第一层卷积(30(5)代表30个5×5的卷积核);C2代表第二层卷积;Acti代表两层卷积的激活函数;F-Acti代表全连接层的激活函数;α代表学习率;Acc代表准确率。

表4 人工选择的CNN结构及其识别率

CNN1与CNN2仅全连接层激活函数F-Acti不同。在Epoch=1的情况下,CNN1的精确率为42.21%,CNN2的精确率为91.54%,准确率相差49.33百分点。CNN3和CNN4卷积层不同,同样在Epoch=1的情况下,CNN3的精确率为90.91%,CNN4的精确率为92.25%,准确率相差1.34百分点。结合表4中CNN1-CNN4可知,全连接层的激活函数在使用ReLU时效果较差,卷积层中卷积核个数及大小对结果有一定的影响。综上,人工经验下选取参数对精确率有一定的影响。

其次为了确保本文方法与已有方法的对比实验的完整有效性,本文实验评价指标选择多次实验的平均值。并采用准确率、精确率、误报率三项指标对算法模型进行评价。三项指标定义如下:

本文使用数据预处理后的KDD-CUP99数据集作为输入数据,分别用于多种优化算法进行对比,仿真实验结果如表5所示。表5中最后一行是未经过任何优化的CNN,且输入数据为未经过随机森林特征筛选的大维度数据集,测试准确率、检测率较低。RF-CNN使用经过随机森林降维后的数据集作为CNN的输入数据。RF-PSO-BP用粒子群算法优化神经网络,且使用随机森林降维后的数据作为输入数据。RF-PSO-SVM是基于随机森林降维作为输入数据的粒子群方法优化SVM参数。本文方法是结合RF降维的粒子群算法优化卷积神经网络初始参数与网络结构。

表5 实验结果比较(%)

表5中,RF-CNN与CNN使用相同的网络结构及初始参数,可以发现使用随机森林降维的数据集作为输入数据的CNN较使用传统数据集的CNN在准确率、检测率上有极大提升,在误报率上有较大下降,说明使用随机森林进行特征度量的重要性。RF-PSO-BP和RF-PSO-SVM与本文所提结合RF降维的PSO-CNN相比较,可以看出传统机器学习融合群体智能算法存在入侵检测准确率低的问题。RF-CNN的识别率在此次四个对比实验中仅次于本文方法,但因其网络结构参数为人工经验选取,对其性能影响较大。本文方法使用群体智能算法PSO自动选取CNN最优网络结构,测试准确率上升至94.07%。相比于其他四者在分类上均有较好的效果;同时检测率上升至92.95%,误报率下降至1.26%。由此可知,与传统卷积神经网络及PSO融合传统机器学习相比较本文方法有较好的性能提升。

此外,使用本文方法与目前比较流行集成学习常用方法做性能对比,结果如图4所示。其中:GBDT代表梯度提升决策树算法(Gradient Boosting Decision Tree);XGBoost代表极端梯度提升(Extreme Gradient Boosting)方法。由于这里使用的四种集成学习方法用到的都是基于树的算法,所以不需要进行标准化、归一化、正则化。

图4 不同方法对比

4 结 语

针对传统卷积神经网络及PSO融合传统机器学习在入侵检测中的不足,本文提出结合RF降维的PSO优化CNN网络结构的入侵检测方法,将PSO的全局寻优特点与CNN提取特征的局部相关性能力融合起来。通过在KDD-CUP99数据集上的仿真实验证明:本文算法消除了在人工经验下选取参数的不确定性,实现了在非经验指导下选择最佳CNN结构,提高了入侵检测的准确率和精确率,并降低了误报率,为未来入侵检测系统的研究提供了新的思路和方法。

猜你喜欢
网络结构卷积粒子
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于Matlab GUI的云粒子图像回放及特征值提取
虚拟校园漫游中粒子特效的技术实现
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
问:超对称是什么?