(中共四川省委黨校 四川行政學(xué)院,四川 成都 610072)
計算機(jī)網(wǎng)絡(luò)可以實現(xiàn)高效的信息共享、信息分發(fā)等服務(wù),在人類社會日益依賴計算機(jī)網(wǎng)絡(luò)的背景下,如果計算機(jī)網(wǎng)絡(luò)發(fā)生故障很可能造成嚴(yán)重的損失,而計算機(jī)網(wǎng)絡(luò)智能診斷方法具有強(qiáng)大的魯棒性和容錯能力,能夠在不確定或未知的系統(tǒng)中通過自主學(xué)習(xí)處理定量和定性信息,同時可以很好地適應(yīng)計算機(jī)網(wǎng)絡(luò)的各種動態(tài)變化[1]?;谏鲜鰞?yōu)點智能診斷技術(shù)已被廣泛應(yīng)用于診斷計算機(jī)網(wǎng)絡(luò)故障,并獲得了一定的成果。
計算機(jī)網(wǎng)絡(luò)智能故障診斷技術(shù)主要涉及模糊推理和遺傳算法、人工神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、人工免疫算法等理論和方法。
基于人工神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)故障診斷過程主要包括以下幾個步驟:第一步,預(yù)處理采集到的故障數(shù)據(jù),篩選車真正需要的數(shù)據(jù),然后通過約簡方法去掉數(shù)據(jù)中的不必要的冗余信息點。第二步,使用訓(xùn)練樣本集訓(xùn)練神經(jīng)網(wǎng)絡(luò),訓(xùn)練成熟后可以確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)(中間層的傳遞函數(shù)、神經(jīng)元數(shù)目)和參數(shù)(神經(jīng)元之間的連接權(quán)值和閥值)[2],此時借助測試樣本集測試神經(jīng)網(wǎng)絡(luò),如果故障診斷的準(zhǔn)確率在整個測試過程中未達(dá)到預(yù)期,則需要再次進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
模糊推理的過程是利用模糊邏輯輸入具體信息后最終輸出信息。第一步,建立知識庫,這一步需要充分利用專家系統(tǒng)大致描述故障和障礙現(xiàn)象以及故障現(xiàn)象與故障現(xiàn)象之間的關(guān)聯(lián)。第二步,通過數(shù)據(jù)挖掘、專家定制和神經(jīng)網(wǎng)絡(luò)技術(shù)創(chuàng)建模糊規(guī)則。第三步,使用模糊推理機(jī)查找故障位置及其類型。
支持向量機(jī)屬于機(jī)器學(xué)習(xí)算法,泛化能力很強(qiáng)。相較于其他智能診斷方法,基于支持向量機(jī)的網(wǎng)絡(luò)故障診斷法面對小樣本、非線性、高維模式識別等問題具有明顯的優(yōu)勢,適用于圖像處理、模式識別、數(shù)據(jù)分析[3]。具體診斷步驟如下:第一步,獲取網(wǎng)絡(luò)狀態(tài)并約簡,然后將特征數(shù)據(jù)分為訓(xùn)練樣本集、測試樣本集。第二步,選擇支持向量機(jī)初始參數(shù),包含內(nèi)核函數(shù)參數(shù)、懲罰參數(shù)。第三步,借助訓(xùn)練樣本集來訓(xùn)練支持向量機(jī)以獲得最佳分類超平面。第四步,使用測試樣本集檢驗網(wǎng)絡(luò)故障診斷有效性。如診斷準(zhǔn)確率不能滿足要求,則需要增加樣本訓(xùn)練集中的樣本,重新訓(xùn)練支持向量機(jī)。第五步,如診斷準(zhǔn)確率符合要求,則進(jìn)入正式的在線故障診斷階段。計算機(jī)網(wǎng)絡(luò)故障診斷是一個非常有代表性的小樣本問題,而支持向量機(jī)作為現(xiàn)階段解決小樣本問題的最理想的算法在診斷網(wǎng)絡(luò)故障時可以獲得非常理想的效果。
隨著新的網(wǎng)絡(luò)應(yīng)用程序的不斷出現(xiàn)以及配置方法的多樣化,計算機(jī)網(wǎng)絡(luò)故障診斷難度不斷提升。對于計算機(jī)網(wǎng)絡(luò)故障診斷來說,異常檢測技術(shù)非常重要。異常檢測技術(shù)的基本步驟是:首先,需要從檢測源中提取一些相關(guān)量。即從大量的網(wǎng)絡(luò)數(shù)據(jù)中提取出相關(guān)量展開統(tǒng)計,以構(gòu)建特征數(shù)據(jù)體系。如果網(wǎng)絡(luò)中的行為數(shù)據(jù)與事先建立的特征數(shù)據(jù)之間的偏差超過某個數(shù)值,則可以判定計算機(jī)網(wǎng)絡(luò)發(fā)生了故障,這樣一來,計算機(jī)網(wǎng)絡(luò)診斷問題的關(guān)鍵就是模式識別問題,通過機(jī)器學(xué)習(xí)方式解決解決網(wǎng)絡(luò)故障問題。在樣本足夠多的前提下研究了傳統(tǒng)的機(jī)器學(xué)習(xí)算法可以獲得理想的效果。但是,在計算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)又蝎@取的用于機(jī)器學(xué)習(xí)的數(shù)據(jù)和實際應(yīng)用中的檢測數(shù)據(jù)相比顯然是一個很小樣本問題,在小樣本情況下運(yùn)用傳統(tǒng)的機(jī)器學(xué)習(xí)算法識別網(wǎng)絡(luò)故障存在兩個問題:①因為計算機(jī)網(wǎng)絡(luò)應(yīng)用程序不斷出現(xiàn)以及持續(xù)更新,目前無法找出能表征所有應(yīng)用程序?qū)庸收系暮瘮?shù)[4]。②除了用來通信數(shù)據(jù)流外,計算機(jī)網(wǎng)絡(luò)還包含很多用來糾錯、控制的數(shù)據(jù)流以及部分格式錯誤的數(shù)據(jù)包。上述噪聲數(shù)據(jù)可能會導(dǎo)致目標(biāo)函數(shù)無法正確映射訓(xùn)練數(shù)據(jù)。
基于上述問題,雖然人工神經(jīng)網(wǎng)絡(luò)技術(shù)在網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層可以獲得理想的應(yīng)用效果,但在計算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)訜o法充分發(fā)揮作用。例如,網(wǎng)絡(luò)結(jié)構(gòu)如何確定、過度訓(xùn)練、過度學(xué)習(xí)、訓(xùn)練不足、局部極小點問題。針對這些問題,弗拉基米爾·N·瓦普尼克(Vladimir N Vapnik)提出了統(tǒng)計學(xué)習(xí)理論(SLT),基于理論構(gòu)建比較完善的用于小樣本的學(xué)統(tǒng)計體系,并開發(fā)出一個新模型——支持向量機(jī)(SVM)[5],有效地控制機(jī)器學(xué)習(xí)的復(fù)雜程度,顯著提升學(xué)習(xí)機(jī)器的推廣性,解決了“維數(shù)災(zāi)難”問題,通過內(nèi)積核函數(shù)講低維空間轉(zhuǎn)換為高維特征空間在高維特征空間中創(chuàng)建線性判別函數(shù),從而在最初的空間中實現(xiàn)非線性判別函數(shù)。理論上講,支持向量機(jī)(SVM)方法不僅保證了學(xué)習(xí)機(jī)器的推廣性,而且還解決了維數(shù)問題。同時,理論上支持向量機(jī)(SVM)方法無需考慮局部極小點問題,因此,支持向量機(jī)(SVM)方法非常適合用于檢測計算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)庸收稀?/p>
如圖1,基于支持向量機(jī)的計算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)拥墓收蠙z測模型主要包括數(shù)據(jù)捕獲模塊、支持向量庫、支持向量機(jī)預(yù)測模塊、數(shù)據(jù)預(yù)處理模塊、支持向量機(jī)訓(xùn)練模塊構(gòu)成的事件分析器;事件數(shù)據(jù)庫;輸出和響應(yīng)模塊[6]。
模型基本處理流程:①數(shù)據(jù)捕獲模塊采集計算機(jī)網(wǎng)絡(luò)應(yīng)用層數(shù)據(jù),對網(wǎng)絡(luò)應(yīng)用層的記錄進(jìn)行分析,提取特征信息。②數(shù)據(jù)預(yù)處理模塊對網(wǎng)絡(luò)連接的特征信息進(jìn)行預(yù)處理,得到支持向量機(jī)的輸入向量格式。③如果處于支持向量機(jī)訓(xùn)練狀態(tài),則訓(xùn)練支持向量機(jī)并將訓(xùn)練結(jié)果存儲在支持向量庫中。當(dāng)處于支持向量機(jī)預(yù)測狀態(tài)時,支持向量機(jī)預(yù)測模塊是輸入向量;預(yù)測結(jié)果存儲在事件數(shù)據(jù)庫中,并執(zhí)行響應(yīng)操作,如發(fā)出警報,給出處理建議等。④數(shù)據(jù)預(yù)處理模塊對故障記錄執(zhí)行加權(quán)預(yù)處理用于支持向量機(jī)的輸入向量。借助訓(xùn)練樣本集進(jìn)行支持向量機(jī)訓(xùn)練,獲得的支持向量存儲在支持向量庫中。⑤基于支持向量庫,由支持向量機(jī)檢測器處理輸入的測試樣本,獲得預(yù)測輸出值Y,數(shù)值為為1或-1,1表示網(wǎng)絡(luò)正常,-1表示網(wǎng)絡(luò)異常。⑥當(dāng)預(yù)測輸出值為-1時則判定計算機(jī)網(wǎng)絡(luò)應(yīng)用層出現(xiàn)故障。為了進(jìn)行檢測可以選擇一次上層網(wǎng)絡(luò)連接作為樣本,通過六元組(timestamp,srclP,dstlP,srcPort,dstPort,protocolType)表示一次上層網(wǎng)絡(luò)連接。timestamp代表一次上層網(wǎng)絡(luò)連接開始的時間。對于單個數(shù)據(jù)包將發(fā)送該數(shù)據(jù)包的時間作為timestamp。如果是連續(xù)的數(shù)據(jù)包序列,則網(wǎng)絡(luò)連接發(fā)起時首個數(shù)據(jù)包發(fā)送的時間作為timestamp,其數(shù)值可精確到微秒級別。srcIP、srcPort分別代表源主機(jī)的地址和端口號,而dstlP、dsttPort分別代表目標(biāo)主機(jī)的地址和端口號。將輸入空間定義為M,其代表所有網(wǎng)絡(luò)連接的集合[7]。假設(shè)每個網(wǎng)絡(luò)連接有x個特征信息,則M∈Rn。將N定義為輸出域,一維向量m用于表示網(wǎng)絡(luò)連接m={m1,m1,...mx},其中mi={1,2,....x}代表樣本m的第i個特征值。
綜上,面對越來越負(fù)責(zé)的計算機(jī)網(wǎng)絡(luò)以及不斷變化的計算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)?,傳統(tǒng)的基于機(jī)器學(xué)習(xí)算法的網(wǎng)絡(luò)故障診斷方法存在不足。因此,為了準(zhǔn)確有效地診斷計算機(jī)網(wǎng)絡(luò)故障問題有必要在了解常用解網(wǎng)絡(luò)故障診斷方法的基礎(chǔ)上探討更加高效的故障檢測模型。