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