李沛原 丁京 張?zhí)锾?/p>
摘 要:為提高云計算環(huán)境異常檢測的準(zhǔn)確率,改進(jìn)算法性能,提出一種基于分組梯度下降以及變動學(xué)習(xí)速率的BP神經(jīng)網(wǎng)絡(luò)算法。通過將樣本按照一定規(guī)律分組,改進(jìn)梯度下降法的表現(xiàn),再自動調(diào)整學(xué)習(xí)速率以加快收斂速度。實驗表明,該算法可有效提高神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速度,能準(zhǔn)確將云環(huán)境異常檢測數(shù)據(jù)分類,具有較高的檢測率和較低的誤報率。
關(guān)鍵詞:云計算;異常檢測;BP神經(jīng)網(wǎng)絡(luò);分組梯度下降;學(xué)習(xí)速率
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼: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 研究背景
近年來,隨著信息技術(shù)的高速發(fā)展,云計算技術(shù)也在不斷發(fā)展完善。一方面,其為人們的生活帶來了較大便利,但另一方面,云環(huán)境的便利性與普適性也吸引了越來越多的入侵者,云安全受到了嚴(yán)重威脅。目前,對云計算環(huán)境的入侵已呈上升趨勢,進(jìn)攻手段多元化,進(jìn)攻方式也超出了以往從業(yè)者和用戶的認(rèn)知。尤其是近年來,T-Mobile和Microsoft由于服務(wù)器故障引起百萬用戶的數(shù)據(jù)丟失,恢復(fù)用戶存儲的數(shù)據(jù)則約需要兩周的時間;2011年,索尼游戲站點(diǎn)遭遇黑客攻擊,致使7億多用戶數(shù)據(jù)被偷[1];亞馬遜宕機(jī)事件[2],Google Docs用戶數(shù)據(jù)泄露等事件都給云計算的安全敲響警鐘。云計算網(wǎng)絡(luò)攻擊事件的頻繁發(fā)生,不僅嚴(yán)重侵害了從業(yè)者的合法權(quán)益,威脅了廣大用戶的財產(chǎn)隱私安全,也對社會信息化進(jìn)程產(chǎn)生了較為嚴(yán)重的危害。
BP神經(jīng)網(wǎng)絡(luò)[3]的基本思想是:學(xué)習(xí)過程由正向傳播和反向傳播組成。在正向傳播中,樣本由輸入層輸入,然后經(jīng)過隱含層處理后傳播到輸出層;期望輸出與實際輸出比較得出誤差;學(xué)習(xí)目標(biāo)是通過將誤差反向傳播,并運(yùn)用梯度下降法不斷減小誤差,直到消除誤差或者達(dá)到指定的迭代次數(shù)。在此迭代過程中,權(quán)值及偏置不斷修改,正、反向傳播過程就是BP網(wǎng)絡(luò)的學(xué)習(xí)流程。
針對BP算法存在的缺點(diǎn),本文提出一種基于分組梯度下降及變動學(xué)習(xí)速率的BP神經(jīng)網(wǎng)絡(luò)算法,并應(yīng)用于云環(huán)境異常檢測領(lǐng)域。實驗表明,改進(jìn)后的算法可以提高檢測精度,提升學(xué)習(xí)速度。
2 相關(guān)技術(shù)
2.1 BP神經(jīng)網(wǎng)絡(luò)
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)分為兩個過程:①信號正向傳播過程;②誤差反向傳播過程。
在BP神經(jīng)網(wǎng)絡(luò)中,有一個輸入層和一個輸出層,在輸入層和輸出層之間通常還有若干個隱含層。由Robert Hecht-Nielsen在1989年的證明可知,閉合區(qū)間內(nèi)的連續(xù)函數(shù)均能用僅含單隱層的BP神經(jīng)網(wǎng)絡(luò)來逼近。因此,一個三層的BP網(wǎng)絡(luò)能夠?qū)崿F(xiàn)任意輸入到輸出的映射。BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
BP神經(jīng)網(wǎng)絡(luò)算法流程為:①初始化權(quán)重以及偏置;②輸入訓(xùn)練樣本,[ Xi=x1,x2,…,xn](i=1,2,…,n,表示訓(xùn)練樣本的容量;n表示輸入層神經(jīng)元的數(shù)量),對應(yīng)的期望輸出為[Yi=y1,y2,…,yn](n表示輸出層神經(jīng)元的數(shù)量);計算實際輸出[Oi=o1,o2,…,on];④誤差函數(shù)[E=12Σni=1(yi-oi)2];④調(diào)整權(quán)重[Δwij=-ηαEαWIJ],[η]表示學(xué)習(xí)速率;⑤如果誤差已經(jīng)足夠小或者達(dá)到指定迭代次數(shù),則停止迭代;否則轉(zhuǎn)至②。
2.2 BP神經(jīng)網(wǎng)絡(luò)算法的缺點(diǎn)
雖然BP算法具有多種優(yōu)點(diǎn),也有廣泛用途,但在實際應(yīng)用中,仍存在以下不足[4,5]。
2.2.1 收斂速度較慢。收斂速度是由誤差函數(shù)的變化情況而決定的,如果誤差減小慢,將導(dǎo)致權(quán)值調(diào)整時間長、迭代步數(shù)多。由于選用的激活函數(shù)為Sigmoid函數(shù),在梯度逐漸變?yōu)?時,越接近局部最優(yōu)值,收斂速度越慢。
2.2.2 訓(xùn)練過程煩瑣。雖然傳統(tǒng)的三種梯度下降算法[6,7]有助于提高BP神經(jīng)網(wǎng)絡(luò)的收斂性,但要考慮在復(fù)雜的云環(huán)境中,數(shù)據(jù)樣本之間的重復(fù)性及關(guān)聯(lián)性會對訓(xùn)練過程造成影響。
2.2.3 算法容易收斂到局部最優(yōu)。因為在全局最值點(diǎn)和局部極值點(diǎn)處,梯度值均為0,無法進(jìn)行區(qū)分,所以傳統(tǒng)BP算法容易陷入局部最優(yōu)。
3 BP神經(jīng)網(wǎng)絡(luò)算法的改進(jìn)
3.1 基于分組的梯度下降法
對于給定輸入樣本[Xi=x1,x2,…,xn],其中n為樣本容量,對應(yīng)的期望輸出為[Yi=y1,y2,…,yn],而實際輸出[Oi=o1,o2,…,on]。首先考慮將樣本X分為[G1,G2,…,Gg](g為分組數(shù)量),滿足以下兩個條件:①[X=G1∪G2∪…∪Gg];②當(dāng)兩個分組相鄰時,兩個分組相交不為空,即兩分組有重疊成分在,數(shù)學(xué)表達(dá)為:
[Ga∩Gb≠?] 當(dāng)[a,b∈1,2,…,g 且a-b2<4 ](1)
根據(jù)上述條件,任意相鄰分組之間交集元素數(shù)量可變,易證明,當(dāng)交集元素個數(shù)越多時,則分組數(shù)量越多,訓(xùn)練量會增大,訓(xùn)練時間也會相應(yīng)增加;但是,當(dāng)相鄰分組[Ga]、[Gb]交集元素越多時,在每次迭代時,上次訓(xùn)練更新后的權(quán)值和偏置在很大程度上對下一次也是最優(yōu)的,所以從整體上來講,會減少訓(xùn)練樣本的時間。
因此,需要找到合適的分組數(shù)量g以及交集大小k。根據(jù)數(shù)學(xué)知識可知:
當(dāng)樣本大小為n,交集大小為k,每個分組大小為l時,[g=[nl-k]+1]。為了提高分組的科學(xué)性,提升神經(jīng)網(wǎng)絡(luò)檢測的可靠性,需要進(jìn)行多次實驗,對樣本進(jìn)行不同數(shù)量的多次分組,并分別進(jìn)行訓(xùn)練,記錄每次得到的權(quán)值及偏置,然后再對測試數(shù)據(jù)進(jìn)行檢測,根據(jù)結(jié)果選擇表現(xiàn)最好的神經(jīng)網(wǎng)絡(luò)作為測試網(wǎng)絡(luò)。
3.2 動態(tài)變化學(xué)習(xí)速率
通常情況下,為了能夠加速收斂,可以考慮在學(xué)習(xí)過程中加入動量因子:
[Δwij=-ηαEαWIJ+μwij ] (2)
在式(2)中,[μ]表示動量因子,[η]表示學(xué)習(xí)速率。
在基于選擇一個全局學(xué)習(xí)率的基礎(chǔ)上,可以對每個獨(dú)立的權(quán)重都挑選一個不同的學(xué)習(xí)率[8],以此來改善收斂情況。根據(jù)誤差表面的曲面,為了提高收斂性,大多數(shù)權(quán)重通常會選用一個較小的學(xué)習(xí)速率,同時為了能加速收斂過程,其他權(quán)重通常會選用一個較大的學(xué)習(xí)速率。所以,靠近曲面平緩區(qū)域時的學(xué)習(xí)速率應(yīng)該大于陡峭區(qū)域時的學(xué)習(xí)速率(如圖2所示)。
收斂速度的一個重要影響因子是學(xué)習(xí)速率,圖3表明了在不同學(xué)習(xí)速率下學(xué)習(xí)行為的不一致性。無論哪種情況,權(quán)重都在朝著局部最小前進(jìn)。
從圖3可以看出,一般而言,學(xué)習(xí)速率越大,收斂速度越快。然而,當(dāng)學(xué)習(xí)速率過大時,誤差梯度方向會以折線型下降,這就是振蕩現(xiàn)象。當(dāng)學(xué)習(xí)速率不發(fā)生變化時,收斂速度會在誤差曲面較為平坦時很緩慢。所以,無論在何種情況下,如果學(xué)習(xí)速率可以依據(jù)情況不同動態(tài)調(diào)整,那么收斂速度及性能均能得到提高。對比本次迭代后的誤差與上一次的誤差,當(dāng)誤差減小,表明當(dāng)前梯度下降方向是符合預(yù)期的,學(xué)習(xí)速率應(yīng)該增大,如圖3(a)所示;如果誤差增大,則表明梯度下降方向偏離預(yù)期,則應(yīng)該中止迭代,并降低學(xué)習(xí)速率,如圖3(d)所示。定義公式如下:
[ηi+1=(1+α)ηi, Ei+1(1+?)Ei] (3)
其中,[α]和[?]均為大于0小于1的自定義系數(shù)。
4 實驗與分析
4.1 數(shù)據(jù)預(yù)處理
本次實驗采用KDD99數(shù)據(jù)集作為訓(xùn)練和檢測數(shù)據(jù)來源。KDD99數(shù)據(jù)集是從一個模擬的美國空軍局域網(wǎng)上采集來的9個星期的網(wǎng)絡(luò)連接數(shù)據(jù),攻擊被分為5類:Normal類、Dos類、Probing類、R2L類和U2L類。訓(xùn)練數(shù)據(jù)中包含有22種攻擊,而測試數(shù)據(jù)中包含有17種未見攻擊。
為了避免小數(shù)據(jù)被淹沒,我們要對原始數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。對數(shù)據(jù)序列x1,x2,…,xn進(jìn)行標(biāo)準(zhǔn)化處理,得到處理后的數(shù)據(jù)每個元素值均在[0,1]上:
[x∧*=x-min/max-min] (4)
4.2 實驗結(jié)果分析
分別用本文提出的改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法、傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法[9]和K-近鄰算法[10]處理數(shù)據(jù),將3種算法結(jié)果進(jìn)行比較,結(jié)果如表1所示。
由表1可知,基于分組梯度下降及變動學(xué)習(xí)速率BP算法對數(shù)據(jù)的分類準(zhǔn)確度較高,能更為準(zhǔn)確地實現(xiàn)對數(shù)據(jù)的分類。
5 結(jié)語
本文提出了一種改進(jìn)的BP算法,分別從梯度下降、學(xué)習(xí)率兩個方面進(jìn)行了改進(jìn)。通過實驗證明,該方法可有效提高云環(huán)境異常檢測數(shù)據(jù)分類,具有較高的檢測率和較低的誤報率,也具有更好的魯棒性,有利于提高故障恢復(fù)工作的效率。
參考文獻(xiàn):
[1] Bouchenak S, Chockler G. Verifying cloud services: present and future[J]. Acm sigops Operating Systems Review,2013(2):6-19.
[2]婁偉.云計算環(huán)境下用戶信息安全策略研究[D].長春:東北師范大學(xué),2013.
[3]李道倫,盧德堂,孔祥言,等.BP神經(jīng)網(wǎng)絡(luò)隱式法在測井?dāng)?shù)據(jù)處理中的應(yīng)用[J].石油學(xué)報,2007(3):105-108.
[4]鄧萬宇,鄭慶華,陳琳,等.神經(jīng)網(wǎng)絡(luò)極速學(xué)習(xí)方法研究[J].計算機(jī)學(xué)報,2010(2):279-286.
[5]王磊,王汝涼,曲洪峰,等.BP神經(jīng)網(wǎng)絡(luò)算法改進(jìn)及應(yīng)用[J].軟件導(dǎo)刊,2016(5):38-40.
[6]向國全,董道珍.BP模型中的激勵函數(shù)和改進(jìn)的網(wǎng)絡(luò)訓(xùn)練法[J].計算機(jī)研究與發(fā)展,1997(2):113-117.
[7]李太福,熊雋迪.基于梯度下降法的自適應(yīng)模糊控制系統(tǒng)研究[J].系統(tǒng)仿真學(xué)報,2007(6):1265-1268.
[8]李波,李贛華,王成友,等.BP網(wǎng)絡(luò)局部學(xué)習(xí)速率自適應(yīng)SA算法的改進(jìn)[J].信號處理,2005
[9]劉敬,谷利澤,鈕心忻,等.基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的網(wǎng)絡(luò)安全事件分析方法[J].北京郵電大學(xué)學(xué)報,2015(2):50-54.
[10]王飛,秦小麟,劉亮,等.基于數(shù)據(jù)流的K-近鄰連接算法[J].計算機(jī)科學(xué),2015(5):204-210.