摘要:該文對SVM和ANN在網絡安全風險評估方面的應用進行了比較研究,首先介紹了ANN的工作原理,然后分別將兩種方法都應用到網絡安全風險評估中,對其評估效果進行了比較。結果發現SVM在小訓練樣本的分類正確率,泛化能力和訓練、測試速度方面,均優越于ANN,是一種更加優越的風險評估方法。
關鍵詞:支持向量機;網絡安全;風險評估;統計學習理論
中圖分類號:TP393.08文獻標識碼:A文章編號:1009-3044(2009)33-9380-02
Study on the Network Security Risk Evaluation SVM and ANN
GAO Shu-tao
(Hunan Foreign Economic Relations Trade College, Changsha 410114, China)
Abstract: In this paper, SVM and ANN in the network security risk assessment carried out a comparative study of the application, first introduced the working principle of ANN, and then the two methods are respectively applied to the network security risk assessment, their assessment results were compared. The results showed that SVM training samples in a small classification accuracy rate, generalization ability and training, test speed, are superior to ANN, is a more superior risk-assessment methodologies.
Key words: support vector machine; network security; risk evaluation; statistical learning theory
近年來,網絡安全逐漸成為人們關注的焦點,而網絡安全的核心就是對網絡系統進行風險評估[1]。風險評估是從風險管理角度出發,運用科學的方法和手段,系統地分析網絡與信息系統所面臨的威脅及其存在的脆弱性,評估安全事件一旦發生可能造成的危害程度,提出有針對性的抵御威脅的防護對策和整改措施,將風險控制在可接受的水平,從而最大限度地保障網絡信息系統的安全。
1 風險評估中的ANN方法
ANN是人工智能方法的重要分支,是一門交叉學科,在許多領域得到了越來越廣泛的應用[2]。ANN具有高度的非線性映射能力,強大的自學習、自適應能力和優良的聯想記憶功能。ANN模型主要有:Adaline,BPNN,RBF網絡以及Hopfield網絡等,其中BPNN是最典型的ANN,本文的ANN采用BPNN。
1.1 BPNN的結構
BP神經網絡學習算法,實現了多層網絡設想,是目前最成熟、應用最廣泛的ANN之一[3]。最基本的BPNN是一種二層前饋網絡,它不僅含有輸入層和輸出層,而且含有一層或多層隱含層。本文用網絡安全風險評估指標變量作為輸入層,風險評估值作為輸出層,則輸入層含有12個節點,輸出層含有一個節點,輸入信號先向前傳遞到隱含層,經過處理后,再把隱含層的輸出信息傳遞到輸出層,最后得到輸出結果。節點的激發函數一般選用Sigmoid型函數。BPNN算法的學習過程由正向傳播和反向傳播兩個階段。在正向傳播過程中,輸入信息從輸入層經隱單元層逐層處理后,傳至輸出層。每一層神經元的狀態只影響下一層神經元的狀態。如果在輸出層得不到期望輸出,那么就轉為反向傳播,將實際值與網絡輸出之間的誤差沿原來連接的通路返回,并通過修改各層神經元的連接權值,使誤差減小,然后再轉入正向傳播過程,反復迭代,直到誤差小于給定的值為止。
1.2 SVM與ANN的關系探討
統計學習理論和SVM的發展與ANN有著密切聯系[4],但目前尚沒有針對SVM與ANN關系的權威性定論,這主要是因為對于輸入輸出關系模型的分析也沒有統一的理論框架和認識。就如同計算智能與人工智能的關系一樣,連接主義與符號主義似乎是它們間的明顯區別,但從解決問題的本質上講也難以給出清晰的界限。本文主要從以下幾個角度對他們之間的關系做出簡要分析探討。
從統計學習的角度:兩者具有相同的學習過程的統計性質,其實質都是在觀測得到的訓練樣本集基礎上,實現一組輸入一一輸出映射函數模型。SVM很好的實現了統計學習中的結構風險最小化(SRM)原則,ANN則應用經驗風險最小化(ERM)原則,但在實際的ANN模型設計中,設計者已將SRM原則蘊含在經驗或先驗知識當中。另外,當SVM采用Sigmoid型核函數時就構成了一個兩層的前饋網絡。在此方面,更多學者認為可以將ANN如同SVM一樣納入到統計學習的背景之下統一考慮。
從連接主義的角度:與ANN中的多層前饋網絡相比較,SVM也具有極為相似的組織結構;在某種意義上兩者是等價的,由前面輸入層到最后輸出層的轉換來完成測試任務;ANN作為連接主義的主要代表技術,更喜歡將SVM作為一種ANN模型來考慮,無非是一種隱層節點和中心向量由算法自動確定的多層前饋神經網絡。但ANN技術還包括除多層前饋神經網絡以外的自組織網絡和反饋網絡等結構模型,比SVM內容更豐富。
上述從不同的視角對SVM和ANN的關系進行了討論,可以看出兩者的基礎和本質是一致的,都是基于樣本數據,以連接為主要表現形式,來完成一個輸入一一輸出映射關系的學習模型;都是解決學習問題的技術方法。
2 SVM和ANN理論上的對比分析
SVM作為一種新近興起的機器學習模型,將其與流行的ANN機器學習方法進行對比分析是十分必要的,對深入研究機器學習具有重要意義。同時,理論分析與實際應用效果是否相一致也應是重點研究內容。
2.1 維數災難問題
SVM通過把處理約束最優化問題集中于其對偶問題,繞過了維數災難的困難,其推廣性與變換空間的維數無關,SVM通過引入核函數,將輸入原空間映射到非常高維的特征空間實現線性可分。映射后的特征空間可以很高,但并不增加網絡的復雜性。對于ANN而言,在少量樣本、高維的數據環境下,很可能導致網絡不收斂或訓練誤差很大,容易出現“欠學習”現象。
2.2 全局極值點問題
ANN中的誤差反傳算法一般都最小化一個二次損失函數,其基于最陡下降算法經常會出現多個局部極小點,有時還會出現平臺。當輸入向量X的維數N較大且網絡的規模很大時,還可能出現更多的局部極小點和平臺。SVM針對模式分類和非線性回歸等不同的學習任務構造不同的目標函數;并且SVM對任何學習任務都提供一種獨立于維數的控制模型復雜性的方法。SVM的訓練算法包含一個二次規劃問題,它能保證找到誤差曲面的全局極值點,并且計算可以被有效執行。
3 SVM與ANN評估效果的對比分析
SVM和ANN都是人工智能方法的兩個分支,且都廣泛的應用到風險評估方面,所以有必要對兩者的評估效果進行比較。下面利用搜集到的樣本數據,從三個方面對SVM和ANN評估效果進行了比較。其中ANN采用BPNN,其參數設置為:最大訓練次數100;最小均方誤差0.001;最小梯度1e-10;訓練時限是inf;隱含層節點數為5。SVM的參數設置為:SVM類型C-SVM,核函數類型RBF核,核函數參數:C=150,其余參數選用默認值。SVM的運行環境為:計算機配置為CPU為2.80GHz,215M內存,Windows XP環境下,VC++6.0版本編譯的SVM工具箱;ANN的運行環境為:計算機配置為CPU為2.80GHz,215MB內存,Windows XP環境下,MATLAB7.1版本。
3.1 小樣本情況下SVM和ANN分類正確率的比較
傳統的統計估計方法,包括模式識別、ANN等在內,都是樣本數目趨于無窮大時的漸近理論,但在實際問題中,由于樣本數據的獲取存在一定的困難,所以樣本數往往是有限的,因此一些理論上很優秀的學習方法實際中表現卻可能不盡人意。與傳統統計學相比,SLT是一種專門研究小樣本情況下機器學習規律的理論,該理論針對小樣本統計問題建立了一套新的理論體系,在這種體系下的統計推理規則不僅考慮了對漸近性能的要求,而且追求在現有有限信息的條件下得到最優結果,而不僅僅是樣本數趨于無窮大時的最優值。根據有限的樣本信息在模型的復雜性(即對特定訓練樣本的學習精度,Accuracy)和學習能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折衷,以期獲得最好的推廣能力,很好的解決了ANN的“過學習”現象。為了比較SVM和ANN在小樣本情況下的分類性能,在訓練樣本中,分別選取10,20,50,80個樣本作為訓練樣本集進行訓練,用同樣的900個樣本作為測試集,對SVM和ANN模型進行測試,比較兩者性能的優劣。結果在小樣本訓練的情況下,SVM的分類正確率普遍高于ANN;說明了SVM在小訓練樣本情況下也表現出了很好的評估性能,這個優勢是其他方法所不能比擬的。
3.2 SVM和ANN泛化能力比較
學習機器的泛化能力是指學習后的機器對測試樣本或工作樣本做出正確反應的能力。泛化能力是學習機器最主要的性能,沒有泛化能力的學習機器是沒有任何使用價值的。一般用訓練集到測試集的分類正確下降率在表示學習機器的泛化能力,下面通過實踐比較SVM和ANN的泛化能力。該結果表明SVM在不同樣本集下,分類正確下降率都低于ANN,可以得出SVM有比ANN更強的泛化能力,能夠滿足實際應用的要求;分類正確率有所下降也表明測試樣本中的分類正確正確率,說明普通SVM模型的預測能力還沒有達到最好,需要采取SVM改進訓練算法來更進一步提高其泛化能力。
3.3 SVM和ANN訓練和測試時間比較
練和測試時間也是學習機器一個很重要的參數,學習機器的速度瓶頸不僅降低了評估效率,并且限制了該方法的推廣應用。本文用VC++對SVM工具箱進行了優化設計,大大提高了評估效率。本文比較了不同訓練樣本集下,SVM和ANN的訓練和測試速度。為了使測試結果更準確,關閉其他所有應用程序,訓練環境為計算機配置為CPU2.80GHz,215MB的內存下Windows XP操作系統。SVM采用優化設計的工具箱,ANN運行環境為MATLAB7.l。由于Windows操作系統是多任務操作系統,在程序運行的過程中,也有其他的進程同時占用CPU的時間,導致每次運行同一個程序的時間并不是統一的,這里取運行3次的平均值,作為其訓練和測試時間。結果SVM的訓練和測試速度得到得了很大的提高,最高的時候提高了90多倍,最低也提高了20倍,可以看出SVM模型在訓練和測試時間上有比ANN更強的應用優勢,具有很好的發展前景。
4 結論
該文驗證了SVM評估模型的有效性。鑒于SVM和ANN都是人工智能評估方法,探討了兩者的關系通過實例對兩者在風險評估中的應用進行了比較研究,實驗結果表明,SVM具有比ANN更好的評估效果,驗證了SVM模型的有效性。
參考文獻:
[1] Vapnik V N.統計學習理論的本質[M].張學工,譯.北京:清華大學出版社,2000.
[2] 金朝光.基于模糊集理論事件樹分析方法在風險分析中應用[J].大連理工學報,2003,43(1):97-100.
[3] 董豆豆.基于故障樹的系統安全風險實時監測方法[J].國防科技大學學報,2006,28(2):111-l16.
[4] 朱松嶺.基于模糊層次分析法的風險量化研究[J].計算機集成制造系統,2004,10(8):980-984.