基于BN-DBN的网络安全态势要素获取机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BN-DBN的网络安全态势要素获取机制
朱江; 王婷婷
【期刊名称】《《计算机应用》》
【年(卷),期】2019(039)0z1
【总页数】5页(P100-104)
【关键词】态势要素; 深度信念网络; 批量归一化; 主动学习
【作者】朱江; 王婷婷
【作者单位】移动通信技术重庆市重点实验室(重庆邮电大学) 重庆400065
【正文语种】中文
【中图分类】TP393.08
0 引言
近几年全球互联网发展迅猛,全球网络用户量激增,网络安全问题也相伴而生。
基础网络存在较多的漏洞风险,数据泄露严重,各类网络攻击日趋频繁,网络管理越来越被动。
网络安全问题将是未来将着重看待的问题,因此学术界继而将研究重点转向了网络安全态势感知(Network Security Situation Awareness, NSSA) [1]研究。
神经网络在NSSA取得初步的成果后,有研究者猜想增加隐含层的情况下即构造一种深层网络是否会使分类精度会有更好的提高,但是实际上的深层神经网络所达到的效果一些简单的机制如支持向量机(Support Vector Machine,SVM)[2]也可
以达到,经研究发现深层网络在越深的层次几乎起不到优化的作用了。
最近,被称为深度学习的一种半监督学习方法[3]已被引入到网络安全态势感知中。
将深度网
络应用于态势要素的分类原本是不现实的,因为只有有限的训练样本可用,并且特征空间的维度较大。
训练更深的神经网络近年来一直是深度学习领域的重要趋势之一。
2015年初,Google提出了批量归一化(Batch Normalization,BN)算法[4],使得深层神经网络的训练更加稳定,加快了收敛,解决了深度网络在多维空间训练困难的问题。
态势要素提取本质上是对态势要素进行分类,主动学习(Active Learning, AL)[5]
是分类中的有效工具,对于多标签学习问题与传统的半监督学习方法相比,AL可
以更快地训练深度网络。
文献[6]提到多标签主动学习的研究对于对象多义性学习
建模具有十分重要的意义。
在多标签主动学习模型框架下,每一个已标记的样本由若干个不同的标签来表征,学习的目标通过对已标记多标签样本的学习。
但很多类似的研究在分类过程中忽略了攻击类型的种类,对于小样本类的攻击考虑不够充分。
针对在深度网络中存在的梯度消失和收敛过慢的问题,在机制中提出了一种基于批量归一化的深度信念网络(BN-DBN)的态势要素获取机制,同时用交叉熵(Cross Entropy,CE)[7]函数作为代价函数加快收敛速度。
针对AL大多数情况下只考虑
到了样本的信息量,而没有考虑到样本的种类,本文提出了一种改进的
AL(Improved AL, IAL)算法反向微调网络,改善多标签学习过程中所面临的小类
样本不平衡的问题。
1 网络安全态势要素获取框架
现有的网络呈现大规模网络化,节点众多,分支复杂,数据流量大,并且包含多个网段,存在多种异构网络环境和应用平台,因此本文采用层次化态势要素获取模型,其结构如图1所示。
本文主要研究的是态势要素获取层,该获取机制包含全局分析和局部分析,并且先
局部后整体。
通过对传感器传输的各类数据实现网络态势要素的采集。
图1 层次化安全态势要素获取框架
要素获取层将历史安全数据集和当前安全数据集通过分类器学习,形成一种学习规则,将这种学习规则用来指导局部模块,经过统计分析形成的数据再传输到全局模块,这种分析机制既可得到局部态势要素也可提取全局态势要素。
本文利用改进的深度信念网络对预处理后的信息进行分类学习,得到相应的分类规则,经IAL反向微调网络后生成态势要素。
2 网络安全态势要素获取机制
2.1 态势要素获取机制流程
本文机制采用基于BN-DBN的安全态势要素获取流程,通过无监督学习和监督学习进行分类,在BN-DBN输出层通过IAL主动选择样本,再利用IAL反向微调网络,从而得到攻击类型的态势要素。
主要分为3个步骤:
①数据集:提供训练数据和测试数据;
②BN-DBN:基分类器,无监督学习过程,加快网络收敛;
③IAL:监督学习过程,反向微调网络参数,均衡样本种类。
态势要素获取流程如图2。
图2 态势要素获取流程
2.2 基于BN-DBN的分层训练
2.2.1 BN-DBN的训练过程
DBN [8]由多个限制玻尔兹曼机(Restricted Boltzmann Machine, RBM)[9]层和一层反向传播(Back Propagation,BP) [10]组成,它是一个概率生成模型。
典型的RBM神经网络被“限制”为一个可视层v和一个隐含层h,层间存在连接,但层内单元之间不存在连接。
所有的隐含层节点和可视层节点之间都是相互独立的。
RBM是一个基于能量的模型,对于给定的状态(v, h),RBM的能量函数为:
(1)
隐含层h和可见层v被激活概率定义分别如下:
(2)
(3)
其中b和c分别为可见层和隐含层的偏置。
由于所有的v和h满足Boltzmann分布,因此当输入v的时候,通过P(h|v) 可
以得到隐藏层h,而得到隐含层h之后,通过P(v|h)又能得到可视层,通过调整参θ(在本文中θ就是代表权值w和偏置b,c),从隐含层得到的可视层v1与原来的可视层v比较,如果一样,那么得到的隐含层就是可视层的另外一种表达。
DBN的完整训练包括两个阶段:无监督特征学习阶段和监督微调阶段。
在无监督
学习,RBM通过CD(Contrastive Divergence)方法逐层训练[11],这是一种高效的贪婪学习算法[12],在有监督学学习阶段,所有的RBM被叠加,并且通过BP
算法进行判别性微调,如图3所示。
图3 DBN示意图
DBN进行完整训练需要大量的训练样本,尽管CD算法的效率很高;但是,将DBN应用于训练数量有限或特征空间较大的问题是不现实的。
如何选择训练数据
集在训练深度网络中变得尤为重要,所以本文提出了一种BN-DBN的分层训练的方法。
BN中的Batch,跟mini-Batch是一样的,说明它也是针对一个小批量进行操作。
BN在每个小批量中对每个输入通道进行归一化。
该层首先通过减去小批量平均值并除以小批量方偏差来标准化每个通道的激活。
然后,该层将输入移动一个可学习
的偏移量β,并通过可学习的比例因子r对其进行缩放,来加速DBN的训练并降低对网络初始化的敏感度。
对于一个Batch,假设对应x的集合为:
B={x1, x2,…, xm}
(4)
于是其对应的BN层的输出集合{zi}就通过以下方式计算:
(5)
(6)
其中:λ是一个极小值,将它设置为λ=10-8,这样会使得该隐含层的所有输入xi 均值为0、方差为1,要想得到均值和方差为任意值,可以采用下面的公式:
(7)
其中的r和β可用梯度下降法求出。
在每层训练的时候与大多数深度学习训练方法的损失函数采用均方误差(Mean Square Error, MSE)函数不同,由它推导而来的权值更新规则与激活函数的二次导数相关,而使用CE作为损失函数可以避免二次求导,实现快速收敛,降低训练时间。
上面已经给出输入的样本集,每个样本有n 个元素,X=[x1, x2, …, xm],每个元素所含的样本数为xi=[t1, t2, …, tn],则交叉熵损失函数为:
(8)
其中: k∈[1, n],xik表示第i个输入样本的第k个元素,yik表示第i个输出样本的第k个元素。
训练的目标是最小化输入数据与重构的数据的误差,即:
(9)
采用梯度下降法对公式求最优解。
整个过程可总结为如下算法:
算法1 BN-DBN分层训练算法。
输入样本xi, B={x1, x2, …, xm}
for 第d次迭代(1≤d≤epoch)
{ 将输入xi转换为zi输入激励函数中}
输出h=f(BN(wv+b))
yik=f(BN(wh+c))
{这里f(x)为sigmoid函数}
计算c和
{直到满足精度要求或迭代次数}
end for
2.2.2 收敛分析
经过上面的分析BN-DBN每层训练的时候在通过可视层v得到隐含层h的分布为:p1=f(BN(wvv+b))
(10)
再通过隐含层h得到可视层v分布为:
p2=f(BN(whh+c))
(11)
f(x)=1/[1+exp(-x)]
(12)
最后一层用BP反向微调网络,即敏感性从最后一层反向传播到第一层,其最后一层敏感性为:
(13)
敏感性的传播的递推公式为:
(14)
f′(k)=f(k)(1-f(k))
(15)
从式(14)看出,敏感性的传播与f′(k)无关只与代价函数中的误差有关,误差越大,参数更新越快。
而本文的重要参数都是由梯度下降法进行更新,可想而知梯度值对误差和整个网路参数更新有很重要的影响。
好的梯度能加快网络参数更新。
将BN-DBN和DBN在梯度值上进行比较,分别实验了两组要素值数据。
data1和data2为一组,data3 和data4为一组,在梯度值上的变化如图4。
可以看出没有加BN的两组数据前面的数值几乎接近于0,在后面三层又几乎饱和了,而加了BN之后一直保持有梯度值,有效地解决了梯度消失的问题,使其快速收敛,提高了深度网络的收敛性能。
图4 梯度值随隐含层数的变化曲线
2.3 改进的主动学习(IAL)算法
2.3.1 Softmax网络
在DBN最后一层输出采用了Softmax网络[13],在输出层起到监督分类并反向微调网络的作用。
Softmax回归模型是logistic回归模型在多分类问题上的扩展(logistic回归解决的是二分类问题)。
对于BN-DBN输出R,针对每一个类别i估算出概率值P,也就是说,估计每一
种分类结果出现的概率:
(16)
其中w和c是参数权重和偏置。
2.3.2 IAL反向微调网络
不确定性抽样是主动学习(AL)的常用查询框架。
在这个框架中,一个积极的学习者查询最不确定的实例。
熵经常用作不确定性度量,即:
(17)
p(yj|x)是样本x属于第j类的概率。
信息熵Φ(x)可以判断样本x通过分类器的准确性。
在一个深层网络中,一个输入x投射到一个隐含层h。
隐含层h将获得其标签向量经过分类器,熵Φ(x)的隐含层h被定义为:
(18)
p(yj|h)是样本x被映射到隐含层h之后属于第j类的概率。
对上面的主动学习方法进行改进,解决数据冗余和样本不平衡的问题。
将态势要素分为m类,第a类样本经过隐含层后概率为Pa,不确定性为Φa。
Φa越大,表明信息量越大,不确定性越高,重新返回训练网络的机会越大;Φa越小说明不确定性越低,说明样本被正确分类,重新训练网络的机会越小。
选择函数与φ成正比,设选择函数:
C0=exp(φ)
(19)
这个过程在一定程度上解决了数据冗余的问题,但没有解决样本不平衡的问题,将选择函数修改为:
(20)
其中:ra为第a样本的个数,rmax是数量最大的样本。
选择函数C=+∞表示信
息量足够大,样本不确定性大,换句话说就是样本被错误分类。
从式(20)可以看出选择函数由小类样本数量决定,φ表示一个给定的极小值。
要想被重新选择返回
深度网络进行参数修改,小样本取到决定性作用。
设定阈值ε:如果C>ε,表示样本需要反向微调网络;C<ε,表示样本被遗弃。
综上所述,提出的IAL算法描述如下:
算法2 改进后的主动学习(IAL)算法。
for 第a次迭代(1≤d≤epoch)
for 样本xi(1≤i≤m)
检测样本xi所属类别,设其为a类;
y=softmax F(xi);
计算φ;
if φ>0then C=+∞;
end if
if (C>ε)
{ 选择样本xi反向微调网络参数}
end if
end for
end for
2.3.3 小样本条件下的精度分析
根据上面的算法,通过计算式(18),在φ>0的时候,这类肯定需要进行参数更新。
在-∞<φ≤0的时候,C0=exp(φ)在(0,1)区间内;从选择函数式(20)中可以看出,ra越小,C越大,被反向微调网络的概率越大,从而提高了小类样本的精确度。
IAL算法不同于文献[14]中的主动学习算法,主要是通过熵函数来进行不确定性测量,不确定性函数与分类器的结构并不直接相关,而且易于实现。
该算法也不像以前的主动学习只考虑到了样本的信息量,而且还考虑到了样本的种类。
在后文的仿真结果中可以直观看到小样本IAL算法在小样本条件下的优势。
3 仿真结果及分析
3.1 实验数据及样本选取
本文使用的数据集是KDDCUP99[15],它的攻击行为分为四类:Dos、U2R、
R2L、Porbe,Normal表示正常数据,样本都是被标记好的。
随机抽取数据集10%作为深度网络的训练子集和测试子集,所选的测试数据都是带有标签的。
实验数据如表1。
表1 实验数据攻击类型训练数据数量比例/%测试数据数量比例
/%R2L11260.228161895.205Dos39145879.23922985373.901Probe41070.83 141661.339U2R520.0112280.073Normal9727819.6916059319.481
3.2 参数对性能的影响
1)代价函数对收敛的影响。
本文采用了CE损失函数作为训练深度网络时的代价函数,并与常用的MSE进行
比较,结果如图5。
图5 误差随迭代次数的变化曲线
可以看出随着迭代次数的增加,误差的趋势都是逐渐趋于0,但CE在迭代10次
的时候就已经接近0了,而MSE函数在迭代50次的时候才接近0,所以利用CE 函数能有效提高收敛速度。
2)BN对DBN的影响。
由本文在每层激励函数前加入BN,构造了基于BN-DBN的态势要素获取机制。
在仿真过程中,仍要考虑隐含层的层数和隐含层的节点数。
BN可以稳定参数的均值和方差,使不会随着层数的增加导致参数不稳定而影响网络的训练,通过多次仿真发现7层隐含层精确度较好。
通过重构误差来选择隐含层的节点数,实验表明在节点数均为20时训练效果较好,如图6。
所以输入节点为41,输出为5,故网络结构为41-20-20-20-20-20-20-20-5。
图6 不同隐含层节点数下的精确度值
将BN-DBN与没有加BN的深度网络DBN进行比较,如图7。
得出结果是,随着迭代次数的增加,BN-DBN的精确度比原始的DBN精确度高,而且实际训练网络的过程中训练的步骤减少至原来的1/13,在层数多的情况下依然能很好地保持网络收敛速度。
图7 精确度随迭代次数的变化曲线
3)IAL均衡样本。
由表1可知,U2R这类攻击样本数量较小,再参考了其他实验结果,发现该攻击类型的分类不够精确,经常将U2R和R2L看作一种攻击,检测起来很困难,为了更好地说明本文中改进的主动学习(IAL)算法对于U2R这类攻击精确度的影响,对BN-DBN和BN-DBN+IAL进行比较,仿真图如图8所示。
图8 U2R精确度随隐含层节点数的变化曲线
从图8可以看出对于U2R而言,在不同的隐含层节点下,加了IAL算法后的精确度得到提高,因此小类样本的要素获取得到一定的保障。
3.3 获取精度比较与分析
将本文的态势要素获取方法与支持向量机(SVM)、基于深度信念网络(DBN)的要素获取、基于主动学习(AL)的DBN,基于BN-DBN的要素获取进行比较,目的是为了更好地体现出本文方法的优势。
其中DBN和DBN-AL网络层数相同,BN-
DBN与本文中网络层数相同。
训练DBN的方法均用本文所提供的训练方法,激
活数都为sigmoid的函数。
SVM的核函数是高斯函数,正则化设置为1。
如表2,其中total为整体精确度。
表2 不同态势要素获取方法的精确度 %攻击类型SVMDBNDBN-ALBN-DBNBN-DBN+IALNormal100.091.293.4100.0100.0Probe91.089.091.693.492.5Dos93. 689.892.391.294.3U2R25.335.266.465.388.1R2L88.285.385.688.688.9total91. 487.692.692.997.3
由表2可以看出本文机制精确度明显高于其他态势要素获取机制,对于U2R小类样本的精确度提高了20%左右,对于Dos的检测相比BN-DBN也提高了3%左右,对于R2L也相应地有所提高,虽然对Probe样本的检测比BN-DBN精确度稍低,但总体而言整体精度都比其他机制的精确度高。
整体精度与DBN和SVM相比分
别提高了9.7%和5.9%,DBN-AL对U2R类攻击的检测率也高于DBN、BN-DBN和SVM,这说明主动学习(AL)对平衡样本数量、提高样本的精确度是有效的。
而无论是对某一种类别的样本还是整体而言,BN-DBN精确度都高于DBN的精
确度,说明加入BN层后的DBN对于要素分类的确是有了明显的改善。
3.4 比较与分析
3.4.1 收敛速度比较
在对比了每一次迭代后的复杂度之后,实验了不同算法的迭代次数,如图9。
图9 不同算法精确度随迭代次数的变化曲线
从图9可以看出本文所用方法所需的迭代次数最少,而且加了BN之后,每次迭
代中内部执行步骤也减少了。
为了更直观地表示机制的优势,实验了不同机制的执行时间。
3.4.2 执行时间比较
机制的执行时间与每一次迭代运算复杂度以及迭代次数有关。
用x64 2.4 GHz PC
来执行此机制,并得到各个机制的执行时间,并作比较。
本实验比较五种情况下获取态势要素所用的时间,结果如表3。
五种算法分别为:本文算法(BN-DBN+IAL)、采用CE作为损失函数但未经主动学习(AL)采样的加了BN层的深度信念网络(BN-DBN)、采用了CE为代价函数加了主动学习(AL)的深度信念网络(DBN-AL)、SVM以及传统的深度信念网络即采用均方误差函数(Mean Squared Error, MSE)为损失函数且未经主动学习采样和未加入BN层的深度信念网络(DBN)。
表3 不同机制的执行时间对比算法执行时间/s算法执行时间/sSVM2856BN-DBN265DBN3780BN-DBN+IAL56DBN-AL765
从表3中值得注意的是SVM实际比DBN训练效果好,正如引言中提到的,深度网络还需要完善,但加了BN后时间明显缩小了。
从表3中可以直观看出,基于BN-DBN结合交叉熵(CE)损失函数和IAL算法优化后明显减少了训练时间。
这是由于BN减少了调整参数的时间,解决了梯度消失、收敛较慢的问题;采用CE函数避免了权值更新过程的求导运算,加快了逐层训练的进程;IAL算法使得网络去掉了冗余数据,避免了深度信念网络的重复学习,减少了分类所需的时间。
4 结语
本文针对大规模网络结构和特点,提出了一种基于BN-DBN并结合改进后的主动学习(IAL)算法进行态势要素获取,考虑到sigmoid过饱合、梯度消失和稳定深度网络参数问题本文加了批量归一化(BN)来优化,并结合CE和BP算法,减少网络收敛时间,增强网络的鲁棒性能和泛化能力。
在最后一层用Softmax进行多分类输出,在Softmax进行监督训练时通过IAL反向微调网络,能减少数据冗余,将所含信息量较少的样本舍弃,避免了重复学习;最后,采用KDD CUP99数据集仿真验证本文算法的有效性,实验结果表明该机制不仅缩短了训练时间,还提高了小类样本的检测精确度,从而进一步提高总体的精确度。
参考文献:
【相关文献】
[1] 谢丽霞, 王亚超, 于巾博. 基于神经网络的网络安全态势感知[J]. 清华大学学报(自然科学版), 2013, 53(12):1750-1760.
[2] 丁世飞, 齐丙娟, 谭红艳. 支持向量机理论与算法研究综述[J]. 电子科技大学学报, 2011, 40(1):1-10.
[3] 朱韶平. 基于Boosting半监督的网络安全入侵检测算法[J]. 吉首大学学报(自然科学版), 2014, 35(5):33-36,42.
[4] ZHAN H, CHEN G, LU Y. Applying batch normalization to hybrid NN-HMM model for speech recognition [C]// Proceedings of the 2016 Chinese Conference on Pattern Recognition. Berlin: Springer, 2016: 427-435.
[5] ZHOU S, ZHANG Y. Active learning for cost-sensitive classification using logistic regression model[C]// Proceedings of the 2016 IEEE International Conference on Big Data Analysis. Piscataway, NJ: IEEE, 2016:1-4.
[6] 李杰龙, 肖燕珊, 郝志峰,等. 基于SVM的多示例多标签主动学习[J]. 计算机工程与设计, 2016, 37(1):254-258.
[7] SPUREK P, TABOR J, BYRSKI K. Active function cross-entropy clustering[J]. Expert Systems with Applications, 2017, 72: 49-66.
[8] LIU P, ZHANG H, EOM K B. Active deep learning for classification of hyperspectral images[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2017, 10(2):712-724.
[9] GUO Y, WANG S, GAO C, et al. Wishart RBM based DBN for polarimetric synthetic radar data classification[C]// Proceedings of the 2015 IEEE International Geoscience and Remote Sensing Symposium. Piscataway, NJ: IEEE, 2015:1841-1844.
[10] 张铃, 张钹. 神经网络中BP算法的分析[J]. 模式识别与人工智能, 1994, 7(3):191-195.
[11] HINTON G E, OSINDERO S,TEH Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554.
[12] 陈晨. 贪婪算法在稀疏学习中的应用[D]. 武汉:湖北大学, 2016:123-132.
[13] MEMISEVIC R, ZACH C, HINTON G, et al. Gated Softmax classification[C]// Proceedings of the 23rd International Conference on Neural Information Processing Systems. Red Hook: Curran Associates Inc, 2010,2:1603-1611.
[14] ZHU J, MING Y, SONG Y, et al. Mechanism of situation element acquisition based on
deep auto-encoder network in wireless sensor networks[J]. International Journal of Distributed Sensor Networks, 2017, 13(3):855-871.
[15] 张新有,曾华燊,贾磊. 入侵检测数据集KDD CUP99研究[J]. 计算机工程与设计,2010,31(22):4809-4812.。