机器学习算法相对于传统的入侵检测算法具有检测率高、误报率低的优势, 在入侵检测方面得到了广泛的应用。但传统的机器学习方法需要人工构建样本特征, 依赖性较强, 无法应对海量多源异构的网络入侵数据。深度学习的发展弥补了传统机器学习的不足, 通过对训练样本进行学习可以得到数据抽象特征, 无需人工预处理数据。目前的相关研究有:文献[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个步骤:
|
Download:
|
| 图 1 DBN-KELM入侵检测模型结构 | |
1) 数据预处理。将获取的网络数据中的符号特征转化成数值数据, 再将数据均值化到0~1。
2) DBN抽象特征提取。包含DBN的预训练以及BP网络的反向权值微调, 得到低维表示的网络数据。
3) KELM分类。DBN训练完成后替换原BP分类器, 抽取少量的标签数据对DBN提取的抽象特征进行极限学习, 完成对5种攻击类型的识别。
1.2 DBN抽象特征提取深度信念网络[7]是一种生成性深度结构。含有n个隐藏层的DBN模型可以表示为:
| $ \begin{array}{l} p\left( {x,{\mathit{\boldsymbol{g}}_1},{\mathit{\boldsymbol{g}}_2}, \cdots ,{\mathit{\boldsymbol{g}}_n}} \right) = \\ \;\;\;\;\;\;\;p\left( {x|{\mathit{\boldsymbol{g}}_1}} \right)p\left( {{\mathit{\boldsymbol{g}}_1}|{\mathit{\boldsymbol{g}}_2}} \right) \cdots p\left( {{\mathit{\boldsymbol{g}}_{n - 1}}|{\mathit{\boldsymbol{g}}_n}} \right) \end{array} $ | (1) |
其条件概率p(gi|gi+1)如式(2)所示。
| $ p\left( {{\mathit{\boldsymbol{g}}_i}|{\mathit{\boldsymbol{g}}_{i + 1}}} \right) = \sigma \left( { - b_i^j - \sum\limits_{k = 1}^{{n_{i + 1}}} {W_i^{kj}} \mathit{\boldsymbol{g}}_{i + 1}^k} \right) $ | (2) |
在式(1)中, gi表示DBN第i个隐藏层向量。在式(2)中, wikj为第i层节点的权重矩阵Wi中的元素, bij为第i层第j个节点的偏置, σ为各层的激活函数, 如式(3)所示。
| $ \sigma (x) = \frac{1}{{1 + \exp (x)}} $ | (3) |
每个DBN网络由多个RBM和一层BP网络堆叠而成, 如图 2所示, 其训练过程可分解为对RBM的逐层无监督预训练和对BP网络进行反向误差传播微调权值。
|
Download:
|
| 图 2 DBN模型 | |
RBM由可见层(n个神经元)和隐藏层(m个神经元)构成, 如图 3所示。每个RBM的参数为θ={W, b, c}。其中, W是可见层到隐藏层节点的连接权重矩阵, b是可见层到隐藏层的偏置矩阵, c是隐藏层到可见层的偏置矩阵, vi是第i个可视层神经元的状态, hj是第j个隐藏层神经元的状态。
|
Download:
|
| 图 3 RBM模型结构 | |
RBM的学习过程就是确定参数θ。RBM采用的学习算法是CD快速学习算法(对比散度学习算法)[8-9], 算法描述如下:
算法1 对比散度学习算法
输入 训练样本x0, 隐藏层神经元个数m, 学习率ε, 最大迭代次数L
输出 RBM参数θ={W, b, c}
训练阶段:v0=x0, 初始化θ为很小的数
对所有隐藏层单元:
计算p(h1j=1|v1)=σ(bj+
从条件分布p(h1j=1|v1)中抽取h1j∈(0, 1)
对所有可见层单元:
计算p(v2i=1|h1)=σ(ci+
从条件分布p(v2i=1|h1)中抽取v2i∈(0, 1)
对所有隐藏层单元:
计算p(h2j=1|v2)=σ(bj+
更新参数:
| $ {\rm{W}} \leftarrow {\rm{W}} + {\rm{ \mathsf{ ε} }}\left( {{\rm{p}}\left( {{{\rm{h}}_1} = 1|{{\rm{v}}_1}} \right){\rm{v}}_1^{\rm{T}} - {\rm{p}}\left( {{{\rm{h}}_2} = 1|{{\rm{v}}_2}} \right){\rm{v}}_2^{\rm{T}}} \right) $ |
| $ {\rm{c}} \leftarrow {\rm{c}} + {\rm{ \mathsf{ ε} }}\left( {{{\rm{v}}_1} - {{\rm{v}}_2}} \right) $ |
| $ {\rm{b}} \leftarrow {\rm{c}} + {\rm{ \mathsf{ ε} }}\left( {{\rm{p}}\left( {{{\rm{h}}_1} = 1|{{\rm{v}}_1}} \right) - {\rm{p}}\left( {{{\rm{h}}_2} = 1|{{\rm{v}}_2}} \right)} \right) $ |
预训练完成后, 通过BP算法利用少量标签数据对DBN进行监督训练。BP算法将输出值与数据标签对比得到误差, 并将其传播至每一层RBM, 以最大似然函数为目标函数微调各层权重和偏置, 使整个DBN网络达到全局最优, 算法具体描述如下:
算法2 反向传播算法
输入 预训练后的DBN参数θ={W, b, c}, 训练样本<vi, ti>, 最大迭代次数L
输出 微调后的DBN参数θ′={W, b, c}
训练阶段:对每一个样本vi计算DBN的重构输出v′i, 反向传播误差
对每个输出单元计算误差δk:
| $ {{\rm{ \mathsf{ δ} }}_{\rm{k}}} = {{{\rm{v'}}}_{\rm{k}}}\left( {1 - {{{\rm{v'}}}_{\rm{k}}}} \right)\left( {{{\rm{v}}_{\rm{k}}} - {{{\rm{v'}}}_{\rm{k}}}} \right) $ |
对每个隐藏层单元计算误差δh:
| $ {{\rm{ \mathsf{ δ} }}_{\rm{h}}} = {{{\rm{v'}}}_{\rm{h}}}\left( {1 - {{{\rm{v'}}}_{\rm{h}}}} \right)\sum\limits_{{\rm{k}} \in {\rm{outputs}}} {{{\rm{ \mathsf{ θ} }}_{{\rm{kh}}}}{{\rm{ \mathsf{ δ} }}_{\rm{k}}}} $ |
更新参数:
| $ {{\rm{ \mathsf{ θ} }}_{{\rm{ji}}}} = {{\rm{ \mathsf{ θ} }}_{{\rm{ji}}}} + \Delta {{\rm{ \mathsf{ θ} }}_{{\rm{ji}}}},其中,\Delta {{\rm{ \mathsf{ θ} }} _{{\rm{ji}}}} = {\rm{ \mathsf{ η} }} {{\rm{ \mathsf{ δ} }}_{\rm{j}}}{{\rm{x}}_{\rm{j}}},{\rm{ \mathsf{ η} }} \;为学习率 $ |
极限学习机是一种单隐层前馈神经网络, 其隐藏层节点参数无需通过迭代算法进行调整, 只需要设置隐藏层节点数就可以通过一次性学习得到唯一的最优值[10]。ELM输出函数定义如下:
| $ {f_L}(x) = \sum\limits_{i = 1}^L {{\beta _i}} {h_i}(x) = \mathit{\boldsymbol{h}}(x)\mathit{\boldsymbol{\beta }} = \mathit{\boldsymbol{H\beta }} $ | (4) |
在式(4)中, β是隐藏层节点和输出节点之间的输出向量, h(x)是隐藏层节点的输出向量, 其中:
| $ \mathit{\boldsymbol{H}} = \mathit{\boldsymbol{h}}\left( x \right) = \left[ {\begin{array}{*{20}{c}} {{h_1}\left( {{x_1}} \right)}&{{h_2}\left( {{x_1}} \right)}& \cdots &{{h_L}\left( {{x_1}} \right)}\\ {{h_1}\left( {{x_2}} \right)}&{{h_2}\left( {{x_2}} \right)}& \cdots &{{h_L}\left( {{x_2}} \right)}\\ \vdots & \vdots &{}& \vdots \\ {{h_1}\left( {{x_N}} \right)}&{{h_2}\left( {{x_N}} \right)}& \cdots &{{h_L}\left( {{x_N}} \right)} \end{array}} \right] $ | (5) |
| $ \mathit{\boldsymbol{\beta }} = {\left[ {{\beta _1}{\beta _2} \cdots {\beta _L}} \right]^{\rm{T}}} $ | (6) |
因此, ELM的训练过程可等效为求解方程Hβ=T。
求解方程Hβ=T得到β=H+T。其中, H+是隐藏层输出矩阵H的广义逆, T=[t1Tt1T…tNT]T是训练样本标签, 当HHT非奇异时, H+=HT(HHT)-1, β=HT(HHT)-1T, 当HTH非奇异时, H+=(HTH)-1HT, β=(HTH)-1HTT。因此, 在这两种情况下ELM的输出函数分别如式(7)和式(8)所示, 具体的推导过程可参考文献[10]。
| $ f(x) = \mathit{\boldsymbol{h}}(x){\mathit{\boldsymbol{H}}^{\rm{T}}}{\left( {\frac{I}{C} + \mathit{\boldsymbol{H}}{\mathit{\boldsymbol{H}}^{\rm{T}}}} \right)^{ - 1}}\mathit{\boldsymbol{T}} $ | (7) |
| $ f(x) = \mathit{\boldsymbol{h}}(x){\left( {\frac{I}{C} + {\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{H}}} \right)^{ - 1}}{\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{T}} $ | (8) |
文献[11]研究了最小支持二乘向量机, 发现核函数处理大规模复杂数据的优势并将其应用到ELM中, 提出了核极限学习机算法。
由核学习理论[12]可知, 在KELM学习算法中, 式(7)和式(8)中的HHT可由核函数替代, 定义ELM的核学习矩阵如下:
| $ \begin{array}{l} {\mathit{\boldsymbol{ \boldsymbol{\varOmega} }}_{{\rm{ELM}}}} = \mathit{\boldsymbol{H}}{\mathit{\boldsymbol{H}}^{\rm{T}}}\\ {\mathit{\boldsymbol{ \boldsymbol{\varOmega} }}_{{\rm{EL}}{{\rm{M}}_{ij}}}} = h\left( {{x_i}} \right)h\left( {{x_j}} \right) = K\left( {{x_i},{x_j}} \right) \end{array} $ | (9) |
其中, ΩELM是训练样本的核矩阵, K(xi, xj)为核函数。KELM在ELM的基础上使用核映射取代了ELM的随机映射, 通过核函数的计算得到输入到输出的关系矩阵β。文献[12-13]给出了核函数的理论以及4种常用的核函数, 本文实验选择的是高斯核函数。
| $ K\left( {x,{x_i}} \right) = \exp \left( { - \gamma {{\left\| {x - {x_i}} \right\|}^2}} \right),\gamma > 0 $ | (10) |
将式(9)带入式(7)中, 得到KELM的输出函数:
| $ \begin{array}{l} f(x) = \left[ {k\left( {x,{x_1}} \right)k\left( {x,{x_2}} \right) \cdots k\left( {x,{x_N}} \right)} \right] \times \\ \;\;\;\;\;\;\;\;\;\;{\left( {\frac{I}{C} + {\mathit{\boldsymbol{ \boldsymbol{\varOmega} }}_{{\rm{ELM}}}}} \right)^{ - 1}}\mathit{\boldsymbol{T}} \end{array} $ | (11) |
实验采用的数据集是NSL-KDD数据集[14], NSL-KDD是KDD99经过筛选后的数据集, 分为训练集(25 192条)和测试集(22 543条)2个部分, 数据集将异常类型分成DoS、R2L、U2R、Probe 4大类(具体分布情况如表 1所示, 所占比例如图 4所示), 具体分为39种攻击方式。
|
下载CSV 表 1 各类样本分布情况 |
|
Download:
|
| 图 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,转化公式如下:
| $ y = \frac{{y - {M_{\min }}}}{{{M_{\max }} - {M_{\min }}}} $ | (12) |
入侵检测系统通常需要高准确率, 以及低误警率, 本文实验采用准确率AC以及误报率FA作为入侵检测的评价标准, 如式(13)和式(14)所示。
| $ AC = \frac{{{T_{\rm{P}}} + {T_{\rm{N}}}}}{{{T_{\rm{P}}} + {T_{\rm{N}}} + {F_{\rm{P}}} + {F_{\rm{N}}}}} $ | (13) |
| $ FA = \frac{{{F_{\rm{P}}}}}{{{T_{\rm{N}}} + {F_{\rm{P}}}}} $ | (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种算法的整体分类准确率和误报率。
|
下载CSV 表 2 KELM对各类攻击识别率 |
|
下载CSV 表 3 DBN对各类攻击识别率 |
|
下载CSV 表 4 DBN-KELM对各类攻击识别率 |
|
Download:
|
| 图 5 不同训练集比例下3种算法的分类准确率 | |
|
Download:
|
| 图 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的训练时间明显降低, 数据量越大, 降低得越多, 证明改进后的算法更适应海量数据下的入侵检测。
|
下载CSV 表 5 改进前后训练时间对比 |
为进一步探索DBN-KELM算法的优势, 本文还使用DBN-ELM算法和DBN-SVM算法与本文算法进行对比, 如图 7和图 8所示, 在10%和20%标签训练数据下, DBN-SVM算法的检测率略高, 不可否认SVM算法在训练样本数量较少的情况下存在优势, 但和本文算法差距极小, 从整体的检测效果上看DBN-KELM算法的性能优于其他2种算法, 如图 9和图 10所示, 从对训练集含量较少的U2R和R2L的检测率上看, DBN-KELM对小样本攻击类型的识别能力也高于其他2种算法。
|
Download:
|
| 图 7 3种算法的分类准确率比较 | |
|
Download:
|
| 图 8 3种算法的误报率比较 | |
|
Download:
|
| 图 9 3种算法的U2R检测率比较 | |
|
Download:
|
| 图 10 3种算法的R2L检测率比较 | |
表 6展示了DBN-KELM、DBN-SVM和DBN-ELM的训练时间, 可以看出, 使用核学习方法的DBN-KELM和DBN-SVM算法训练时间明显多于使用随机映射的DBN-ELM算法, 也正是ELM使用随机映射导致该算法对小样本攻击的检测能力不足, 训练集比例增加时甚至出现了下降趋势。但DBN-KELM算法无需像DBN-SVM构造偏二叉树结构的方式对各类样本逐次二分类, 训练时间大幅减少, 从整体的检测精度上分析, DBN-KELM算法也进一步提高了入侵检测的准确率。
|
下载CSV 表 6 3种算法的训练时间比较 |
本文结合DBN自动提取特征的能力和KELM快速学习的优势, 提出混合深度学习入侵检测算法DBN-KELM。该算法充分利用无标签数据对DBN的RBM进行预训练, 然后使用少量标签数据进行全局微调, 训练完成后基于DBN网络进行特征提取, 并利用标签数据对KELM进行监督训练。在NSL-KDD测试集上进行测试, 实验结果表明, DBN-KELM算法的检测率高于原始的DBN算法和KELM算法, 经过DBN降维后分类器KELM的训练效率明显提高。DBN-KELM算法与DBN-ELM、DBN-SVM算法的比较结果表明, 无论是检测率、误报率还是对小样本攻击类型的检测能力, DBN-KELM算法都明显优于其他算法。本文仅在NSL-KDD数据集上进行实验, 下一步将考虑搭建实时入侵检测环境, 将DBN-KELM算法用于解决实际问题。
| [1] |
GAO Ni, GAO Ling, HE Yiyue, et al. Intrusion detection model based on deep belief nets[J]. Journal of Southeast University(English Edition), 2015, 31(3): 339-346. ( 0)
|
| [2] |
AMBUSAIDI M A, HE Xiangjian, NANDA P, et al. Building an intrusion detection system using a filter-based feature selection algorithm[J]. IEEE Transactions on Computers, 2016, 65(10): 2986-2998. DOI:10.1109/TC.2016.2519914 ( 0)
|
| [3] |
杨昆朋.基于深度学习的入侵检测[D].北京: 北京交通大学, 2015. http://cdmd.cnki.com.cn/Article/CDMD-10004-1015558220.htm
( 0)
|
| [4] |
侯杰.基于差分进化与深度学习的入侵检测研究[D].北京: 北京理工大学, 2016. http://cdmd.cnki.com.cn/Article/CDMD-10007-1018813446.htm
( 0)
|
| [5] |
孔令爽.基于深度学习和迁移学习的入侵检测研究[D].济南: 山东大学, 2018. http://cdmd.cnki.com.cn/Article/CDMD-10422-1018099986.htm
( 0)
|
| [6] |
魏思政, 刘厚泉, 赵志凯. 基于DBN-ELM的入侵检测研究[J]. 计算机工程, 2018, 44(9): 153-158. ( 0)
|
| [7] |
HINTON G E, OSINDERO S, TEH Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554. DOI:10.1162/neco.2006.18.7.1527 ( 0)
|
| [8] |
HINTON G E. Training products of experts by minimizing contrastive divergence[J]. Neural Computation, 2002, 14(8): 1771-1800. DOI:10.1162/089976602760128018 ( 0)
|
| [9] |
HINTON G E.A practical guide to training restricted Boltzmann machines[M]//GOOS G, HARTMANIS J, LEEUWEN J.Neural networks: tricks of the trade.Berlin, Germany: Springer, 2012: 599-619.
( 0)
|
| [10] |
HUANG Guangbin, ZHU Qinyu, SIEW C K.Extreme learning machine: a new learning scheme of feedforward neural networks[C]//Proceedings of IEEE International Joint Conference on Neural Networks.Washington D.C., USA: IEEE Press, 2004: 985-990.
( 0)
|
| [11] |
HUANG Guangbin, ZHOU Hongming, DING Xiaojian, et al. Extreme learning machine for regression and multiclass classification[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part B(Cybernetics), 2012, 42(2): 513-529. DOI:10.1109/TSMCB.2011.2168604 ( 0)
|
| [12] |
王华忠, 俞金寿. 核函数方法及其模型选择[J]. 江南大学学报(自然科学版), 2006, 5(4): 500-504. DOI:10.3969/j.issn.1671-7147.2006.04.031 ( 0)
|
| [13] |
MERCER J. Functions of positive and negative type, and their connection the theory of integral equations[J]. Philosophical Transactions of the Royal Society of London, 1909, 209(441): 415-446. ( 0)
|
| [14] |
TAVALLAEE M, BAGHERI E, LU Wei, et al.A detailed analysis of the KDD CUP99 data set[C]//Proceedings of IEEE Symposium on Computational Intelligence for Security and Defense Applications.Washington D.C., USA: IEEE Press, 2009: 1-6.
( 0)
|
| [15] |
高强, 马艳梅. 深度信念网络(DBN)网络层次数量的研究及应用[J]. 科学技术与工程, 2016, 16(23): 234-238, 262. DOI:10.3969/j.issn.1671-1815.2016.23.045 ( 0)
|
2019, Vol. 45

,
0)