基于DBN的入侵检测分类模型构建和优化方法
2021-12-10李玉峰明拓思宇
李玉峰,明拓思宇,魏 鹏
(1.上海大学计算机工程与科学学院,上海200444;2.31401部队,吉林吉林132000;3.61660部队,北京100089)
1 引言
DBN 是深度学习中的一种经典模型,通过学习一种深层非线性网络结构,实现对复杂函数的逼近,目的是提升分类或预测的准确性,常用模型主要是卷积神经网络、自动编码器等[1]。同时,DBN也是一种由多层无监督学习的限制玻尔兹曼机(restricted Boltzmann machine,RBM)和一层有监督学习的BP神经网络组合成的深度神经网络分类器[2],在语音识别,图像识别等领域应用广泛。
DBN基本网络结构及权值和阈值参数是分类器检测速度和精度的关键,其中,DBN的基本网络结构指DBN深度、每层神经元的个数。因此,可以通过以下两种方式优化DBN分类器性能:对DBN网络结构寻优,即找到合适的DBN深度及其每层的神经元个数,若DBN网络太复杂,会导致DBN训练时间过长,若网络太简单,则会影响DBN分类准确率;对DBN模型中基本网络结构上的权值或阈值参数进行优化调整,若参数设置不合理,则无法生成有效的训练模型,容易降低DBN分类准确率。在不确定DBN网络结构的情况下,直接优化DBN模型参数难度较大,而直接优化DBN网络结构计算成本较小,故本文通过优化DBN网络结构调整DBN模型。
DBN网络结构优化问题公开文献较少,大都采用图像领域、语音识别等领域的经验方法设定。目前,神经网络结构或参数寻优问题可借鉴的研究方法主要是演化计算[3],它是模拟自然界中生物演化过程产生的一种群体导向随机搜索技术和方法,该方法主要围绕三层神经网络结构和参数的优化问题展开研究。简要文献如下:文献[4]将通过粒子群优化算法(particle swarm optimization,PSO)优化了权重矩阵和阈值的BP神经网络(back propagation neural networks,BPNN)作为分类器;文献[5]使用RBF神经网络(radial basis function,RBFNN)作为分类器,通过PSO优化了RBFNN隐含层的宽度及隐含层到输出层间的网络权重。文献[6]将自组织径向基函数(a self-organizing radial basis function,SORBF)神经网络作为分类器,利用非线性回归函数调整PSO的惯性权重,并利用改进PSO寻优SORBF的单隐含层节点个数和网络权重。传统PSO网络结构优化算法都是针对BP、RBF等的单隐含层网络的参数和隐含层节点个数进行优化,缺乏对多隐含层神经网络结构寻优的成果。
2 相关技术
2.1 DBN
本文将DBN模型作为入侵检测分类模型,针对DBN模型中多隐含层神经网络的优化问题,提出一种用于构建和优化基于DBN的入侵检测分类模型的演化算法,将粒子和隐含层结构相对应,采用基于人工鱼群(Artificial fish swarm)PSO算法联合基于环形滑动窗口PSO算法寻优到使DBN模型分类性能优越且结构简单的隐含层结构。本文克服了文献[4]-[6]只能对单隐含层的神经网络进行优化,且优化算法结构简单,缺乏针对性问题,引入鱼群思想,有利于粒子群快速跳出局部最优解,且增加了传统粒子群位置移动方式,有利于粒子群确定最佳隐含层个数;引入滑动窗口机制,可以保留粒子群对应网络结构某些位置中较优的值,能够找到更优的网络结构。值得一提,本文DBN模型的权重或阈值参数主要是在DBN基本网络结构的基础上根据DBN自适应调节机制自动生成。
如图1所示,DBN由多层RBM和一层BP神经网络组成,其中,RBM是由输入层和隐含层组成的双层神经网络,RBM同一层节点之间缺乏直接连接,只有输入层和隐含层之间存在连接,BP神经网络是一种按误差反向传播训练的多层前馈神经网络,主要用于分类数据。DBN训练过程是自底向上利用每一层RBM对输入层的输入数据进行提取、抽象,并通过隐含层输出,将输出信息作为上层网络的输入数据。其中,上层网络指RBM网络或顶部BP神经网络,RBM个数是n(n>1),与DBN的隐含层个数相等,第d层隐含层表示为hd(d=1,2,…,n),其节点个数表示为num(hd)。
图1 DBN结构
本文的DBN基本网络结构包括输入层、输出层及每层隐含层节点个数,其中,输入层节点个数对应特征个数,输出层节点个数对应数据类别总数,因此只需寻优隐含层数n和每层隐含层节点个数num(hd)即可,为此,可以引入以粒子群为代表的演化计算以寻优网络结构。
2.2 粒子群优化算法
粒子群优化(Particle Swarm Optimization,PSO)算法是由Kennedy和Eberhart提出的一种演化方法,可以用来解决许多工程问题[7]。每个粒子都有自己的位置和移动速度。为了保存最佳位置,粒子记录其历史最好的位置,称为pbest,以及所有粒子的历史最佳位置,称为gbest,其中,粒子位置的优劣可由适应度标准判定[8]。pbest和gbest用于确定速度矢量,由xi和vstepi表示的第i个粒子的位置和速度根据以下等式(1)和(2)进行更新:
(1)
(2)
其中,t表示迭代次数,d是向量中的第d项或搜索空间的第d维,pbestid和gbestd分别表示pbest和gbest的第d维,randi1和randi2是[0,1]之间的随机数,w是惯性权重,通过式(3)确定,c1体现了粒子对自身的学习能力,c2体现了粒子对群体的学习能力[9],c1递减和c2递增有利于发挥粒子初期探索和后期对群体的认知能力。因此本文学习因子c1、c2赋值如式(4)和(5)。
(3)
(4)
(5)
其中,wmax和wmin分别表示惯性权重的最大值和最小值,maxt表示最大迭代次数,c3和c4是常数,且c3 PSO有三个主要的变体,即实数、二进制和整型PSO。由于DBN的深度和隐含层的宽度都是整型数据,因此,本文将使用整型PSO来优化DBN网络结构。 本文入侵检测分类模型DBN的基本网络结构构建和寻优概要流程如图2所示。DBN网络结构的输入层数和数据特征个数有关,输出层数和类别数量有关,故只需要寻优隐含层结构,将隐含层结构中每层隐含层节点个数和粒子中非零元素的每一维相对应,通过随机方式生成的整型粒子群swarm作为初始网络结构,swarm=[x1,x2,…,xi,…,xn]T,swarm粒子群对应的速度矩阵svstep=[vstep1,vstep2,…,vstepi,…,vstepn]T,第i个粒子位置xi=[num(hi1),num(hi2),…,num(hid),…,num(hin)],第i个粒子速度vstepi=[vsi1,vsi2,…,vsid,…,vsin],smin≤num(hid)≤smax,vmin≤vsid≤vmax,其中,smin和smax表示粒子位置中元素最小值和最大值,vmin和vmax表示粒子速度中元素最小值和最大值,num(hid)和vsid都是整数。 图2 DBN网络结构寻优概要流程 如图2所示,本文提出的鱼群思想优化PSO联合滑动窗口优化PSO算法,具有寻优DBN基本网络结构的功能,最终实现对基于DBN的入侵检测分类模型的构建和优化。首先将初始网络结构作为初始粒子群,基于鱼群行为的PSO算法搜索初始优化粒子,将搜寻到的初始优化粒子作为入侵检测模型中DBN的网络结构[10],入侵检测模型对入侵检测数据集进行检测后得到分类准确率、误报率和漏报率[11],并求解出适应度,记录每个粒子的历史个体极值,将其作为候选初始优化网络结构,然后判断是否结束迭代,若不结束则继续搜寻初始优化网络结构,否则选取历史个体极值平均适应度最优粒子的前N个最优个体极值作为初始优化网络结构。将初始优化网络结构作为初始粒子群,基于环形滑动窗口的PSO算法搜寻全局优化网络结构,搜寻过程和基于鱼群行为的PSO算法寻优初始优化粒子流程基本相同,其中,将每轮迭代中适应度最优粒子作为候选全局优化网络结构,迭代结束后将适应度最优粒子作为全局优化网络结构,最终完成对入侵检测分类模型的构建和优化过程。 针对图2中的适应度标准,本文提出的适应度函数如式(6)。 (6) ERRate=1-Accuracy (7) 其中,Accuracy指分类准确率,如式(8)。 (8) 其中,在入侵检测中TP和TN表示正确分类的正常数据和异常数据;FP和FN表示错误分类的正常数据和异常数据,即误报和漏报。 (9) (10) 通过构建如式(6)的适应度函数,在确保Accuracy的前提下,本文方法可找到DBN隐含层深度dim和整体网络结构xi的优化配置组合,实现了对DBN网络结构的寻优。 人工鱼群算法是一种基于动物自治体的优化策略[12],其基本思想是:鱼类聚集至多的地方食物一般也非常丰富;根据上述特点构造人工鱼,并模拟鱼群聚群、追尾和觅食行为[13],通过鱼群虚拟水域中游动实现寻优。 本文利用鱼群思想优化PSO寻找初始优化粒子,将人工鱼群算法中的聚群、追尾和觅食行为用于改进PSO算法的移动方式,基于鱼群思想的粒子群算法基本流程如下: 算法1:粒子群聚群活动算法 Step1:粒子执行聚群行为:探测其邻域粒子中心xj,若适应度(求极小值问题)Fitnessi>Fitnessj,则向中心位置xj如式(11)前进一步,否则跳到Step2。其中,函数rand产生范围[0,1]的随机数 (11) Step2:粒子执行觅食行为:在其Visual内随机选择一个粒子xk,xk如式(12)。如果适应度(求极小值问题)Fitnessi>Fitnessk,则向该方向前进一步,如式(13)。其中,Step (12) (13) Step3:粒子执行随机行为:当前粒子在视野范围内随机选择一个新粒子,然后向该粒子方向移动,作为一种缺省行为,如式(14); (14) 虽然鱼群优化PSO可以寻优初始优化粒子,但是粒子群的移动会改变所有位置的值,不会留存某些位置较优的值。本文在寻优初始优化粒子基础上,引入滑动窗口机制优化粒子群算法,寻找全局优化粒子。 传统PSO基于全维度向个体极值和群落全局最优解的位置移动,粒子群无法保留某些维对应的优良值,致使无法找到更好的优化解。滑动窗口是通信领域中的一种流量控制技术,可用来控制网络中的流量[15]。本文将滑动窗口用于优化粒子群移动,通过限定粒子指定长度的连续位置,控制粒子部分维度进行移动,能够更精确地找到优化解[16]。但如果初始粒子群不够优良,基于环形滑动窗口的粒子群算法寻优效果会受影响。本文在鱼群思想优化粒子群得到优良粒子的基础上,利用基于环形滑动窗口的粒子群进行搜索,环形滑动窗口基本结构如图3:其中,1,2,…,n表示粒子的维数,本文中基于滑动窗口的粒子群算法基本流程如下: 算法2:粒子群环形滑动窗口算法 Step1:判定迭代次数d是否满足d 图3 环形滑动窗口图 综上,将鱼群思想优化PSO和环形滑动窗口优化PSO算法相结合,该算法首先利用鱼群思想优化的PSO搜索初始优化粒子,再利用滑动窗口优化的PSO对初始优化粒子搜索找到全局优化解。本文算法中粒子群大小均为n2,粒子中非零元素个数和隐含层个数一致,其中,鱼群思想优化的PSO中粒子群swarm中粒子的维度取决于n的大小,即联合算法中第n次迭代的鱼群思想优化PSO中粒子群总维度就是n;环形滑动窗口优化的PSO中粒子群swarm2第i个粒子表示有length个隐含层的网络结构,第i个粒子xi=[num(hi1),num(hi2),…,num(hilength)],粒子速度vstepi=[vsi1,vsi2,…,vsilength],length取决于初始优化粒子的维度。本文算法基本流程如算法3:该算法中,鱼群思想优化PSO算法模仿学习了鸟群飞行过程,并利用鱼群思想中的追尾、觅食、聚群行为丰富和优化鸟群的飞行行为,有利于寻优到效果较为良好的初始优化解。将初始优化解作为滑动窗口优化PSO的初始解,滑动窗口优化PSO算法中的滑动窗口可以用来控制粒子中允许进行飞行行为的维度,有利于保护效果较为良好的部分维度,并继续对滑动窗口范围内的维度进行搜索,可以更精确有效地搜寻到效果较好的全局优化解。 入侵检测系统(intrusion detection system,IDS)通过对网络上获取的信息进行分析处理,实现对攻击行为的检测,文献[17]将DBN应用于入侵检测模型中,基于KDD CUP99数据集进行实验,发现DBN性能优于支持向量机(support vector machine,SVM) 算法3:鱼群思想优化PSO联合滑动窗口优化PSO算法 输入:训练集Trset,测试集Teset,粒子群的权值w,学习因子c1、c2,粒子最大速度vmax和最小速度vmin,聚群或觅食行为的试探次数trytimes,视野范围Visual,移动步长Step,DBN隐含层最大宽度smax和最小宽度smin,鱼群思想优化PSO的最大迭代次数fmaxiter和环形滑动窗口优化PSO的最大迭代次数wmaxiter,迭代次数iter=0,iter2=0,窗口滑动次数d=0,DBN隐含层数n=1,最大DBN隐含层数nmax 输出:全局优化极值gbest Step1:若n≤nmax,跳到Step2,否则跳到Step9; Step2:根据n值随机初始化粒子群swarm,初始化swarm2为零矩阵,求解swarm的适应度fswarm,初始化pbest为swarm,初始化gbest为swarm中最优适应度粒子,并求其适应度fgbest,初始化第i个粒子pbest的极值记录矩阵temppbesti和其适应度ftemppbesti; Step3:鱼群优化过程中,若当前迭代次数iter≤fmaxiter,跳到Step4,否则跳到Step5; Step4:更新粒子惯性权重,粒子群速度、位置及其适应度,pbest和gbest及其适应度。粒子群如算法1执行聚群活动算法,并记录每个粒子的pbest到temppbest中,然后跳到Step3; Step5:求解每个粒子temppbest的平均适应度,选取temppbest平均适应度最优的粒子,将该粒子temppbest中适应度最优前n个pbest清除零元素后赋值给新的粒子群swarm2,并更新ftemppbest; Step6:滑动窗口优化过程中,若当前迭代次数iter2≤wmaxiter,跳到Step7,否则跳到Step8; Step7:如式(3)更新粒子惯性权重w,如式(4),(5)更新学习因子c1、c2,粒子群如算法2执行基于环形滑动窗口的PSO算法,然后跳到Step6; Step8:将每次循环后得到的全局优化粒子gbest当作DBN在隐含层数为n的优化网络结构,并记录下来,且令n=n+1,然后跳到Step1。 Step9:选取DBN隐含层数为n(n=1,2,…,nmax)中适应度最优的DBN隐含层结构。 Step10:基于适应度最优的DBN隐含层结构构建DBN最终分类模型和人工神经网络(artificial neural network,ANN)。 文献[18]提出一种基于DBN和概率神经网络(probabilistic neural network,PNN)的入侵检测模型,利用DBN模型对入侵数据降维,并使用PNN对降维后的数据进行分类,实验结果表明DBN-PNN分类性能优于传统PNN。其中,DBN的网络结构直接决定入侵检测性能。虽然已有DBN应用于入侵检测的相关成果,但缺乏对DBN网络结构寻优的研究,本文将第三章方法用于寻找DBN优化网络结构,然后构建出DBN分类模型,将其应用于IDS中,并取得了良好的实验效果。 KDD CUP99数据集是网络入侵检测领域的标准数据集,其源于美国国防部高级计划署DARPA的入侵检测项目,由Lincoln实验室主持完成。虽然该数据集到目前已有近20年历史,但其仍然反映了网络中最基本的攻击类型和攻击特征,是入侵检测领域的事实Benchmark,为基于计算智能的入侵检测技术研究奠定了基础[19]。因此,即使在当前网络环境下,该数据集也常被研究人员应用在学术范围内检验入侵检测分类模型的优劣。KDD CUP99数据集中每个网络连接都标记为正常和异常,异常类型分为Probe(扫描与探测)、DoS(拒绝服务攻击)、U2R(对本地超级用户的非法访问)和R2L(未经授权的远程访问)等4大类型,包含共39种攻击类型。 本文选取的KDD CUP99样本数据集如表1所示。 表1 KDD CUP99样本数据集 深度信念网络的输入层神经元中必须输入浮点数,浮点数值的范围是从0到1。预处理数据有两个阶段,如下所示: 1)特征的数值化。 使用新的编码映射方法,可以将protocol_type特征映射到有序数字,例如协议类型:tcp=[1,0,0],协议类型:udp=[0,1,0],协议类型:icmp3=[0,0,1]。同样,具有53个不同值的符号特征“service”和具有10个不同值的“flag”特征可以映射到有序数字。最后,41个特征被数字化为104个特征。 2)数字特征的归一化。 为了消除每个特征的维数影响,必须对训练集和测试集进行归一化。根据下面的数据变换式(15),在第一阶段获得的数据集 (15) 中的每个数值在范围[0,1]上被归一化。 其中,Yoriginal是一个数值,Ymin是属于y特征的最小值,Ymax是属于y特征的最大值。 六种优化算法公共参数如表2所示。本文算法非公共参数设置如下:设置权值wmax=0.9,wmin=0.4,学习因子c1=1.5,c2=1.0,聚群行为的试探次数Trytimes=5,视野范围Visual=150,设置移动步长Step=5。设置循环次数fmaxiter略多于wmaxiter更有利于寻优初始解,且不会影响寻优全局优化解,因此,设置本文循环次数fmaxiter=60,wmaxiter=40。其它优化算法循环次数均设置为maxiter=100。 表2 六种优化算法公共参数设置 本文实验的计算机操作系统为 Windows 10,处理器为Intel(R)Core(TM)i5-3230M 2.60 GHz,内存为4GB,测试环境为Matlab 2014b。本文在4.3节参数条件下进行实验,从寻优到的DBN模型最优网络结构、平均训练时间、平均检测时间、平均分类准确率、平均误报率六个方面,对比了APSO[6]、CMPSO[20]、PSO[21]、本文算法的分支人工鱼群算法优化PSO(AFSA-PSO)和滑动窗口优化PSO算法,得到如下实验结果。 1)表3给出了六种优化算法在10次相同实验寻优到的网络结构中最佳DBN网络结构。从表3中发现,相较其它优化算法,本文算法及其分支人工鱼群优化PSO算法得到的DBN模型最优网络结构隐含层数只有四层,且隐含层节点总数至少,有利于提高入侵检测中的检测速度。 表3 六种优化算法得到的DBN模型最优网络结构 2)表4给出了六种优化算法10次相同实验下寻优到的网络结构平均训练时间以及最佳DBN网络结构的平均检测时间,从图4和图5中发现,不同数据集中,相比其它模型,本文算法寻优的最佳网络结构的训练时间增加了至多7.37%,但平均检测时间降低了至少7.51%,至多54.96%,由此说明,本文算法时间复杂度虽然略微提升,但却能有效寻找到更优的网络结构。其中,AFSA-PSO算法得到的训练时间是最长的,但是得到的检测时间仅长于本文算法;滑动窗口优化PSO得到的训练时间和检测时间在优化算法中均处于中等水平。本文算法将上述两者相联合进行寻优,虽然以提高一定训练时间为代价,但有利于获取使得检测时间更短的DBN网络结构。 图4 六种优化算法平均训练时间对比 图5 六种优化算法平均检测时间对比 表4 六种优化算法得到的平均训练时间和平均检测时间 3)表5中给出了六种优化算法得到的最佳DBN网络结构平均分类准确率以及平均误报率对比。从表5、图6和图7中发现:本文算法寻优的最佳网络结构相比其它模型,平均分类准确率增加至少0.924%,至多2.176%,平均误报率降低了至少0.228%,至多0.864%,相较其它优化算法,本文算法得到的平均分类准确率高于其它算法,平均误报率低于其它优化算法。本文方法得到的DBN模型网络结构优于其它优化算法,得到的DBN模型具有更高的平均分类准确率、更低的平均误报率,DBN模型的平均检测时间更短。其中,AFSA-PSO算法得到的分类准确率和评价误报率在优化算法中处于较高的水平;虽然滑动窗口优化PSO算法得到的训练时间和测试时间处于中等水平,但是得到的平均分类准确率和误报率处于较低水平。通过将上述两者相联合进行优化得到的本文算法,在实验测试中发现可以有效提升所得DBN网络结构构建入侵检测模型的性能。由此说明,本文设计的算法中:人工鱼群优化PSO算法本身性能较为优越,但有一定局限性,无法寻优到更好的优化解;滑动窗口优化PSO算法性能虽然一般,但在前置算法得到良好基础解的情况下,有利于寻优到更好的全局优化解。 表5 六种优化算法得到的平均分类准确率和平均误报率 图6 六种优化算法平均分类准确率对比 图7 六种优化算法平均误报率对比 DBN深度学习模型分类性能优异,被广泛应用于语音识别、图像识别等领域,其良好的分类性能也使其适用于入侵检测中,而网络结构是决定DBN模型分类性能的关键之一,然而,公开文献中少见此类研究。本文提出的一种改进粒子群联合算法寻优DBN网络结构算法,研究了1.DBN网络结构的具体寻优方法;2.鱼群思想在改进粒子群算法搜索机制中的研究;3.滑动窗口在改进粒子群算法搜索机制中的研究;4.改进粒子群联合算法在网络结构寻优中的应用。本文寻优到的最佳网络结构相比其它模型,训练时间增加了至多7.37%,但平均检测时间降低了至少7.51%,至多54.96%,平均分类准确率增加了至少0.924%,至多2.176%,平均误报率降低了至少0.228%,至多0.864%,经过实验表明,有效增加了平均分类准确率,降低了平均检测时间和平均误报率。但是,本文方法是在有限隐含层范围内寻优到效果良好的DBN网络结构,若DBN最大隐含层数设置过大,会使训练时间对适应度造成较大影响,不利于寻优到效果良好的DBN网络结构,下一步可以探究一种更合适的适应度函数,抛去训练时间对于适应度可能存在的过量影响,并在该结构基础上,改进DBN网络结构上的权值或阈值参数,从而进一步优化基于DBN的入侵检测分类模型。本文方法不仅适用于寻优入侵检测中DBN网络结构,还适应于对其它非线性系统或实时系统中深度神经网络结构的寻优,在这些系统中,都存在对数据进行检测和分类的需求,因此,本文方法具有一定的普适性。3 入侵检测分类模型构建和优化方法
3.1 鱼群思想优化PSO算法
3.2 滑动窗口优化PSO算法
3.3 鱼群思想优化PSO联合滑动窗口优化PSO算法应用于入侵检测分类模型
4 实验设计与结果
4.1 KDD CUP99样本数据集的选取
4.2 数据预处理
4.3 参数设置
4.4 实验结果
5 结束语