?

基于可變網絡結構自組織映射的入侵檢測模型

2020-06-18 05:48吳德鵬
計算機工程與應用 2020年12期
關鍵詞:神經元聚類向量

吳德鵬,柳 毅

廣東工業大學 計算機學院,廣州510006

1 引言

隨著計算機網絡在社會各個角落的使用越來越多,人們認識到使用互聯網所帶來的巨大經濟效益,但是用戶在使用計算機時越來越容易受到入侵和惡意攻擊。因此,研究更可靠、更高效的網絡保護技術是十分必要的。針對普遍存在的分類問題,提出了基于數據挖掘的聚類方法。聚類是指以事物自身的某些屬性為依據,把具有相同特征的事物聚合成一類。聚類有學習的能力,無需人工干預就能夠對沒有標記的數據進行訓練。將聚類算法應用到入侵檢測對互聯網的數據進行處理分析,通過提取屬性描述對正常數據和異常數據進行分類。聚類算法有K-means、DBSCAN等,但這些算法存在應用領域上的局限性。

針對高維數據,PCA降維尋找的是有效表示樣本特點的主軸方向,這對于表示同一類數據樣本的共同特征是非常有效的,但PCA不適用于存在多類的數據樣本。自組織映射神經網絡(SOM)是對數據聚類分析常用的工具,具有競爭學習的特點。SOM將任意維度的輸入信號通過映射轉變為一維或者二維的離散映射達到聚類的目的,并且以自適應的方式實現這個過程。但是,由于空間的沖突SOM神經網絡訓練過程中會產生畸形變化,使得輸出神經元自身的聚類結果難以識別。

本文將可改變網絡結構的自組織映射[1]網絡應用于入侵檢測領域,確定神經元的最佳數量和結構的框架,提高了整體檢測性能。使用對比主成分分析(contrastive Principal Component Analysis,cPCA)[2],在降維過程中加入少數類樣本作為背景數據集以提高對少數類的檢測,解決了大部分算法對于少數類檢測率低的缺陷。

2 相關工作

機器學習是入侵檢測的方法之一。最近幾年機器學習(Machine Learning)得到了越來越多的關注和研究,如文獻[3]研究分析了各類入侵檢測算法并提出了目前存在的問題以及未來發展趨勢,并對網絡入侵檢測新型應用領域進行概括總結。

將機器學習的方法應用于入侵檢測已經成為入侵檢測領域的研究熱點之一。文獻[4]提出了基于K-means和自適應投影共振理論的混合方法,以減少模型訓練時間,并在二分類上保持了檢測的準確性。但是,該方法對噪音和異常點敏感,不能很好解決數據不均衡這個問題。文獻[5]基于核函數的模糊粗糙特征選擇方法選擇入侵檢測的特征子集,雖然實驗結果表明方法具有良好的分類效率,但是對相異度較大的數據樣本會導致一定的數據信息丟失。文獻[6]提出了將聚類和元啟發式算法作為IDS的分類算法,提高模型對異常行為的檢測率,減少了分類的時間,同時能夠識別網絡中未知的新攻擊。然而對正常的數據容易產生誤報,不利于實際應用。文獻[7]基于K-means和決策樹分類的框架,使用遺傳算法優化參數,提高了檢測率,降低了誤報率,但是該方法容易發生過擬合,無法應付大規模且種類繁多的入侵數據。文獻[8]提出了基于快速增量支持向量機的B-ISVM方法,能夠實現較高的檢測率和快速的檢測速度。然而,該方法沒考慮到數據非均衡的問題,對大規模的數據樣本也難以實施。文獻[9]提出了基于IPMeans-KELM的入侵檢測算法。首先利用優化后的K-means算法(IPMeans)算法對數據進行聚類,把通過測試數據訓練好的KELM分類器進行分類,提高檢測率的同時降低了誤報率,但是在檢測數據量較少的攻擊類型時精確度還有待提高。文獻[10]利用卷積神經網絡長短期記憶神經網設計了一種偽裝入侵檢測的模型。該模型有較強的學習能力,能自動學習數據的表征而無需人工提取復雜特征,在面對復雜高維的海量數據時具有較強的潛力,但是面對小、中型數據集和對負樣本稀少的數據集可進一步改善。文獻[11]使用變分自動編碼器生成模型,把數據的標簽做附加輸入,生成與原數據有相同概率結構的數據,以解決數據不均衡的問題,提高常見分類器的性能。然而合成的數據反復出現一些相同的樣本,訓練出來的模型容易表現出過擬合現象。

3 cPCA

3.1 cPCA的優勢

cPCA的主要用途與PCA相同:有效地減少維度以實現可視化和探索性數據分析。cPCA適用于各種無監督學習應用,這將cPCA與一大類監督學習方法分開,其主要目標是對各種數據集進行區分。用白鼠蛋白質數據[12]的例子說明,如圖1所示,使用PCA將有和沒有唐氏綜合癥的白鼠蛋白質數據集投影到其前兩個主要成分方向中,前者和后者的數據在該子空間上的分布類似。然后使用cPCA將數據集投影到其前兩個主要成分方向,明顯觀察出有和沒有唐氏綜合癥的白鼠聚類。

圖1 PCA與cPCA降維效果對比

主成分分析算法(Principcal Component Analysis,PCA)的基本思想是:當涉及多維屬性信息,且屬性之間存在相關性時,使用主成分分析將屬性重新組合成無相關性的低維屬性,用于表示原有信息。一個入侵檢測的數據集{xi}中,除了正常的數據和常見攻擊的數據之外,還包含這一些數量少而卻難以檢測到的入侵攻擊。如果把直接將PCA應用于{xi},則最重要的主成分可能只識別正常與常見攻擊的特征,而不是少數攻擊的特征,因為前者的數量大于后者。cPCA算法通過設置兩組數據,把數量少的入侵攻擊{yi}當作對照,發現這些攻擊的趨勢和變化。

3.2 cPCA描述

cPCA需要兩個數據集,目標數據集和背景數據集。PCA根據關聯方差對主成分進行排序,生成投影數據集方差最大的特征空間,但它不能保證具有較高方法的特征向量具有相應判別力。如圖2所示,cPCA選擇的是目標數據集相對于背景數據集方差更大的投影方向,由此發現數據集獨有的低維結構。通過cPCA降低目標數據的維數,將會發現不同的集群[13]。

圖2 PCA和cPCA選擇生成的投影方向

過程:目標數據集為{xi∈Rd},背景數據集為{yi∈Rd},CX和CY為它們協方差矩陣。為單位向量的集合。對于任何方向v∈,目標數據和背景數據在該方向上的方差如下。

目標數據:

背景數據:

給定一個對比參數α>0給定一個對比參數,用于量化目標數據方差高而背景數據方差低的程度[14],cPCA計算所需的特征空間:

即:

當α=0,只選擇目標數據方差最大的特征空間,即為PCA,而隨著α增大轉向背景數據方差較小的特征空間。在實際使用cPCA時,不是選擇α的單個值,而是自動選擇一系列不同的值,使得對應于每個α的子空間盡量不同,自動選擇α值的過程是基于關聯矩陣的譜聚類。

3.3 背景數據的選擇

在入侵檢測易出現不均衡數據分類問題。不均衡數據是指數據集中某些攻擊類樣本的數量遠小于其他類,數據中各類樣本所占的比例相差很大,分布較多的樣本被稱為多數類,較少的樣本被稱為少數類。而少數類樣本往往會攜帶重要的信息,對模型訓練非常重要,但由于其出現次數不多,導致測試樣本中少數類被錯誤歸類,產生較大的誤報率。

為解決入侵檢測的不均衡數據分類問題,避免少數類被檢測為其他類,提高對少數類攻擊的檢測效果,選擇少數類(R2L和U2R)作為背景數據,cPCA增大類之間的差異程度,以降低誤報率和漏報率,并且不影響目標數據(Normal、Dos、Probe、R2L、U2R)中其他子類的分布結構。

4 SOM及其改進

SOM算法[15]是無監督的學習模式,是聚類算法的一種。SOM算法模仿人腦神經元的相關特性,其訓練過程實際上也是學習新知識存儲新知識的過程,將學習到的新知識以權值的形式存儲到神經元中[13],通過自身的訓練完成對輸入數據的自動聚類。SOM結構包括輸入層和輸出層兩層拓撲結構,輸出層也叫做競爭層,輸入層節點數目同輸入向量的維數相同,輸出層的每個節點都是一個含有同輸入層節點個數相同位數的向量,SOM網絡結構中是全面連接的每個輸入層的節點都和輸入層的節點相連,構成錯綜復雜的網絡結構。SOM把高維空間的輸入節點映射到低維的神經元網格上,并且保持原來的拓撲次序。

4.1 AMSOM初始化

4.1.1 網格結構與大小

AMSOM算法的第一步是設定初始網格結構大小。根據文獻[16],神經元的數量為效果最佳,其中N是數據集的大小。不需要精確地確定神經元的數量,神經元的數量將會在訓練過程中調整。根據預設的拓撲結構(矩形或者六邊形),神經元之間有相應的連接。

4.1.2 向量、矩陣和參數的初始化

(1)權重向量:和SOM同樣的隨機初始化。

(2)神經元位置(位置向量ri):根據輸出層的結構(大部分是二維),它表示的是神經元位置的向量。初始位置向量等于網格中神經元的位置。

(3)在初始化之后的網格中連接的神經元會在一段時間后刪除(增加),需要跟蹤每個神經元的鄰域神經元。為了跟蹤這些變化,創建矩陣E(edge)和矩陣A(age)(兩者大小都為M×M,表示神經元連接情況(1代表連接,0代表沒有連接)和神經元p和q連接的邊當前已經存在的迭代數。當為0時,意味著神經元和在當前迭代中建立連接,是當前最優的結構。

4.2 AMSOM的訓練

4.2.1 權值向量和位置的更新

在t+1次迭代后神經元更新后的權重向量用wi(t+1)表示,如下式所示:

其中,nj(t)表示的是神經元j的連接的數量;hij(t)表示鄰域函數;表示分配給神經元j的所有x的特征向量的平均值;ri、rj是神經元i和j的位置向量;σ(t)是適應系數,隨著訓練時間減小。

在此基礎上,每一次迭代,神經元的權值向量更新后,需要計算神經元向量之間的距離,可以作為更新神經元位置的度量。通過以下公式計算:

其中,α(t)表示在迭代數為t時的學習速率和神經元的位置的移動速度;δij(t)為鄰域函數,表示了神經元i和神經元j的距離;γ是一個控制鄰域收縮的參數。

需要注意的是δij和hij兩者都是鄰域函數,計算兩個神經元的距離,不過前者計算的是輸入層的距離,而后者計算的是輸出層的距離。

4.2.2 增加和刪除神經元

傳統的SOM網絡結構是固定的,不能動態改變,在學習過程中把高維數據映射至低維空間有時候會產生畸形變化,使得輸出結果聚類分布過于分散或密集,導致SOM神經網絡的輸出結果難以識別,改變網絡結構的自組織映射網絡在訓練過程中動態改變網絡結構以緩解畸形變化。

在權值向量更新過程中,對于輸出向量每次迭代后的最優匹配Na和次優匹配Nb已經計算得到。如果Na和Nb互相連接,它們邊的已存在迭代數A(p,q)就會被重置為零(為當前最優結構)。每一次迭代結束時,如果神經元i和神經元j的邊的已存在迭代數A(p,q)>agemax,這條邊E(p,q)就會被移除,其過程如圖3所示。當agemax設置為30時,神經元4與神經元3斷開,神經元1與神經元2斷開(矩陣A和E相應更新)。神經元4沒有連接,從網絡上移除。agemax可以設置得很大(以避免過多的邊斷開),也可以設置很?。ū苊庑纬赏耆B接的網格)。如果神經元和網絡斷開,則把該點從網絡刪除,目的是移除不再有用的邊,被訓練過程中更年輕的邊所取代。這有兩個優點:(1)自組織化和競爭學習一段時間后將除去冗余的神經元,緩解網絡的畸形問題;(2)調整神經元之間的聯系,從而增強數據集的拓撲性。

圖3 AMSOM移除神經元的過程

訓練到一定程度之后,需要增加新的神經元以調整神經元網結構。計算出誤差最大的神經元,如果一個神經元的誤差大于增長閾值(Growing Threshold,GT)[17],它將添加一個新的神經元。其中GT=-ln(d)×ln(SF)。將量化誤差最大的神經元分裂成兩個新的神經元。兩個新神經元都與原神經元保持連接(它們之間也相互連接),這樣可以保持父神經元與子神經元之間的聯系。神經元中誤差最大的神經元為Nu,其鄰域神經元為Nv。Nu分裂得到的兩個新神經元N1和N2,其中一個神經元保持Nu的位置,另一個神經元的位置為Nu和Nv的中間,過程如圖4所示。

圖4 AMSOM增加神經元的過程

4.2.3 結束訓練

AMSOM網絡增長的控制是基于平均量化誤差(mqe),定義如下:

如果兩個連續時間之間的平均量化誤差mqe(t)-mqe(t-1)<ε1,則訓練提前終止。其中ε1(如1E-06是一個很小的值。AMSOM的訓練過程如圖5所示。

5 實驗與分析

5.1 實驗數據

NSL-KDD包含42個字段,其中41個是網絡數據包特征屬性字段,最后一個是數據的標簽。為了避免字符數據不能直接計算距離以及過大過小數據直接應用,影響平均值計算和距離計算效果等問題,采用one hot編碼映射的方法,如數據的第二個特征是協議類型protocol_type有三種取值:tcp、udp、icmp,用計算機能識別的二進制編碼進行表示,其中tcp為[1,0,0],udp為[0,1,0],icmp為[0,0,1]。同理屬性特征service的70種符號取值和flag的11種符號取值可建立符號值與相應數值的映射關系。經過數值化原來的41個特征變成了122個特征。

圖5 AMSOM算法框架

對上一步得到的數據進行標準化和歸一化處理。原始數據的取值范圍可能差距過大,導致的“大數吃小數”或者數據處理溢出以及權重不一致等問題。歸一化處理消除度量單位對模型訓練的影響,使訓練結果更依賴于數據本身特征,從而提高聚類模型參數優化與分類預測的準確性。

NSL-KDD包含125 973訓練樣本和22 544測試樣本,數據集包含正常和異常兩大類數據。根據攻擊方式的不同將數據細分為23類,這23類又可以進一步歸納為5類,其比例如表1所示,讀取記錄的類標識0表示Normal(正常的、沒有攻擊性)、1表示Dos(拒絕服務攻擊)、2表示Probe(端口被監視或掃描攻擊)、3表示R2L(來自遠程主機的未授權訪問)、4表示U2R(未授權的本地超級用戶特權訪問)。

表1 實驗數據的類別、數量

5.2 評估指標

實驗采用精確率和召回率作為評估指標,計算公式如下:

表示被預測為正例的示例中實際為正例的比例。

表示覆蓋面的度量,度量有多少個正例被分為正例。

表示精確率和召回率的調和均值。

其中,TP(True Positive,真正):將正類預測為正類數,TN(True Negative,真負):將負類預測為負類數,FP(False Positive,假正):將負類預測為正類數,FN(False Negative,假負):將正類預測為負類。

5.3 實驗結果和分析

實驗分別采用SOM及其改進的算法共做了兩組實驗。cPCA的對比參數不是選擇單個值,而是自動選擇一系列不同的值,使得對應于α的每個值的子空間彼此遠離,自動選出選擇效果最好的α值,對比參數為1.5。對于控制生長閾值(GT)的擴展系數(SF),最初應使用低數值(在0~0.3之間),這將生成一個突顯重要聚類的映射網絡,在初始聚類中根據需要分析的集群以決定是否有必要對研究數據進一步擴大,針對非均衡的數據,實驗選擇的數值為0.5。系數γ在位置向量更新期間有效地控制鄰域擴散和收縮,并且通過這種方式創建更加獨立或有更多連接的集群。小數值的γ(1~10)在NSL-KDD數據集的實驗結果較好。系數γ越大越容易維護原數據的拓撲結構,但是高數值的γ會增加無法成為最優匹配的神經元數量,產生更大的量化誤差。agemax參數設置為30,因為30個周期足夠來觀察當前結構是否良好,是否需要調整(添加/刪除神經元)。

表2和表3展示了SOM、AMSOM、PCA-AMSOM和cPCA-AMSOM在NSL-KDD數據集上的性能表現。F1值是精確率和召回率的調和均值,現在主要針對F1值對實驗結果進行分析。從表2來看,AMSOM相對于SOM來說,各方面的檢測性能都有不小的提升,其中的少數類R2L和U2R分別提高了32%和25%,在表3中,cPCA-AMSOM的檢測效果明顯好于PCA-AMSOM,從這里看出對比主成分分析法優于傳統的主成分分析法。值得注意的是,表2的AMSOM和表3的PCA-AMSOM的實驗結果,使用傳統的主成分分析過程中丟失不少重要的信息,導致各類的檢測性能下降,特別是對于少數類。

表2 SOM和AMSOM的實驗結果 %

表3 PCA-AMSOM和cPCA-AMSOM的實驗結果%

表4展示了文獻[18]、文獻[19]提出的模型與cPCAAMSOM的比較,使用的都是NSL-KDD數據集并經過相同數據預處理步驟。從對比結果看出,cPCA-AMSOM的性能要優于其他兩種使用機器學習的模型。并且根據F1值的結果,cPCA-AMSOM在處理非均衡的數據的能力優于其他兩者。

表4 與常用機器學習方法結果對比 %

6 結束語

在分析入侵檢測分類模型研究基礎上,設計了對比主成分分析結合可改變網絡結構的自組織映射的分類模型,cPCA通過設置多組數據組提高少數類攻擊相對于多數類攻擊的差異,AMSOM算法在提高整體分類的性能。實驗結果表明,在訓練樣本分布均衡的情況下,改進的自組織映射算法比其他分類模型的精確率、召回率等高。結合cPCA和AMSOM算法實現了高分類準確率,適用于正常型數據和攻擊型數據分布不均勻的入侵檢測。

猜你喜歡
神經元聚類向量
向量的分解
聚焦“向量與三角”創新題
基于K-means聚類的車-地無線通信場強研究
躍動的神經元——波蘭Brain Embassy聯合辦公
基于高斯混合聚類的陣列干涉SAR三維成像
向量垂直在解析幾何中的應用
基于Spark平臺的K-means聚類算法改進及并行化實現
基于改進的遺傳算法的模糊聚類算法
向量五種“變身” 玩轉圓錐曲線
ERK1/2介導姜黃素抑制STS誘導神經元毒性損傷的作用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合