黃海彬,萬 良,褚 堃
(1.貴州大學計算機科學與技術學院;2.貴州大學計算機軟件與理論研究所,貴州貴陽 550025)
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡安全問題日益凸顯,網(wǎng)絡數(shù)據(jù)遭受各種攻擊。如何保護信息完整性,降低網(wǎng)絡攻擊對國家、企業(yè)和個人造成的損失,成為當下亟待解決的問題。
入侵檢測系統(tǒng)(Intrusion Detection System,IDS)是可以識別不安全事件并發(fā)出警報的網(wǎng)絡或主機系統(tǒng),一般IDS可以歸類為特征檢測[1]和異常檢測[2]。特征檢測能夠基于這些攻擊的特征檢測攻擊,但是如果沒有手動規(guī)則,便無法識別新型攻擊,而新型攻擊識別問題已成為該領域的研究重點。近年來,人工智能發(fā)展迅速,并在多個領域取得良好效果。神經(jīng)網(wǎng)絡憑借其強大的特征提取能力,在處理高維復雜入侵數(shù)據(jù)方面具有優(yōu)勢,許多國內(nèi)外研究者嘗試使用深度學習技術進行特征提取。目前,已有許多基于機器學習方法[3]和深度學習方法[4-6]完成的入侵檢測系統(tǒng)。
當前,網(wǎng)絡數(shù)據(jù)呈現(xiàn)出更為龐大、復雜和多維的特性[7],傳統(tǒng)的IDS 方法已逐漸失效。鑒于此,本文提出一種使用Transformer 的入侵檢測方法,完全拋棄卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡結構(Recurrent Neural Network,RNN),使用注意力機制完成對入侵數(shù)據(jù)的檢測。為驗證該模型的性能,使用NSL-KDD數(shù)據(jù)集進行實驗驗證,其結果表明,本文方法具有良好的檢測性能。
在圖像處理、自然語言處理等領域,深度學習取得了較好成果,已成為國內(nèi)外研究者重點關注的熱門話題,各領域的研究者都嘗試將深度學習技術或思想應用于自己的研究領域,并取得了一定成果。
Yu 等[8]提出帶有注意力機制的BiLSTM(Bidirectional Long Short-Term Memory)入侵檢測模型。該模型通過BiLSTM 將http 流量建模為自然語言序列,并利用注意力機制捕獲BiLSTM 輸出特征中的關鍵信息以完成http 流量的異常檢測,進一步提高了檢測性能。Mirsky 等[9]提出一種輕量型的網(wǎng)絡入侵檢測系統(tǒng)Kitsune。Kitsune 將實例進行劃分,對每一個劃分采用一個自動編碼器AE 重組網(wǎng)絡流量,從而逐漸提高了其檢測性能。實驗結果表明,Kitsune 可以檢測各種攻擊,其性能較好,但該方法破壞了原始特征間的特征關系。Tan 等[10]提出一種基于注意力機制的實時入侵檢測方法。該方法對輸入進行了特征編碼和位置編碼,在保留原有特征的同時增加了特征間的位置關系,并利用注意力機制完成對重要特征的關注,通過實驗驗證該方法實時性較好,但該方法未考慮多層注意力機制可能導致梯度消失或梯度爆炸的情況。Ahsan 等[11]提出一種使用CNN 和LSTM 的入侵檢測方法,該方法利用CNN 進行空間特征提取,并使用LSTM 挖掘特征間的時序關系。從NSL-KDD 數(shù)據(jù)集[12]中選取10%的數(shù)據(jù)作為訓練集,選取5 000 個樣本作為測試集,獲得了99.7%的準確率。該方法沒有考慮到特征前后間的相互影響且未使用完整測試集進行測試,但仍為入侵檢測提供了一種新的思路。Hsu等[13]同樣利用CNN 和LSTM 的方法在NSL-KDD 數(shù)據(jù)集上進行實驗,并利用測試集進行測試,結果顯示這種方法是有效的,但沒有考慮到經(jīng)過CNN 提取的特征破壞了原有特征間的時序關系。
Rodda 等[14]對幾種機器學習方法進行分析發(fā)現(xiàn),數(shù)據(jù)不平衡會導致對少數(shù)類檢測性能較差。Bedi 等[15]首次利用Siamese 神經(jīng)網(wǎng)絡(Siamese-NN)處理類不平衡問題,提出Siam-IDS 入侵檢測系統(tǒng)。該方法能夠在不使用任何數(shù)據(jù)級平衡技術的情況下提高對少數(shù)類的檢測性能。盡管Siam-IDS 達到了可接受的Recall 值,但Precision 值較低。Bedi 等[16]對Siam-IDS 入侵檢測方法進行改進,提出一種用于處理類不平衡的算法級方法,稱為改進的Siam-IDS(I-SiamIDS)。I-SiamIDS 利 用XGBoost、Siamess-NN 和DNN 組成一個分層結構以完成入侵檢測。Jiang 等[17]利用OOS 和SMOTE 進行數(shù)據(jù)集均衡,然后將數(shù)據(jù)進行預處理,轉換為矩陣,輸入到CNN-LSTM 提取特征,送入到分類模型,得到結果,但是利用OSS 容易丟失重要樣本。Huang等[18]使用生成對抗網(wǎng)絡GAN(Generative Adversarial Network,GAN,)生成新的特征向量以解決數(shù)據(jù)不平衡問題,但樣本數(shù)量太小,所訓練出來的GAN 所生成的數(shù)據(jù)效果較差,對模型檢測能力提升有非常有限。Liu 等[19]提出一種將數(shù)據(jù)集劃分為困難集和簡單集的類不平衡解決算法DSSTE。該方法首先使用編輯的最近鄰(ENN)算法將不平衡的訓練集劃分為困難集和簡單集;然后,使用KMeans 算法壓縮困難集中的多數(shù)樣本,以減少多數(shù)樣本,并放大和縮小少數(shù)樣本在困難集中的連續(xù)屬性,合成新樣本以增加少數(shù)樣本數(shù);最后,將簡單集、困難集中的多數(shù)壓縮集和困難集中的少數(shù)組合在一起,以組成一個新的訓練集。但該方法僅處理困難集,忽略了因算法存在的問題,導致對分類具有重要作用的樣本被劃分到簡單集中,限制了模型檢測性能提升。Fu 等[20]利用自適應合成抽樣(Adaptive Synthetic Sampling Approach for Imbalanced Learning,ADASYN)生成少數(shù)類樣本以解決數(shù)據(jù)不平衡問題,該方法容易受到離群值的影響,少數(shù)類周圍的多數(shù)類樣本越多,生成的樣本越多,因而容易產(chǎn)生噪聲數(shù)據(jù),影響模型性能進一步提升。
綜上所述,針對當前基于深度學習方法的入侵檢測方法在不平衡數(shù)據(jù)集上檢測性能的不足,本文提出一種基于Transformer 的入侵檢測方法,以期為入侵檢測領域提供一種新的思路。
本文提出的基于Transformer 的入侵檢測模型總體架構如圖1所示。
從模型整體架構出發(fā),基于Transformer 的入侵檢測方法可分為4 個階段,分別為:數(shù)據(jù)預處理階段、數(shù)據(jù)均衡處理階段、Transformer 模型訓練階段和檢測階段。
從圖1可知,在訓練Transformer 時,需要根據(jù)當前訓練是否達到預定的損失值(loss value)或者迭代次數(shù)(epoch)決定模型什么時候結束,防止模型過度訓練,造成過擬合。檢測階段將預處理好的測試集作為Transformer 模型輸入,模型會根據(jù)每一個輸入樣本預測出其屬于某一類。通過對比模型的預測輸出和該樣本真實標簽,判斷模型檢測性能。
Fig.1 Transformer overall framework圖1 Transformer總體框架
在數(shù)據(jù)收集階段,一些不可控因素的存在可能導致所收集的數(shù)據(jù)存在著明顯錯誤,使得神經(jīng)網(wǎng)絡不能訓練,應對數(shù)據(jù)進行一遍清洗,排除例如缺失值、異常值等錯誤。在網(wǎng)絡入侵檢測數(shù)據(jù)集NSL-KDD 中,每一個樣本是一個1*43 維的向量,其中包含字符型特征,而神經(jīng)網(wǎng)絡無法處理字符型數(shù)據(jù),因而需要對其進行字符處理,本文采用數(shù)據(jù)映射方法,將字符型映射為數(shù)字型,例如對于protocol_type 的3種類型特征tcp、udp、icmp分別映射為0、1、2。
在利用深度學習方法進行分類的任務中,大多存在數(shù)據(jù)不平衡問題,導致深度學習方法檢測率較高,但是對于少數(shù)類的檢測性能較差。針對該問題,本文采用類平衡算法,將SMOTE 和GMM 結合,用于改善因類不均衡而導致的偏向性問題。將訓練集根據(jù)樣本數(shù)目劃分為少數(shù)類和多數(shù)類,針對少數(shù)類與多數(shù)類采用不同的處理方法。
2.2.1 SMOTE
SMOTE 方法是對少數(shù)類樣本進行合成,生成新樣本的一種簡單有效的技術,在入侵檢測領域被廣泛用于類不均衡處理。SMOTE 方法通過計算樣本之間的歐氏距離,得到樣本的k個近鄰樣本,然后從其k個近鄰樣本中隨機選取若干樣本,按照式(1)得到新樣本。
其中,x new代表新生成的樣本,x表示當前樣本,表示x近鄰中的一個樣本。
2.2.2 高斯混合模型
高斯混合模型(GMM)是由多個高斯分布函數(shù)的線性組合而成,理論上高斯混合模型可以擬合出任意類型的分布,通常用于解決同一數(shù)據(jù)集中包含多個不同分布的情況[21]。假設所有樣本都來自于多個不同參數(shù)的高斯分布,并且屬于同一分布的樣本被劃分到同一個簇中,GMM 根據(jù)式(2)返回樣本屬于不同簇的概率。
其中,μk代表數(shù)據(jù)的均值(期望),σk表示數(shù)據(jù)的標準差。
2.2.3 歸一化
分析數(shù)據(jù)集中的數(shù)據(jù)可知,特征值之間存在著較大差異,例如duration 的取值在[0,58 829]區(qū)間,本文使用歸一化將特征映射到同一量級。對于每一個特征,運用最大最小歸一化將其映射到[0,1]區(qū)間,如式(4)所示。
其中,x表示某個樣本的一個特征值,xmin和xmin分別表示數(shù)據(jù)集中對應特征的最小值和最大值,xnor表示歸一化后的特征值。
類平衡算法如下:
Transformer 網(wǎng)絡結構模型如圖2 所示,其利用自注意力機制取代了RNN 模型,在處理序列數(shù)據(jù)方面表現(xiàn)更好。
Transformer 與多數(shù)RNN 模型結構相似,均利用編碼器進行特征提取并通過解碼器進行輸出。Transformer 中編碼器對輸入特征進行特征提取,挖掘特征間的關系,解碼器則利用該方式學習到的注意力規(guī)律強化不同的特征和目標分類之間的關聯(lián)關系。
Transformer 將預處理的樣本特征通過Embedding 編碼為特征向量,同時利用特殊的位置編碼方式得到樣本的位置特性表示,將編碼后的特征向量與特征的位置編碼相加構成編碼器的輸入。利用編碼器和解碼器協(xié)同訓練,建立編碼器輸入和解碼器輸出的注意力聯(lián)系,通過反向傳播機制不斷優(yōu)化模型參數(shù),提升模型檢測效果。
Fig.2 Transformer network structure圖2 Transformer網(wǎng)絡結構
2.3.1 位置編碼
Transformer 中由于使用注意力機制,不同于RNN 按照時序進行訓練,其可以并行訓練,因而無法像RNN 一樣挖掘特征間的位置關系。為了使其能夠挖掘位置關系,研究者在其中加入了位置編碼以解決此問題。特征的位置編碼如式(5)、式(6)所示。
其中,pos代表特征在特征樣本中所處的位置,d代表該特征編碼的維度,2i(小于或等于d)表示偶數(shù)的維度,2i+1(小于或等于d)表示期數(shù)維度。當特征在樣本中所處位置為偶數(shù)時,采用正弦函數(shù)進行處理,為奇數(shù)則采用余弦函數(shù)加以處理,通過此方法保證了位置編碼的唯一性。
2.3.2 Transformer編碼器
(1)多頭注意力機制。注意力機制在很久之前就被人提出,但在當時沒有得到過多的關注和進一步研究。文獻[22]在圖像分類中引入注意力機制,取得了良好結果,這使得注意力機制再一次出現(xiàn)在研究者面前,被各大領域的學者所關注并改進。常見的Attention 模型可分為兩種類型:Additive Attention[23](加法注意力機制)和Dot-Product Attention[24](點乘注意力機制)。
注意力機制是Transformer 的核心,從圖2 可知,在Transformer 的編、解碼器中均利用注意力機制。Transformer 對注意力機制進行改進,提出由多個自注意力機制協(xié)同工作的多頭注意力機制,將原來的自注意力進行劃分,使得其不同的頭可以關注不同的特征部分,學習到更全面的特征抽象。Transformer 中多頭自注意力結構如圖3所示。
Fig.3 Multi-head attention module圖3 多頭注意力模塊
從圖3 可以看出,多頭自注意力機制中包含多個縮放點乘注意力(Scaled Dot-Product Attention),每一個代表了一個頭,多頭的含義就是有多個縮放點乘注意力模塊,如圖3 中有h個頭。多頭自注意力機制有3 個輸入Q(查詢向量)、K(鍵向量)、V(值向量),需要通過計算得到一個帶有注意力的輸出向量。Q、K、V通過linear 轉換為符合縮放點乘注意力的輸入,通過縮放點乘注意力計算,將多個頭的輸出利用concat 操作整合到一塊,再通過linear 層完成輸出,得到帶有注意力的輸出。多頭的含義即將多個自注意力的輸出鏈接起來,公式如式(7)所示。
其中,hi表示第i個頭的輸出,W0為權重矩陣。
(2)縮放點乘注意力。多頭注意力機制的每一個頭通過縮放點乘注意力完成輸入特征注意力的計算??s放點乘注意力機制由維度為dv的V、dk的Q和K向量構成其輸入,圖4—圖5 展示了縮放點乘注意力計算過程,首先對輸入Q和K計算點積,再除以,最后將值向量V與通過Softmax 函數(shù)計算得到的注意值相乘從而得到帶有注意力的輸出。計算方式如式(8)所示。
其中,dk是K 的維度,除以是為了防止Q·KT相乘結果過大,起到穩(wěn)定梯度的作用,可以解決反向傳播梯度過小,難以訓練的問題。
(3)前饋神經(jīng)網(wǎng)絡。Transformer 的編碼器和解碼器中均有著前饋神經(jīng)網(wǎng)絡的存在,由兩層全連接網(wǎng)絡構成。第一層使用Relu 激活函數(shù),第二層不使用激活函數(shù),公式如式(9)所示。
其中,W1、W2為權重矩陣,b1、b2為偏置矩陣。
(4)殘差連接和歸一化處理。當構建一個深層次的神經(jīng)網(wǎng)絡模型時,模型的深度越深,可抽取的特征層次也就越豐富,可以獲取到更高層次的特征信息,效果也越好。但隨著網(wǎng)絡層數(shù)的增加,需要計算的參數(shù)也更多,計算也越復雜。在神經(jīng)網(wǎng)絡的反向傳播過程中,越靠近輸出層權重更新越快,相反權重更新越慢,這使得輸出層附近的權重在學習,而輸入層的權值越來越接近初始值,造成梯度消失問題。相反,如果初始值過大,則容易造成梯度爆炸。最近研究者發(fā)現(xiàn),神經(jīng)網(wǎng)絡退化才是深層網(wǎng)絡模型難以訓練的根本所在。從圖2 可以看出,在多頭注意力層和前饋神經(jīng)網(wǎng)絡層之后均有一個求和、歸一化層,其將多頭注意力層的輸出和輸入進行求和,然后作歸一化處理,這是殘差網(wǎng)絡的思想。殘差連接的引入極大改善了深度神經(jīng)網(wǎng)絡訓練,部分原因是可能避免陷入了深層神經(jīng)網(wǎng)絡損失函數(shù)地貌中固有的奇異點[25]。
2.3.3 Transformer解碼器
Transformer 是一個包含編碼、解碼過程的模型,解碼過程需要編碼的參與,在自然語言處理領域,編碼器的作用是生成一段描述。在入侵檢測領域,編碼器起到一個分類的作用,根據(jù)編碼的輸出和解碼器的輸入,建立兩者之間的聯(lián)系,即注意力,最后通過Softmax 完成分類工作。編碼器結構如圖2 所示。解碼器中的輸入是加了開始標識的分類標簽,例如normal、dos、probe。解碼器的第一步同樣執(zhí)行與編碼器一樣的操作,即將輸入編碼為向量,同時進行位置編碼。
解碼器中對編碼器的輸入首先經(jīng)過一個掩碼多頭注意力層,掩碼注意力層的注意力計算和編碼器中注意力一樣,只是多加了一個掩碼,利用其對某些值進行遮擋,讓這些值不起作用,例如,標簽的開始標志。Transformer 中涉及兩種掩碼,一種在編碼器中起作用,一種在解碼器中發(fā)揮效用。在編碼器中加掩碼是因為在編碼器輸入長度不一致時,在輸入后面填充指定值,例如填充0,從而使得輸入形狀一致,Transformer 能夠正常訓練,但是訓練過程中,這部分值不發(fā)揮作用,即這些值不計算與其他值的注意力,因此利用掩碼告訴計算機,這些值是填充的。由于Transformer 是并行訓練,在訓練一個值時,其已經(jīng)將所有值查看了一遍。訓練時,將標簽全部輸入進去,為了讓Transformer 在某一時刻t時,只能看到t時刻前的輸出,而不能看到t時刻之后的輸出,故加了掩碼,使得解碼器不能看到后面的輸出,在Transformer 通過設置一個下3 角矩陣加以實現(xiàn)。
本文采用在入侵檢測領域廣泛使用的NSL-KDD 數(shù)據(jù)集,該數(shù)據(jù)集是對KDD99 數(shù)據(jù)集的改進,刪除了原有KDD99 數(shù)據(jù)集中的冗余數(shù)據(jù),使數(shù)據(jù)集中的數(shù)據(jù)更加適合入侵檢測研究。NSL-KDD 數(shù)據(jù)集被劃分為訓練集KDDTrain+和測試集KDDTest+。NSL_KDD 數(shù)據(jù)集中包含了39 種攻擊類型和一種正常類型,其中,在訓練集中只包含了22 種攻擊類型和一種正常類型,在測試集中共有40 種類型,其中出現(xiàn)了訓練集中不曾參與訓練的17 種新的攻擊類型,這些不曾參與訓練的攻擊類型的存在,使得模型對他們的識別較為困難。本文將NSL_KDD 數(shù)據(jù)集中的39種攻擊類型劃分為Dos、Probe、R2L、U2R 這4 種,如表1所示。
Table 1 Attacks in the test set表1 測試集中的攻擊
但是,該數(shù)據(jù)集也存在著分類任務中普遍存在的問題,即數(shù)據(jù)不均衡問題,這將導致模型對少數(shù)類的分類準確率較低,降低了模型檢測性能。NSL-KDD 數(shù)據(jù)集中五分類數(shù)據(jù)分布如表2所示。
Table 2 Five-category data distribution of NSL-KDD dataset表2 NSL-KDD數(shù)據(jù)集五分類數(shù)據(jù)分布
從表3 可以看出,數(shù)據(jù)類型的分布極度不平衡,Normal類型數(shù)據(jù)占比高達53.45%,而U2L 占比卻只有0.04%,比率高達1 336∶1。這將導致模型訓練時更加傾向于Normal類型,從而限制了模型整體識別性能提升和對于少數(shù)類的識別率。Normal、Dos、Probe、R2L 和U2R 分別映射為0、1、2、3、4。
3.2.1 硬件配置
基于Transformer 的入侵檢測系統(tǒng)使用Ubuntu 操作系統(tǒng),Intel(R)Core(TM)i7-9750H CPU@2.60GHz 處理器,內(nèi)存為16GB,利用NIVDIA Tesla A100 40G 的GPU 加速模型訓練,編程工具為Pytorch、Cuda11.0、Python3.6。
3.2.2 損失函數(shù)
本文使用的Transformer 利用CrossEntropyLoss 作為損失函數(shù),函數(shù)公式如式(10)所示。
式(10)中,x表示模型的預測輸出,label為樣本的真實標簽。CrossEntropyLoss 是將Softmax、對數(shù)函數(shù)log 和NLLLoss結合的函數(shù)。
3.2.3 其他參數(shù)
在Transformer 的前饋神經(jīng)網(wǎng)絡有兩層全連接網(wǎng)絡組成,其分別為2 048 個神經(jīng)元的隱藏層和512 個神經(jīng)元的輸出層構成。為了防止模型過擬合,采用Drop 技術進行預防,設置丟失率為0.3。
Transformer 入侵檢測系統(tǒng)的其余參數(shù)設置如表3所示。
Table 3 Transformer related parameters表3 Transformer相關參數(shù)
本文使用入侵檢測領域常用的準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 值(F1-score)作為模型好壞評測指標,采用10 倍交叉驗證的方法進行訓練。將KDD 數(shù)據(jù)集按照8∶2 的比例劃分為訓練集和驗證集,同時利用KDDTest+測試集測試訓練好的模型。通過將基于Transformer 的入侵檢測方法與入侵檢測常用的深度學習方法進行比較,驗證其優(yōu)越性,圖4 顯示了基于Transformer的入侵檢測方法與MSCNN-BiLSTM 入侵檢測方法和常用的基于CNN、BiLSTM、MSCNN 的方法在訓練過程中的損失比較。
Fig.4 Transformer training loss function changes圖4 Transformer訓練損失函數(shù)變化
從圖4 可以看出,在訓練相同的迭代次數(shù)情況下,本文方法具有更小的損失值,即對原始數(shù)據(jù)擬合程度更好,具有更好的分類效果。為了驗證本文提出的基于Transformer 的入侵檢測方法性能,在訓練好Transformer 模型的基礎上,利用KDDTest+測試集對模型進行測試,測試結果的混淆矩陣如圖5所示。
Fig.5 Transformer-based intrusion detection confusion matrix圖5 基于Transformer的入侵檢測混淆矩陣
其中,橫坐標代表測試集中真實標簽的值,縱坐標代表Transformer 所預測的標簽,對角線上的數(shù)表示正確分類的樣本數(shù),非對角線上的數(shù)表示分類錯誤的樣本數(shù)。
為評價模型的檢測性能,通過與其他深度學習方法進行比較,突出基于Transformer 的入侵檢測系統(tǒng)的優(yōu)越性。表4 顯示了基于Transformer 的入侵檢測系統(tǒng)對每一類攻擊準確率的比較。
Table 4 Comparison of five classification accuracy表4 五分類準確率比較
從表4可以看出,與DNN[26]、FEEM[27]、ICVAEDNN[28]、AIDS[29]等近幾年備受關注的深度學習方法相比,本文方法在少數(shù)類上具有優(yōu)勢,Probe、U2R 和R2L 比最好的均高出10.38%、13.08%和0.62%,說明基于Transformer的方法是有效的。
基于Transformer 的入侵檢測系統(tǒng)的五分類精確率比較如圖6所示,可以看出本文方法在Normal、Dos、U2R 三類上的精度最高,分別為88.7%、98.8%和97.1%。雖然該方法對于Probe 和R2L 類的攻擊識別精度不是最好,但是Normal 最高,說明將攻擊劃分正常類的情況最少,只是將Probe 和R2L 攻擊劃分為其他類攻擊了,本文方法仍然有效。
利用Transformer 分類的召回率比較如圖7 所示,也稱為查全率,表示在測試集中某一類被正確分類出來的概率。可以看出,利用隨機森林RF 對Normal 的檢測率達到最高,為97.4% 但是其對攻擊類的檢測率較差,說明誤報率較高,改進的賽門網(wǎng)絡入侵檢測系統(tǒng)I-SiamIDS 雖然在檢測Dos 攻擊的效果最佳,且對其他攻擊分類檢測效果有一定提升,但對少數(shù)類識別的效果仍有待提升。本文提出的基于Transformer 的入侵檢測方法雖然在Normal 和Dos兩類上不是最好,但對于其他3 類攻擊的檢測提升幅度較大,說明本文提出的方法是行之有效的。
Fig.6 Comparison of accuracy圖6 精確率比較
Fig.7 Comparison of recall rates圖7 召回率比較
F1 是對精確率和召回率的調(diào)和平均,能更直觀地描述模型的好壞。圖8 展示了本文提出的基于Transformer 的入侵檢測方法與CNN-BiLSTM、AIDS、AE 等深度學習方法的比較情況,在保證多數(shù)類檢測能力的同時,大幅度提高了少數(shù)類的檢測能力?;赥ransformer 的入侵檢測方法在Probe、R2L 和U2R 上的檢測能力都大幅度提高,分別達為94.4%、90.7%和94.6%,比幾種對比方法中最好的分別高出17.7、30.6和34.4個百分點。
Fig.8 Comparison of F1 values圖8 F1值比較
為提高入侵檢測系統(tǒng)的檢測性能,本文提出基于Tansformer 的入侵檢測方法。同時,為了讓模型更好的識別少數(shù)類,本文進行了數(shù)據(jù)平衡操作。將SMOTE 和GMM結合改善數(shù)據(jù)不平衡。在模型訓練之前,先在訓練集上進行數(shù)據(jù)的平衡處理,可以在一定程度上改善分類偏向性問題。對預處理的數(shù)據(jù)利用Transformer 可以學習到入侵數(shù)據(jù)的時序和空間特征,達到更好的檢測準確率。在NSLKDD 數(shù)據(jù)集上與其他方法對比,實驗結果表明本文的方法在分類上更加有效,具有較高準確率、召回率和F1 值。但由于SMOTE方法本身存在的缺陷,數(shù)據(jù)密集的地方更加密集,稀疏的地方仍舊稀疏,使得數(shù)據(jù)質量還不夠好。在接下來的工作中將尋找方法改善這種情況。
楊明偉.基于深度學習的復雜票據(jù)表格分割算法[D].北京:北京交通大學,2020.
[22] MNIH V,HEESS N,GRAVES A,et al.Recurrent models of visual attention[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems-Volume 2,2014:2204-2212.
[23] BAHDANAU D,CHO K,BENGIO Y.Neural machine translation by jointly learning to align and translate[DB/OL].http://arxiv.org/abs/1409.0473v1.
[24] LUONG M T,PHAM H,MANNING C D.Effective approaches to attention-based neural machine translation[C]//Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing,2015:1412-1421.
[25] ORHAN A E,PITKOW X.Skip connections eliminate sing-ularities[DB/OL].https://arxiv.org/pdf/1701.09175.pdf.
[26] JIANG K,WANG W,WANG A,et al.Network intrusion detection combined hybrid sampling with deep hierarchical network[J].IEEE Access,2020,8:32464-32476.
[27] ZHOU Y,CHENG G,JIANG S,et al.Building an efficient intrusion detection system based on feature selection and ensemble classifier[J].Computer Networks,2020,174:107247.
[28] YANG Y,ZHENG K,WU C,et al.Improving the classification effectiveness of intrusion detection by using improved conditional variational autoencoder and deep neural network[J].Sensors,2019,19(11):2528.
[29] WANG Z.Deep learning-based intrusion detection with adversaries[J].IEEE Access,2018,6:38367-38384.