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