?

基于GAN-PSO-ELM的網絡入侵檢測方法

2020-06-18 05:48楊彥榮宋榮杰周兆永
計算機工程與應用 2020年12期
關鍵詞:準確率樣本優化

楊彥榮,宋榮杰,周兆永

1.西北農林科技大學 網絡與教育技術中心,陜西 楊凌712100

2.西北農林科技大學 信息工程學院,陜西 楊凌712100

1 引言

近年來各種網絡攻擊、非法入侵的情況屢見不鮮,并且手段也越來越復雜,網絡信息安全正面臨著海量數據、復雜入侵模式等完全問題,如何有效、快速地識別各種網絡攻擊已成為網絡信息安全中一個亟待解決的問題[1-2]。網絡入侵檢測采用主動防范方式進行安全檢測,彌補了被動式方法的不足,能夠主動檢測識別出正常網絡流量中包含的異常攻擊信息,已成為當前網絡安全技術研究的熱點[3]。

隨著機器學習方法的發展,國內外學者對基于機器學習的入侵檢測方法進行了大量研究。文獻[4]提出一種布谷鳥算法優化支持向量機的入侵檢測方法,此方法在處理小樣本數據集時檢測準確率較高,但處理海量數據集時性能較差,無法滿足檢測實時性要求。文獻[5]提出一種基于聚類和遺傳算法的復合入侵檢測方法,該方法采用無監督算法,沒有利用樣本標簽信息,因此檢測性能容易達到上限。文獻[6]設計了一種KNN離群點檢測和隨機森林相結合的算法,采用KNN離群點檢測重構訓練集,然后使用多層次的隨機森林進行分類,提高了檢測準確率,降低了誤報率。文獻[7]利用和聲搜索算法優化BP神經網絡,并將其應用到網絡入侵檢測中,通過實驗驗證了該方法在入侵檢測領域的優良性,但是處理海量數據時魯棒性較低,且收斂速度低,訓練時間過長。文獻[8]提出一種基于多尺度卷積神經網絡的入侵檢測方法,利用不同尺度卷積核提取數據最優特征,該方法不僅收斂速度快,而且能夠提高檢測準確率。文獻[9]利用深度自編碼網絡提取原始網絡數據,獲得新的低維特征數據集,然后利用BP算法進行分類識別,有效提高了檢測準確率,但是檢測時間過長,檢測實時性差。

盡管上述基于機器學習的入侵檢測方法取得不錯的效果,但是未考慮入侵檢測數據的不平衡問題,對于整個網絡訪問行為而言,正常行為的數量要遠遠大于入侵行為的數量,入侵行為的數量很小,正常行為與入侵行為之間存在類別分布不均衡,并且入侵攻擊類別之間也存在類別分布不均衡。直接將機器學習方法應用于非平衡的入侵檢測數據時,容易導致多數類的分類精度較高而少數類的分類精度較低。

為解決機器學習中數據不平衡問題,一種思路是從算法層面入手,根據算法在解決不平衡問題時的缺陷,結合不平衡數據的特點,有針對性地對算法進行改進,提高算法處理不平衡分類問題的能力[10]。另一種是從數據層面入手,通過對少數類的上采樣和對多數類的下采樣來改變樣本分布,降低數據的不平衡程度[11]。由于基于數據層面的方法對分類算法的普適性以及處理方法簡單直觀,在解決不平衡問題中得到廣泛采用,但是在實際應用中過采樣只是基于少數樣本的信息,缺乏數據多樣性,易導致訓練過擬合;欠采樣會造成大量樣本數據的信息丟失,并且解決不平衡度的能力有限[12]。

生成式對抗網絡(Generative Adversarial Nets,GAN)作為一種新的生成式模型[13],能夠通過學習給定樣本數據的概率分布,從而生成類似真實樣本的偽造樣本。與傳統的生成模型不同,GAN不再需要一個假設的真實樣本分布,而是直接比較生成樣本和真實樣本的分布來訓練生成網絡,可以生成無限逼近真實樣本的偽造樣本,從而提升生成樣本的質量,避免了由于訓練樣本不足而導致的過擬合問題。因此GAN自提出以來被應用于多個領域的生成數據研究中[14-16],均取得較好的效果,但目前尚未運用到網絡入侵檢測數據的不平衡問題中。極限學習機(Extreme Learning Machine,ELM)是一種單隱層前饋神經網絡[17],只需要設定隱含層的神經元個數,不需要迭代,與傳統機器學習算法支持向量機和神經網絡相比,具有學習速度快、泛化性能好等優點,近年來,被廣泛應用到網絡入侵檢測研究中。劉金平等人[18]提出一種基于核極限學習機選擇性集成的網絡入侵檢測方法,實驗表明該方法確保了高檢測率的同時降低了模型訓練時間。顧兆軍等人[19]將ELM與K最近鄰算法相結合,提出基于ELM-KNN算法的入侵檢測模型,該模型能防止過擬合現象,并且能提高網絡侵檢測速度。然而由于ELM隨機給定隱含層權重與偏置,容易導致輸出結果不穩定,因此需要參數優化。粒子群優化算法(Particle Swarm Optimiztion,PSO)是一種全局迭代優化算法[20],具有運算速度快、容易實現等優點,在參數優化中得到廣泛應用,并取得較好的效果?;赑SO算法的ELM已應用于圖像分類、故障預測等領域[21],然而將其應用到網絡入侵檢測中的研究較少。

綜上分析,為解決入侵檢測數據不平衡而導致少數類檢測率低的問題,本文提出一種GAN-PSO-ELM的入侵檢測方法。該方法通過整體類擴充的方式,利用GAN對數據集進行少數類樣本進行擴充,降低入侵檢測數據的不平衡程度;然后在新的數據集上訓練ELM,同時利用PSO優化ELM的隱含層權重與偏置,并建立入侵檢測模型。實驗結果表明,本文方法在保證較高整體檢測準確率和檢測效率的同時,能夠提高少數類檢測準確率。

2 相關工作

2.1 生成式對抗網絡

生成對抗網絡GAN是Goodfellow等在2014年提出的一種新型生成模型,其在結構上受博弈論中的二人零和博弈的啟發,一方的收益是另一方的損失,博弈雙方的收益和損失總和永遠為零。GAN由生成模型(Generative model,G)和判別模型(Discriminative model,D)組成,并通過G和D交替學習模擬現實生成樣本。生成模型G可以看作是一個能捕捉給定樣本的潛在分布,同時模仿并偽造樣本的生成器,它通過輸入一個隨機向量z,生成與真實樣本具有一致的潛在分布的新樣本。判別模型D可以看作是一個二分類器,判別輸入數據是否為真實樣本。

GAN的基本結構如圖1所示。GAN的訓練和優化過程可看成一個動態的“二元極小極大”博弈過程,G和D在對抗訓練過程中不斷迭代優化,兩個模型的能力越來越強,當生成模型生成的樣本達到以假亂真的地步,同時判別模型能夠區分真實樣本和生成樣本時,最終達到穩態,此時G能夠生成接近真實樣本分布的偽造樣本。其核心思想可用數學公式表示如下:

式中,V(D,G)為代價函數;Pdata表示真實樣本分布;Pz表示生成樣本分布;G(z)表示生成模型G依據輸入z生成的樣本,其中z為隨機向量;D(x)表示x為真實樣本的概率;D(x)和G(z)交替地最小化和最大化V(D,G),也就是使D(x)無限接近于1,D(G(z))無限接近于0,最終求得近似最優解的生成式模型min G。

圖1 生成對抗網絡框架圖

2.2 極限學習機

極限學習機ELM是一種前饋神經網絡,網絡結構通常分為3層,分別為輸入層、隱含層和輸出層。在訓練之前隨機給定隱含層權重以及偏置,并且在訓練過程中保持不變,只需確定激活函數及隱含層神經元數量,即可計算出輸出層權值,從而通過一次訓練便可得到唯一的最優值。對于輸入的N個任意的樣本(xi,ti),其中:

那么具有L個隱含層神經元的ELM可以表示為:

式(3)中,αi表示第i個神經元輸入層和隱含層之間的輸入權重;βi表示輸出權重,αi和βi在訓練之前隨機給定;g為激活函數;bi為第i個隱含層神經元的偏置。

式(3)可用矩陣形式表示為:

其中:

式(4)中H為隱含層節點的輸出矩陣;β為輸出權重矩陣;T為期望輸出矩陣。

極限學習機ELM算法是一種求解SLFN的學習算法,文獻[17]已證明,對于任意給定N個訓練樣本,當激活函數g無限可微時,只要N大于隱含層神經元個數L,SLFN就能在隨機給定隱含層權重以及偏置情況下都可零誤差逼近訓練樣本。

ELM的訓練過程可等效為求解方程Hβ=T的最小二乘解:

式(8)中,H+為H的廣義逆,可用正交法計算求得,所求解最小且唯一。

2.3 粒子群算法

粒子群優化算法PSO是受鳥群和魚群捕食行為啟發而產出的一種全局迭代優化算法。PSO算法具有結構簡單、收斂速度快、魯棒性強等優點,在參數優化領域中得到普遍應用,并取得良好的效果。

粒子群優化算法實現過程如下:在一個由m個粒子組成的群里,每個i粒子可以被看作是在N維搜索空間中的一個搜索個體,并都有對應的位置xi=(xi1,xi2,…,xid)和速度vi=(vi1,vi2,…,vid)。適應度函數確定空間中每一個粒子適應度值,粒子運動的方向和距離由粒子的運動速度決定。在優化迭代中,每個粒子通過自身找到個體最優和整體最優不斷更新自身的速度和位置,并將最優位置記錄下來,最終通過不斷迭代學習最優解。粒子的速度和位置按公式(9)和(10)更新。

式中,ω表示慣性權重;r1和r2為隨機數,取值范圍[0,1];pBesti表示粒子i搜索過的最優位置;gBesti表示整個粒子群搜索到的最優位置;c1和c2分別表示粒子個體和粒子群體的加速系數,為非負常數,在標準PSO算法[22]中通常將c1和c2統一設置為2。

3 基于GAN_PSO_ELM的入侵檢測

GAN是一種優秀的生成模型,通過對抗的方式學習真實樣本分布的生成式模型,不需要預先建模,能生成高質量的新樣本。由于入侵檢測數據人工標注工作巨大,并且網絡訪問數據中入侵行為數據的數量極少,數據類別分布不均衡,因此將GAN應用到入侵檢測訓練樣本生成任務中,使用GAN增加訓練樣本數量,降低不平衡訓練樣本對檢測準確率的影響。

ELM是一個單隱含層的前饋神經網絡,具有訓練速度快,泛化性好,分類精度高等優點。然而由于在訓練之前隨機給定隱含層權重以及偏置,參數隨機給定會導致部分參數未達到最優狀態,進而容易導致輸出結果不穩定。而PSO是一種全局優化算法,可以對ELM隨機給定的參數隨機進行優化,尋找ELM權值和偏差量的最優值。

針對這三座山,一是要激活民營企業內在潛力,融化市場的“冰山”。要提升產品核心競爭力,打造區域性品牌,并借助電子商務平臺,拓展優勢產品的銷售半徑;鼓勵企業“走出去”,參與發展中國家的資源開發,依托本地優勢產業基礎,與有關國家合作建立境外生產加工基地。二是要健全融資信用保障體系,削低融資的“高山”。要通過健全民營企業融資信用保障體系,解決銀行不敢或不愿貸款給中小民營企業的問題。三是要以優化創新創業條件來跨越轉型的“火山”。

考慮到入侵檢測數據的海量、不平衡等特性,鑒于生成對抗網絡(GAN)、單隱層前饋神經網絡ELM、粒子群優化算法(PSO)的各種優良性能,將其結合起來,充分利用它們各自的優點,克服其缺點,構建基于CANPSO-ELM入侵數據檢測分類方法。整體框架如圖2所示。

圖2 基于GAN-ELM-PSO的入侵檢測框架

其檢測流程為:

(1)利用網絡監聽捕獲模塊采集網絡訪問數據,對采集到的歷史訪問數據進行特征映射、數字化、歸一化等預處理,再對預處理后的數據進行人工標注,形成訓練數據集。

(2)訓練數據集是從網絡中捕捉到的行為數據,其中包括正常行為數據和入侵行為數據,然而一般情況下入侵行為數據的數量遠遠小于正常行為數據的,并且入侵行為數據也存在類別不平衡。因而通過生成式對抗網絡(GAN)對訓練數據集中少數類進行樣本數據擴充,使訓練數據平衡。

(3)在擴充后的訓練數據集上訓練ELM網絡,同時利用PSO優化ELM的輸入權重與隱含層偏置,優化流程如圖3所示,最后可得到最優PSO-ELM入侵檢測模型。

圖3 PSO算法優化ELM參數流程

(4)在線檢測時,對采集到的實時網絡數據進行數據預處理,并形成測試數據,然后利用PSO-ELM模型對測試數據集進行入侵檢測分類,從而實時實現的網絡入侵檢測。

4 實驗與分析

實驗環境:使用的軟件為Pycharm,Python 3.6,Tensorflow 1.1.0版本;操作系統為64位Ubuntu16.04,CPU為Intel core i5-3230 2.60 GHz,內存為16 GB DDR。

4.1 實驗數據集及數據預處理

KDD CUP99數據集被廣泛地應用于入侵檢測仿真實驗中,NSL-KDD是其改進版,剔除了KDD CUP99中大量的冗余數據,并調整了訓練集和測試集,可以更好地適用于網絡檢測實驗。NSL-KDD數據集包含用于的125 973個訓練數據和11 850個測試數據,其攻擊行為數據包括拒絕服務攻擊(Dos)、端口掃描與探測(Probe)、對本地超級用戶的非法訪問(U2R)和遠程機器的非法訪問(R2L)四種類型,正常的訪問數據為Normal。具體實驗數據的類型分布情況如表1所示。

表1 實驗數據的類型分布情況表

NSL-KDD每一條記錄包括一個類別標識和41維特征,其中特征區間1~9為TCP連接基本特征,10~23為TCP連接的內容特征,24~31為時間的網絡流量統計特征,32~41為主機的網絡流量統計特征,類別標識用于表明該條記錄是攻擊行為還是正常訪問。每一條記錄的特征值有字符型、數值型,需要標準化預處理,預處理過程如下。

(1)字符型特征數值化。

對字符型屬性進行特征映射,將其轉換成二進制特征。例如協議類型TCP、UDP、ICMP,使用二進制數字將這三種協議類型分別表示為[1,0,0]、[0,1,0]、[0,0,1]。通過特征映射,最終41維的特征轉換為122維特征。

(2)歸一化處理。

為了避免各個特征屬性的量綱對檢測結果造成影響,需要對特征映射后的數據做均值化處理,將數據歸一化到[0,1]范圍,轉化公式如下:

4.2 訓練數據擴充

生成對抗網絡GAN廣泛地應用于數據生成任務中,利用GAN生成數據的方式大致分為兩種方法:一種方法是類別內擴充[23],在需要生成數據的類別中進行GAN訓練,并生成相應類別的數據;另外一種方法是整體類擴充[24],在整體類別中進行GAN訓練并生成數據,再對生成的數據進行類別識別。在本文實驗中采用后一種方式進行數據生成,具體步驟為:

(1)使用訓練數據對ELM進行訓練,并使用PSO優化,生成一個PSO-ELM分類器。

(2)依據GAN模型輸入格式要求將122維的訓練數據維度重組為12×12矩陣向量,因訓練數據維度數不夠,需要在矩陣的末位進行補0。

(3)根據設定的迭代次數訓練GAN,同時生成樣本,將生成樣本輸入到訓練好的PSO-ELM進行類別檢測,依據檢測的類別選取擴充樣本,在本實驗中,主要針對樣本數量較少的U2R和R2L兩類進行樣本擴充。

(4)將擴充的樣本維度重組為144維特征向量,選取前面122維作為擴充樣本的特征,并將擴充樣本加入到原始訓練數據集中形成新的訓練數據集。

4.3 評價指標

本文采用準確率AC和誤報率FA作為入侵檢測的評價指標,AC和FA的計算方法為:

4.4 實驗參數設置

本文采用標準PSO算法,在參考已有研究的基礎上[25-26],選擇迭代次數為80,粒子群數量為60;同時為了確定ELM網絡隱含層節點數,ELM選擇不同的激活函數,并逐漸增加隱含層節點數進行實驗,實驗結果如圖4所示。當隱含層節點數大于40時,入侵檢測準確率趨于穩定,并且當激活函數為Sigmoid時,能獲得相對最優的入侵檢測準確率,故本文實驗中隱含層節點數設為40,選擇Sigmoid為激活函數。

圖4 不同隱含層節點數和激活函數的檢測準確率

實驗過程中,本文分別選用迭代次數為100、300、500、700和900進行GAN訓練樣本擴充實驗,實驗結果如圖5所示,在迭代次數500以后的檢測準確率趨于穩定,隨著迭代次數的增加檢測準確率無明顯提高。綜合考慮時間效率和實驗結果,在后續的實驗中GAN迭代次數選擇500次。

圖5 不同迭代次數的檢測準確率

4.5 結果分析

為分析訓練集擴充大小對檢測準確率的影響,利用GAN分別對訓練數據集中U2R和R2L兩個少數類別進行樣本擴充,擴充比例分別選擇原樣本數的20%、40%、60%、80%、100%、120%以及0%進行7組對比實驗。表2為不同擴充比例的測試檢測準確率。

從表2可知,隨著擴充比例的提高GAN-PSO-ELM的準確率先提升再降低,擴充比例為80%時分類結果最佳,準確率達到96.56%,相比0%也就是原訓練集總體準確率提高3%以上,因此后續實驗訓練集擴充比例選擇80%。

為驗證GAN-PSO-ELM對入侵檢測識別的效果,選用相同的訓練集和測試集,分別采用SVM、ELM、PSO-ELM進行對比實驗,得到不同方法的檢測誤報率和檢測準確率(表3)。

表2 不同擴充比例的AC和FA

表3 不同方法的檢測誤報率和檢測準確率 %

由表3的結果可知,與SVM、ELM、PSO-ELM相比,GAN-PSO-ELM整體準確率比平均提高了3.74%,誤報率平均降低了2.81%;尤其是在少數類R2L和U2R上,GAN-PSO-ELM準確率分別為82.28%和80.53%,相比其他三種檢測方法的準確率平均提升了28.13%和16.84%,同時檢測誤報率平均分別降低了4.33和6.64%。ELM和PSO-ELM能很好地識別Normal、Dos和Probe,但是對小類別攻擊R2L和U2R的檢測率均比較低,GAN-PSO-ELM具有較高的整體類別檢測率,同時能很好地檢測出R2L和U2R。

網絡異常行為的實時性檢測是入侵檢測方法的一個重要的效率指標,為了驗證GAN-PSO-ELM在入侵檢測中的檢測效率,在不同規模的測試集上對GAN-PSOELM、SVM和ELM進行實驗,測試所需時間如圖6所示。

圖6 不同規模測試集上的檢測時間比較

由圖6可知,在不同規模的測試集上,GAN-PSOELM的檢測效率都要高于SVM,并且隨著測試集數據的增大檢測花費的時間差也變大;與ELM相比,GANPSO-ELM運行時間要稍微高一點,但是總體相差時間有限。

綜上分析,從少數類攻擊檢出率、整體檢測準確率以及檢測時間方面考慮,在處理非平衡的海量入侵檢測數據時,GAN-PSO-ELM具有較高的整體檢測準確率的同時,也能很好地檢測出少數類攻擊R2L和U2R,并且整體檢測的效率也有一定優勢。

5 結論

本文提出融合生成式對抗神經網絡、粒子群算法和極限學習機的入侵檢測方法(GAN-PSO-ELM)。針對入侵檢測中少數類檢測率低以及入侵檢測的實時性要求,采用生成式對抗神經網絡對少數類樣本數據進行擴充,降低數據的不平衡程度;在擴充后的數據上進行ELM訓練,同時利用PSO對ELM的參數進行優化,并建立PSO-ELM入侵分類模型。將SVM、ELM、PSO-ELM和GAN-PSO-ELM方法在NSL-KDD數據集上進行仿真對比實驗,結果表明GAN-PSO-ELM能有效提高少數類樣本檢測準確率,同時具有較高的整體檢測準確率和檢測效率。下一步工作的重點在不同數據集上驗證GAN-PSO-ELM方法的有效性,并進一步探索改進方法使其應用于實時網絡檢測中。

猜你喜歡
準確率樣本優化
超限高層建筑結構設計與優化思考
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
一道優化題的幾何解法
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
用樣本估計總體復習點撥
推動醫改的“直銷樣本”
高速公路車牌識別標識站準確率驗證法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合