邵文魁
(江蘇省南京工程高等職業(yè)學(xué)校 江蘇 南京 211135)
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)入侵威脅對(duì)于個(gè)人用戶(hù)和企業(yè)組織的信息安全帶來(lái)了巨大的風(fēng)險(xiǎn)[1-2]。網(wǎng)絡(luò)入侵檢測(cè)作為保護(hù)網(wǎng)絡(luò)安全的重要手段,旨在及時(shí)識(shí)別和阻止惡意攻擊者對(duì)計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)資源的非法訪問(wèn)和利用。然而,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測(cè)方法在處理大規(guī)模、復(fù)雜的網(wǎng)絡(luò)流量時(shí)往往面臨效率低下和準(zhǔn)確率不高的問(wèn)題[3-4]。近年來(lái),深度學(xué)習(xí)(deep learning,DL)技術(shù)的快速發(fā)展為網(wǎng)絡(luò)入侵檢測(cè)提供了全新的解決方案。DL通過(guò)構(gòu)建多層神經(jīng)網(wǎng)絡(luò)模型,并通過(guò)大規(guī)模的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,能夠從復(fù)雜的網(wǎng)絡(luò)流量中學(xué)習(xí)到更高層次的特征表示,從而提高了入侵檢測(cè)的準(zhǔn)確性和魯棒性。然而,在應(yīng)用DL技術(shù)進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)時(shí),存在著過(guò)擬合和訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題,這限制了其在實(shí)際應(yīng)用中的有效性。
為了解決這些問(wèn)題,本研究將重點(diǎn)介紹將Dropout(神經(jīng)網(wǎng)絡(luò)訓(xùn)練技術(shù))引入到BP神經(jīng)網(wǎng)絡(luò)中,以實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)模型的構(gòu)建。Dropout是一種正則化方法,通過(guò)在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中隨機(jī)丟棄部分神經(jīng)元的輸出,從而減少網(wǎng)絡(luò)的過(guò)擬合現(xiàn)象[5-7]。通過(guò)對(duì)MIT LL DARPA數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,本研究評(píng)估了基于Dropout的BP神經(jīng)網(wǎng)絡(luò)模型在網(wǎng)絡(luò)入侵檢測(cè)任務(wù)中的性能表現(xiàn)。研究結(jié)果對(duì)于提高網(wǎng)絡(luò)入侵檢測(cè)的準(zhǔn)確性和魯棒性具有重要意義,對(duì)于加強(qiáng)網(wǎng)絡(luò)安全保護(hù)具有實(shí)際應(yīng)用價(jià)值。
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),通常包括輸入層、隱藏層和輸出層,如圖1所示[8-11]。輸入層是BP神經(jīng)網(wǎng)絡(luò)的第一層,用于接收外部輸入信號(hào)并將其轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)可以處理的內(nèi)部表示形式。假設(shè)輸入向量為X=[x1,x2,…,xn],則輸入層可以表示為式(1):
圖1 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
A(1)=[x1,x2,…,xn]。
(1)
式(1)中:A(1)為輸入層的輸出,稱(chēng)為激活值。
隱藏層是BP神經(jīng)網(wǎng)絡(luò)的中間層,通過(guò)多層神經(jīng)元的計(jì)算和激活函數(shù)的作用,對(duì)輸入進(jìn)行逐層抽象和處理,提取出更高層次的特征表示。假設(shè)隱藏層有m個(gè)神經(jīng)元,則第j個(gè)神經(jīng)元的輸出為式(2)、式(3):
z(j)=w(j)·A(1)+b(j)
(2)
a(j)=f(z(j))
(3)
式(2)、式(3)中:w(j)和b(j)分別為第j個(gè)神經(jīng)元的權(quán)重和偏置項(xiàng);f(x)為激活函數(shù),通常為Sigmoid函數(shù)或ReLU函數(shù)。將隱藏層所有神經(jīng)元的輸出組成一個(gè)向量,即可得到隱藏層的輸出為式(4):
A(2)=[a(1),a(2),…,a(m)]
(4)
式(4)中:A(2)為隱藏層的輸出,也稱(chēng)為隱藏層的激活值。
輸出層是BP神經(jīng)網(wǎng)絡(luò)的最后一層,用于將隱藏層的特征表示轉(zhuǎn)換為目標(biāo)輸出。假設(shè)輸出向量為Y=[y1,y2,…,yp],則輸出層可以表示為式(5)、式(6):
z(p)=w(p)·A(2)+b(p)
(5)
a(p)=f(z(p))
(6)
式(5)、式(6)中:w(p)和b(p)分別為輸出層的權(quán)重和偏置項(xiàng);f(x)為激活函數(shù)。輸出層的輸出即為神經(jīng)網(wǎng)絡(luò)的輸出為式(7):
A(3)=[a(1),a(2),…,a(p)]
(7)
式(7)中:A(3)為輸出層的輸出,也稱(chēng)為網(wǎng)絡(luò)的輸出。
BP神經(jīng)網(wǎng)絡(luò)的工作原理是通過(guò)前向傳播和反向傳播2個(gè)步驟來(lái)實(shí)現(xiàn)。首先,通過(guò)前向傳播,輸入樣本經(jīng)過(guò)輸入層傳遞到隱藏層,再由隱藏層傳遞到輸出層,得到網(wǎng)絡(luò)的輸出結(jié)果。具體而言,輸入層將輸入信號(hào)通過(guò)權(quán)重和偏置項(xiàng)的線性組合,并經(jīng)過(guò)激活函數(shù)的非線性變換后,將結(jié)果傳遞給隱藏層。隱藏層進(jìn)行類(lèi)似的計(jì)算,將輸出傳遞到輸出層。輸出層進(jìn)行最終的線性組合和非線性變換,得到網(wǎng)絡(luò)的預(yù)測(cè)輸出。然后,通過(guò)計(jì)算預(yù)測(cè)輸出與真實(shí)輸出之間的誤差,利用反向傳播算法進(jìn)行誤差的反向傳遞。反向傳播通過(guò)計(jì)算輸出層和隱藏層的誤差梯度,再根據(jù)鏈?zhǔn)椒▌t逐層計(jì)算隱藏層和輸入層的誤差梯度,以及相應(yīng)的權(quán)重和偏置項(xiàng)的梯度。最后,根據(jù)梯度下降法則,利用梯度更新權(quán)重和偏置項(xiàng),不斷迭代優(yōu)化網(wǎng)絡(luò)的參數(shù),以最小化誤差函數(shù)并找到參數(shù)的最優(yōu)值。這樣經(jīng)過(guò)多輪迭代訓(xùn)練后,網(wǎng)絡(luò)能夠通過(guò)學(xué)習(xí)和調(diào)整權(quán)重和偏置項(xiàng),逐漸提高對(duì)輸入樣本的預(yù)測(cè)準(zhǔn)確性和泛化能力,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)入侵的檢測(cè)和分類(lèi)。
Dropout是一種常用的正則化技術(shù),用于提高神經(jīng)網(wǎng)絡(luò)的泛化能力和抗過(guò)擬合能力。其原理是在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,以一定的概率隨機(jī)丟棄部分神經(jīng)元的輸出,使得網(wǎng)絡(luò)無(wú)法依賴(lài)于某些特定的神經(jīng)元,從而迫使網(wǎng)絡(luò)學(xué)習(xí)到更加魯棒的特征表示。應(yīng)用Dropout前后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比,如圖2所示。
圖2 應(yīng)用Dropout前后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比
具體而言,在引入Dropout之前的BP神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元都會(huì)對(duì)輸入進(jìn)行計(jì)算并產(chǎn)生輸出,而引入Dropout后,以一定的概率(通常為0.5)隨機(jī)選擇部分神經(jīng)元不參與計(jì)算。這意味著在每個(gè)訓(xùn)練樣本的前向傳播過(guò)程中,神經(jīng)元的連接權(quán)重將以一定概率被置為零,被丟棄的神經(jīng)元將不參與網(wǎng)絡(luò)的計(jì)算,相當(dāng)于將其輸出值設(shè)置為零。這種隨機(jī)丟棄的操作使得網(wǎng)絡(luò)的每一層都變得更加稀疏,從而減少了神經(jīng)元之間的依賴(lài)關(guān)系,增加了網(wǎng)絡(luò)的魯棒性。
引入Dropout后,網(wǎng)絡(luò)在訓(xùn)練階段中的每個(gè)樣本都相當(dāng)于是從原始網(wǎng)絡(luò)中采樣出來(lái)的一個(gè)子網(wǎng)絡(luò)。由于每個(gè)樣本的子網(wǎng)絡(luò)都是隨機(jī)的,因此可以看作是通過(guò)訓(xùn)練多個(gè)不同的神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)樣本進(jìn)行預(yù)測(cè),從而增加了模型的魯棒性。而在測(cè)試階段,由于不再進(jìn)行隨機(jī)丟棄操作,所有神經(jīng)元都參與計(jì)算,但為了保持期望輸出的一致性,需要對(duì)每個(gè)神經(jīng)元的輸出值乘以保留概率(1-p)。
引入Dropout后,BP神經(jīng)網(wǎng)絡(luò)具有以下幾個(gè)顯著變化。首先,Dropout增加了網(wǎng)絡(luò)的隨機(jī)性,減少了神經(jīng)元之間的共適應(yīng)性,降低了過(guò)擬合的風(fēng)險(xiǎn)。其次,Dropout有效地?cái)U(kuò)展了訓(xùn)練樣本的規(guī)模,相當(dāng)于在每次迭代中進(jìn)行了模型的集成學(xué)習(xí),提高了模型的泛化能力。此外,Dropout還能有效減少網(wǎng)絡(luò)參數(shù)之間的相互依賴(lài),加快了網(wǎng)絡(luò)的訓(xùn)練速度,并且可以作為一種自適應(yīng)正則化方法,無(wú)需調(diào)節(jié)額外的超參數(shù)。
實(shí)驗(yàn)環(huán)境是進(jìn)行研究和實(shí)驗(yàn)的基礎(chǔ),采用的實(shí)驗(yàn)環(huán)境分為硬件和軟件2部分。在硬件方面采用了13代Intel Core i7處理器、NVIDIA GeForce GTX系列GPU。在軟件方面,選擇Ubuntu 20.04操作系統(tǒng),使用Python作為主要的編程語(yǔ)言,因?yàn)镻ython具有豐富的DL庫(kù)和工具,如TensorFlow、Keras、PyTorch等。
MIT LL DARPA數(shù)據(jù)集是一個(gè)常用于網(wǎng)絡(luò)入侵檢測(cè)研究的數(shù)據(jù)集,由麻省理工學(xué)院林肯實(shí)驗(yàn)室和美國(guó)國(guó)防高級(jí)研究計(jì)劃局共同開(kāi)發(fā)。該數(shù)據(jù)集的主要目的是提供一個(gè)真實(shí)的、多樣化的網(wǎng)絡(luò)流量數(shù)據(jù)集,用于評(píng)估和驗(yàn)證網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的性能。
MIT LL DARPA數(shù)據(jù)集包含了多種類(lèi)型的網(wǎng)絡(luò)流量數(shù)據(jù),包括正常的網(wǎng)絡(luò)通信和各種類(lèi)型的網(wǎng)絡(luò)入侵行為。這些入侵行為涵蓋了各種攻擊類(lèi)型,如拒絕服務(wù)、端口掃描、惡意代碼和網(wǎng)絡(luò)蠕蟲(chóng)等。數(shù)據(jù)集中的流量數(shù)據(jù)包括了來(lái)自不同網(wǎng)絡(luò)層次和協(xié)議的信息,如IP地址、端口號(hào)、傳輸層協(xié)議等。
本研究使用MIT LL DARPA數(shù)據(jù)集對(duì)引入Dropout的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練和測(cè)試。在訓(xùn)練階段:
(1)數(shù)據(jù)預(yù)處理:需要對(duì)MIT LL DARPA數(shù)據(jù)集進(jìn)行預(yù)處理。包括數(shù)據(jù)清洗、去除異常值、標(biāo)準(zhǔn)化或歸一化等操作,以保證數(shù)據(jù)的質(zhì)量和可靠性。
(2)數(shù)據(jù)劃分:將預(yù)處理后的數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。一般采用常見(jiàn)的劃分比例,70%的數(shù)據(jù)用于訓(xùn)練,10%的數(shù)據(jù)用于驗(yàn)證和調(diào)參,20%的數(shù)據(jù)用于最終的模型測(cè)試。
(3)網(wǎng)絡(luò)模型構(gòu)建:基于引入Dropout的BP神經(jīng)網(wǎng)絡(luò)的架構(gòu),按照指定的網(wǎng)絡(luò)層數(shù)、神經(jīng)元數(shù)和激活函數(shù)等參數(shù),構(gòu)建網(wǎng)絡(luò)模型。
(4)參數(shù)初始化:對(duì)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行初始化,常用的初始化方法包括隨機(jī)初始化和Xavier初始化等。
(5)前向傳播和反向傳播:首先通過(guò)前向傳播計(jì)算網(wǎng)絡(luò)的輸出,然后使用損失函數(shù)(如交叉熵?fù)p失函數(shù))計(jì)算預(yù)測(cè)輸出與真實(shí)輸出之間的誤差。最后利用反向傳播算法計(jì)算梯度,并根據(jù)梯度下降法則更新網(wǎng)絡(luò)的參數(shù),不斷優(yōu)化模型。
(6)Dropout操作:在每次訓(xùn)練過(guò)程中,以一定的概率隨機(jī)丟棄部分神經(jīng)元的輸出,增加網(wǎng)絡(luò)的魯棒性和泛化能力。
(7)迭代訓(xùn)練:重復(fù)進(jìn)行多個(gè)訓(xùn)練迭代,每個(gè)迭代中使用訓(xùn)練集的一個(gè)batch進(jìn)行參數(shù)更新,直至達(dá)到指定的停止條件(如達(dá)到最大迭代次數(shù)或損失函數(shù)收斂)。
在模型測(cè)試階段,通過(guò)驗(yàn)證集評(píng)估不同訓(xùn)練迭代中的模型性能,并選擇在驗(yàn)證集上表現(xiàn)最佳的模型作為最終模型,再使用測(cè)試集對(duì)最終模型進(jìn)行評(píng)估。
在使用引入Dropout的BP神經(jīng)網(wǎng)絡(luò)對(duì)MIT LL DARPA數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)的實(shí)驗(yàn)中,實(shí)驗(yàn)結(jié)果見(jiàn)表1。可見(jiàn),模型在訓(xùn)練集、驗(yàn)證集和測(cè)試集上的準(zhǔn)確率分別為94.5%、92.3%和91.8%,表明模型具有一定的分類(lèi)能力,能夠?qū)IT LL DARPA數(shù)據(jù)集中的網(wǎng)絡(luò)流量進(jìn)行有效的入侵檢測(cè)。但測(cè)試集上的準(zhǔn)確率略低于訓(xùn)練集和驗(yàn)證集,這可能是由于模型在訓(xùn)練過(guò)程中過(guò)擬合了部分?jǐn)?shù)據(jù),需要進(jìn)一步優(yōu)化模型的泛化能力。模型的精確率為89.7%,召回率為91.5%,F1值為90.6%。這些指標(biāo)反映了模型在識(shí)別網(wǎng)絡(luò)入侵行為時(shí)的性能。高精確率表示模型在判斷為入侵行為時(shí)的準(zhǔn)確性較高,而高召回率表示模型能夠較好地識(shí)別出實(shí)際的入侵行為。F1值綜合考慮了精確率和召回率,是一個(gè)綜合評(píng)價(jià)指標(biāo),其值越接近1表示模型性能越好。
表1 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明引入Dropout的BP神經(jīng)網(wǎng)絡(luò)在MIT LL DARPA數(shù)據(jù)集上表現(xiàn)出良好的性能,能夠?qū)W(wǎng)絡(luò)入侵行為進(jìn)行有效檢測(cè)。然而,仍需要進(jìn)一步優(yōu)化模型的泛化能力,以提高模型在未見(jiàn)樣本上的準(zhǔn)確率。此外,還需針對(duì)具體的網(wǎng)絡(luò)入侵類(lèi)型進(jìn)行深入分析,以了解模型在不同類(lèi)型入侵行為上的表現(xiàn)和潛在局限性。
綜上所述,本文旨在探索BP神經(jīng)網(wǎng)絡(luò)中引入Dropout的方法,以提高網(wǎng)絡(luò)入侵檢測(cè)的性能。通過(guò)實(shí)驗(yàn)驗(yàn)證,引入Dropout的BP神經(jīng)網(wǎng)絡(luò)在MIT LL DARPA數(shù)據(jù)集上取得了良好的表現(xiàn)。與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)相比,引入Dropout操作使網(wǎng)絡(luò)模型具備了更好的魯棒性和泛化能力,能夠更有效地識(shí)別和檢測(cè)多種網(wǎng)絡(luò)入侵行為。實(shí)驗(yàn)結(jié)果表明,引入Dropout的BP神經(jīng)網(wǎng)絡(luò)在準(zhǔn)確率、精確率和召回率等性能指標(biāo)上均有顯著提升。這一研究對(duì)于DL在網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域的應(yīng)用具有重要的意義,并為進(jìn)一步改進(jìn)和優(yōu)化網(wǎng)絡(luò)入侵檢測(cè)算法提供了有益的思路和參考。未來(lái)的研究可以進(jìn)一步探索不同的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練策略,以提升網(wǎng)絡(luò)入侵檢測(cè)的性能和魯棒性。