基于改进BP神经网络算法的云环境异常检测技术研究
2018-09-10李沛原丁京张田甜
李沛原 丁京 张田甜
摘 要:为提高云计算环境异常检测的准确率,改进算法性能,提出一种基于分组梯度下降以及变动学习速率的BP神经网络算法。通过将样本按照一定规律分组,改进梯度下降法的表现,再自动调整学习速率以加快收敛速度。实验表明,该算法可有效提高神经网络学习速度,能准确将云环境异常检测数据分类,具有较高的检测率和较低的误报率。
关键词:云计算;异常检测;BP神经网络;分组梯度下降;学习速率
中图分类号:TP393.08 文献标识码:A 文章编号:1003-5168(2018)04-0018-03
Research on Cloud Environment Anomaly Detection Technology
Based on Improved BP Neural Network
LI Peiyuan1 DING Jing2 ZHANG Tiantian1
(1. College of Computer and Information Technology, Beijing Jiaotong University,Beijing 100044;2. Beijing Institute of Control Engineering,Beijing 100190)
Abstract: In order to improve the accuracy of cloud computing environment anomaly detection and improve the performance of the algorithm, a BP neural network algorithm based on grouping gradient descent and change learning rate was proposed. By grouping the samples according to a certain rule, the author improved the performance of gradient descent method and adjusted the learning rate automatically to speed up the convergence rate. The experiment showed that this algorithm could effectively improve the learning speed of neural network and could accurately classify the abnormal data of cloud environment, which had higher detection rate and lower false alarm rate.
Keywords: cloud computing;abnormal detection;BP neural network;group gradient descent;learning rate
1 研究背景
近年来,随着信息技术的高速发展,云计算技术也在不断发展完善。一方面,其为人们的生活带来了较大便利,但另一方面,云环境的便利性与普适性也吸引了越来越多的入侵者,云安全受到了严重威胁。目前,对云计算环境的入侵已呈上升趋势,进攻手段多元化,进攻方式也超出了以往从业者和用户的认知。尤其是近年来,T-Mobile和Microsoft由于服务器故障引起百万用户的数据丢失,恢复用户存储的数据则约需要两周的时间;2011年,索尼游戏站点遭遇黑客攻击,致使7亿多用户数据被偷[1];亚马逊宕机事件[2],Google Docs用户数据泄露等事件都给云计算的安全敲响警钟。云计算网络攻击事件的频繁发生,不仅严重侵害了从业者的合法权益,威胁了广大用户的财产隐私安全,也对社会信息化进程产生了较为严重的危害。
BP神经网络[3]的基本思想是:学习过程由正向传播和反向传播组成。在正向传播中,样本由输入层输入,然后经过隐含层处理后传播到输出层;期望输出与实际输出比较得出误差;学习目标是通过将误差反向传播,并运用梯度下降法不断减小誤差,直到消除误差或者达到指定的迭代次数。在此迭代过程中,权值及偏置不断修改,正、反向传播过程就是BP网络的学习流程。
针对BP算法存在的缺点,本文提出一种基于分组梯度下降及变动学习速率的BP神经网络算法,并应用于云环境异常检测领域。实验表明,改进后的算法可以提高检测精度,提升学习速度。
2 相关技术
2.1 BP神经网络
BP(Back Propagation)神经网络分为两个过程:①信号正向传播过程;②误差反向传播过程。
在BP神经网络中,有一个输入层和一个输出层,在输入层和输出层之间通常还有若干个隐含层。由Robert Hecht-Nielsen在1989年的证明可知,闭合区间内的连续函数均能用仅含单隐层的BP神经网络来逼近。因此,一个三层的BP网络能够实现任意输入到输出的映射。BP神经网络的结构如图1所示。
BP神经网络算法流程为:①初始化权重以及偏置;②输入训练样本,[ Xi=x1,x2,…,xn](i=1,2,…,n,表示训练样本的容量;n表示输入层神经元的数量),对应的期望输出为[Yi=y1,y2,…,yn](n表示输出层神经元的数量);计算实际输出[Oi=o1,o2,…,on];④误差函数[E=12Σni=1(yi-oi)2];④调整权重[Δwij=-ηαEαWIJ],[η]表示学习速率;⑤如果误差已经足够小或者达到指定迭代次数,则停止迭代;否则转至②。
2.2 BP神经网络算法的缺点
虽然BP算法具有多种优点,也有广泛用途,但在实际应用中,仍存在以下不足[4,5]。
2.2.1 收敛速度较慢。收敛速度是由误差函数的变化情况而决定的,如果误差减小慢,将导致权值调整时间长、迭代步数多。由于选用的激活函数为Sigmoid函数,在梯度逐渐变为0时,越接近局部最优值,收敛速度越慢。
2.2.2 训练过程烦琐。虽然传统的三种梯度下降算法[6,7]有助于提高BP神经网络的收敛性,但要考虑在复杂的云环境中,数据样本之间的重复性及关联性会对训练过程造成影响。
2.2.3 算法容易收敛到局部最优。因為在全局最值点和局部极值点处,梯度值均为0,无法进行区分,所以传统BP算法容易陷入局部最优。
3 BP神经网络算法的改进
3.1 基于分组的梯度下降法
对于给定输入样本[Xi=x1,x2,…,xn],其中n为样本容量,对应的期望输出为[Yi=y1,y2,…,yn],而实际输出[Oi=o1,o2,…,on]。首先考虑将样本X分为[G1,G2,…,Gg](g为分组数量),满足以下两个条件:①[X=G1∪G2∪…∪Gg];②当两个分组相邻时,两个分组相交不为空,即两分组有重叠成分在,数学表达为:
[Ga∩Gb≠?] 当[a,b∈1,2,…,g 且a-b2<4 ](1)
根据上述条件,任意相邻分组之间交集元素数量可变,易证明,当交集元素个数越多时,则分组数量越多,训练量会增大,训练时间也会相应增加;但是,当相邻分组[Ga]、[Gb]交集元素越多时,在每次迭代时,上次训练更新后的权值和偏置在很大程度上对下一次也是最优的,所以从整体上来讲,会减少训练样本的时间。
因此,需要找到合适的分组数量g以及交集大小k。根据数学知识可知:
当样本大小为n,交集大小为k,每个分组大小为l时,[g=[nl-k]+1]。为了提高分组的科学性,提升神经网络检测的可靠性,需要进行多次实验,对样本进行不同数量的多次分组,并分别进行训练,记录每次得到的权值及偏置,然后再对测试数据进行检测,根据结果选择表现最好的神经网络作为测试网络。
3.2 动态变化学习速率
通常情况下,为了能够加速收敛,可以考虑在学习过程中加入动量因子:
[Δwij=-ηαEαWIJ+μwij ] (2)
在式(2)中,[μ]表示动量因子,[η]表示学习速率。
在基于选择一个全局学习率的基础上,可以对每个独立的权重都挑选一个不同的学习率[8],以此来改善收敛情况。根据误差表面的曲面,为了提高收敛性,大多数权重通常会选用一个较小的学习速率,同时为了能加速收敛过程,其他权重通常会选用一个较大的学习速率。所以,靠近曲面平缓区域时的学习速率应该大于陡峭区域时的学习速率(如图2所示)。
收敛速度的一个重要影响因子是学习速率,图3表明了在不同学习速率下学习行为的不一致性。无论哪种情况,权重都在朝着局部最小前进。
从图3可以看出,一般而言,学习速率越大,收敛速度越快。然而,当学习速率过大时,误差梯度方向会以折线型下降,这就是振荡现象。当学习速率不发生变化时,收敛速度会在误差曲面较为平坦时很缓慢。所以,无论在何种情况下,如果学习速率可以依据情况不同动态调整,那么收敛速度及性能均能得到提高。对比本次迭代后的误差与上一次的误差,当误差减小,表明当前梯度下降方向是符合预期的,学习速率应该增大,如图3(a)所示;如果误差增大,则表明梯度下降方向偏离预期,则应该中止迭代,并降低学习速率,如图3(d)所示。定义公式如下:
[ηi+1=(1+α)ηi, Ei+1(1+?)Ei] (3)
其中,[α]和[?]均为大于0小于1的自定义系数。
4 实验与分析
4.1 数据预处理
本次实验采用KDD99数据集作为训练和检测数据来源。KDD99数据集是从一个模拟的美国空军局域网上采集来的9个星期的网络连接数据,攻击被分为5类:Normal类、Dos类、Probing类、R2L类和U2L类。训练数据中包含有22种攻击,而测试数据中包含有17种未见攻击。
为了避免小数据被淹没,我们要对原始数据进行标准化处理。对数据序列x1,x2,…,xn进行标准化处理,得到处理后的数据每个元素值均在[0,1]上:
[x∧*=x-min/max-min] (4)
4.2 实验结果分析
分别用本文提出的改进的BP神经网络算法、传统BP神经网络算法[9]和K-近邻算法[10]处理数据,将3种算法结果进行比较,结果如表1所示。
由表1可知,基于分组梯度下降及变动学习速率BP算法对数据的分类准确度较高,能更为准确地实现对数据的分类。
5 结语
本文提出了一种改进的BP算法,分别从梯度下降、学习率两个方面进行了改进。通过实验证明,该方法可有效提高云环境异常检测数据分类,具有较高的检测率和较低的误报率,也具有更好的鲁棒性,有利于提高故障恢复工作的效率。
参考文献:
[1] Bouchenak S, Chockler G. Verifying cloud services: present and future[J]. Acm sigops Operating Systems Review,2013(2):6-19.
[2]娄伟.云计算环境下用户信息安全策略研究[D].长春:东北师范大学,2013.
[3]李道伦,卢德堂,孔祥言,等.BP神经网络隐式法在测井数据处理中的应用[J].石油学报,2007(3):105-108.
[4]邓万宇,郑庆华,陈琳,等.神经网络极速学习方法研究[J].计算机学报,2010(2):279-286.
[5]王磊,王汝凉,曲洪峰,等.BP神经网络算法改进及应用[J].软件导刊,2016(5):38-40.
[6]向国全,董道珍.BP模型中的激励函数和改进的网络训练法[J].计算机研究与发展,1997(2):113-117.
[7]李太福,熊隽迪.基于梯度下降法的自适应模糊控制系统研究[J].系统仿真学报,2007(6):1265-1268.
[8]李波,李赣华,王成友,等.BP网络局部学习速率自适应SA算法的改进[J].信号处理,2005
[9]刘敬,谷利泽,钮心忻,等.基于神经网络和遗传算法的网络安全事件分析方法[J].北京邮电大学学报,2015(2):50-54.
[10]王飞,秦小麟,刘亮,等.基于数据流的K-近邻连接算法[J].计算机科学,2015(5):204-210.