文獻標識碼: A
文章編號: 0258-7998(2010)10-0132-04
1980年4月Anderson第一次闡述了入侵檢測的概念,指出可以使用審計網(wǎng)絡數(shù)據(jù)的方式判斷非法入侵的發(fā)生[1],。在網(wǎng)絡數(shù)據(jù)的審計中,,沒有一種確定的函數(shù)關(guān)系可以鑒別非法入侵。因此引入機器學習的方法,,作為入侵行為和網(wǎng)絡數(shù)據(jù)特征之間模型進行函數(shù)逼近,。
機器學習的方法在入侵檢測領域應用廣泛,并有較好的檢測效果。傳統(tǒng)的機器學習算法需要大量的網(wǎng)絡數(shù)據(jù),,而正常的網(wǎng)絡數(shù)據(jù)特征有著小樣本,、高維數(shù)、多變性的特點,。支持向量機(SVM)對小樣本,、高維數(shù)的數(shù)據(jù)有著較好的訓練能力,已經(jīng)被應用于入侵檢測[2],。最小二乘向量機(LSSVM)是SVM中的一種,,相比SVM有著更快的運行速度。LSSVM懲罰因子C和核函數(shù)參數(shù)?滓的選擇使用網(wǎng)格搜索,,耗時且分類精度不高,。而粒子群優(yōu)化(PSO)算法的尋優(yōu)求解能力較為突出,可以利用PSO算法對LSSVM的相應參數(shù)進行選擇[3],。
PSO算法中一個重要的參數(shù)就是慣性權(quán)重w,。w較大時,全局搜索能力較強;w較小時,局部搜索能力較強?;綪SO算法采用固定w,,搜索的性能和效率不高。參考文獻[4]提出了讓w隨著進化的進行而線性減少的策略,,相應的PSO算法稱為線性權(quán)重下降PSO(LWDPSO)算法,。該PSO算法在提高搜索效率的同時有著早熟收斂、陷于局部最優(yōu)的缺點,。本文提出一種改進的PSO算法,,即并行PSO算法。該算法將粒子群分成兩組[5]進行協(xié)同搜索,,兩組粒子具有不同的w,,其中w較大的粒子組側(cè)重全局搜索;w較小的粒子組側(cè)重在w大的粒子組找到全局最優(yōu)位置的附近區(qū)域進行精細搜索,。每組都有一部分固定的粒子,,其余的粒子根據(jù)進化階段動態(tài)分配給兩組,通過動態(tài)分配粒子保證算法初期以全局搜索為主,,后期以局部搜索為主,。通過適應度函數(shù)的仿真實驗,證明了并行PSO算法的尋優(yōu)性能更優(yōu),。
選用RBF函數(shù)作為核函數(shù):
2 PSO算法
PSO算法源于對鳥類覓食行為的模擬,,通過鳥群之間的集體協(xié)作使群體達到最優(yōu)。標準PSO算法初始化產(chǎn)生一群粒子,每個粒子以一定的速度在n維空間里飛行,,飛行速度由個體的飛行經(jīng)歷和群體的飛行經(jīng)歷動態(tài)調(diào)整,。X1=(Xi1,Xi2,…,Xin)是粒子i當前的位置,,V1=(Vi1,Vi2,…,Vin)是粒子當前的速度,P1=(Pi1,Pi2,…,Pin)是粒子i所經(jīng)歷過的最好位置,在這個位置粒子i擁有最佳適應度,。設f(x)為最小化的目標函數(shù),,則粒子i的最好位置由下
3 改進PSO算法
粒子群進化前期應該以全局搜索為主,搜索整個空間,,但不能放棄局部搜索,,因為全局搜索的粒子速度較快,發(fā)現(xiàn)的位置的范圍雖然廣泛,,但精度不高,,容易錯過全局最優(yōu)位置;進化后期應該以局部搜索為主,,但不能放棄全局搜索,,因為局部搜索雖然精細,但搜索的范圍較小,,無法搜索到較遠的更優(yōu)位置,。
本文提出一種改進PSO算法,即并行PSO算法,。設粒子的數(shù)量為S,,總進化代數(shù)為G,當前進化代數(shù)為i,。該算法將粒子群分成兩組,,運行PSO算法時慣性權(quán)重w分別設置為0.95和0.4,其中w為0.95的粒子組側(cè)重全局搜索,,w為0.4的粒子組側(cè)重在w為0.95的粒子組找到全局最優(yōu)位置的區(qū)域進行精細搜索,。每組粒子都有一定基本的粒子數(shù)量,均為S/4,。剩余S/2粒子根據(jù)進化階段動態(tài)分配給兩組,,分配給w為0.95的粒子組為S×(G-i)/2G(朝負無窮方向取整);分配給w為0.4的粒子組為S×i)/2G(朝正無窮方向取整)。
進化初始,,w為0.95的粒子組粒子數(shù)目最多,,達到3S/4,進行全局搜索,,余下的S/4 w為0.4的粒子組對全局搜索到的當前最優(yōu)位置的小范圍區(qū)域進行局部搜索,期望在該區(qū)域中搜索到更優(yōu)位置,;進化后期,,動態(tài)粒子逐漸從w為0.95的粒子組調(diào)整到w為0.4的粒子組,空間已被w為0.95的粒子組多次搜索,,w為0.4的粒子組針對當前最優(yōu)位置的相關(guān)小范圍區(qū)域進行局部搜索,,w為0.95的粒子組在對空間中當前全局最優(yōu)位置的相關(guān)大范圍區(qū)域進行搜索,,不放棄任何尋找到全局最優(yōu)位置的機會。
4 仿真實驗及分析
使用四種典型的測試函數(shù)[6]: Sphere函數(shù),、 Rastrigrin函數(shù),、Rosenbrock函數(shù)和Griewank函數(shù)作為適應度函數(shù)進行測試。各算法最大進化代數(shù)為500代,,種群規(guī)模為80,優(yōu)化方程的維數(shù)為30,c1,、c2等于2,搜索的空間為[-100,100],。為避免實驗中偶然性現(xiàn)象,,現(xiàn)將PSO三種算法針對這四種函數(shù)同時進行了10次實驗。圖1~圖4分別是四種測試函數(shù)對三種算法的適應度變化與進化代數(shù)比較曲線圖,。表1是三種算法在10次實驗次數(shù)中取得的適應度的平均值,、最大值和最小值。
基本PSO算法粒子一直進行全局搜索,,沒有進行局部精細搜索,,因此無法找到較優(yōu)位置,適應度值一直較大,尋優(yōu)效果較差,;LWDPSO算法在前期有較好的搜索效果,,但是在中后期收斂之后對最優(yōu)位置的搜索沒有任何突破,早熟的跡象非常明顯,;并行PSO算法有著較好的全局搜索能力以及局部收斂能力,,對最優(yōu)位置的搜索較為穩(wěn)定,避免了局部最優(yōu),,沒有早熟的缺點,,同時搜索到了最優(yōu)位置。同時從表1可以得出:基本PSO算法的尋優(yōu)較差,,得到的適應度遠遠高于其他兩種算法,;LWDPSO算法的尋優(yōu)結(jié)果優(yōu)于基本PSO算法,次于并行PSO算法,;并行PSO算法的尋優(yōu)結(jié)果優(yōu)于基本PSO算法和LWDPSO算法,,實驗得到的適應度平均值、最大值和最小值在三種算法中都是最低的,。
5 基于并行PSO算法的LSSVM建模方法
將LSSVM的懲罰因子C和δ核參數(shù)映射成粒子,,根據(jù)并行PSO算法進行優(yōu)化選擇,最終使得建立的模型估計值與期望值的逼近程度達到預期目標,。其算法流程如下:
(1) 并行PSO算法參數(shù)初始化,將粒子群分成兩組,,慣性權(quán)重w分別設置為0.95和0.4。
(2) 根據(jù)設定的適應度函數(shù),,計算每個粒子的位置,。
(3) 將粒子的位置與自身最優(yōu)位置進行比較,如果當前位置相應適應度小,,則更新自身最優(yōu)位置。
(4)比較每個粒子的自身最優(yōu)位置適應度求出全局最優(yōu)位置,。
(5) 根據(jù)當前進化代數(shù)動態(tài)調(diào)整兩組粒子的數(shù)目,,進行下一代進化。
(6) 所有進化次數(shù)結(jié)束,,將此時全局最優(yōu)粒子分別映射為懲罰因子C和核參數(shù)?滓,并以此為優(yōu)化結(jié)果,,建立模型。
6 實驗過程及結(jié)果
6.1實驗數(shù)據(jù)預處理
實驗中采用的數(shù)據(jù)取自1999年DARPA為KDD競賽提供的一個異常檢測的標準數(shù)據(jù)集,,它是由美國麻省理工學院的Liconln實驗室通過模擬一個典型的美國空軍網(wǎng)絡而獲得原始的TCP/IP網(wǎng)絡通信數(shù)據(jù),對于每一個TCP/IP連接,,提取了41個屬性。數(shù)據(jù)中有四種類型的攻擊:未經(jīng)授權(quán)的遠程訪問(R2L),、拒絕服務攻擊(DoS),、對本地超級用戶的非法訪問(U2R)和掃描與探測(Probing)。標識為正常的數(shù)據(jù)占19.6%,攻擊數(shù)據(jù)占80.4%,。
實驗中的訓練數(shù)據(jù)取自于原始數(shù)據(jù)集中kddcup數(shù)據(jù),,測試數(shù)據(jù)取自于corrected數(shù)據(jù),訓練數(shù)據(jù)和測試數(shù)據(jù)采用等間隔的選取方式。測試數(shù)據(jù)共選取54 220條,,其中正常數(shù)據(jù)12 140條,、攻擊數(shù)據(jù)42 080條,訓練數(shù)據(jù)共33 520條,按類型和間隔平均分成10組,分別使用10組訓練數(shù)據(jù)建立模型對測試數(shù)據(jù)進行測試,,實驗結(jié)果取10次實驗的平均值,。
實驗中,需要對數(shù)據(jù)進行處理,實驗數(shù)據(jù)的protocol-type,、sevice和flag屬性使用字符串表示,對其進行數(shù)字替換處理,,對屬性中不同的類型使用不同的數(shù)字表示。另外,,必須要對所有屬性進行歸一化處理,,公式為:
其中new為歸一化后的數(shù)據(jù),old為歸一化前數(shù)據(jù),,max為屬性的最大值,,min為屬性的最小值。
6.2 實驗結(jié)果
網(wǎng)格搜索,、LWDPSO算法和并行PSO算法分別對LSSVM的參數(shù)尋優(yōu),,并建立各自的模型,對測試數(shù)據(jù)集進行了檢測,。實驗結(jié)果如表2所示,。
從表2可以得出,由于訓練數(shù)據(jù)和測試數(shù)據(jù)采自不同的數(shù)據(jù)集,,網(wǎng)格搜索和LWDPSO算法的檢測率較低,,誤報率和漏報率較高;采用并行PSO算法對LSSVM進行參數(shù)尋優(yōu)所建立的入侵檢測模型檢測率,、誤報率和漏報率都優(yōu)于其他兩種算法參數(shù)尋優(yōu)后所建立的模型,。
本文給出并分析了基本PSO算法和LWDPSO算法的定義及特點。提出并行PSO算法,將粒子群分成兩組,,分別設置不同的慣性權(quán)重,,慣性權(quán)重大的粒子組側(cè)重全局搜索,慣性權(quán)重小的粒子組側(cè)重在慣性權(quán)重大的粒子組找到全局最優(yōu)位置的附近區(qū)域進行精細搜索,。根據(jù)進化代數(shù)動態(tài)調(diào)整兩組中進化的粒子數(shù),,并給出了每組粒子的數(shù)量調(diào)整公式。通過四個適應度函數(shù)仿真實驗,,證明了并行PSO算法的尋優(yōu)性能優(yōu)于基本PSO算法與LWDPSO算法,。通過入侵檢測實驗測試,并行PSO算法對LSSVM參數(shù)尋優(yōu)后建立的模型可以有效提高入侵檢測的性能指標,。
參考文獻
[1] ANDERSON J P. Computer sercurity threat monitoring and surveillance[R]. James PAnderson Co, Fort Washington, Pennsylvania, Aprial 1980.
[2] MUKKAMALA S, JANOSKIG I, SUNGA H. Intrusion detection using neural networks and support vector machines[C]. Proc of IEEE International Joint Conference on Neural Networks. Washington DC:IEEE Computer Society, 2002: 1702-1707.
[3] 陳光英,張千里,李星. 特征選擇和SVM訓練模型的聯(lián)合優(yōu)化[J]. 清華大學學報(自然科學版),2004,44(1);9-12.
[4] SHI Y, EBERHART R. A modified particle swarm optimizer[C]. IEEE World Congress on Computational Intelligence. Piscataway:IEEE Press,1998:69-73.
[5] 龍文,,梁昔明,肖金紅,,等.一種動態(tài)分級的混合粒子群優(yōu)化算法[J].控制與決策.2009,24(6):1406-1411.
[6] CLERC M, KENNEDY J. The particle swarm: explosion, stability, and convergence in multi-dimension complex space[J]. IEEE Transactions on Evolutionary Computation, 2002,16(1):58-73.