張亞梅,張正本
(河南機(jī)電高等??茖W(xué)校,河南 新鄉(xiāng) 453003)
?
小生境粒子群支持向量機(jī)的網(wǎng)絡(luò)故障診斷*
張亞梅,張正本
(河南機(jī)電高等??茖W(xué)校,河南新鄉(xiāng)453003)
摘要:針對(duì)支持向量機(jī)(SVM)在網(wǎng)絡(luò)故障診斷中應(yīng)用存在的參數(shù)設(shè)置和診斷模型復(fù)雜的問題,提出一種基于小生境粒子群優(yōu)化的SVM解決方案。算法在進(jìn)行參數(shù)尋優(yōu)的同時(shí)考慮支持向量個(gè)數(shù),實(shí)現(xiàn)對(duì)診斷模型復(fù)雜度的優(yōu)化,并采用小生境粒子群算法進(jìn)行求解,提高算法跳出局部最優(yōu)的能力。在DARPA數(shù)據(jù)集上的實(shí)驗(yàn)表明本文提出的方法能夠有效提高診斷模型的泛化性和診斷速度。
關(guān)鍵詞:網(wǎng)絡(luò)故障診斷,支持向量機(jī),小生境粒子群,支持向量數(shù)目
網(wǎng)絡(luò)故障診斷[1]實(shí)質(zhì)上是一個(gè)模式識(shí)別問題,以核技術(shù)和結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則為核心的機(jī)器學(xué)習(xí)方法-支持向量機(jī)(Support Vector Machine,SVM),在解決小樣本、非線性及高維問題中的優(yōu)勢(shì),已被初步應(yīng)用于網(wǎng)絡(luò)故障診斷[2-4]。然而,網(wǎng)絡(luò)開放互聯(lián)的組織形式使得獨(dú)立的網(wǎng)元具備了相關(guān)性,同一個(gè)網(wǎng)絡(luò)故障事件可能引起多個(gè)網(wǎng)絡(luò)監(jiān)控設(shè)備的告警;此外網(wǎng)絡(luò)作為一個(gè)分層管理系統(tǒng),故障事件的影響從底層的接口、網(wǎng)絡(luò)協(xié)議等到高層更加抽象的應(yīng)用服務(wù),由于高層網(wǎng)絡(luò)實(shí)體對(duì)低層網(wǎng)絡(luò)實(shí)體的依賴性,低層次的事件必定引起高層次的告警。這些特點(diǎn)使得對(duì)于同一事件,往往會(huì)引起數(shù)目巨大的告警信息,以百兆網(wǎng)絡(luò)為例,僅IDS系統(tǒng)一小時(shí)就可產(chǎn)生上百萬條的告警記錄,給網(wǎng)絡(luò)故障診斷系統(tǒng)帶來非常大的壓力。這就要求網(wǎng)絡(luò)故障診斷模型盡可能地簡(jiǎn)單,而采用SVM方法建立的診斷模型復(fù)雜程度是由支持向量的個(gè)數(shù)決定的,支持向量個(gè)數(shù)越少,模型越簡(jiǎn)單。但是,當(dāng)訓(xùn)練樣本集規(guī)模較大時(shí),獲得的支持向量集往往比較大,模型比較復(fù)雜。在進(jìn)行SVM訓(xùn)練時(shí),當(dāng)前的研究一般只關(guān)注診斷的精度,忽視了模型的復(fù)雜程度。為了解決這一問題,在建立診斷模型的時(shí)候既注重診斷模型精度的同時(shí)考慮模型的復(fù)雜程度。通過智能搜索的方法找出最佳訓(xùn)練參數(shù),以達(dá)到在保證診斷精度的情況下降低模型的復(fù)雜度。粒子群算法相較其他智能搜索算法具有實(shí)現(xiàn)簡(jiǎn)單、收斂速度快等優(yōu)點(diǎn),因此,被大量應(yīng)用于SVM的參數(shù)選擇上,但是它也容易陷入局部最優(yōu)[5-6]。Brits等人將小生境這一概念引入到粒子群算法中,提出了小生境粒子群算法(niche particle swarm optimization,NPSO)[7],有效地解決了傳統(tǒng)粒子群算法易陷入局部最優(yōu)的問題。
基于以上分析,本文提出一種基于小生境粒子群SVM的網(wǎng)絡(luò)故障診斷方法。在NPSO對(duì)SVM訓(xùn)練參數(shù)進(jìn)行尋優(yōu)同時(shí)考慮所建立模型的復(fù)雜度,實(shí)現(xiàn)對(duì)所構(gòu)建模型的簡(jiǎn)化,提高診斷模型泛化性。
1.1 SVM原理及分析
則,式(1)的對(duì)偶問題如式(2)所示
式中K(xi,xj)=φ(xi),φ(xj)為核函數(shù),求解該二次規(guī)劃問題得到問題的最優(yōu)判決函數(shù)為:
SVM是一個(gè)二分類問題,它的分類模型經(jīng)驗(yàn)風(fēng)險(xiǎn)和實(shí)際風(fēng)險(xiǎn)之間滿足下面的關(guān)系:
R≤Remp+Φ(l/h)(4)
Φ為置信范圍,l為樣本個(gè)數(shù),h為分類模型的VC維。從式(4)可以看出置信范圍越小,經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的最優(yōu)解就會(huì)接近實(shí)際的最優(yōu)解。而置信范圍Φ是(l/h)的單調(diào)遞減函數(shù),對(duì)于一個(gè)特定的問題,其樣本數(shù)l是固定的,此時(shí)學(xué)習(xí)機(jī)器的VC維越高(復(fù)雜度越高),則置信范圍越大,導(dǎo)致真實(shí)風(fēng)險(xiǎn)與經(jīng)驗(yàn)風(fēng)險(xiǎn)之間可能的差就越大。這就是為什么在一般情況下選用過于復(fù)雜的分類器或神經(jīng)網(wǎng)絡(luò)往往得不到好的效果的原因。因此,機(jī)器學(xué)習(xí)過程中不但要使經(jīng)驗(yàn)風(fēng)險(xiǎn)盡可能小,還要使VC維盡可能小,以縮小置信范圍,才能使實(shí)際風(fēng)險(xiǎn)最小,從而對(duì)未來的樣本有較好的推廣性,而SVM中VC維與支持向量的個(gè)數(shù)有關(guān),支持向量個(gè)數(shù)越多VC維越高。
下面,進(jìn)一步分析SVM參數(shù)與分類精度的關(guān)系。本文中使用徑向基(RBF)核函數(shù),SVM的分類精度與懲罰因子C和核參數(shù)g有關(guān)。圖1給出了Wine數(shù)據(jù)集的C、g與SVM分類精度的對(duì)應(yīng)關(guān)系:
圖1 Wine數(shù)據(jù)集SVM參數(shù)與精度關(guān)系曲線
從圖1中可以看出SVM的尋優(yōu)曲線是比較長(zhǎng)的,以分類精度為92.5%的等高線為例,可以發(fā)現(xiàn)g的范圍大概從2-8~ 23,而C的范圍大概是2-3~ 28,也就是在這個(gè)等高線上的所有點(diǎn)分類精度均為92.5%。但是不同參數(shù)值對(duì)應(yīng)的分類模型是不同的,它們的支持向量個(gè)數(shù)也是不同的,同樣分類精度為92.5%,有的模型支持向量個(gè)數(shù)非常多,VC維比較高,模型就很復(fù)雜,而有的支持向量就比較少,對(duì)應(yīng)的模型也就相較簡(jiǎn)單,泛化性更好一些。我們的目標(biāo)是在相同的分類精度條件下找出支持向量個(gè)數(shù)最少的模型。
1.2小生境粒子群算法
粒子群算法是Kennedy和Eberhart模仿鳥類群體行為的智能優(yōu)化算法,可解決連續(xù)函數(shù)的優(yōu)化問題[5]。在算法中,群體中的每個(gè)粒子都是一個(gè)潛在的解,通過學(xué)習(xí)歷史中自身的最優(yōu)位置pb和群體最優(yōu)位置pg來更新位置和速度,并根據(jù)粒子的位置計(jì)算適應(yīng)度函數(shù)來判斷解的優(yōu)劣,不斷迭代找到最優(yōu)解。
若粒子群的搜索空間為D維,粒子的位置和速度分別為Pi=(pi1,pi2,…,piM)和Vi=(vi1,vi2,…,viM),則其迭代公式為:
其中,w為慣性常數(shù),t為迭代次數(shù),c1和c2為學(xué)習(xí)因子,r1和r2為[0,1]之間的隨機(jī)數(shù)。相較遺傳算法,PSO的搜索過程具有方向性,因此,收斂速度更快,但同時(shí)也容易陷入局部最優(yōu)解。小生境是來自生物學(xué)的一個(gè)概念,是指特定環(huán)境下的一種生態(tài)環(huán)境,若干物種在一定區(qū)域內(nèi)形成小生境,小生境之間的基因由于自然隔離缺乏交流使得物種之間的差異得以保留。將這種概念運(yùn)用到優(yōu)化上來說就是將每一代的個(gè)體劃分為若干個(gè)類,依據(jù)某種規(guī)則從每個(gè)類中選擇出適應(yīng)度較大的個(gè)體作為類的代表,在類內(nèi)和類間進(jìn)行雜交、變異產(chǎn)生新一代個(gè)體。這樣就有助于算法跳出局部最優(yōu),而從SVM的分類介紹可以看出它參數(shù)選擇問題的局部最優(yōu)解非常多,因此,這里才有NPSO方法進(jìn)行尋優(yōu),它與PSO最大的不同是在搜索過程中選出若干個(gè)適應(yīng)值變化較小的粒子,以這些粒子為中心,據(jù)此粒子最近的粒子之間距離為半徑構(gòu)造圓形小生境,定義小生境半徑為:
其中,pNj,g,pNj,i分別為子粒子群中最優(yōu)粒子和任意非優(yōu)粒子,通過小生境的構(gòu)造來保證粒子的差異,也就更容易達(dá)到全局最優(yōu)。
2.1算法描述
NPSO-SVM算法通過NPSO對(duì)SVM的參數(shù)進(jìn)行尋優(yōu),與其他方法不同的是本文的目標(biāo)函數(shù)中考慮了得到分類模型的復(fù)雜度。前面提到,分類模型的復(fù)雜度與支持向量的個(gè)數(shù)有關(guān),這里設(shè)計(jì)目標(biāo)函數(shù)為:
其中,acc為分類模型的精度,這里采用交叉驗(yàn)證的方式獲得,Nsv為支持向量個(gè)數(shù),k為常數(shù),這里取0.5。
NPSO-SVM算法的具體步驟如下:
STEP1:設(shè)置算法參數(shù),初始化主粒子群;
STEP2:使用PSO對(duì)主粒子群進(jìn)行搜索,選出若干個(gè)適應(yīng)值變化較小的粒子,以這些粒子為中心,據(jù)依據(jù)式(6)構(gòu)造圓形小生境;
STEP3:對(duì)每個(gè)子粒子群進(jìn)行如下操作:
①使用PSO更新粒子:
其中η為搜索范圍最大值;
②計(jì)算每個(gè)子粒子群的適應(yīng)值;
③更新子粒子群小生境半徑;
④若兩個(gè)子群Nj和Nk范圍相交,即,則合并兩個(gè)子群;
⑤若粒子pi進(jìn)入子群Nj范圍,即,則該粒子將被此小生境粒子群吸收;
STEP4:重復(fù)步驟STEP3直到達(dá)到最大迭代次數(shù)或結(jié)果滿足要求,算法結(jié)束。
2.2算法驗(yàn)證
為了驗(yàn)證所提算法的有效性,用人工數(shù)據(jù)集進(jìn)行分類實(shí)驗(yàn),人工數(shù)據(jù)集包括正負(fù)類樣本各100個(gè),可以完全分開。這里分別采用不考慮分類模型復(fù)雜程度的PSO-SVM[6]以及本文的方法進(jìn)行實(shí)驗(yàn),觀察分類面和支持向量個(gè)數(shù)。實(shí)驗(yàn)環(huán)境為Pentium(R)Dual-Core2.7 G CPU,4 G內(nèi)存,Windows XP系統(tǒng),Matlab 8.2。實(shí)驗(yàn)結(jié)果如圖2所示。
圖2人工數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
從實(shí)驗(yàn)結(jié)果可以看到無論是否考慮模型復(fù)雜度的PSO-SVM[]還是本文的NPSO-SVM,訓(xùn)練得到的分類面均可以將兩類樣本完全分開,這是由于SVM作為一種先進(jìn)的機(jī)器學(xué)習(xí)方法,本身具有較強(qiáng)的泛化性。再觀察支持向量個(gè)數(shù),可以發(fā)現(xiàn)PSO-SVM的支持向量個(gè)數(shù)為14個(gè),而本文方法僅為兩個(gè),這主要是因?yàn)閭鹘y(tǒng)的PSO-SVM方法僅考慮分類精度,這樣算法馬上收斂于一個(gè)分類精度達(dá)到100%的點(diǎn),沒有進(jìn)一步地考慮模型的復(fù)雜度和分類模型的泛化性,而本文方法同時(shí)考慮了模型的復(fù)雜度,對(duì)得到的分類模型進(jìn)一步優(yōu)化。從最終分類面也可以明顯看出本文方法獲得的最優(yōu)分類面泛化性優(yōu)于傳統(tǒng)的方法。
以下分析算法的收斂性,這里分別采用粒子群算法(PSO)和本文的小生境粒子群算法(NPSO)對(duì)參數(shù)進(jìn)行搜索尋優(yōu),以Benchmarks中的Splice數(shù)據(jù)集為例,正類樣本個(gè)數(shù)600個(gè),負(fù)類樣本400個(gè),優(yōu)化目標(biāo)函數(shù)均為式(7),仿真結(jié)果如圖3所示。
圖3參數(shù)尋優(yōu)結(jié)果比較
從圖3可以看出,PSO-SVM快速收斂于0.8964,而NPSO-SVM收斂速度雖然慢于PSO-SVM,但是它能達(dá)到更好的收斂結(jié)果,達(dá)到了0.898 6,這說明PSO-SVM最終收斂于局部最優(yōu)解,而NPSO-SVM由于加入了小生境思想,使得優(yōu)化過程更容易跳出局部最優(yōu)。從收斂過程也可以看出,雖然NPSO-SVM在36代時(shí)也達(dá)到了局部最優(yōu)0.896 4,但是它很快于45代時(shí)跳出這一局部最優(yōu)解,直觀地體現(xiàn)了本文方法的優(yōu)勢(shì)。
為了充分說明本文提出方法的有效性,對(duì)Benchmarks的其他樣本集分別做分類實(shí)驗(yàn)。分別比較不考慮模型復(fù)雜度的PSO-SVM和本文方法的分類精度和支持向量個(gè)數(shù),獲得的實(shí)驗(yàn)結(jié)果如表1所示。
從實(shí)驗(yàn)結(jié)果可以看出本文方法在分類精度上沒有任何下降,在Diabetis、Image和Thyoid數(shù)據(jù)集上還有一些提高,從這里可以看出NPSO算法相較PSO算法的尋優(yōu)能力更強(qiáng),更容易達(dá)到最優(yōu)解。除此之外,本文方法在支持向量(SV)個(gè)數(shù)上均有明顯減少,降低了分類模型的復(fù)雜性,提高了模型的泛化性。
表1 Benchmarks實(shí)驗(yàn)結(jié)果
由于目前網(wǎng)絡(luò)中各種攻擊事件和病毒越來越多,導(dǎo)致網(wǎng)絡(luò)中產(chǎn)生大量的“軟故障”。本文選擇了DARPA99入侵?jǐn)?shù)據(jù)集,以攻擊下的網(wǎng)絡(luò)狀態(tài)模擬網(wǎng)絡(luò)故障。該數(shù)據(jù)集包含4類網(wǎng)絡(luò)攻擊,分別是DOS、Probe、R2L和U2R,用一套標(biāo)準(zhǔn)格式的數(shù)據(jù)來記錄各種網(wǎng)絡(luò)狀態(tài)下的特征,每條記錄均有41個(gè)特征值。為了確保數(shù)據(jù)的普適性,從原始數(shù)據(jù)集中以等間隔采集法選取訓(xùn)練集樣本和測(cè)試樣本,具體的樣本選擇情況如表2所示。
表2實(shí)驗(yàn)樣本集
分別采用PSO-SVM,NPSO-SVM進(jìn)行特征選擇,粒子群算法種群規(guī)模均為20,最大迭代次數(shù)100,比較兩種算法的診斷精度和支持向量個(gè)數(shù)以及診斷時(shí)間,實(shí)驗(yàn)結(jié)果如表3所示。
從實(shí)驗(yàn)結(jié)果可以看出相較傳統(tǒng)的僅以診斷精度為優(yōu)化目標(biāo)的PSO-SVM算法,本文提出的NPSO-SVM在診斷精度和診斷時(shí)間上均有提高,說明本文提出的診斷算法能夠在保證診斷精度的同時(shí)簡(jiǎn)化得到的診斷模型,有效解決參數(shù)尋優(yōu)和模型復(fù)雜的問題。
表3故障診斷結(jié)果
SVM作為一種優(yōu)秀的分類方法被引入到網(wǎng)絡(luò)故障診斷問題中,但是SVM的參數(shù)尋優(yōu)以及診斷模
型復(fù)雜問題影響它的應(yīng)用效果。本文采用NPSO算法對(duì)SVM參數(shù)進(jìn)行尋優(yōu),解決尋優(yōu)過程中容易陷入局部最優(yōu)的問題,同時(shí)用支持向量個(gè)數(shù)表示模型的復(fù)雜度,加入尋優(yōu)過程中,提高獲得的診斷模型的泛化性。在DARPA數(shù)據(jù)集上的網(wǎng)絡(luò)故障診斷實(shí)驗(yàn)表明本文提出的方法能夠快速達(dá)到在保證診斷精度的同時(shí)降低模型的復(fù)雜度,提高診斷速度,為SVM在網(wǎng)絡(luò)故障診斷提供一種新的思路。
參考文獻(xiàn):
[1]GR尷NB覸K J,SCHWEFEL H P,CECCARELLI A,et al. Improving robustness of network fault diagnosis to uncertainty in observations[C]// IEEE International Symposium on Network Computing and Applications,2010.
[2]溫祥西,孟相如,馬志強(qiáng).基于雙重支持向量機(jī)的網(wǎng)絡(luò)故障診斷[J].控制與決策.2013,28(4):506-510.
[3]朱長(zhǎng)成.支持向量機(jī)在網(wǎng)絡(luò)故障診斷中的應(yīng)用[J].計(jì)算機(jī)仿真,2011,28(10):03-107.
[4]GUO J W,WU X P,YE Q. Network fault diagnosis based on rough set-support vector machine[C]// ICCASM 2010,2010.
[5]向昌盛,張林峰. PSO-SVM在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,31(4):1222-1225.
[6]左磊,侯立剛,張旺,等.基于粒子群-支持向量機(jī)的模擬電路故障診斷[J].系統(tǒng)工程與電子技術(shù),2010,32(7):1553-1556.
[7]BRITS R,ENGELBRCHTA P,BERGH Fn. A niching particle swarm optimizer[C]// Proceedings Conf. on Simulated Evolution and Learning,Singapore,2002.
[8]VAPNIK V. Statistical learning theory[M]. New York:Wiley,1998.
Network Fault Diagnosis Based on Niche Particle Swarm Optimization SVM
ZHANG Ya-mei,ZHANG Zheng-ben
(Henan Mechanical and Electrical Engineering College,Xinxiang 453003,China)
Abstract:The parameters setting and diagnosis model complexity caused by dataset’s huge size affect the SVM’s application in network fault diagnosis. A new method based on niche particle swarm optimization SVM is proposed to solve these problems. The algorithm optimizes SVM training parameters,and the support vectors number is proposed to simplify the diagnosis model complexity as well. The niche particle swarm optimization method was introduced to this optimization problem while it’s excellent ability of escape locally optimal solution. The experiments on DARPA dataset shows that the method can improve the diagnosis model’s generalization and can get faster diagnosis speed.
Key words:network fault diagnosis,SVM,niche particle swarm optimization,support vector number
作者簡(jiǎn)介:張亞梅(1963-),女,河北唐山人,副教授。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、軟件應(yīng)用。
*基金項(xiàng)目:河南省教育廳自然科學(xué)研究計(jì)劃基金資助項(xiàng)目(2011B520013)
收稿日期:2014-12-22
文章編號(hào):1002-0640(2016)02-0158-04
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)識(shí)碼:A
修回日期:2015-02-23