基于DBN-KELM的入侵检测算法

  • 格式:docx
  • 大小:42.63 KB
  • 文档页数:11

基于DBN-KELM的入侵检测算法

汪洋; 伍忠东; 火忠彩

【期刊名称】《《计算机工程》》

【年(卷),期】2019(045)010

【总页数】6页(P171-175,182)

【关键词】深度学习; 深度信念网络; 特征提取; 核极限学习机; 入侵检测

【作 者】汪洋; 伍忠东; 火忠彩

【作者单位】兰州交通大学电子与信息工程学院 兰州730070

【正文语种】中 文

【中图分类】TP393

0 概述

机器学习算法相对于传统的入侵检测算法具有检测率高、误报率低的优势,在入侵检测方面得到了广泛的应用。但传统的机器学习方法需要人工构建样本特征,依赖性较强,无法应对海量多源异构的网络入侵数据。深度学习的发展弥补了传统机器学习的不足,通过对训练样本进行学习可以得到数据抽象特征,无需人工预处理数据。目前的相关研究有:文献[1]提出基于深度信念网络(Deep Belief Network,DBN)的入侵检测算法;文献[2]构建深度学习混合模型DBN-SVM用于入侵检测;文献[3]提出基于深度学习的混合入侵检测模型;文献[4]利用差分进化算法改进深度信念网络,提出基于差分进化与深度学习的入侵检测算法;文献[5]通过卷积神经网络研究入侵检测问题,分别提出基于深度学习和迁移学习的入侵检测方案,得到的结果均优于传统机器学习入侵检测算法;文献[6]提出基于DBN-ELM的入侵检测算法,得到的检测结果优于传统的DBN学习算法。

本文对深度信念网络和核极限学习机(Kernel Extreme Learning Machine,KELM)进行研究,结合DBN网络自动提取特征的能力和KELM学习速率快、泛化性能好的优势,提出DBN-KELM入侵检测算法。

1 DBN-KELM入侵检测模型

1.1 总体架构

本文提出的基于DBN-KELM的入侵检测算法,其模型总体框架如图1所示,主要包括3个步骤:

1)数据预处理。将获取的网络数据中的符号特征转化成数值数据,再将数据均值化到0~1。

2)DBN抽象特征提取。包含DBN的预训练以及BP网络的反向权值微调,得到低维表示的网络数据。

3)KELM分类。DBN训练完成后替换原BP分类器,抽取少量的标签数据对DBN提取的抽象特征进行极限学习,完成对5种攻击类型的识别。

图1 DBN-KELM入侵检测模型结构

1.2 DBN抽象特征提取

深度信念网络[7]是一种生成性深度结构。含有n个隐藏层的DBN模型可以表示为:

p(x,g1,g2,…,gn)=

p(x|g1)p(g1|g2)…p(gn-1|gn)

(1)

其条件概率p(gi|gi+1)如式(2)所示。

(2)

在式(1)中,gi表示DBN第i个隐藏层向量。在式(2)中,为第i层节点的权重矩阵Wi中的元素,为第i层第j个节点的偏置,σ为各层的激活函数,如式(3)所示。

(3)

每个DBN网络由多个RBM和一层BP网络堆叠而成,如图2所示,其训练过程可分解为对RBM的逐层无监督预训练和对BP网络进行反向误差传播微调权值。

图2 DBN模型

1.2.1 RBM无监督学习算法

RBM由可见层(n个神经元)和隐藏层(m个神经元)构成,如图3所示。每个RBM的参数为θ={W,b,c}。其中,W是可见层到隐藏层节点的连接权重矩阵,b是可见层到隐藏层的偏置矩阵,c是隐藏层到可见层的偏置矩阵,vi是第i个可视层神经元的状态,hj是第j个隐藏层神经元的状态。

图3 RBM模型结构

RBM的学习过程就是确定参数θ。RBM采用的学习算法是CD快速学习算法(对比散度学习算法)[8-9],算法描述如下:

算法1 对比散度学习算法

输入 训练样本x0,隐藏层神经元个数m,学习率ε,最大迭代次数L

输出 RBM参数θ={W,b,c}

训练阶段:v0=x0,初始化θ为很小的数

对所有隐藏层单元:

计算

从条件分布p(h1j=1|v1)中抽取h1j∈(0,1) 对所有可见层单元:

计算

从条件分布p(v2i=1|h1)中抽取v2i∈(0,1)

对所有隐藏层单元:

计算

更新参数:

c←c+ε(v1-v2)

b←c+ε(p(h1=1|v1)-p(h2=1|v2))

1.2.2 BP权值微调

预训练完成后,通过BP算法利用少量标签数据对DBN进行监督训练。BP算法将输出值与数据标签对比得到误差,并将其传播至每一层RBM,以最大似然函数为目标函数微调各层权重和偏置,使整个DBN网络达到全局最优,算法具体描述如下:

算法2 反向传播算法

输入 预训练后的DBN参数θ={W,b,c},训练样本,最大迭代次数L

输出 微调后的DBN参数θ′={W,b,c}

训练阶段:对每一个样本vi计算DBN的重构输出v′i,反向传播误差

对每个输出单元计算误差δk:

δk=v′k(1-v′k)(vk-v′k)

对每个隐藏层单元计算误差δh:

更新参数:

θji=θji+Δθji,其中,Δθji=ηδjxj,η为学习率

1.3 KELM分类算法 1.3.1 极限学习机

极限学习机是一种单隐层前馈神经网络,其隐藏层节点参数无需通过迭代算法进行调整,只需要设置隐藏层节点数就可以通过一次性学习得到唯一的最优值[10]。ELM输出函数定义如下:

(4)

在式(4)中,β是隐藏层节点和输出节点之间的输出向量,h(x)是隐藏层节点的输出向量,其中:

(5)

β=[β1β2…βL]T

(6)

因此,ELM的训练过程可等效为求解方程Hβ=T。

求解方程Hβ=T得到β=H+T。其中,H+是隐藏层输出矩阵H的广义逆,是训练样本标签,当HHT非奇异时,H+=HT(HHT)-1,β=HT(HHT)-1T,当HTH非奇异时,H+=(HTH)-1HT,β=(HTH)-1HTT。因此,在这两种情况下ELM的输出函数分别如式(7)和式(8)所示,具体的推导过程可参考文献[10]。

(7)

(8)

1.3.2 核极限学习机

文献[11]研究了最小支持二乘向量机,发现核函数处理大规模复杂数据的优势并将其应用到ELM中,提出了核极限学习机算法。 由核学习理论[12]可知,在KELM学习算法中,式(7)和式(8)中的HHT可由核函数替代,定义ELM的核学习矩阵如下:

ΩELM=HHT

ΩELMij=h(xi)h(xj)=K(xi,xj)

(9)

其中,ΩELM是训练样本的核矩阵,K(xi,xj)为核函数。KELM在ELM的基础上使用核映射取代了ELM的随机映射,通过核函数的计算得到输入到输出的关系矩阵β。文献[12-13]给出了核函数的理论以及4种常用的核函数,本文实验选择的是高斯核函数。

K(x,xi)=exp(-γ‖x-xi‖2),γ>0

(10)

将式(9)带入式(7)中,得到KELM的输出函数:

f(x)=[k(x,x1)k(x,x2)…k(x,xN)]×

(11)

2 实验与结果分析

2.1 数据集预处理

实验采用的数据集是NSL-KDD数据集[14],NSL-KDD是KDD99经过筛选后的数据集,分为训练集(25 192条)和测试集(22 543条)2个部分,数据集将异常类型分成DoS、R2L、U2R、Probe 4大类(具体分布情况如表1所示,所占比例如图4所示),具体分为39种攻击方式。

表1 各类样本分布情况数据集NormalDoSU2RR2LProbe训练集13 4499

234112092 289测试集9 7107 4582002 7542 421

图4 各类样本所占比例 数据集有41维特征,其中包含字符型和数字型。在训练之前,首先将字符数据转化成二进制向量。如协议类型TCP、UDP、ICMP分别表示为[0,0,1]、[0,1,0]、[1,0,0]。标签类型Normal、DoS、R2L、U2R、Probe表示为[0,0,0,0,1]、[0,0,0,1,0]、[0,0,1,0,0]、[0,1,0,0,0]、[1,0,0,0,0]。字符数据映射完成之后进行数据均值化处理,将各维数据归一化到0~1,转化公式如下:

(12)

2.2 实验评价标准

入侵检测系统通常需要高准确率,以及低误警率,本文实验采用准确率AC以及误报率FA作为入侵检测的评价标准,如式(13)和式(14)所示。

(13)

(14)

其中,TN表示正常样本正确分类的个数,TP表示攻击样本正确分类的个数,FP表示正常样本误报为攻击的个数,FN表示攻击样本误报为正常的个数。

2.3 实验参数设置

文献[15]对DBN的隐藏层数设置进行了具体的分析,本文实验中DBN设置为122-100-70-30,预训练算法迭代次数100次,BP微调次数150次,KELM核函数选用RBF核函数,参数(γ,C)设置为(23,26)。与之对比的DBN采用相同的网络参数,DBN-ELM的正则化系数C为210,隐藏层节点数为100。DBN-SVM参数C为1 000,g为0.000 01。

2.4 结果分析

使用NSL-KDD训练集数据对DBN进行预训练,预训练完成后用不同比例的标签数据进行监督训练。抽取30%的NSL-KDD测试集完成测试。表2~表4展示了KELM、DBN、DBN-KELM算法分别在10%、20%、30%、40%训练集比例下对各类样本的识别率,图5和图6展示了3种算法的整体分类准确率和误报率。

表2 KELM对各类攻击识别率 %训练集比例NormalDoSU2RR2LProbe1091.2583.2724.2651.5079.102092.3590.6028.0365.6880.733093.1088.0150.4460.0086.714094.5391.6053.0061.5186.72

表3 DBN对各类攻击识别率 %训练集比例NormalDoSU2RR2LProbe1094.5583.608.0063.9183.932095.7397.0633.0066.9784.923096.5197.4543.0062.3891.124097.0197.0052.4868.6792.77

表4 DBN-KELM对各类攻击识别率 %训练集比例NormalDoSU2RR2LProbe1094.5281.9942.0066.0984.562095.1096.3966.0079.2393.183096.6397.3067.0080.2394.314097.8297.6570.0080.2395.29

图5 不同训练集比例下3种算法的分类准确率

图6 不同训练集比例下3种算法的误报率

实验结果表明:改进后的混合深度学习算法DBN-KELM在40%训练集比例下的整体分类准确率达到95.29%,较DBN提高2.6%,较KELM提高5.98%;对在训练集中含量仅0.04%左右的U2R样本的检测率达到70%,较KELM提高17%,较DBN提高17.52%;在其余各训练集比例下DBN-KELM算法的性能均优于DBN和KELM,说明改进后的算法充分发挥了DBN提取抽象特征的能力以及KELM的泛化能力。

表5展示了DBN-KELM和原始的KELM算法分类器在相同训练集比例下的训练时间,结果表明KELM算法随训练数据的增加,训练时间成倍增加。经过DBN提取抽象特征后分类器KELM的训练时间明显降低,数据量越大,降低得越多,证明改进后的算法更适应海量数据下的入侵检测。