吳春瓊 黃曉
1 引言
網(wǎng)絡(luò)安全是信息時代不可回避的重要課題,其中對入侵檢測的研究一直是重點。網(wǎng)絡(luò)安全狀況千變?nèi)f化,采用靜態(tài)防御無法跟上危機處理節(jié)奏,因此對入侵檢測的研究逐漸采用動態(tài)防御技術(shù)。通常以動態(tài)防御技術(shù)為主體,以靜態(tài)防御技術(shù)為補充,建立一個相對完整、可靠的防御系統(tǒng)[1]。
2 入侵檢測
一般的入侵檢測分類標準有[2]數(shù)據(jù)來源、反映機制、體系結(jié)構(gòu)、反映時間、檢測機制、檢測時效等。入侵分析的任務(wù)是在采集網(wǎng)絡(luò)系統(tǒng)不同節(jié)點的行為數(shù)據(jù)的基礎(chǔ)上,依賴各種入侵檢測和分析技術(shù)、方法,用來甄別網(wǎng)絡(luò)行為數(shù)據(jù)中潛在的入侵行為,達到防范與預(yù)處理的作用。入侵檢測分析技術(shù)有多種,如模式匹配的入侵檢測模型、基于神經(jīng)網(wǎng)絡(luò)的檢測技術(shù)等。無論是哪一種方法,都是在數(shù)據(jù)挖掘與人工智能技術(shù)的發(fā)展上演變出來的。
入侵檢測方法雖然很多,但是在各個方面都存在局限性。首先入侵檢測的專家系統(tǒng)的數(shù)據(jù)來源是已知的入侵行為,雖然因此能夠?qū)σ阎?、現(xiàn)有的入侵行為做出準確、高效的判斷與保護,但缺點也是顯而易見的。這些重復(fù)的、歷史的入侵行為數(shù)據(jù)很難應(yīng)對網(wǎng)絡(luò)上新出現(xiàn)的入侵手段或攻擊行為。只有在新的入侵行為表現(xiàn)出跡象并造成攻擊事實后,入侵檢測系統(tǒng)才會捕捉這一入侵數(shù)據(jù),用以完善自己的入侵行為數(shù)據(jù)庫。在這個過程中入侵檢測系統(tǒng)是一個自適應(yīng)、自學(xué)習(xí)的過程,通過完善數(shù)據(jù)庫、優(yōu)化行為規(guī)則,來達到更高的檢測效率與更準確的入侵檢測判斷。
3 BP神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)算法是最早的仿生模擬算法之一,自建立以來一直受到國內(nèi)外學(xué)者的青睞。神經(jīng)網(wǎng)絡(luò)算法從生物腦神經(jīng)信息傳遞模式得到靈感,把神經(jīng)元當做一種可供信息數(shù)據(jù)傳遞的通道單位,用以獲取信息、傳遞信息,適用于行為檢測,尤其是一場檢測方面。它具有學(xué)習(xí)能力,能夠?qū)W習(xí)檢測對象的一些行為特征、表現(xiàn)和該對象的一些信息資源,通過分析處理這些數(shù)據(jù)并利用神經(jīng)網(wǎng)絡(luò)通過計算方法[3]來實現(xiàn)這一功能,因此神經(jīng)網(wǎng)絡(luò)對提高入侵檢測系統(tǒng)的學(xué)習(xí)與對未知攻擊行為的識別能力有極大的幫助。
一個典型的人工神經(jīng)元是模擬生物神經(jīng)元來建立的,包括接受輸入信息、加權(quán)與相應(yīng)的神經(jīng)元輸出。
一個典型的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1人工神經(jīng)網(wǎng)絡(luò)所示。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)由隱層、輸出層和輸入層組成。算法利用誤差反向傳播的方式訓(xùn)練神經(jīng)網(wǎng)絡(luò),利用誤差的逆向傳播來調(diào)整網(wǎng)絡(luò)的權(quán)值。
3.1 網(wǎng)絡(luò)初始化
(1)設(shè)輸入層的神經(jīng)元有n個,這同時也是由輸入層的神經(jīng)元傳導(dǎo)進的條件變量。
(2)設(shè)隱藏層中神經(jīng)元有p個,輸出層中神經(jīng)元有q個。
(3)設(shè)x為神經(jīng)元所需要的輸入向量,定義為x=(x1,x2,x3,...,xn )。
(4)設(shè)hi為隱含層的輸入向量,定義為hi =(hk1,hk2,hk3,...,hkp ),隱含層的輸出向量ho定義為ho =(ho1,ho2,ho3,...,hop )。
(5)設(shè)yi為輸出層的輸入向量,定義為yi =(yi1,yi2,yi3,...,yip ),輸出層的輸出向量yo定義為yo =(yo1,yo2,yo3,...,yoq )。
(6)設(shè)do為系統(tǒng)的輸出向量期望值,定義為do =(do1,do2,do3,...,doq )。
(7)設(shè)e為誤差函數(shù),定義為
e =■■(do(k)-yoo(k))2。 (公式1)
3.2 算法流程
(1)首先生成一個各層路徑連接權(quán)值的隨機值,取值范圍為(-1,1),e為誤差函數(shù),?著為計算精度,M為最大學(xué)習(xí)次數(shù)。
(2)隨機選擇一個輸入樣本k,該樣本對應(yīng)的期望輸出為:x(k)=(x1(k),x2(k),x3(k),…,xn(k)),do(k)=(d1(k),d2(k),d3(k),…,dq(k))。
(3)設(shè)wih為輸入層與隱含層之間的連接權(quán)值,who為隱含層與輸出層之間的連接權(quán)值,bh為隱含層中各個神經(jīng)元之間的閾值,bo為輸出層中各個神經(jīng)元之間的閾值。則對應(yīng)k=1,2,3,...,m個樣本數(shù)據(jù),其隱藏層中各神經(jīng)元的輸入、輸出計算分別為:
(公式2)
(4)其中誤差函數(shù)對輸出層各個神經(jīng)元的偏導(dǎo)數(shù)?啄o(k)計算過程為:
(公式3)
(5)根據(jù)?啄o(k)、who(k)、yoo(k)的結(jié)果分別計算誤差函數(shù)對隱含層各個神經(jīng)元的偏導(dǎo)數(shù)?啄h(k)的計算過程為:
(公式4)
(6)通過對比?啄o(k)、who(k)、hoh(k)計算出?駐who(k)=-?滋■=?滋?啄o(k)hoh(k)和w■■ =w■■+ ?濁?啄o(k)hoh(k)。路徑的連接權(quán)值?駐wih(k)根據(jù)?啄h(k)、hih(k)予以修正,以確保算法的效率,修正過程為:
(公式5)
(公式6)
全局誤差計算為: E =■■■(do(k)-yo(k))2
(公式7)
誤差值是否超過預(yù)期值,是確定神經(jīng)網(wǎng)絡(luò)是否終止當前訓(xùn)練重新開始學(xué)習(xí)的參數(shù)。
在實際應(yīng)用過程中,BP神經(jīng)網(wǎng)絡(luò)還是存在許多問題。最典型的表現(xiàn)為收斂速度、局部最優(yōu)值、網(wǎng)絡(luò)延時、不穩(wěn)定、學(xué)習(xí)樣本對后期新樣本速度造成影響等問題。
尤其是BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程使用了最速下降法,學(xué)習(xí)是從某一個神經(jīng)元節(jié)點開始,按照誤差曲面的斜面逐步推進,直到滿足誤差精度值的要求。但是在誤差曲面的維度空間里,存在無數(shù)局部極小點,由神經(jīng)元節(jié)點推進的訓(xùn)練有可能因此陷入局部極小值,僅僅達到了局部最優(yōu)解,這使得整個網(wǎng)絡(luò)都不能達到全局優(yōu)化。
這需要有一種補充算法,來使陷入局部最優(yōu)解的訓(xùn)練脫離出來,重新推向全局最優(yōu)解。猴群算法就是一種適合跳出局部最小點的仿生算法。
4 猴群算法
猴群算法是一種模擬猴群爬山的優(yōu)化算法,是一種多群體智能算法,尤其適用于大規(guī)模多峰優(yōu)化問題。它不受優(yōu)化問題的維數(shù)影響,也與優(yōu)化問題的可行域大小無關(guān),具有運行速度快、精度高的特點。
猴群算法主要包括解的表示、初始化、攀爬過程、眺望過程和翻過程五個過程。
(1)定義猴群表示。設(shè)M為猴群的種群規(guī)模。在種群中隨機選擇的一個猴子i(i=1,2,3,……,M),該猴子的位置即為xi =(xi1 ,xi2,xi3,...,xim)。xij 代表猴子i在j維的實際位置,這個位置同時也表示最優(yōu)化問題的解的一個決策向量。
(2)當初始化猴子位置的時候,基本猴群算法采用在求解空間內(nèi)隨機初始化。因為種群的初始化對算法的全局收斂和尋優(yōu)效率都有重要影響。假設(shè)存在一個區(qū)域可以事先確定其中有包含潛在的最優(yōu)解方案,在理想化的狀態(tài)下,這個區(qū)域被定義為n維立方體,從數(shù)據(jù)立方體中隨機采樣。設(shè)有第j維空間,則優(yōu)化方案在空間內(nèi)存在一個上界xmin,j和一個下界xmax,j 。產(chǎn)生一個在區(qū)間[0,1]上的隨機實數(shù),如果它是可使用的則被提供作為猴子i的初始點,否則從n維立方體中重新采樣,則可以表示為:xi,j = xmin,j + (xmax,j -xmin,j)*rand。rand為隨機數(shù)產(chǎn)生方法。
(3)仿生算法一般是通過迭代計算來逼近最優(yōu)解的過程,猴群算法的攀爬過程也可以看做是迭代的最優(yōu)解逼近過程[4],在攀爬的過程中使猴子的位置從初始值逐步逼近能夠解決目標函數(shù)的位置。假設(shè)信息在和目標函數(shù)相關(guān)聯(lián)的梯度向量是可用的,如同時擾動隨機逼近(SPSA)[5][6]這樣的算法,它基于對目標函數(shù)的梯度值近似的原則,計算與比較只在當前位置的相鄰兩點之間進行,以此為移動目標,通過比較二者權(quán)重逐步來移動,它不依賴于梯度信息或者測量信息。整個攀爬過程步驟為:
1)產(chǎn)生隨機向量?駐Xi = (?駐Xi1,?駐Xi2,?駐Xi3,...,?駐Xin),滿足:
?駐Xij =a, with probability ■-a, with probability ■ (公式8)
其中| a |為攀爬過程的步長,步長值與待解問題的解空間大小成正比。
2)計算f 'ij(xi)= ■,j=1,2,3…,n。向量f 'i(xi)=(f 'i1(xi),f 'i2(xi),...,f 'in(xi))被稱為目標函數(shù)在點xi處的偽梯度。
3)令yi = xij + a*sign(f 'ij(xi)),j=1,2,3…,n,且Y=(y1,y2,y3,...,yn)。
4)當Y在可解區(qū)域內(nèi),Xi =Y;反之Xi 的值不變。
重復(fù)以上4個步驟,直到達到迭代終止條件或迭代步長值不再變化。
(4)當猴群經(jīng)過若干次攀爬之后,設(shè)每只猴子都能達到當前位置的最高峰,也就是達到了局部最優(yōu)值[4]。為了突破局部最優(yōu)值,每個猴子都眺望周圍,尋找比當前位置更高的攀登點。如果更高位置的點存在,猴子從當前點跳到新的高點上。眺望的目的是尋找當前山峰之外的更高山峰,也就是尋找當前問題局部最優(yōu)解之外的其他全局最優(yōu)解的過程。眺望過程為:
1)在區(qū)間(xij-b,xij+b),j=1,2,3,...,n中隨機產(chǎn)生一個實數(shù)yj,且Y=(y1,y2,y3,...,yn),其中b為猴子能夠眺望的視野范圍。視野范圍的大小也和待解問題的解空間大小成正比,當優(yōu)化問題的可行域大,則b的取值也大,反之則比較小。
2)如果Y是可用的,能滿足約束條件,且有f(Y)>f(Xi),則Xi =Y。否則回到1)直到產(chǎn)生滿足條件的Y。只替換函數(shù)值大于當前f(xi)的xi。
3)將Y視為初始位置,重復(fù)攀爬過程。
(5)翻過程是猴群算法最具特色的部分,其目的是幫助猴子開辟新的搜索空間,避免陷入局部最優(yōu)解。解空間內(nèi)的猴群都應(yīng)試圖進行翻過程操作,令每一只猴子標識當前自身所在位置為中心,令每一只猴子以該中心為支點,選定一個方向(或相反方向)翻到一個新的區(qū)域。
對于猴子i,翻過程步驟為:
1)設(shè)翻區(qū)間[c,d],其大小根據(jù)優(yōu)化空間的解空間大小相關(guān),優(yōu)化問題可行域越大,[c,d]的區(qū)域也越大。在翻區(qū)間中產(chǎn)生一個隨機的實數(shù)a。
2)令yj =xij + a(pj -xij),且pj = ■■xij,j=1,2,…,n,即所有猴子的位置中點。翻支點P表示為P = (p1,p2,p3,...,pn)。當a>0時,代表猴子翻空的方向與支點的指向方向同向,反之則代表猴子翻空的方向為支點指向方向的反方向。
3)如果Y=(y1,y2,y3,...,yn)是可用的,則Xi =Y,否則重復(fù)1)和2)直到產(chǎn)生可行的點Y。
猴群算法和遺傳算法有相似之處,都是優(yōu)化種群算法。重要的區(qū)別在于猴群攀爬的過程中采用SPSA方法代替普通的牛頓下山法,比遺傳算法更適用于大維數(shù)優(yōu)化問題。
5 猴群優(yōu)化算法在BP神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
BP算法的本質(zhì)是一種局部尋優(yōu)算法,尋優(yōu)存在明顯的局部極值問題。而猴群算法在局部達到最優(yōu)值的時候,能采用眺望與翻空的方式跳離局部最優(yōu)值,所以適合作為BP算法的補充,主要幫助BP算法離開局部極值的困境。
用猴群算法控制BP神經(jīng)網(wǎng)絡(luò)算法離開局部極值,本質(zhì)是將神經(jīng)網(wǎng)絡(luò)的代價函數(shù)描述為猴群算法所要眺望和空翻的目標函數(shù),其中,將BP神經(jīng)網(wǎng)絡(luò)中參數(shù)作為猴群算法中的猴子i,在d維空間隨機搜索最優(yōu)解。因為 代價函數(shù)存在最小值,神經(jīng)網(wǎng)絡(luò)局部最優(yōu)解問題可以轉(zhuǎn)換成為求取函數(shù)最優(yōu)值(眺望與空翻)的問題。一旦猴群空翻成功,神經(jīng)網(wǎng)絡(luò)的參數(shù)即進入新的搜索空間,因此使BP神經(jīng)網(wǎng)絡(luò)脫離了局部極值,再次逼近全局最優(yōu)解。
本文對BP神經(jīng)網(wǎng)絡(luò)算法的局部搜索過程進行改進,具體改進過程:(1)初始化種群;(2)計算每個神經(jīng)元的適應(yīng)度值,然后進行降序排列;(3)按照基本的BP神經(jīng)網(wǎng)絡(luò)算法的操作步驟將F個神經(jīng)元分別放在猴群的子群中;(4)執(zhí)行局部搜索。假設(shè)猴群攀爬的步長為a或-a,其選中概率為0.5,則根據(jù)基本猴群算法生成隨機向量?駐Xi =(?駐Xi1,?駐Xi2,?駐Xi3,...,?駐Xin),計算在xi 位置的偽梯度,定義參數(shù)b為猴子能眺望的視野長度,視野范圍為(xij -b,xij +b),在視野參數(shù)范圍內(nèi)搜索更優(yōu)位置,并更新猴群到更優(yōu)的位置;(5)更新全局最優(yōu)位置Xbest和個體最優(yōu)位置xibest 。
6 仿真實驗分析
實驗數(shù)據(jù)采用入侵檢測領(lǐng)域比較權(quán)威的測試數(shù)據(jù)[7][8]KDD99,采用的是MIT Lincoln Labs98數(shù)據(jù),其內(nèi)置5000000條數(shù)據(jù),入侵數(shù)據(jù)有4大類,24小類。在訓(xùn)練過程中,系統(tǒng)利用訓(xùn)練數(shù)據(jù)進行學(xué)習(xí),改進后的猴群算法最大進化代數(shù)為2000代,種群初始規(guī)模為1000,設(shè)置攀爬步長a=0.00001,區(qū)間[c,d] = [-1,1]。完成訓(xùn)練后,選其中200個較好的規(guī)則作為最后的分類規(guī)則,以此作為檢測訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。傳統(tǒng)BP網(wǎng)絡(luò)學(xué)習(xí)算法和猴群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法的執(zhí)行時間對比如圖2執(zhí)行時間對比所示。
從實驗結(jié)果可以看出,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法的穩(wěn)定性不如改進后的猴群優(yōu)化神經(jīng)網(wǎng)絡(luò)算法。改進后的猴群優(yōu)化神經(jīng)網(wǎng)絡(luò)算法雖然也存在抖動問題,而且有較明顯的起伏,但是已經(jīng)改進了許多,運行時間優(yōu)于傳統(tǒng)BP算法。
7 結(jié)束語
實驗表明,基于猴群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法能夠有效地擴展神經(jīng)網(wǎng)絡(luò)的搜索空間,并彌補神經(jīng)網(wǎng)絡(luò)收斂速度和收斂精度上的短板,與其他算法相比,該算法能夠更好地跳出局部最優(yōu)解,并尋找全局最優(yōu)解。
參考文獻
[1] 郭春.基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)入侵檢測關(guān)鍵技術(shù)研究[D].北京郵電大學(xué),2014.
[2] 劉伉伉.云計算環(huán)境下入侵檢測技術(shù)的研究[D].山東師范大學(xué),2015.
[3] 吳玉香,王聰.不確定機器人的自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制與學(xué)習(xí)[J].控制理論與應(yīng)用,2013,v.3008:990-997.
[4] 張佳佳,張亞平,孫濟洲.基于猴群算法的入侵檢測技術(shù)[J].計算機工程,2011,v.37;No.38414:131-133.
[5] 齊艷玉,蘭燕飛.一類基于動態(tài)優(yōu)化問題的混沌猴群算法[J].武漢理工大學(xué)學(xué)報(信息與管理工程版),2013,v.35;No.17502:164-167.
[6] 賈瑞民,何登旭,石紹堂.學(xué)習(xí)猴群爬過程的人工蜂群優(yōu)化算法[J]. 計算機工程與應(yīng)用,2012,v.48;No.76627:53-57.
[7] 張玲,白中英,羅守山,謝康,崔冠寧,孫茂華.基于粗糙集和人工免疫的集成入侵檢測模型[J].通信學(xué)報,2013,v.34;No.30809:166-176.
[8] 毛健,趙紅東,姚婧婧.人工神經(jīng)網(wǎng)絡(luò)的發(fā)展及應(yīng)用[J].電子設(shè)計工程,2011,v.19;No.23024:62-65.
作者簡介:
吳春瓊(1979-),女,漢族,福建永定人;畢業(yè)于福州大學(xué),碩士研究生;陽光學(xué)院管理系,講師;主要研究方向和關(guān)注領(lǐng)域:數(shù)據(jù)挖掘、網(wǎng)絡(luò)安全。
黃曉(1989-),女,漢族,福建福州人;畢業(yè)于莫納什大學(xué)(Monash University),碩士研究生;陽光學(xué)院管理系,助教;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)安全、網(wǎng)上社區(qū)。