尹晟霖 張興蘭 左利宇
(北京工業(yè)大學信息學部 北京 100124)
隨著信息時代的不斷發(fā)展,互聯(lián)網(wǎng)絡(luò)已經(jīng)深入到了社會的方方面面,正在改變著人們的生活、學習和工作方式,同時面臨的各種安全威脅也在不斷增加,提供對數(shù)據(jù)的保護是安全開發(fā)人員面臨的重要挑戰(zhàn).入侵檢測技術(shù)是一個維護網(wǎng)絡(luò)安全的重要方式,其本質(zhì)上是一個對網(wǎng)絡(luò)流量進行分類的任務(wù),即識別網(wǎng)絡(luò)流量的行為是正常還是異常.傳統(tǒng)機器學習技術(shù)已被廣泛用于入侵檢測系統(tǒng)中,雖然機器學習的算法在處理分類任務(wù)中有著不錯的表現(xiàn),但是大多數(shù)的機器學習算法只是淺層的學習,并不能很好地提取數(shù)據(jù)流量中的特征,缺乏良好的泛化能力,隨著惡意攻擊的不斷變化,出現(xiàn)了許多挑戰(zhàn).深度學習有著較強的特征提取的能力,它可以將數(shù)據(jù)映射到更高維度上去提取分析特征,隨著深度學習技術(shù)不斷創(chuàng)新和發(fā)展,在語音識別、圖像處理等領(lǐng)域獲得了令人矚目的成就,越來越多的人開始將深度學習與入侵檢測相結(jié)合,以提升入侵檢測系統(tǒng)的泛化能力.
近年來,循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)已被運用到入侵檢測當中,但這些方法仍然存在著一些問題.RNN一般被用來處理時間序列數(shù)據(jù),下一時刻的信息會依賴于上一時刻的信息,在處理特征過程中,RNN會把每個位置上的特征融合到一起,并且隨著序列的增加,會逐漸丟失前一段的信息.長短時記憶網(wǎng)絡(luò)(long short-term memory, LSTM)解決了信息丟失的問題,但仍會融入每個位置上的信息.對于入侵檢測數(shù)據(jù),并不是每一個特征都會對分類結(jié)果起到有效的作用,融入過多非必要的特征會產(chǎn)生噪音,影響最終的分類結(jié)果.CNN被用來提取和處理圖片中的特征,在有些工作中可以將入侵檢測數(shù)據(jù)的特征數(shù)組重組,轉(zhuǎn)化成圖片數(shù)據(jù)格式,再通過CNN進行處理.但CNN模型在處理數(shù)據(jù)的過程中,難以表達特征位置關(guān)系復雜對象的特征,會降低模型的準確率.
為了解決這個問題,本文提出了基于膠囊網(wǎng)絡(luò)的入侵檢測技術(shù),將膠囊網(wǎng)絡(luò)運用到入侵檢測的任務(wù)中,為了能夠擬合不同分布的數(shù)據(jù),本文使用深層膠囊網(wǎng)絡(luò)來提取更深層的特征,通過雙重路由機制來彌補單路由機制中不能很好擬合復雜分布的缺陷,并使用殘差連接和膠囊丟棄機制來穩(wěn)定動態(tài)路由過程,同時增添了一個噪音類來收集對分類結(jié)果起到負作用的特征以減少數(shù)據(jù)中的噪音,從而提高模型的準確率.最后模型在NSL-KDD數(shù)據(jù)集和CICIDS2017數(shù)據(jù)集上進行了測試,同時與多個模型進行對比,結(jié)果顯示,本文的模型在2個數(shù)據(jù)集上都取得了不錯的效果.
隨著在機器學習基礎(chǔ)上的大量研究,入侵檢測技術(shù)得到了提升.但傳統(tǒng)的機器學習技術(shù)在處理大數(shù)據(jù)流量時稍顯吃力,越來越多的人嘗試將深度學習技術(shù)與入侵檢測技術(shù)相結(jié)合.
文獻[2]將遺傳算法和模擬退火算法運用到深度神經(jīng)網(wǎng)絡(luò)(deep neural network, DNN)中,將傳統(tǒng)的機器學習算法與深度學習框架相結(jié)合,提出了基于機器學習的入侵檢測系統(tǒng)(intrusion detection system based on machine learning, MLIDS).文獻[3-5]分別提出了基于RNN、基于門控循環(huán)單元(gated recurrent units, GRU)和基于LSTM的入侵檢測系統(tǒng),將數(shù)據(jù)當作時間序列來處理.在NSL-KDD數(shù)據(jù)集上進行了實驗,文獻[6]在訓練集上達到了99%的準確率,但因沒有在測試集上進行驗證,不具有代表性.文獻[7]使用了CNN模型,在處理后的數(shù)據(jù)上進行1維卷積的操作,文獻[8]則是將數(shù)據(jù)數(shù)組重組成類似于圖片數(shù)據(jù)的矩陣的形式后進行2維的卷積操作,也是在NSL-KDD數(shù)據(jù)集上進行實驗,都取得了不錯的效果,但仍有許多提升的空間.文獻[9]使用了孿生神經(jīng)網(wǎng)絡(luò)(siamese neural network, SNN)來處理入侵檢測數(shù)據(jù)中類別不平衡的問題.此外,隨著深度學習的不斷發(fā)展,許多基于混合神經(jīng)網(wǎng)絡(luò)模型被逐漸運用到入侵檢測上來.文獻[10]使用了CNN與雙向LSTM結(jié)合點方式,并使用了交叉驗證的方式獲得了效果最好的模型,取得了較高的準確率.文獻[11]提出了一種基于LightGBM算法的入侵檢測系統(tǒng),極大減小了數(shù)據(jù)的計算量,并取得了不錯的效果.
Hinton首次提出了膠囊網(wǎng)絡(luò)的概念,在文獻[12]中運用在了圖像分類的任務(wù)中,并在文獻[13]中得到了改進.文獻[14-15]將膠囊網(wǎng)絡(luò)運用到了文本分類任務(wù)中,文獻[16]則運用到了目標識別場景下.由此可見,膠囊網(wǎng)絡(luò)在深度學習中是一個很有前途的概念,但到目前為止,其真正的潛能尚未得到充分的發(fā)揮,該模型被認為可能成為下一代重要的神經(jīng)網(wǎng)絡(luò)模型.膠囊網(wǎng)絡(luò)是由膠囊(capsule)組成的,膠囊是一組神經(jīng)元的集合,與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)不同,在膠囊中,神經(jīng)元的集合是向量或者矩陣.基于矢量的表示能夠抓取更多的特征信息并能夠在學習過程中對輸入特征組之間的潛在相互依存關(guān)系進行編碼,同時引入動態(tài)路由迭代過程,通過聚類的方式對特征進行歸類,利用該耦合系數(shù)來測量預(yù)測上層膠囊和下層膠囊的向量之間的相似度,并將下層膠囊指向特定的上層膠囊.通過這個過程,膠囊學會了代表給定實體的屬性,這是一種更加有效的特征編碼方式,改善了RNN和CNN的缺陷.
Fig. 1 Double routing capsule network with residuals圖1 殘差的雙重路由膠囊網(wǎng)絡(luò)
利用注意力機制可以更加精確地捕捉更相關(guān)的特征,傳統(tǒng)的注意力機制過度地關(guān)注了Token之間的聯(lián)系,減少了模型的泛化能力,并增加了運行過程中的參數(shù).為了減少模型參數(shù)并提升泛化能力,本文使用的是混合注意力機制,它在文獻[17]中被證明是有效的.混合注意力機制是由2種不同的注意力機制疊加形成的,結(jié)構(gòu)如圖2所示.
Fig. 2 Mixed attention mechanism圖2 混合注意力機制
F
(+)+,(1)
(2)
(3)
最后將得到的2個注意力矩陣混合,即
(4)
K
-Means算法的動態(tài)路由和EM算法的動態(tài)路由.2.2.1K
-Means算法K
-Means算法是一種無監(jiān)督的聚類算法,通過初始化聚類中心,經(jīng)過多次迭代后將樣本點進行聚類.在動態(tài)路由算法中,將流量數(shù)據(jù)的特征視為樣本點,對特征進行聚類.將低級膠囊中的特征聚類為高級膠囊,K
-Means算法是一種行之有效的聚類方法.它希望將已有的數(shù)據(jù)特征(,,…,)無監(jiān)督的劃分為k
個類,使得產(chǎn)生的k
個聚類中心(,,…,)之間的間隔最小:(5)
將Ω
層膠囊和Ω
+1層膠囊之間的動態(tài)路由看作是一個K
-Means聚類的過程,則Ω
+1層膠囊是Ω
層膠囊的聚類中心,式(5)中的d
為相似程度的度量.
使用數(shù)據(jù)處理層輸出的數(shù)據(jù)=(,,…,)來初始化,迭代公式為(6)
(7)
(8)
(9)
(10)
Fig. 3 Vanilla Squash function圖3 原始壓縮函數(shù)圖像
注意到函數(shù)S
()能夠?qū)⑾蛄康哪iL壓縮到[0,1]之間,它存在著多種方式.
文獻[10]中的函數(shù)對全局進行了壓縮,對于自變量細微的變化不敏感,容易丟失許多信息.
本文對函數(shù)S
()進行了修改,使用了3種不同形式的激活函數(shù),公式為(11)
(12)
(13)
3種激活函數(shù)的圖像如圖4所示,改進后的激活函數(shù)放大了自變量為0附近的值時,函數(shù)值對自變量的變化更加敏感,可以使各類之間的間距變大,從而產(chǎn)生更大的類分離.
Fig. 4 Three Squash functions圖4 3種壓縮函數(shù)圖像
本文使用以上3種激活函數(shù)進行了實驗,實驗結(jié)果表明,S
()的效果要優(yōu)于另外2種.
整個迭代過程的路由算法如下:
算法1.
K
-Means路由算法.
輸入:;輸出:Squash
().
i
to高級膠囊j
迭代r
次⑤ end for
⑥ 返回Squash
().
2.
2.
2 EM算法在EM(expectation-maximum)算法中,Ω
+1層膠囊被看作高斯混合分布,而Ω
層膠囊的輸出從到需要被聚類的數(shù)據(jù)點.
通過在E
_Step
和M
_Step
之間交替迭代地更新輸出膠囊的均值、方差,以及輸入膠囊的分配概率R.
動態(tài)路由機制也可以被看作一個反向的注意力機制過程,通過全局的特征,動態(tài)地調(diào)整局部特征的貢獻程度.
經(jīng)過處理的數(shù)據(jù)符合混合高斯分布,通過迭代以獲得最大的分布函數(shù)p
(),低級膠囊中的特征值之間相互獨立,因此協(xié)方差矩陣是一個對角矩陣.
對標準EM迭代算法改動后的分布函數(shù)公式為(14)
(15)
(16)
M
_Step
中,通過得到的分配概率求出迭代改進后的高斯混合模型(Gaussian mixture model, GMM)的參數(shù).
該步驟是獲得給定迭代的低級膠囊之間的總體表示.E
_Step
調(diào)整每個數(shù)據(jù)點到高斯分布的分配概率R
,即低級膠囊到高級膠囊之間的分配概率,該過程基于給定迭代的高級膠囊來調(diào)整每個膠囊的貢獻.
GMM是基于加權(quán)的歐氏距離,其特點是聚類中心向量是類向量的加權(quán)平均,因此不能使用向量的模長來表示特征的顯著程度.為了解決這個問題,使用一個標量a
對最后的結(jié)果進行縮放,縮放之后便可通過壓縮函數(shù)來計算向量的模長.通過EM算法得到的是一個概率分布來描述一個類.這個類的不確定性越大,方差就越大,代表著越接近均勻分布,說明特征不夠突出,此時a
的值應(yīng)該越?。蝗舨淮_定性越小,方差就越小,此時的分布就越集中,a
的值則會越大.
此過程使用不確定性來描述a.
將p
(x
|j
)帶入信息熵公式化簡可得S
:(17)
(18)
其中,r
為隨機初始化的標量,范圍在(0,1]之間.
因為顯著程度越大,信息熵越小,所以本文用-S
來衡量特征的顯著程度.
同時為了將S
的大小限制在[0,1],使用Sigmoid函數(shù)來對S
進行變化:a
=Sigmoid(1-S
).
(19)
得到縮放尺度后,仍然使用壓縮函數(shù)將向量壓縮到[0,1]之間來表示特征的顯著程度,新的壓縮函數(shù)NSquash
為(20)
整個迭代過程的路由算法如下:
算法2.
EM路由算法.輸入:;輸出:NSquash
(a
,).
① 初始化參數(shù):a
,V
,σ
;② for迭代r
次③ ?j
∈Ω
+1:M
_Step
(a
,R
,V
,j
);④ ?i
∈Ω
:E
_Step
(μ
,σ
,V
,i
);⑤ end for
⑥ 返回NSquash
(a
,).
E
_Step
(μ
,σ
,a
,V
,i
)M
_Step
(a
,R
,V
,j
)a
←Sigmoid(1-S
).
2.2.3 深度膠囊與殘差連接
網(wǎng)絡(luò)層數(shù)越深,越能提取到豐富的特征.但簡單地通過堆疊膠囊層來構(gòu)建深層膠囊網(wǎng)絡(luò)會與傳統(tǒng)的MLP模型相似,出現(xiàn)梯度彌散或者梯度爆炸的現(xiàn)象,即便使用正則化來處理,也會在訓練集上出現(xiàn)網(wǎng)絡(luò)退化的現(xiàn)象.此外,膠囊網(wǎng)絡(luò)的動態(tài)路由機制是一個非常昂貴的計算過程,多個膠囊層的疊加會導致訓練的時間增加.現(xiàn)有的研究表明,單純將膠囊層疊加在一起會導致中間層的學習效果有所下降.這是由于當膠囊數(shù)量過多時,膠囊之間的耦合系數(shù)會過小,從而抑制了膠囊網(wǎng)絡(luò)的學習,導致學習效果下降.為了解決這一問題,本文改進了原有的動態(tài)路由機制.
首先,為了避免在路由過程中膠囊數(shù)量過多,本文采用了Dropout層的思想,對膠囊進行失活,丟棄某個膠囊.但在這個過程中不采用隨機失活的方式,因為隨機失活很有可能會導致含有重要特征的膠囊丟失,影響模型的性能.在失活過程中,會對貢獻度低的膠囊進行丟棄,若每個膠囊的貢獻度一樣,則本迭代不刪除任何膠囊.從低層膠囊Ω
到達下一層膠囊Ω
+1之后,在K
-Means動態(tài)路由中,刪除長度較小的膠囊;在EM動態(tài)路由中,刪除顯著程度a
較低的膠囊.過程如圖5所示,含有陰影的膠囊為丟棄的膠囊:Fig. 5 Capsule network Dropout mechanism圖5 膠囊網(wǎng)絡(luò)Dropout機制
其次,在聚類迭代過程中,由于淺層膠囊用來捕獲低級特征,深層膠囊用來捕捉高級特征,所以淺層膠囊之間使用較小的迭代次數(shù),設(shè)i
=1;中間層膠囊設(shè)i
=2;深層膠囊之間使用正常的迭代次數(shù),設(shè)i
=3.
同時,動態(tài)路由的膠囊過程中,隨著膠囊層數(shù)的增加,會出現(xiàn)模型過擬合以及網(wǎng)絡(luò)退化的現(xiàn)象.
為了使模型能夠得到收斂同時有保證不會出現(xiàn)過擬合以及退化的現(xiàn)象,也使用殘差連接來解決這個問題.
殘差連接過程如圖6所示.
殘差公式為+2=+2+,(21)
是可學習的參數(shù)矩陣,是j
層的膠囊的結(jié)果,+2是j
+2層膠囊的結(jié)果.
Fig. 6 Skip connection圖6 跳躍連接
2.
2.
4 噪音膠囊膠囊網(wǎng)絡(luò)會提取樣本中的所有特征,因此本文通過增加一個不屬于之前類別的噪音膠囊來收集膠囊網(wǎng)絡(luò)提取到的噪音特征,以提高模型的準確性,最終分類膠囊中含有c
+1個膠囊,c
為樣本數(shù)據(jù)集中的類別數(shù)目.
.
邊緣損失函數(shù)是基于分類層輸出的向量長度的分類損失,公式為
(22)
重構(gòu)損失是計算原始數(shù)據(jù)與重構(gòu)數(shù)據(jù)之間的差距,使用均方誤差來計算實現(xiàn),公式為
L
=λ
∑MSELoss
(Data
,Data
),(23)
其中,Data
為原始的數(shù)據(jù),Data
為重構(gòu)后的數(shù)據(jù),λ
為重構(gòu)損失縮放倍數(shù),縮放倍數(shù)越大,越會導致模型的過擬合.
整個模型優(yōu)化的整體損失為
L
=L
+L
.
(24)
本文采用的是NSL-KDD數(shù)據(jù)集和CICIDS 2017數(shù)據(jù)集.
NSL-KDD是KDD CUP99數(shù)據(jù)集的改進版,刪除了原始KDD數(shù)據(jù)集中的冗余數(shù)據(jù),在測試集中沒有重復的記錄,并且有著合理的數(shù)據(jù)量.數(shù)據(jù)集中含有4種異常類型,被細分為39種攻擊類型,其中有17種未知攻擊類型出現(xiàn)在測試集中.每一條記錄包括41個特征和1個類別標識.其中41個特征中是由TCP連接基本特征(9種)、TCP連接內(nèi)容特征(13種)、基于時間的網(wǎng)絡(luò)流量統(tǒng)計特征(9種)和基于主機的網(wǎng)絡(luò)流量統(tǒng)計特征(10種)組成.
CICIDS2017數(shù)據(jù)集包含最新的常見攻擊,更接近于真實的數(shù)據(jù).完整的CICIDS2017數(shù)據(jù)集包含八個文件,總共含有3 119 345條實例和83個特征,其中包含15個類別標簽(1個正常標簽,14個攻擊標簽).此外,數(shù)據(jù)集中含有288 602個標簽缺失的實例和203個特征缺失的實例.刪除缺失信息的實例后,總共得到2 830 540個實例.
數(shù)據(jù)集中標簽分布如表1和表2所示:
Table 1 Number of Categories in NSL-KDD Dataset表1 NSL-KDD數(shù)據(jù)集中各類別的數(shù)量
Table 2 Number of Categories in CICIDS2017 Dataset表2 CICIDS2017數(shù)據(jù)集中各類別的數(shù)量
數(shù)據(jù)處理包括字符類型數(shù)字化、類別不平衡處理、歸一化處理3個步驟.
1) 字符類型數(shù)字化
在數(shù)據(jù)集的特征中,有3個特征和類別標識是字符類型的.在字符類型數(shù)字化的過程中,使用了one-hot方式.對于NSL-KDD數(shù)據(jù)集,協(xié)議類型的值有3種,目標主機的網(wǎng)絡(luò)服務(wù)類型有70種,連接正?;蛘咤e誤的狀態(tài)有11種.在one-hot方式下,協(xié)議類型被處理為[1,0,0],[0,1,0],[0,0,1]的形式,其他特征處理過程類似,最終每條數(shù)據(jù)的長度為121維.CICIDS2017數(shù)據(jù)集處理的過程同上.
本文在實驗過程中使用了one-hot編碼的方式,以NSL-KDD數(shù)據(jù)集為例,將數(shù)據(jù)處理成長度為121的向量,為了實現(xiàn)可視化,將特征長度121維的數(shù)據(jù)轉(zhuǎn)化為11×11的矩陣,圖7展示了Normal,DoS,Prob這3種標簽的圖像,可以看出,每種類別之間,都包含著相似的特征分布.
Fig. 7 Partial sample visualization of the NSL-KDD dataset圖7 NSL-KDD數(shù)據(jù)集部分樣本可視化
2) 類別不平衡處理
(25)
但是SMOTE算法的缺點是生成的少數(shù)類樣本容易與周圍的多數(shù)類樣本產(chǎn)生重疊難以分類,會影響分類器的效率,而數(shù)據(jù)清洗技術(shù)可以處理掉重疊樣本,通過使用ENN(edited nearest neighborhood)算法,將與多類樣本重疊的數(shù)據(jù)刪除.
對于NSL-KDD數(shù)據(jù)集,直接使用SMOTE+ENN算法處理數(shù)據(jù),生成新的訓練集與測試集.對于CICIDS2017數(shù)據(jù)集,先將同性質(zhì)的標簽進行合并,再均勻地對每個標簽下的數(shù)據(jù)進行篩選,避免處理后造成數(shù)據(jù)偏大.最后使用SMOTE+ENN算法進行處理.處理后的數(shù)據(jù)集如表3和表4所示.
3) 歸一化處理
為了消除不同量綱帶來的數(shù)據(jù)差異,在對字符變量數(shù)字化以后,進行歸一化處理.采用最大最小歸一化的方法,可以減輕由于量綱不同造成的差異,將數(shù)值統(tǒng)一在[0,1]之間,公式為
Table 3 Processed NSL-KDD Dataset表3 處理后的NSL-KDD數(shù)據(jù)集
Table 4 Processed CICIDS2017 Dataset表4 處理后的CICIDS2017數(shù)據(jù)集
(26)
其中,x
是原始數(shù)據(jù),x
是同一特征中的最小值,x
是同一特征中的最大值,x
是原始數(shù)據(jù)歸一化后的結(jié)果.
數(shù)據(jù)處理完成后,對于NSL-KDD數(shù)據(jù)集,使用新生成的訓練集和測試集進行模型的訓練和測試;對于CICIDS2017數(shù)據(jù)集,使用全體數(shù)據(jù)集的70%進行訓練,30%用于測試,其中訓練集中不包含測試集中的數(shù)據(jù).
AC
、精確率P
、召回率R
、F
1作為實驗結(jié)果的評價指標,其中TN
(true negative)是負樣本且被判為負樣本的數(shù)量,TP
(true positive)是數(shù)據(jù)為正樣本且也被判為正樣本的數(shù)量,FN
(false negative)是數(shù)據(jù)為正樣本但被判為負樣本的數(shù)量,FP
(false positive)是數(shù)據(jù)為負樣本,但被判為正樣本的數(shù)量.(27)
(28)
(29)
(30)
1) 在NSL-KDD數(shù)據(jù)集上實驗
在實驗過程中,將訓練集劃分為5等份進行5折交叉驗證,使用了機器學習算法隨機森林(random forest, RF)、決策樹(decision tree, DT)和神經(jīng)網(wǎng)絡(luò)算法ResNet-50(residual network)、BiLSTM(bi-directionallong short-term memory)、原膠囊網(wǎng)絡(luò)(vanilla capsule)作為對照模型,實驗結(jié)果如表5所示:
Table 5 NSL-KDD Dataset Results表5 NSL-KDD數(shù)據(jù)集結(jié)果
從結(jié)果可知,混合路由機制膠囊網(wǎng)絡(luò)的泛化能力要高于機器學習算法和傳統(tǒng)神經(jīng)網(wǎng)絡(luò),本文模型在準確率上比機器學習算法DT高2個百分點,比ResNet50深度網(wǎng)絡(luò)高5.2個百分點,比原膠囊網(wǎng)絡(luò)高2.24個百分點.
雖然每個類別有自己獨特的特征分布,但是不同種類之間也包含著相似的特征點.傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),如CNN擅長對特征的檢測與提取,它可以很好地檢測出不同類別所含有的特征.但是它在探索特征之間的空間關(guān)系方面效果不佳.如圖8所示.
Fig. 8 Sample visual comparison圖8 樣本可視化對比
兩者都包含相似的特征點,對于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),非常容易將異常數(shù)據(jù)識別為正常數(shù)據(jù),或者將正常數(shù)據(jù)識別為異常數(shù)據(jù),導致分類器精度降低.這是因為傳統(tǒng)神經(jīng)網(wǎng)絡(luò)具有平移不變性,而膠囊網(wǎng)絡(luò)會捕捉特征之間的空間關(guān)系,從而提升分類模型的泛華能力.
NSL-KDD數(shù)據(jù)集仍存在著一些問題,其測試集中含有訓練集從未出現(xiàn)過的種類以及特征分布,訓練集和測試集的分布有一定的差異,導致模型準確率有所下降,所以NSL-KDD數(shù)據(jù)集不太適用于檢驗?zāi)P偷男阅?
2) 在CICIDS2017數(shù)據(jù)集上實驗
本文使用CICIDS2017數(shù)據(jù)集對模型進行了進一步探究.實驗過程與在NSL-KDD數(shù)據(jù)集上一致.實驗結(jié)果如表6所示:
Table 6 CICIDS2017 Dataset Results表6 CICIDS2017數(shù)據(jù)集結(jié)果
由實驗結(jié)果可知,本文的準確率比RF高了1.69個百分點,比BiLSTM高了2.3個百分點,效果有了明顯的提升.
本文對提出的3種不同的激活函數(shù)S
(式(11)),S
(式(12)),S
(式(13))與原始激活函數(shù)Vanilla進行了對比實驗,實驗結(jié)果以及收斂過程如表7和圖9所示.由實驗結(jié)果可得,使用S
有著更好的泛化能力以及更快的收斂速度,且趨于穩(wěn)定.Table 7 Results of Different Activation Functions表7 不同激活函數(shù)結(jié)果
Fig. 9 Relationship between L and training times圖9 L與訓練次數(shù)關(guān)系
為了驗證殘差連接的有效性,本文將有殘差連接模型(本文)與沒有殘差連接的模型(CapsuleA
)進行了對比,準確率如表8所示:Table 8 Comparison Results with the Non-residual Model表8 與無殘差連接模型對比結(jié)果
由此可見,經(jīng)過檢驗,不含殘差連接的模型在訓練集上和測試集上,準確率都有所下降,說明網(wǎng)絡(luò)加深以導致了模型出現(xiàn)了網(wǎng)絡(luò)退化以及過擬合現(xiàn)象,并且所損耗的時間大大增加.通過殘差連接可以很好地解決模型過擬合以及網(wǎng)絡(luò)退化的問題,并提高運行效率.
3) 模型效率分析
為了研究模型在推斷階段的效率,本文比較了傳統(tǒng)機器學習算法與神經(jīng)網(wǎng)絡(luò)算法運行一個Batch所需要的時間.其中CapsuleB
模型只是單純加深了網(wǎng)絡(luò)深度,網(wǎng)絡(luò)層數(shù)與本文提出的模型一致,且CapsuleB
模型在NSL-KDD數(shù)據(jù)集上的準確率為83.78%.實驗結(jié)果如表9所示:Table 9 Results ofthe Models’ runtime表9 模型運行時間結(jié)果 s
由實驗結(jié)果可知,本文的運行時間要小于單純的將膠囊層數(shù)疊加的模型(CapsuleB
),且單純的疊加膠囊層數(shù)并沒有達到較好的效果.同時,神經(jīng)網(wǎng)絡(luò)算法的運行時間普遍大于傳統(tǒng)機器學習的算法.在實際應(yīng)用中,本文算法的時間消耗仍在可接受的范圍內(nèi),與ResNet網(wǎng)絡(luò)相當.隨著數(shù)據(jù)的爆發(fā)式增長,傳統(tǒng)的機器學習算法將不再適用,而神經(jīng)網(wǎng)絡(luò)算法隨著數(shù)據(jù)的增加,在一定程度上可以有效地提升模型的準確度,且深度神經(jīng)網(wǎng)絡(luò)算法可以很好地在GPU上得到加速,隨著設(shè)備的發(fā)展,時間效率問題可以進一步得到緩解.本文構(gòu)建了雙重路由機制的膠囊網(wǎng)絡(luò)模型,通過使用不同的動態(tài)路由算法進行相互補充,根據(jù)數(shù)據(jù)集自動分配2種路由機制所占的比重,可以更好地擬合不同種類樣本所形成的特征分布.同時,在特征提取過程中使用了混合注意力機制,使得模型更加關(guān)注對判別產(chǎn)生影響的特征,減少了噪音的干擾,增強了模型的魯棒性.但在膠囊網(wǎng)絡(luò)的動態(tài)路由機制過程中損耗時間要大于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),今后需要通過進一步優(yōu)化動態(tài)路由機制,提升膠囊網(wǎng)絡(luò)模型的運行效率.
作者貢獻聲明
:尹晟霖提出了方法、完成實驗以及撰寫原稿;張興蘭負責整體監(jiān)督與論文的修改;左利宇負責部分實驗的實現(xiàn)以及實驗結(jié)果的整理.