張康寧,廖光忠
(1.武漢科技大學計算機科學與技術(shù)學院,湖北 武漢 430081;2.武漢科技大學智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,湖北 武漢 430081)
網(wǎng)絡信息時代為人們的生活和工作提供了諸多便利,與此同時網(wǎng)絡安全問題也逐漸受到人們的關(guān)注.防火墻作為一種傳統(tǒng)的網(wǎng)絡安全技術(shù),通過在網(wǎng)絡邊界建立相應的網(wǎng)絡通信監(jiān)控系統(tǒng)來隔離內(nèi)部和外部網(wǎng)絡,以阻擋來自外部的網(wǎng)絡入侵.但防火墻是一種被動防護技術(shù),面對日益隱蔽且復雜的網(wǎng)絡攻擊難以形成有效的保護.網(wǎng)絡入侵檢測作為一種主動防護手段,通過收集和分析網(wǎng)絡行為、安全日志及審計數(shù)據(jù)等,檢測網(wǎng)絡中潛在的攻擊行為,能夠在網(wǎng)絡系統(tǒng)受到危害前實現(xiàn)攔截和響應入侵,提供對外部攻擊、內(nèi)部攻擊和誤操作的實時保護.
機器學習的發(fā)展為解決網(wǎng)絡入侵提供了廣闊的思路.根據(jù)檢測方法不同,入侵檢測一般分為誤用檢測和異常檢測.誤用檢測根據(jù)先驗知識對攻擊行為進行判斷,通過特征庫對比識別異?;驖撛诘娜肭滞{,常用方法有專家系統(tǒng)、條件概率等[1].此類方法對已知類型的攻擊具有很高的檢測精度,但受限于先驗知識,對未知的入侵行為無法檢測,需要人為更新數(shù)據(jù)庫[2].異常檢測[3]則是通過對網(wǎng)絡中正常行為的普遍特征進行概括,建立入侵檢測模型,當網(wǎng)絡中的行為偏離此模型時,被判定為網(wǎng)絡入侵行為,生成警告,常用方法有統(tǒng)計異常檢測[4]、貝葉斯推理[5]等.此類方法能夠?qū)ξ粗娜肭中袨檫M行識別,但受限于網(wǎng)絡行為的復雜性及多樣性,異常檢測模型難以對所有正常行為進行準確的概括,存在誤報率高的問題[6].
集成學習作為近些年機器學習領域的研究熱點,被越來越多的應用于各種領域.入侵檢測作為一個典型的分類問題,已有很多學者將集成學習應用于此類研究.為提高集成學習的檢測準確率,要求基分類器應“好而不同”[7],即要求基分類器兼具一定的準確性和多樣性.為提高基分類器之間的差異,常用的方法有數(shù)據(jù)樣本擾動、特征屬性擾動、輸出表示擾動及算法參數(shù)擾動.本文將支持向量機(SVM)與Bagging集成學習結(jié)合,對Bagging集成的樣本擾動方式進行了改進,并結(jié)合特征選擇算法來增大基分類器之間的差異,提高檢測準確率,同時避免了SVM在處理大樣本數(shù)據(jù)時的計算難題.
集成學習的基分類器常采用弱分類器,如神經(jīng)網(wǎng)絡、貝葉斯、決策樹等.SVM作為一種強分類器,一般認為進行集成學習的性能提升有限,但由于SVM在應用上的一些缺陷,如最優(yōu)解計算、參數(shù)選擇及多分類問題等,使得基于SVM的集成學習具有性能提升的空間.因此,SVM集成已成為機器學習領域的熱門研究.
SVM建立在統(tǒng)計學習理論[8-9]的VC維概念和結(jié)構(gòu)風險最小化原理基礎上,根據(jù)有限樣本信息在模型復雜性和學習能力之間尋求折中,以獲得好的泛化能力.其基本思想是基于訓練集在樣本空間中找到一個劃分超平面,將不同類別的樣本分開.但在樣本空間中存在若干超平面能將樣本分開,因此需要找到一個最優(yōu)決策面,使得分類結(jié)果的魯棒性最佳.其具體描述如下:
s.t.yi(wTxi+b)≥1,i=1,2,…,m.
(1)
(1)式為支持向量機的基本型.
求解(1)式,對約束條件添加拉格朗日乘子α(α≥0),將其轉(zhuǎn)化為求解的對偶問題,即:
(2)
解出α后,求出w與b即可得到支持向量機模型
(3)
L.K.Hansen等[10]通過將多個神經(jīng)網(wǎng)絡結(jié)合來提高學習器泛化性能的研究,首次提出了集成學習的概念,目前集成學習代表性算法主要有Boosting[11]和Bagging.Boosting是一種迭代算法,通過前一分類器的分類結(jié)果來更新后一分類器的樣本分布,對弱學習器進行自適應調(diào)整,但其采用串行運算,計算復雜度明顯提高,難以適應高速網(wǎng)絡的實時入侵檢測任務.相比Boosting算法,Bagging算法的集成個體之間相互獨立,可以并行運算,大大提高了檢測效率,具有更加廣闊的應用前景.因此,本文采用Bagging-SVM集成學習來進行網(wǎng)絡安全的實時入侵檢測.
近年來,基于Bagging-SVM的集成學習得到了許多研究者的關(guān)注,在很多領域得到了應用,但受限于SVM難以對大規(guī)模數(shù)據(jù)進行有效的處理,集成SVM在入侵檢測方面的研究相對較少.目前針對入侵檢測通用的數(shù)據(jù)集為KDD Cup1999,其包含近500萬條訓練數(shù)據(jù)和30萬條測試數(shù)據(jù).為應對此類超大規(guī)模數(shù)據(jù)集,常用的做法是從原始數(shù)據(jù)集中隨機抽取少量樣本進行訓練和測試.譚愛平等[12]通過隨機采樣分別從訓練集和數(shù)據(jù)集中抽取29 313和24 974個樣本用于實驗,但其總量仍只約占原始數(shù)據(jù)的1/100,大量信息被丟失.付子爔等[13]提出了一種基于增量學習的SVM算法,實現(xiàn)了對入侵數(shù)據(jù)的動態(tài)學習,提高了學習效率,具有一定的應用價值.但是數(shù)據(jù)增量學習新知識時不可避免的遺忘舊知識,相比整個數(shù)據(jù)集的學習準確率稍有下降.因此,如何對數(shù)據(jù)集進行比較完備學習的同時提高學習效率是入侵檢測技術(shù)具有實際應用價值的前提,而改進取樣方式的Bagging-SVM算法可以有效實現(xiàn)上述目標.
集成學習要求基分類器的錯誤率不能高于50%,即能達到優(yōu)于各子分類器的結(jié)果.利用這一特性,SVM不必尋找最優(yōu)解即能使集成學習模型達到較好的分類效果,降低了SVM求解二次規(guī)劃的時間和空間復雜度,也為核函數(shù)選擇和參數(shù)優(yōu)化提供了方便.但達到上述條件必須保證基分類器之間具有較大的差異性,即集成學習的多樣性是保證分類器高準確率和泛化性的前提.
圖8a表示當時,交點軸線T-Map的2維空間域,即所有滿足的交點軸線映射點的集合。圖8中其他2維空間域與圖8a中的2維空間域類似,在此不再贅述。綜合和的2維空間域,即可獲得不同交點軸線偏差的2維坐標波動范圍。
為提高集成學習系統(tǒng)的多樣性,Bagging集成學習通過Bootstarp[14]方法改變樣本分布,即通過對原始樣本數(shù)據(jù)進行有放回的隨機采樣,使每個分類器之間的樣本數(shù)據(jù)不同,提高集成分類器的性能.通常基分類器的樣本總數(shù)為原始樣本數(shù)據(jù)的63.2%,對于小樣本數(shù)據(jù)的分類是一個行之有效的方法,但KDD Cup99數(shù)據(jù)集龐大,63.2%的原始數(shù)據(jù)對SVM的運算仍然是一個難以完成的任務.
為解決上述問題,同時減少樣本信息的丟失,本文對Bagging算法的取樣方式進行了改進.假設擬采用的基分類器個數(shù)為k,初始化k值,并將樣本劃分為均等的k份.為避免劃分數(shù)據(jù)集時樣本類型分布不均,分別將每類樣本平行劃分為k份,再進行隨機組合.由于各子集之間相互獨立,集成系統(tǒng)的多樣性得到顯著改善.圖1為本文采用的樣本分割示意圖.
圖1 樣本分割示意圖
為提高集成學習系統(tǒng)的多樣性,出現(xiàn)了多重擾動機制,即將能夠增大集成個體差異性的擾動方法結(jié)合,以達到比單一擾動更好的效果.本文采用二重擾動,將特征擾動與樣本擾動結(jié)合,達到提高集成學習多樣性的目的.
本文采用獨熱編碼對字符特征數(shù)值化,導致特征維數(shù)增加,冗余特征增多,計算成本增大,因此在特征選擇前需對特征進行降維處理.采用主成分分析法(PCA)將高維特征映射到低維空間,得到全新的正交特征集合.過程如下:
給定一個m行n列的矩陣X(m為樣本數(shù),n為特征維數(shù)),計算樣本均值公式為
(4)
式中xi為X中第i個樣本,i=1,2,…,m.
(5)
則AAT為n階方陣.假設有一n維非零向量L,使AAT=L,則l和L分別為AAT的特征值和特征向量.將特征向量按對應特征值由大到小排列成矩陣,根據(jù)貢獻率取前k行組成矩陣P,則特征降至k維后的目標矩陣為
(6)
貢獻率是每一特征攜帶有效信息的數(shù)值度量,公式為
(7)
(7)式中l(wèi)j為第j個特征的特征值,j=1,2,…,n.
圖2 不同特征維數(shù)下的準確率
為保證較少維數(shù)的特征包含較多的信息,進行PCA降維時,通常選取貢獻率占總貢獻超過90%的前n維特征作為最終的降維結(jié)果.為避免經(jīng)驗選取的誤差,PCA降維數(shù)按照貢獻率由大到小選取,由1到46遞增,觀察測試集的分類結(jié)果.圖2為10個SVM運行的平均值,當降維至28時,測試樣本的準確率較高,此后隨著特征維數(shù)的增加,準確率趨于平穩(wěn).
經(jīng)PCA降維后,對所得全新的28維特征進行選擇,構(gòu)造不同的特征子集,以提高集成學習的多樣性.考慮到實際應用中需對入侵行為作出快速準確的判斷,本文基于信息增益(IG)對特征分類能力進行度量,信息增益值表示已知特征X的信息而使得類Y信息不確定性減少的程度.基于信息增益的特征選擇是一種典型的過濾式選擇方法,其特征選擇過程與后續(xù)分類器無關(guān),大大降低了計算成本.信息增益(IG)是基于熵理論的評估方法,其描述如下:
設數(shù)據(jù)集D中包含k個類,第j類占總樣本比例為Pj(j=1,2,…,k),則數(shù)據(jù)集D的經(jīng)驗熵為
(8)
設特征屬性A有n個不同的取值{a1,a2,…,an},根據(jù)特征A的取值將數(shù)據(jù)集D劃分為n個子集{D1,D2,…,Di,…,Dn},|Di|為第i個子集的樣本個數(shù),|Dij|為子集Di中隸屬于第j類的樣本個數(shù),特征A關(guān)于數(shù)據(jù)集D的經(jīng)驗熵為
(9)
由(8)和(9)式可得特征A對數(shù)據(jù)集D的信息增益值
IG(D,A)=H(D)-H(D,A).
(10)