摘 要: 考慮到常規(guī)BP神經(jīng)網(wǎng)絡算法容易陷入局部最優(yōu)解,所建立的網(wǎng)絡遺傳流量檢測模型檢測效率低,準確率不高等問題,提出一種改進型GA優(yōu)化BP神經(jīng)網(wǎng)絡算法,并使用其建立網(wǎng)絡遺傳流量檢測模型。常規(guī)遺傳算法在搜索過程中,往往會由于出現(xiàn)影響生產(chǎn)適應度高的個體而對遺傳算法搜索過程產(chǎn)生影響的現(xiàn)象發(fā)生,因此需要對常規(guī)遺傳算法進行改進。使用的方法是通過混合編碼方式進行改進,同時對交叉算子、變異算子、交叉概率以及變異概率等參數(shù)進行優(yōu)化修正。使用KDD CUP99數(shù)據(jù)庫中的網(wǎng)絡異常流量數(shù)據(jù)進行實驗研究,研究結(jié)果表明,所提出方法的檢測性能要明顯優(yōu)于常規(guī)算法,其對BP神經(jīng)網(wǎng)絡的結(jié)構(gòu)、權(quán)值以及閾值進行同步優(yōu)化,避免了盲目選擇BP神經(jīng)網(wǎng)絡結(jié)構(gòu)參數(shù)帶來的問題,避免了常規(guī)BP神經(jīng)網(wǎng)絡容易陷入局部最優(yōu)解的問題。
關(guān)鍵詞: 網(wǎng)絡異常檢測; BP神經(jīng)網(wǎng)絡; 遺傳算法; 異常流量
中圖分類號: TN711?34; TP393 文獻標識碼: A 文章編號: 1004?373X(2016)03?0090?04
Network anomaly detection method with improved BP neural network based on GA
CUI Baocai
(Tianjin Electronic Information College, Tianjin 300350, China)
Abstract: Since the conventional BP neural network algorithm is easy to fall into local optimal solution, and the established network abnormal flow detection model has low detection efficiency and poor accuracy, an improved BP neural network algorithm based on GA is proposed, by which the network abnormal flow detection model was established. The conventional genetic algorithm in the search process often influences on the search effect because of the high fitness individual, so it is necessary to improve the conventional genetic algorithm. The hybrid encoding mode is used to optimize and correct the parameters of crossover operator, mutation operator, crossover probability and mutation probability. The experiment study for network abnormal flow data in KDD CUP99 database is conducted, and the research results show that the detection performance of the proposed method is better than that of the conventional algorithm. The improved genetic algorithm is used to synchronous optimization the network, weight and threshold of BP neural, and can avoid the problem causing by the blind selection of BP neural network structure parameter, and avoid that the BP neural network is easy to fall into the local optimal solution.
Keywords: network anomaly detection; BP neural network; genetic algorithm; abnormal flow
0 引 言
網(wǎng)絡異常流量類型多樣復雜,異??赡軄碜訟lpha Anomaly異常流量、DDos異常流量、Port Scan異常流量、Network Scan異常流量、Worms異常流量以及Flash Crowd異常流量等。在大型Internet供應商以及企業(yè)網(wǎng)絡中對異常進行檢測具有非常大的難度。常規(guī)異常檢測具有檢測率低、誤報率高等問題,因此本文對網(wǎng)絡異常流量檢測方法進行深入研究[1?3]。
近年來,人們常常利用BP神經(jīng)網(wǎng)絡建立網(wǎng)絡異常流量檢測模型,但是由于BP神經(jīng)網(wǎng)絡算法存在容易陷入局部最優(yōu)解,訓練時間長,效率低等問題,因此本文提出一種利用遺傳算法對BP神經(jīng)網(wǎng)絡進行改進的方法以提高BP神經(jīng)網(wǎng)絡算法性能[4?5]。
1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡模型
1.1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡
使用遺傳算法對BP神經(jīng)網(wǎng)絡算法進行優(yōu)化可以描述為:
式中:[E1]是BP神經(jīng)網(wǎng)絡訓練輸出與實際樣本的總體誤差;[yi(t)]是期望的輸出;[yi(t)]是BP神經(jīng)網(wǎng)絡的實際輸出。
BP神經(jīng)網(wǎng)絡的實際輸出[yi(t)]表示為:
式中:[f]是輸出神經(jīng)元的激勵函數(shù);[g]是隱含層神經(jīng)元的激勵函數(shù);[wij]是BP神經(jīng)網(wǎng)絡輸入層和隱含層節(jié)點之間的連接權(quán)值;[vit]是隱含層與輸出層節(jié)點之間的連接權(quán)值;[ξi]是過程神經(jīng)元的閾值;[ηt]是輸出神經(jīng)元的閾值。
權(quán)值的修正值可以用如下方法表示:
式中:[α]是動量因數(shù);[n]是迭代次數(shù);[η]是自適應學習率;[g(n)]是誤差函數(shù)對權(quán)值的梯度。
建立遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的檢測模型過程如下:
步驟1:建立BP神經(jīng)網(wǎng)絡,設定BP神經(jīng)網(wǎng)絡的初始結(jié)構(gòu)參數(shù)和函數(shù)等;
步驟2:使用遺傳算法對BP神經(jīng)網(wǎng)絡進行參數(shù)優(yōu)化,生產(chǎn)初始種群,通過種群優(yōu)化、交叉、變異等操作對BP神經(jīng)網(wǎng)絡的權(quán)值、閾值等進行優(yōu)化;
步驟3:使用遺傳算法得到的最優(yōu)權(quán)值、閾值等參數(shù)更新BP神經(jīng)網(wǎng)絡,使用訓練數(shù)據(jù)對模型進行訓練,完成檢測模型的建立。
建立遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的檢測模型流程如圖1所示[6?7]。
1.2 遺傳算法改進方法
常規(guī)遺傳算法在搜索過程中,往往會由于出現(xiàn)影響生產(chǎn)適應度高的個體而對遺傳算法搜索過程產(chǎn)生影響的現(xiàn)象發(fā)生,因此需要對常規(guī)遺傳算法進行改進。本文使用的方法是通過混合編碼方式進行改進,同時對交叉算子、變異算子、交叉概率[Pc]以及變異概率[Pm]等參數(shù)進行優(yōu)化修正。
(1) 混合編碼方案
二進制編碼解碼的優(yōu)點是操作簡便、易于實現(xiàn)等;實數(shù)編碼方法的優(yōu)點是針對連續(xù)參數(shù)優(yōu)化問題的精度高、直觀等。因此本文將兩種編碼方式進行結(jié)合,發(fā)揮其各自優(yōu)點,實現(xiàn)對遺傳算法的改進。通過此種方法改進后,遺傳操作速度加快、全局搜索范圍增加,同時也提高了優(yōu)化的精度等。
(2) 適應值函數(shù)選取
尋找使得所有進化過程網(wǎng)絡誤差平方和最小的網(wǎng)絡權(quán)值即為遺傳算法的搜索目標。遺傳算法通常的進化方向是向著適應值增加的方向發(fā)展,因此,本文通過優(yōu)化得到的權(quán)值、閾值,計算得到對應神經(jīng)網(wǎng)絡的誤差平方和,適應誤差的倒數(shù)為適應度函數(shù)。各個個體的適應值可以表示為:
網(wǎng)絡的目標函數(shù)表示為:
式中:[qijk]是使用第[j]個訓練數(shù)據(jù)樣本進行輸入時,第[k]個節(jié)點的輸出;[pjk]是期望網(wǎng)絡的輸出;[n]是訓練數(shù)據(jù)樣本數(shù)量;[m]是BP神經(jīng)網(wǎng)絡的輸出層神經(jīng)元個數(shù);[L]為種群規(guī)模數(shù);[i=1,2,…,L。]
(3) 選擇算子
本文使用的選取方法為排序法。排序法思想是把個體適應度的不同轉(zhuǎn)換為排序序列,適應度較大的個體被選取的概率就越大,適應度較小的個體被選取的概率就越小。針對個體按照其適應度完成升序的排序,之后按下面方法對個體的選取概率進行計算:
式中:[Pmax]是最優(yōu)染色體選取概率;[n(i)]是種群中第[i]個染色體適應值的排序。
對個體使用比例選擇法進行選取。對每個個體累計選取概率[qi(i=1,2,…,L)]進行計算,在[(0,qL)]區(qū)域內(nèi)生產(chǎn)一個隨機序列[rj(j=1,2,…,L),]該序列為升序排序,如果[qi-1 (4) 交叉算子 交叉算子對于確保優(yōu)良性能得以遺傳具有重要作用。本文使用的方法是在二進制的編碼過程中,使用單點交叉法,隨機抽取2個父代串中的交叉點并交換對應子串,在交叉點的第[k]位進行交叉操作的方法為: 在進行實數(shù)編碼時,使用算數(shù)交叉法,即通過兩個個體組合成新的染色體。兩個個體[Xli]和[Llj]是通過種群隨機抽取的,交叉算子為: 式中:[Xli]和[Xlj]是交叉前的一對個體;[Xli]和[Xlj]是交叉后的一對個體;[c]是0~1的隨機數(shù)。 本文使用的這種交叉方法因為能夠得到多種組合,所以使得兩個個體的信息得到充分交換對找到全局的最佳值是有利的[9]。 (5) 變異算子 保證種群多樣性的一個主要方法就是通過變異操作。本文在二進制編碼過程中使用基本位變異操作,實數(shù)編碼過程使用非均勻變異操作。非均勻變異操作中使用的新基因值[x′k]為: 式中:[Δ(t,Ukmax-ηk)]是[0,Ukmax-ηk]范圍內(nèi)的隨機數(shù);[Δ(t,ηk-Ukmin)]是[0,ηk-Ukmin]范圍內(nèi)的隨機數(shù)。 (6) 確定交叉和變異概率 交叉概率[Pc]以及變異概率[Pm]對遺傳算法的優(yōu)化性能具有至關(guān)重要的作用。本文使用自適應交叉概率和變異概率以不對適應值高的個體進行破壞的同時確保種群的多樣性: 式中:[λ1,][λ2,][λ3,][λ4]為0~1的常數(shù);[fmax]是種群中適應值的最大值;[f]是種群中適應值的平均值;[f]是較大的交叉互換適應值;[f]是變異個體的適應值。 當種群陷入局部最小值時可以將交叉概率[Pc]以及變異概率[Pm]適當增加;當種群在解空間比較分散時,可以將交叉概率[Pc]以及變異概率[Pm]適當減小;另外,對于適應度較高的個體,應減小交叉概率[Pc]以及變異概率[Pm;]對于適應度較低的個體,應增加交叉概率[Pc]以及變異概率[Pm,]這樣交叉概率[Pc]以及變異概率[Pm]會跟隨種群個體的適應度改變而變化[10]。 2 實驗分析 本文使用Mitlincoln實驗室的KDD CUP99數(shù)據(jù)庫中的網(wǎng)絡異常流量數(shù)據(jù)進行實驗研究。主要選取常見的Alpha Anomaly異常流量、DDos異常流量、PortScan異常流量、NetworkScan異常流量、Worms異常流量以及FlashCrowd異常流量數(shù)據(jù)各100條。對各種流量數(shù)據(jù)樣本隨機抽取50條作為訓練樣本,另外50條用于對檢測模型進行性能測試[11]。 網(wǎng)絡異常流量類型與主要流特征對應關(guān)系如表1所示[12]。 為了對比本文研究的GA改進BP神經(jīng)網(wǎng)絡網(wǎng)絡異常流量檢測方法的性能,使用常規(guī)BP神經(jīng)網(wǎng)絡建立同樣的檢測模型。使用Matlab建立兩種方法的檢測模型,神經(jīng)網(wǎng)絡采用3層結(jié)構(gòu),由異常類型及異常類型對應的特征流決定了神經(jīng)網(wǎng)絡的輸入層有6個神經(jīng)元,輸出層也有6個神經(jīng)元,設定學習速率為0.1。常規(guī)BP神經(jīng)網(wǎng)絡使用隨機函數(shù)對權(quán)值、閾值進行初始化設定,而本文研究的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡則使用經(jīng)過訓練得到的最佳個體對權(quán)值、閾值進行初始化設定[13]。 兩種算法的網(wǎng)絡誤差平方和響應曲線如圖2所示。 可以看出,本文研究的方法通過對個體交叉概率和變異概率進行調(diào)節(jié),相比常規(guī)BP神經(jīng)網(wǎng)絡能夠使用更短的速度達到誤差要求,迭代步數(shù)更少,訓練速度更快,效率更高。 針對上述測試數(shù)據(jù),使用兩種方法進行測試。使用誤報率和檢測率對網(wǎng)絡異常檢測方法的檢測性能進行評價: [誤報率=被誤報為異常的正常樣本數(shù)量正常樣本總數(shù)×100%] (13) [檢測率=檢測出異常樣本數(shù)量異常樣本總數(shù)×100%] (14) 使用兩種算法建立的檢測模型的檢測率和誤報率對比如表2所示。 < 從測試結(jié)果可以看出:本文研究方法針對6種異常流量的平均檢測率為95.3%,平均誤報率為4.7%;而常規(guī)BP神經(jīng)網(wǎng)絡算法建立的檢測模型的平均檢測率僅為81.8%,平均誤報率為18.2%。本文研究方法的檢測性能要明顯優(yōu)于常規(guī)算法,說明本文提出的改進型遺傳算法對BP神經(jīng)網(wǎng)絡的結(jié)構(gòu)、權(quán)值以及閾值進行同步優(yōu)化,避免了盲目選擇BP神經(jīng)網(wǎng)絡結(jié)構(gòu)參數(shù)帶來的問題,避免了常規(guī)BP神經(jīng)網(wǎng)絡容易陷入局部最優(yōu)解的問題。 3 結(jié) 語 由于網(wǎng)絡異常流量類型多樣復雜,在大型Internet供應商以及企業(yè)網(wǎng)絡中對異常進行檢測具有非常大的難度,而常規(guī)異常檢測具有檢測率低、誤報率高等問題,因此本文對網(wǎng)絡異常流量檢測方法進行深入研究。針對BP神經(jīng)網(wǎng)絡算法存在容易陷入局部最優(yōu)解,訓練時間長,效率低等問題,本文提出一種利用遺傳算法對BP神經(jīng)網(wǎng)絡進行改進的方法以提高BP神經(jīng)網(wǎng)絡算法性能。本文將二進制編碼和實數(shù)編碼兩種編碼方式進行結(jié)合,發(fā)揮其各自優(yōu)點,實現(xiàn)對遺傳算法的改進。通過此種方法改進后,遺傳操作速度加快、全局搜索范圍增加,同時也提高了優(yōu)化的精度等。通過遺傳算法對BP神經(jīng)網(wǎng)絡的權(quán)值、閾值進行優(yōu)化,加快了BP神經(jīng)網(wǎng)絡的學習速率,提高訓練效率,極大改進了BP神經(jīng)網(wǎng)絡的逼近能力以及泛化能力。 參考文獻 [1] 王濤,余順爭.基于機器學習的網(wǎng)絡流量分類研究進展[J].小型微型計算機系統(tǒng),2012(5):1034?1040. [2] 姚宏林,韓偉杰,吳忠望.基于模糊相對熵的網(wǎng)絡異常流量檢測方法研究[J].信息安全與技術(shù),2014(8):16?18. [3] 趙鑫.基于NetFlow的網(wǎng)絡流量異常檢測技術(shù)研究[D].保定:河北大學,2014. [4] 李洪洋.淺析網(wǎng)絡異常流量分析檢測研究與實現(xiàn)[J].網(wǎng)絡安全技術(shù)與應用,2013(10):63?64. [5] 燕發(fā)文,黃敏,王中飛.基于BF算法的網(wǎng)絡異常流量行為檢測[J].計算機工程,2013(7):165?168. [6] 彭基偉,呂文華,行鴻彥,等.基于改進GA?BP神經(jīng)網(wǎng)絡的濕度傳感器的溫度補償[J].儀器儀表學報,2013(1):153?160. [7] 行鴻彥,鄒水平,徐偉,等.基于PSO?BP神經(jīng)網(wǎng)絡的濕度傳感器溫度補償[J].傳感技術(shù)學報,2015(6):864?869. [8] 何嘉.基于遺傳算法優(yōu)化的中文分詞研究[D].成都:電子科技大學,2012. [9] 夏玫.BP神經(jīng)網(wǎng)絡泛化能力改進研究[D].太原:太原科技大學,2009. [10] 周凌翱.改進BP神經(jīng)網(wǎng)絡在模式識別中的應用及研究[D].南京:南京理工大學,2010. [11] 吳小花.網(wǎng)絡異常流量識別技術(shù)的研究[D].長春:長春工業(yè)大學,2013. [12] 申磊.基于機器學習的異常流量檢測系統(tǒng)研究[D].北京:北京郵電大學,2013. [13] 李春林,黃月江,牛長喜.一種面向云計算的網(wǎng)絡異常流量分組方法[J].計算機應用研究,2014(12):3704?3706.