晁萍瑤+王小敏
摘 要:為了解決目前入侵檢測(cè)技術(shù)準(zhǔn)確率低、誤報(bào)率高和無(wú)法檢測(cè)新攻擊類(lèi)型等問(wèn)題,研究了基于人工神經(jīng)網(wǎng)絡(luò)(ANN)的入侵檢測(cè)技術(shù),將徑向基函數(shù)(RBF)網(wǎng)絡(luò)應(yīng)用于入侵檢測(cè)研究中,并利用蛙跳算法(SFLA)對(duì)其參數(shù)進(jìn)行優(yōu)化,提高了入侵檢測(cè)性能。
關(guān)鍵詞:入侵檢測(cè)技術(shù);RBF神經(jīng)網(wǎng)絡(luò);蛙跳算法;網(wǎng)絡(luò)安全
DOIDOI:10.11907/rjdk.171313
中圖分類(lèi)號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2017)008-0050-03
0 引言
入侵檢測(cè)即檢測(cè)入侵,是指把網(wǎng)絡(luò)流量中入侵的記錄從正常記錄中檢測(cè)出來(lái)。研究證明RBF神經(jīng)網(wǎng)絡(luò)能夠以任意精度逼近連續(xù)函數(shù),特別適合解決分類(lèi)問(wèn)題。然而構(gòu)建基于RBF神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)模型,雖然可以提高入侵檢測(cè)的準(zhǔn)確率和誤報(bào)率,但在參數(shù)選擇中存在問(wèn)題。因?yàn)镽BF神經(jīng)網(wǎng)絡(luò)的隱層基函數(shù)一般是在輸入樣本集中選取,難以反映真正的輸入輸出關(guān)系,隱含層到輸出層的權(quán)值采用最小二乘法計(jì)算而得,訓(xùn)練過(guò)于簡(jiǎn)單。基于此,解男男[1]用粒子群(PSO)算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)技術(shù),并通過(guò)實(shí)驗(yàn)證明該算法的有效性和可行性,但其漏報(bào)率較高;單曉虹[2]利用遺傳算法(GA)對(duì)傳統(tǒng)RBF網(wǎng)絡(luò)的初始權(quán)重進(jìn)行優(yōu)化并用于系統(tǒng)辨識(shí)。實(shí)驗(yàn)證明該神經(jīng)網(wǎng)絡(luò)具有良好的泛化能力;蛙跳算法結(jié)合了基于模因遺傳的模因演算法 (MA)和基于群體覓食行為的粒子群算法特點(diǎn),具有概念簡(jiǎn)單、調(diào)整參數(shù)少、計(jì)算速度快、全局搜索尋優(yōu)能力強(qiáng)、易于實(shí)現(xiàn)等優(yōu)點(diǎn),已應(yīng)用于離散優(yōu)化問(wèn)題、連續(xù)優(yōu)化問(wèn)題和聚類(lèi)問(wèn)題[7]等多個(gè)領(lǐng)域。本文在解男男[1]研究的基礎(chǔ)上,用SFLA算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)隱含層到輸出層的權(quán)值參數(shù)并用于入侵檢測(cè)模型中,通過(guò)實(shí)驗(yàn)證明其性能優(yōu)于基于PSO優(yōu)化的RBF入侵檢測(cè)模型。
1 SFLA算法
SFLA是Eusuff和Lansey等為解決組合優(yōu)化問(wèn)題于2003年提出的一種基于群體的亞啟發(fā)式協(xié)同搜索群智能算法。該算法建立在群中個(gè)體具有模因進(jìn)化和利用模因?qū)崿F(xiàn)全局信息交換基礎(chǔ)上。
SFLA是通過(guò)使用一個(gè)啟發(fā)式函數(shù)來(lái)搜索問(wèn)題的全局最優(yōu)解,該算法主要應(yīng)用于模式識(shí)別、函數(shù)優(yōu)化等領(lǐng)域。SFLA算法圖解見(jiàn)圖1,它模擬了一群青蛙(解)在一片濕地(解空間)上跳動(dòng)覓食的過(guò)程[3]。
SFLA算法涉及到的參數(shù)為:F:蛙群的數(shù)量;m:子群的數(shù)量;n:子群中青蛙的數(shù)量;Dmax:允許更新的最大跳動(dòng)步長(zhǎng);Dmin:允許更新的最小跳動(dòng)步長(zhǎng);Px:全局最優(yōu)個(gè)體;Pb:子群中的最優(yōu)個(gè)體;Pw:子群中的最差個(gè)體;LS:局部元進(jìn)化次數(shù);SF:全局思想交流次數(shù)等[3]。
每個(gè)子群分別進(jìn)行局部深度搜索,更新蛙跳步長(zhǎng)和青蛙個(gè)體位置。
蛙跳步長(zhǎng)更新公式:
Di=rand()*(Pb-Pw)(1)
青蛙個(gè)體的位置更新公式:
Pw ′ = Pw + Di (||-Dmin ||≤||Di ||≤||Dmax ||)(2)
式(1)中,Di表示青蛙的更新步長(zhǎng),rand()表示0-1之間進(jìn)行取值的隨機(jī)數(shù);式(2)中,Pw′表示更新后的局部最差個(gè)體;如果Pw′所對(duì)應(yīng)的適應(yīng)值次于Pw所對(duì)應(yīng)的適應(yīng)值,則采用全局最優(yōu)解Px代替式(1)中的Pb,并更新Pw。
蛙跳步長(zhǎng)更新公式:
Di=rand()*(Px-Pw)(3)
青蛙個(gè)體的位置更新公式:
Pw ′ = Pw + Di (||-Dmin ||≤||Di ||≤||Dmax ||)(4)
如果Pw仍然沒(méi)有改進(jìn),則隨即產(chǎn)生一個(gè)新的蛙代替Pw[6]。
2 SFLA-RBF神經(jīng)網(wǎng)絡(luò)算法
2.1 算法分析
針對(duì)傳統(tǒng)RBF神經(jīng)網(wǎng)絡(luò)算法中的權(quán)值優(yōu)化問(wèn)題,本文提出一種基于SFLA優(yōu)化的RBF神經(jīng)網(wǎng)絡(luò)算法,即 SFLA-RBF算法,算法流程見(jiàn)圖2。
圖2中的算法流程由初始化、SFLA算法優(yōu)化、分類(lèi)輸出結(jié)果和計(jì)算準(zhǔn)確率階段組成。
(1)RBF神經(jīng)網(wǎng)絡(luò)初始化階段。首先,將準(zhǔn)備好的數(shù)據(jù)集進(jìn)行數(shù)值化和歸一化并導(dǎo)入到神經(jīng)網(wǎng)絡(luò)中,作為神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),并導(dǎo)入神經(jīng)網(wǎng)絡(luò)的目標(biāo)輸出數(shù)據(jù);再通過(guò)函數(shù)初步構(gòu)建RBF神經(jīng)網(wǎng)絡(luò)net,并從構(gòu)建好的網(wǎng)絡(luò)中提取出需要優(yōu)化的隱含層參數(shù)。
(2)SFLA算法優(yōu)化階段。首先將階段(1)中得到的隱含層權(quán)值參數(shù)表示成要優(yōu)化的問(wèn)題,并求出最大權(quán)值和最小權(quán)值,確定種群青蛙的數(shù)量以及子群數(shù)量等算法參數(shù),每一只青蛙代表解空間中的一個(gè)候選解,并初始化種群;再將所有青蛙按照性能好壞依次排列,分別放在不同的子群中。不同子群的青蛙分別進(jìn)行局部搜索,不斷跳躍,接近目標(biāo)位置并重新匯合,排序構(gòu)建下一代新種群;滿(mǎn)足停止條件則輸出全局最優(yōu)解。
(3)RBF神經(jīng)網(wǎng)絡(luò)分類(lèi)階段。將階段(2)所得的全局最優(yōu)解作為新的RBF網(wǎng)絡(luò)隱含層到輸出層的權(quán)值,重新帶入RBF神經(jīng)網(wǎng)絡(luò)中,并輸出分類(lèi)。
2.2 算法描述
對(duì)SFLA-RBF神經(jīng)網(wǎng)絡(luò)算法描述如下:
輸入:樣本數(shù)據(jù)
輸出:分類(lèi)結(jié)果
(1)構(gòu)建RBF神經(jīng)網(wǎng)絡(luò),將歸一化后的訓(xùn)練樣本數(shù)據(jù)導(dǎo)入到RBF神經(jīng)網(wǎng)絡(luò)中,得到輸出結(jié)果后,從中提取出隱含層權(quán)值等參數(shù)。
center=net.iw{1,1} ;
b1=net.b{1};
w2=net.lw{2,1};
b2=net.b{2};
(2)初始化青蛙種群,隨機(jī)產(chǎn)生青蛙的總個(gè)數(shù)為F,青蛙子群數(shù)為m,每組青蛙的個(gè)數(shù)為n,那么F =m×n;種群迭代次數(shù)為SF,允許更新的最大蛙跳步長(zhǎng)為Dmax,允許更新的最小蛙跳步長(zhǎng)為Dmin。endprint
(3)計(jì)算適應(yīng)度值,根據(jù)適應(yīng)度值對(duì)所有青蛙進(jìn)行排序[4]。這一階段,第一只青蛙進(jìn)入第一個(gè)子群,第二只青蛙進(jìn)入第二個(gè)子群,第m只青蛙進(jìn)入第m個(gè)子群,依此類(lèi)推[5-6]。
(4)對(duì)每一個(gè)青蛙子群進(jìn)行局部深度搜索,根據(jù)更新策略對(duì)青蛙個(gè)體位置不斷更新。
(5)判斷是否滿(mǎn)足全局迭代次數(shù),若滿(mǎn)足,則輸出全局最優(yōu)值,進(jìn)化結(jié)束;若不滿(mǎn)足,則將全部青蛙個(gè)體重新混合,轉(zhuǎn)至步驟(3)。
(6)(1)-(5)步得到的全局最優(yōu)值即為通過(guò)SFLA算法優(yōu)化后的RBF神經(jīng)網(wǎng)絡(luò)權(quán)值向量w,根據(jù)優(yōu)化后的權(quán)值重新構(gòu)造RBF神經(jīng)網(wǎng)絡(luò)。
(7)輸入入侵攻擊測(cè)試數(shù)據(jù),執(zhí)行RBF神經(jīng)網(wǎng)絡(luò)算法,輸出分類(lèi)結(jié)果。
(8)分別計(jì)算準(zhǔn)確率、誤報(bào)率和漏報(bào)率。
上述步驟中,步驟(1)為RBF神經(jīng)網(wǎng)絡(luò)的初始化階段,步驟(2)-(5)為SFLA算法的優(yōu)化階段,步驟(6)-(8)為RBF神經(jīng)網(wǎng)絡(luò)的重新構(gòu)建并輸出分類(lèi)結(jié)果階段。
2.3 實(shí)驗(yàn)結(jié)果分析
采用兩組樣本來(lái)檢測(cè)SFLA-RBF神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)性能。訓(xùn)練數(shù)據(jù)采用KDD99中抽樣的train1和train2,測(cè)試數(shù)據(jù)采用test1和test2,見(jiàn)表1。
圖3、圖5所示為輸入test1的輸出結(jié)果,由于測(cè)試樣本數(shù)據(jù)較多,不能清晰反映實(shí)際輸出結(jié)果和期望輸出結(jié)果的關(guān)系。圖4、圖6為test1輸出結(jié)果的局部放大圖。紅色圓圈表示實(shí)際輸出,藍(lán)色線條表示期望的輸出結(jié)果。
當(dāng)期望輸出結(jié)果為異常樣本時(shí),藍(lán)色線條顯示;當(dāng)期望輸出結(jié)果為正常時(shí),藍(lán)色線條不顯示;當(dāng)實(shí)際輸出結(jié)果為異常時(shí),紅色圓圈位于縱坐標(biāo)1的位置;當(dāng)實(shí)際輸出結(jié)果為正常時(shí),紅色圓圈位于縱坐標(biāo)0的位置。實(shí)驗(yàn)結(jié)果見(jiàn)表2。
觀察圖3、圖5和表1、表2可以看出:采用SFLA算法優(yōu)化RBF網(wǎng)絡(luò),準(zhǔn)確率都在90%以上,誤差率在10%左右,漏報(bào)率低于2%。
3 算法比較
RBF神經(jīng)網(wǎng)絡(luò)算法具有較高的精確度,并且訓(xùn)練速度快,但其參數(shù)需要根據(jù)不同學(xué)習(xí)算法求解,且應(yīng)用于入侵檢測(cè)中誤報(bào)率偏高。PSO-RBF神經(jīng)網(wǎng)絡(luò)算法是一種用來(lái)改進(jìn)RBF隱含層權(quán)值的優(yōu)化算法。經(jīng)過(guò)PSO改進(jìn)后的RBF網(wǎng)絡(luò)用于入侵檢測(cè)性能有所提高。
如表3、表4、表5所示,使用train1、train2、test1和test2分別作為神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練樣本和測(cè)試樣本,通過(guò)實(shí)驗(yàn),對(duì)SFLA-RBF算法、傳統(tǒng)RBF算法和PSO-RBF算法的準(zhǔn)確率、誤報(bào)率和漏報(bào)率進(jìn)行分析對(duì)比并計(jì)算均值。圖7表示這3個(gè)指標(biāo)平均值的對(duì)比情況,其中橫坐標(biāo)表示不同算法,縱坐標(biāo)表示對(duì)應(yīng)的準(zhǔn)確率、誤報(bào)率和漏報(bào)率。
從3個(gè)不同指標(biāo)分析,SFLA-RBF算法較傳統(tǒng)的RBF算法和PSO_RBF算法性能更優(yōu)。
4 結(jié)語(yǔ)
針對(duì)RBF網(wǎng)絡(luò)的參數(shù)優(yōu)化問(wèn)題,給出了一種基于SFLA-RBF神經(jīng)網(wǎng)絡(luò)算法,并將其應(yīng)用于入侵檢測(cè)中,將SFLA算法應(yīng)用到神經(jīng)網(wǎng)絡(luò)權(quán)值優(yōu)化上。對(duì)兩組子集進(jìn)行試驗(yàn)表明:SFLA-RBF算法與RBF算法相比準(zhǔn)確率基本一致,約為94%,但誤報(bào)率和漏報(bào)率都明顯降低。與解男男[1]的PSO-RBF算法相比,準(zhǔn)確率和誤報(bào)率基本一致,但漏報(bào)率明顯降低。
參考文獻(xiàn):
[1] 解男男.機(jī)器學(xué)習(xí)方法在入侵檢測(cè)中的應(yīng)用研究[D].長(zhǎng)春:吉林大學(xué),2015.
[2] 單曉虹.基于遺傳算法的RBF神經(jīng)網(wǎng)絡(luò)及其在系統(tǒng)辨識(shí)中的應(yīng)用[D].青島:青島大學(xué),2006.
[3] 韓毅,蔡建湖,周根貴,等.隨機(jī)蛙跳算法的研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2010,37(7):16-19.
[4] 張瀟丹,包永強(qiáng),奚吉,等.基于MD-CM-SFLA神經(jīng)網(wǎng)絡(luò)的耳語(yǔ)音情感識(shí)別[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2012,42(5):848-853.
[5] PAN G,PAN F,LIU G.Path planning for mobile robots based on improved shuffled frog leaping algorithm[J].Journal of Computer Applications,2014,34(10):2850-2853.
[6] 王茜,張粒子,舒雋,等.基于閾值選擇策略的改進(jìn)混合蛙跳算法在電網(wǎng)規(guī)劃中的應(yīng)用[J].電力系統(tǒng)保護(hù)與控制,2011,39(3):34-39.
[7] TIAN J,GAO M,ZHANG F.Network intrusion detection method based on radial basic function neural network[C].International Conference on E-Business and Information System Security, IEEE,2009:1-4.
[8] AMIRI B,F(xiàn)ATHIAN M,MAROOSI A.Application of shuffled frog-leaping algorithm on clustering[J].International Journal ofAdvanced Manufacturing Technology,2009(5):152-158.endprint