王振東, 曾 勇, 王俊嶺, 胡中棟
(江西理工大學(xué)信息工程學(xué)院, 贛州 341000)
隨著計算機技術(shù)及網(wǎng)絡(luò)的不斷發(fā)展進步,網(wǎng)絡(luò)安全性受到越來越多的重視。然而網(wǎng)絡(luò)中存在著量大且復(fù)雜的攻擊行為,這些攻擊已然成為網(wǎng)絡(luò)及信息安全的主要威脅。入侵檢測[1]作為防火墻之后的第二道防線,具有積極主動且動態(tài)的防御能力,有效地彌補了傳統(tǒng)安全技術(shù)的不足。一般情況下,入侵檢測可以分為異常和誤用兩種不同的檢測類型。誤用檢測是依據(jù)已有的攻擊數(shù)據(jù)信息特征與主機或網(wǎng)絡(luò)中的數(shù)據(jù)進行匹配,如果匹配的結(jié)果相符合,則被定義為異常行為,這種檢測方式只能檢測樣本數(shù)據(jù)庫中已存在的網(wǎng)絡(luò)攻擊類型。異常檢測方法是先在樣本數(shù)據(jù)庫中建立具有正常行為軌跡的基本特征,再將所有偏離或不符合正常軌跡的行為都視為入侵行為。
當(dāng)前對于入侵檢測技術(shù)的研究主要集中在3個方面,分別是基于機器學(xué)習(xí)的入侵檢測、基于數(shù)據(jù)挖掘的入侵檢測和基于神經(jīng)網(wǎng)絡(luò)的入侵檢測。尤其是神經(jīng)網(wǎng)絡(luò)具有多數(shù)據(jù)并行計算、良好的自適應(yīng)學(xué)習(xí)能力、高速的尋優(yōu)能力及較強的抗干擾性能,并能夠處理有失真及不完整數(shù)據(jù)信息等特性,非常適合從龐大網(wǎng)絡(luò)中復(fù)雜、高速且量大的數(shù)據(jù)中識別入侵?jǐn)?shù)據(jù)。楊雅輝等[2]提出了具有增量式分層自組織映射(growing hierarchical self-organizing maps,GHSOM)的算法模型結(jié)構(gòu),該結(jié)構(gòu)能夠保留已學(xué)習(xí)過的知識,再對現(xiàn)實網(wǎng)絡(luò)流量中新出現(xiàn)的攻擊進行增量式的學(xué)習(xí)。該方法使得神經(jīng)網(wǎng)絡(luò)算法模型具有良好的動態(tài)自適應(yīng)性,對于新型的網(wǎng)絡(luò)攻擊類型仍能夠保持較好的檢測率。蘇潔等[3]利用DS(dempster/shafer)證據(jù)理論提出了一種基于GHSOM的入侵檢測模型。該模型能夠在入侵檢測過程中通過動態(tài)控制網(wǎng)絡(luò)子網(wǎng)的拓展速度,從而提升網(wǎng)絡(luò)子網(wǎng)的動態(tài)適應(yīng)性。該方法在網(wǎng)絡(luò)流量數(shù)據(jù)有噪聲的情況下也能夠保持較好的檢測率,但沒有評估到現(xiàn)實網(wǎng)絡(luò)中由于網(wǎng)絡(luò)數(shù)據(jù)隨機性這一情況的出現(xiàn)及實際網(wǎng)絡(luò)數(shù)據(jù)會出現(xiàn)短時間膨脹對于檢測率的影響。
BP(back propagation)神經(jīng)網(wǎng)絡(luò)[4]是一種嚴(yán)格按照誤差逆向傳播及訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是目前應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)。由于BP神經(jīng)網(wǎng)絡(luò)模型具備較強的自學(xué)習(xí)能力,當(dāng)應(yīng)用于入侵檢測時BP神經(jīng)網(wǎng)絡(luò)不僅能檢測網(wǎng)絡(luò)數(shù)據(jù)中存在的已知攻擊,對未知的網(wǎng)絡(luò)攻擊類型也具有一定的檢測效果。但是,BP神經(jīng)網(wǎng)絡(luò)的權(quán)值閾值及學(xué)習(xí)率等參數(shù)選取時具有隨機性較大等特點,容易導(dǎo)致網(wǎng)絡(luò)出現(xiàn)收斂速度慢、BP算法易陷入局部最優(yōu)等問題[5]。
對此,研究人員提出了相應(yīng)的改進策略,周愛武等[6]采用模擬退火算法尋找更優(yōu)化的樣本子集,有效地加快了網(wǎng)絡(luò)收斂速度及縮短了學(xué)習(xí)時間。梁辰等[7]用綜合主成分分析(principal component analysis,PCA)和附加動量法,對數(shù)據(jù)特征選擇和對網(wǎng)絡(luò)權(quán)值的修正,使得在網(wǎng)絡(luò)樣本過大時收斂性能有保證。Sun[8]利用動量式粒子群算法及自適應(yīng)度訓(xùn)練優(yōu)化算法,通過改進BP網(wǎng)絡(luò),提出了一種較為新型的算法結(jié)構(gòu)模型MLPSO-BP,仿真實驗結(jié)果表明,該算法模型能達到較高的檢測率。Cui等[9]調(diào)整相關(guān)規(guī)則檢測網(wǎng)絡(luò)中的異常流量,比起傳統(tǒng)的BP網(wǎng)絡(luò)模型,能夠有效地降低誤報率增量及總誤差。Qiu等[10]提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的變異粒子群算法(mutation-particle swarm optimization,MPSO)和MPSO優(yōu)化算法的改進算法,并提出了基于神經(jīng)網(wǎng)絡(luò)的MPSO_BP:MPBIDS入侵檢測模型,該模型有很強的重用及擴展能力,能及時監(jiān)控整個龐大的網(wǎng)段、可以處理大量的網(wǎng)絡(luò)數(shù)據(jù)、具有較強的自主學(xué)習(xí)能力和提高入侵樣本檢測率等優(yōu)點。
與傳統(tǒng)的BP網(wǎng)絡(luò)算法相比,使用遺傳算法、蟻群算法和PSO算法等群智能優(yōu)化算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò),確實能夠在一定程度上加快BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練及學(xué)習(xí)的收斂速度,減小該算法陷入局部最優(yōu)的可能性。但是對于復(fù)雜較高維問題時,傳統(tǒng)智能優(yōu)化算法過早收斂的特性并不能保證模型收斂到最優(yōu)值[11],且一般的智能算法所優(yōu)化的BP神經(jīng)網(wǎng)絡(luò),通常情況下算法表現(xiàn)為結(jié)構(gòu)相對比較復(fù)雜,且初始參數(shù)較多,加大了BP神經(jīng)網(wǎng)絡(luò)算法的復(fù)雜性。
天牛須算法(beetle antennae search algorithm,BAS)2017年由Jiang等[12]提出,核心思想是模仿生物界里具有感知觸須的天牛尋找食物過程而演變而成的智能搜索算法。該算法具體方法是使用天牛觸須來感知并確定出天牛下一步需要移動的方位,天牛觸須靈敏的感知能力能夠有效地減小各天牛進行無目的且隨機的無規(guī)則轉(zhuǎn)移的概率,進而直接提升了該算法的收斂速度。BAS具有結(jié)構(gòu)簡單、初始及可變參數(shù)較少等其他智能算法不具有的優(yōu)點。然而,原始的BAS也有其局限性,只能實現(xiàn)單體搜索,意味著在較高維(一般大于4)的空間中搜索解時易陷入局部最優(yōu)解,無法跳出。因此,在現(xiàn)有并在研究的群體智能優(yōu)化算法基礎(chǔ)上,提出天牛群算法(beetle swarm optimization,BSO)。該算法的本質(zhì)是通過將天牛個體獨自搜索的方式變化為群體共同搜索的方式,以此加強天牛個體間的聯(lián)系,并且引入動態(tài)的步長策略讓每個天牛個體能夠?qū)崿F(xiàn)可變步長的不規(guī)則移動,不僅保留BAS初始及可變參數(shù)少、容易實現(xiàn)的優(yōu)點,還避免了BAS算法在多維甚至高維問題上容易陷入局部極值、精度較低等缺陷。最后,對BSO再進行改進,并將改進的BSO應(yīng)用于BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的優(yōu)化,提升BP神經(jīng)網(wǎng)絡(luò)對入侵網(wǎng)絡(luò)數(shù)據(jù)的檢測性能。實驗階段對BP神經(jīng)網(wǎng)絡(luò)、GWOBP(grey wolf optimizer-back propagation)、PSOBP(particle swarm optimization-back propagation)進行了比較,并在網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)集NSL-KDD上對算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型分別進行了仿真實驗驗證。
BP神經(jīng)網(wǎng)絡(luò)是一種廣泛應(yīng)用于各項研究的多層前向型神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是由3個部分組成,分別是數(shù)據(jù)輸入層、作為計算的隱藏層和結(jié)果輸出層。BP神經(jīng)網(wǎng)絡(luò)主要包括輸入數(shù)據(jù)信號的正向傳播和結(jié)果誤差反向傳播兩個過程。
(1)正向傳播過程。信號通過神經(jīng)網(wǎng)絡(luò)輸入層輸入,隨后各隱藏層的神經(jīng)元對其進行處理,最后傳入神經(jīng)網(wǎng)絡(luò)的輸出層,得到信號處理的實際輸出值,若預(yù)測值與真實值之間的誤差未達到BP神經(jīng)網(wǎng)絡(luò)所設(shè)定的精度,則將該誤差轉(zhuǎn)入反向傳播的過程。
(2)反向傳播過程。反向傳播過程是將預(yù)測值與真實值之間的誤差通過BP神經(jīng)網(wǎng)絡(luò)隱藏層向輸入層進行逆向傳導(dǎo),在這個過程中利用BP神經(jīng)網(wǎng)絡(luò)的誤差分配機制將誤差分配給各個神經(jīng)元,并沿著誤差函數(shù)下降最快的方向調(diào)整BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,然后用該過程更新后的權(quán)值和閾值進行正向傳播。進行反復(fù)的正向和反向傳播過程,直到訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò)輸出誤差滿足所設(shè)定的精度要求,或達到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止,就是BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程。圖1所示是一個典型的三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 典型三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖1中A1,A2,…,Ai,…,Am為輸入層神經(jīng)元的輸入值,W1j,W2j,…,Wij,…,Wmj為輸入層的節(jié)點與隱藏層的第j個節(jié)點之間的網(wǎng)絡(luò)權(quán)重,k1,k2,…,kj,…,kn為隱藏層輸入,P1,P2,…,Pl為輸出層輸出。BP神經(jīng)網(wǎng)絡(luò)算法步驟如下。
步驟1初始化。首先將BP神經(jīng)網(wǎng)絡(luò)的權(quán)重及閾值正態(tài)分布隨機初始化至-1~1,確保每個神經(jīng)網(wǎng)絡(luò)單元都有一個初始閾值。
步驟2正向傳播過程。將已進行數(shù)據(jù)預(yù)處理數(shù)據(jù)樣本輸入BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,然后利用各層的輸出公式計算該BP神經(jīng)網(wǎng)絡(luò)中各層的輸出值。
(1)該過程的隱藏層輸出的計算公式為
(1)
式(1)中:αj為隱藏層第j個神經(jīng)元的閾值。
(2)利用BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù)計算隱藏層各神經(jīng)元的實際輸出值。隱藏層的實際輸出計算公式為
(2)
式(2)中:f為sigmoid激活函數(shù)。
(3)將隱藏層各神經(jīng)元計算得到的結(jié)果進行輸出。
步驟3依據(jù)誤差反向傳播及誤差分配機制,最后用梯度下降算法對BP神經(jīng)網(wǎng)絡(luò)權(quán)值閾值進行反向更新取值。
(1)根據(jù)式(3)計算輸出層的誤差:
Errl=Pl(1-Pl)(Tl-Pl)
(3)
式(3)中:Pl為預(yù)測值;Tl為真實值。
(2)根據(jù)式(4)計算隱藏層誤差:
(4)
式(4)中:Pj為BP神經(jīng)網(wǎng)絡(luò)隱藏層的輸出值;Errj為隱藏層的誤差;Errl為輸出層的誤差;Wjl為神經(jīng)網(wǎng)絡(luò)隱藏層的第j個神經(jīng)元與輸出層第l個神經(jīng)元之間的權(quán)重。
(3)按照式(5)和式(6)更新權(quán)值和閾值:
Wij=Wij+ΔWij=Wij+(O)ErrjPi
(5)
αj=αj+Δαj=αj+(O)Errj
(6)
式中:O為學(xué)習(xí)率,取值范圍是0 步驟4不停重復(fù)上述的步驟2、步驟3,直到訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)所輸出的誤差值滿足所預(yù)定的精度要求,或達到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止,結(jié)束算法。 天牛須搜索算法(BAS)是啟發(fā)于天牛尋找食物的過程,可用于對目標(biāo)函數(shù)進行優(yōu)化的新技術(shù),其生物原理為:當(dāng)天牛個體尋找食物時,開始時并不知道食物的具體位置在哪里,只能感知到空氣中食物氣味濃度的強弱,使用感知能力來覓食。每個天牛個體通過左右兩只長觸須感受當(dāng)前環(huán)境中的食物氣味濃度大小,若右須感知濃度比左邊觸須大,那天牛下一步將會向右邊飛,反之則向左邊飛。根據(jù)這一簡單的覓食搜尋原理,天牛個體便可以有效且快速地尋找到食物的具體位置。與遺傳算法、粒子群算法等類似的是,BAS并不需要提前知道函數(shù)的具體表現(xiàn)形式以及梯度等各類信息,就可以輕易實現(xiàn)自動尋優(yōu)的這一過程,而且其天牛個體僅為一個,尋優(yōu)速度顯著提高。BAS模型建立的步驟如下。 求解D維模型優(yōu)化問題時,天牛個體可以由質(zhì)心、左須及右須3個點來代表。 (1)對天牛須的朝向作隨機向量并做歸一化處理得: (7) 式(7)中:rands為隨機函數(shù);D表示空間維度。 (2)創(chuàng)建天牛左右須與質(zhì)心之間的坐標(biāo)關(guān)系 (8) 式(8)中:xrs表示在第s次迭代時該天牛右須的位置坐標(biāo);xls表示在第s次迭代時該天牛左須的位置坐標(biāo);xs表示在第s次迭代時該天牛的質(zhì)心坐標(biāo);L表示左右兩須之間的距離。 (3)根據(jù)適應(yīng)度函數(shù)來確定該天牛左右須的氣味強度,即f(xr)和f(xl)的強度,f函數(shù)為適應(yīng)度函數(shù)。 (4)天牛位置迭代更新方法: (9) β(s+1)=μβ(s) (10) 式中:β(s)表示在第s次迭代時的步長;f(xls) 和f(xrs)分別代表第s次迭代時該天牛左右須氣味強度;sign()為符號函數(shù);μ為步長因子,一般取0.95。若右須的適應(yīng)度大于左須,sign()取1,天牛往右須方向以步長β(s)移動,反之,往左須方向移動。 2.2.1 初始種群 文獻[13]表明,在群智能搜索算法中,收斂性很大程度地受初始群體分布的影響。所以在各類群智能搜索算法初始群體分布得越為均勻,意味其初始群體中包含著越多有意義的有效信息,往往能使智能搜索算法更快速地收斂到優(yōu)的解;反之,會對算法性能產(chǎn)生影響[14]。因此采用混沌序列搜索的方式來產(chǎn)生實驗所需要的初始天牛群體,混沌序列能使產(chǎn)生的天牛群體具有遍歷性、規(guī)律性及內(nèi)隨機性等特點,能夠使初始種群分布更加均勻,即在一定程度上提升了群智能算法的搜索尋優(yōu)效率[15]。目前,大部分研究者使用Logistic映射[16]來產(chǎn)生初始混沌序列,然而需要更為均勻的初始種群,可是Logistic映射對具有初始值的混沌序列要求較高且較為敏感,故該映射不適合產(chǎn)生均勻性較好的混沌初始序列。單梁等[17]通過大量的仿真實驗直接證明了Tent映射要比Logistic映射在閉區(qū)間[-1,1]上產(chǎn)生的混沌初始序列分布得更為均勻。因此,采用式(11)所示的Tent映射來產(chǎn)生相對較為均勻的初始天牛群體: (11) 2.2.2 感知因子及學(xué)習(xí)策略 由于BAS算法中存在天牛個體搜索尋優(yōu)的能力范圍有限的缺點。導(dǎo)致天牛個體要從當(dāng)前搜索的局部區(qū)域向臨近區(qū)域搜索進行尋優(yōu)轉(zhuǎn)移并不容易,從而直接降低了該算法的收斂性能。雖然群體搜索算法能擴大搜索尋優(yōu)的范圍且明顯優(yōu)于個體搜索算法[18],但各天牛群體間的天牛個體之間嚴(yán)重缺乏實時信息的交流及信息數(shù)據(jù)的反饋,并不能高效快速地解決收斂問題。為此,引入可變的感知因子及具有導(dǎo)向性的學(xué)習(xí)策略。各天牛群體中的每個天牛在用觸須感知當(dāng)前的移動方位時,還要通過學(xué)習(xí)并比較歷史天牛群體之間的尋優(yōu)值,以此來保證天牛群體中獨立的天牛個體向天牛群體中最優(yōu)的個體方向移動靠近。這種具有指導(dǎo)作用的導(dǎo)向策略夠有效減少該算法在多維及較高維的搜索空間中的收斂時間。因此,天牛個體的移動尋優(yōu)既受到自身感知判斷的影響,又受到群體的導(dǎo)向。 綜上所述,根據(jù)式(7)、式(8)可以確定天牛須朝向及左右觸須的具體位置,其中參數(shù)L代表兩須之間的距離值,該值越大,則表示天牛個體越大,其觸角感知范圍便越大。所以,天牛個體位置的更新方法為 (12) (13) 2.2.3 改進BSO-BP神經(jīng)網(wǎng)絡(luò)模型的建立 利用天牛群搜索算法尋找確立BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值,并將該最優(yōu)值應(yīng)用于設(shè)定好參數(shù)的BP神經(jīng)網(wǎng)絡(luò)中,從而設(shè)計出最終的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型。該模型可以很好地克服原始BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練及測試穩(wěn)定性較差、算法易陷入局部最優(yōu)等缺點。模型建立方法如下。 (1)定義空間維度D,設(shè)該模型結(jié)構(gòu)為A-B-1,A為BP神經(jīng)網(wǎng)絡(luò)輸入層神經(jīng)元個數(shù),B為隱含層神經(jīng)元個數(shù),1是輸出層神經(jīng)元個數(shù),則計算搜索空間維度D=AB+B1+B+1。 (2)感知因子yt的設(shè)置。感知因子yt用來控制天牛的區(qū)域搜索的能力,初始步長應(yīng)設(shè)置的大些,使之足以覆蓋當(dāng)前的搜索區(qū)域而不至于陷入局部極小值,采用導(dǎo)向性的學(xué)習(xí)策略,向天牛群體最優(yōu)學(xué)習(xí),即式(13)所示。 (3)確定適應(yīng)度函數(shù)。以測試數(shù)據(jù)的誤差和作為適應(yīng)度評價函數(shù),用于推進對空間區(qū)域的搜索。函數(shù)為 (14) (4)天牛群初始化。采用Tent映射來產(chǎn)生較為均勻的天牛初始群體,并創(chuàng)建每個天牛須朝向的隨機向量。 (5)評價。根據(jù)適應(yīng)度函數(shù)式(14)計算在初始位置時的適應(yīng)度函數(shù)值。 (6)天牛左右須位置的更新。根據(jù)式(8)更新天牛須的位置坐標(biāo)。 (8)迭代更新控制。判斷適應(yīng)度函數(shù)值是否達到設(shè)定的精度(取值為0.001)或迭代進行到最大次數(shù)(500代),如果滿足條件要求則轉(zhuǎn)步驟(9),否則,返回到步驟(6)繼續(xù)進行迭代。 (9)最優(yōu)解生成。當(dāng)算法停止迭代時,即適應(yīng)度函數(shù)值達到設(shè)定的精度0.001或迭代達到500代時,得到的解為BP網(wǎng)絡(luò)訓(xùn)練的最優(yōu)解,即BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值。再將上述得到的最優(yōu)解代入BP神經(jīng)網(wǎng)絡(luò)中進行二次訓(xùn)練及學(xué)習(xí),形成最終的入侵檢測分類模型。 綜上所述,給出改進BSO-BP入侵檢測分類模型的具體流程,如圖2所示。 圖2 改進BSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程 先把網(wǎng)絡(luò)流量數(shù)據(jù)進行預(yù)處理,然后用改進天牛群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)、粒子群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)及灰狼算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)做了收斂速度對比和檢測正確率及誤報率對比2個實驗。 為了評估本文模型及算法的有效性,實驗使用已經(jīng)去噪處理且比較理想的公共數(shù)據(jù)集NSL-KDD,原始數(shù)據(jù)來自MIT林肯實驗室收集的美國空軍模擬網(wǎng)的流量監(jiān)控數(shù)據(jù),后來被哥倫比亞大學(xué)等整理成規(guī)范的公共數(shù)據(jù)集KDD99[19]。大約共有5×106條網(wǎng)絡(luò)數(shù)據(jù)信息,39種網(wǎng)絡(luò)攻擊類型,每一條網(wǎng)絡(luò)數(shù)據(jù)都有41個特征屬性和1個類標(biāo)識。該數(shù)據(jù)集中包含了1種正常的標(biāo)識類型normal和4種異常的標(biāo)識類型Dos、Probing、U2R、R2L,其中4種異常共含有22種攻擊類型,如表1所示。 表1 NSL-KDD入侵檢測實驗數(shù)據(jù)標(biāo)識類型 與此同時,為了能夠進行統(tǒng)一的度量,對原始數(shù)據(jù)樣本進行歸一化處理,使得處理后的網(wǎng)絡(luò)流量數(shù)據(jù)均勻分布在區(qū)間[-1,1]內(nèi),使用的是mapminmax函數(shù)。 實驗環(huán)境為windows7 64位操作系統(tǒng),處理器Intel(R)Core(TM)i5-6500 CPU 3.20GHz,安裝內(nèi)存(RAM)8.00 GB。仿真環(huán)境是MATLAB R2016a。仿真實驗中抽取3組樣本數(shù)據(jù)(記為S1、S2、S3)進行入侵測試,每組樣本數(shù)據(jù)中共包含2 400條網(wǎng)絡(luò)流量事件記錄,都是由2 000條正常網(wǎng)絡(luò)流量事件記錄和400條入侵行為記錄組成。在每個樣本數(shù)據(jù)中的攻擊類型數(shù)目不同,能夠有效對比4種算法檢測不同攻擊類型的功能。詳細(xì)樣本數(shù)據(jù)如表2所示。 表2 含有2 400條記錄的樣本數(shù)據(jù) 仿真測試中使用傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法及以下3種BP神經(jīng)網(wǎng)絡(luò),包括粒子群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)、灰狼算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)和本文改進的天牛群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)采用相同的網(wǎng)絡(luò)流量樣本數(shù)據(jù)進行測試。在入侵檢測實驗過程中,采用檢測率(DR),誤報率(FPR)兩項指標(biāo)作為對算法檢測能力的評價,指標(biāo)定義為 (15) (16) 式中:TP表示被正確識別的各類網(wǎng)絡(luò)流量樣本個數(shù);FN為未檢測出的各類網(wǎng)絡(luò)流量樣本個數(shù);FP為被誤當(dāng)作檢測出的屬于各類網(wǎng)絡(luò)流量樣本的個數(shù)。 4種算法中,使用相同的BP網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),即41-30-5,用2 100條數(shù)據(jù)進行測試,300條數(shù)據(jù)進行預(yù)測,每種算法均在仿真環(huán)境下進行多次實驗,取各次實驗結(jié)果的平均值,其中仿真實驗結(jié)果如表3所示。 表3 4種算法仿真實驗結(jié)果 從表3的實驗數(shù)據(jù)相比較得出,用具有動態(tài)性感知因子、具有指導(dǎo)作用的導(dǎo)向性學(xué)習(xí)策略改進的BSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)參數(shù)而提出的BSOBP優(yōu)化神經(jīng)網(wǎng)絡(luò)算法,與BP算法、GWOBP算法及PSOBP算法相比,在同一實驗環(huán)境條件下,提出的改進BSOBP算法使得BP網(wǎng)絡(luò)模型的入侵誤報率得到明顯降低,而入侵檢測率有顯著提高。仿真實驗數(shù)據(jù)說明,改進BSO算法能夠有效提升BP神經(jīng)網(wǎng)絡(luò)模型對網(wǎng)絡(luò)流量數(shù)據(jù)的檢測性能,并降低誤報率。用圖3表示表3中的實驗數(shù)據(jù),能夠更加直觀地說明及比較仿真實驗結(jié)果。 圖3 4種算法的仿真實驗結(jié)果 4種攻擊類型在網(wǎng)絡(luò)流量數(shù)據(jù)樣本中的平均檢測率和誤報率仿真結(jié)果如表4 所示,由于R2L和U2R兩種網(wǎng)絡(luò)攻擊類型的網(wǎng)絡(luò)流量數(shù)據(jù)在總體及樣本數(shù)據(jù)量中相對其他攻擊類型較小,故容易造成錯判,導(dǎo)致仿真實驗中對于R2L和U2R兩種攻擊類型的檢測率相對比較低,但改進的BSOBP算法仍能較好地檢測這兩類異常數(shù)據(jù),檢測率分別是63.64%、68.75%,雖相比BP算法,GWOBP算法及PSOBP算法對R2L和U2R的檢測率有所提高,但檢測率均低于60%;4種算法對于DOS和Probing兩種網(wǎng)絡(luò)攻擊類型的檢測率是相對較高的,改進BSOBP算法的入侵檢測率分別高達95.29%、91.47%,GWOBP算法及PSOBP算法相比BP算法檢測率更高,但檢測率均未達到90%;相比4種攻擊在各個算法優(yōu)化的入侵檢測模型中的誤報率,相比其他算法,特別是BP算法,改進BSOBP算法模型對DOS的攻擊的誤報率降低了高達5.4%,而GWOBP算法和PSOBP算法雖相比BP算法對誤報率有所降低,但其中GWOBP算法降低誤報率幅度最大的是U2R攻擊,僅降低了3.49%,PSOBP算法降低誤報率幅度最大的是DOS攻擊,僅降低了4.35%。 表4 4種攻擊的仿真結(jié)果 為了使得實驗結(jié)果公平,4種算法均采用與檢測正確率及誤報率對比試驗相同的參數(shù),即輸入層節(jié)點個數(shù)為41,中間的隱藏層節(jié)點個數(shù)為30,輸出層節(jié)點個數(shù)為5,學(xué)習(xí)率固定為0.1,實驗誤差設(shè)定為0.001,初始因子設(shè)定為0.95,最大迭代次數(shù)為500次,種群數(shù)均設(shè)為30,如表5所示。 圖4(a)~圖4(c)分別為GWOBP算法、PSOBP算法及改進BSOBP算法的收斂曲線。實驗檢測率和迭代次數(shù)如表6所示。 表5 參數(shù)設(shè)置 圖4 3種算法的收斂曲線 表6 檢測率和迭代次數(shù) 由圖4和表6可知,傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練次數(shù)為1 000次,檢測率為90.74%,GWO優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)超過了設(shè)置的最大迭代次數(shù)500次,適應(yīng)度的數(shù)量級為10-1,相比傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),檢測率提高了0.82%,僅對傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)起到了一定的優(yōu)化改進效果,而使用PSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)相比傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),檢測率僅提高了2.24%,但明顯提高了BP神經(jīng)網(wǎng)絡(luò)的收斂速率,減少了迭代次數(shù)。由圖4(b)和表6能夠看到,用PSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)和檢測率分別為200次和92.98%,可該算法的適應(yīng)值的數(shù)量級僅是10-2,但改進的BSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)適應(yīng)度卻接近數(shù)量級10-3,且迭代次數(shù)和檢測率分別為66次和97.87%,相比傳統(tǒng)BP算法的及其他算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)無論在收斂速度及迭代次數(shù)上都有了極大的改進。 本文的改進天牛群算法使用Tent映射方式來產(chǎn)生初始的天牛群體、動態(tài)的感知因子及導(dǎo)向性的學(xué)習(xí)策略來改進傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),使BP神經(jīng)網(wǎng)絡(luò)得到最優(yōu)的初始權(quán)值和閾值,從而有效解決了傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法初始值隨機性較大、易陷入局部最優(yōu)和收斂較慢等問題。由仿真實驗結(jié)果可以看出,改進的天牛群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)檢測率和迭代次數(shù)分別為66次和97.87%,檢測率和迭代次數(shù)方面都有了較大的改進。所以無論是從檢測率、誤報率,還是收斂速度上看,本文算法都要優(yōu)于其他3種算法。 用改進天牛群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,利用該算法產(chǎn)生一組最優(yōu)的初始權(quán)值和閾值并賦予BP神經(jīng)網(wǎng)絡(luò)進行二次訓(xùn)練,有效避免BP神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu),加快了算法收斂速度。這種集成方法充分利用了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力強的優(yōu)勢,同時也利用了改進天牛群算法全局尋優(yōu)的特點。在入侵檢測的仿真實驗結(jié)果中充分表明了改進后的天牛群算法檢測率、誤報率和迭代次數(shù)都優(yōu)于其他3種算法,且具有較高的檢測率、較低的誤報率及較高的收斂速率,均證明了該優(yōu)化算法的良好檢測性能,體現(xiàn)出較好的應(yīng)用成效和理論研究價值。在今后的工作中會使用更多的入侵?jǐn)?shù)據(jù)集進行實驗評估,找出其在不同數(shù)據(jù)集中的應(yīng)用優(yōu)勢,并進一步研究該方法在入侵檢測分類中的應(yīng)用。2 BAS及BSO
2.1 BAS基本原理
2.2 改進的天牛群算法
3 仿真實驗與分析
3.1 數(shù)據(jù)預(yù)處理
3.2 檢測正確率及誤報率對比試驗
3.3 收斂速度對比試驗
4 結(jié)論