版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測本章從人工神經(jīng)網(wǎng)絡(luò)的角度出發(fā),對基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng)展開研究。在嘗試用不同的網(wǎng)絡(luò)結(jié)構(gòu)訓練和測試神經(jīng)網(wǎng)絡(luò)后,引入dropout層并給出了一種效果較好的網(wǎng)絡(luò)結(jié)構(gòu)。基于該網(wǎng)絡(luò)結(jié)構(gòu),對目前的神經(jīng)網(wǎng)絡(luò)訓練算法進行了改進和優(yōu)化,從而有效避免了訓練時出現(xiàn)的過擬合問題,提升了訓練效率。4.1BP神經(jīng)網(wǎng)絡(luò)相關(guān)理論本章從學習算法與網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合的角度出發(fā),神經(jīng)網(wǎng)絡(luò)包括單層前向網(wǎng)絡(luò)多層前向網(wǎng)絡(luò)、反饋神經(jīng)網(wǎng)絡(luò)、隨機神經(jīng)網(wǎng)絡(luò)、競爭神經(jīng)網(wǎng)絡(luò)等多種類型。構(gòu)造人工神經(jīng)網(wǎng)絡(luò)模型時主要考慮神經(jīng)元的特征、網(wǎng)絡(luò)的拓補結(jié)構(gòu)以及學習規(guī)則等。本文選擇反向傳播神經(jīng)網(wǎng)絡(luò)(BackPropagationNeu
2、ralNetwork,BPNN)作為基本網(wǎng)絡(luò)模型。BP神經(jīng)網(wǎng)絡(luò)是一種通過誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伾窠?jīng)網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型形式之一。網(wǎng)絡(luò)中每一層的節(jié)點都只接收上一層的輸出,而每一層節(jié)點的輸出都只影響下一層的輸入,同層節(jié)點之間沒有交互,相鄰兩層節(jié)點之間均為全連接模式。BP神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上分為輸入層、隱含層與輸出層三部分,其拓撲結(jié)構(gòu)如圖4-1所示。鎬入層隱含層幡出層圖4-1BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)Figure4-1TopologicalStructureofBPNeuralNetwork這里隱含層既可以是一層也可以是多層,數(shù)據(jù)在輸入后由隱含層傳遞到輸出層,通過各層的處理最終得到輸出結(jié)
3、果。傳統(tǒng)的BP網(wǎng)絡(luò)算法可分為兩個過程:神經(jīng)網(wǎng)絡(luò)中信號的前向傳播和誤差函數(shù)的反向傳播。算法在執(zhí)行時會不斷調(diào)整網(wǎng)絡(luò)中的權(quán)值和偏置,計算輸出結(jié)果與期望結(jié)果之間的誤差,當誤差達到預(yù)先設(shè)定的值后,算法就會結(jié)束。(1)前向傳播隱含層第J個節(jié)點的輸出通過式(4-1)來計算:(4-1)式中sij代表輸入層到隱含層的權(quán)重,aj代表輸入層到隱含層的偏置,n為輸入層的節(jié)點個數(shù),f(.)為激活函數(shù)。輸出層第k個節(jié)點的輸出通過式(4-2)來計算:(4-2)式中sjk代表隱含層到輸出層的權(quán)重,bk代表隱含層到輸出層的偏置,1為隱含層的結(jié)點個數(shù)。根據(jù)實際輸出與期望輸出來計算誤差,見式(4-3)。丘=*5?氏_ST=字用Jt
4、-L(4-3)式中(Yk-Ok)用ek來表示,Yk代表期望輸出,m為輸出層的結(jié)點個數(shù)。當E不滿足要求時,就會進入反向傳播階段。(2)反向傳播反向傳播是從輸出到輸入的傳播過程。從式(4-1)至式(4-3)中,可以發(fā)現(xiàn)網(wǎng)絡(luò)誤差E是與各層權(quán)值和偏置有關(guān)的函數(shù),所以如果想減小誤差,需要對權(quán)值和偏置進行調(diào)整。一般采取梯度下降法反向計算每層的權(quán)值增量,令權(quán)值的變化量同誤差的負梯度方向成正相關(guān),調(diào)整的原則是令誤差沿負梯度方向不斷減少。權(quán)值的更新公式見式(4-4),偏置的更新公式見式(4-5)。式中n為學習速率。BP算法的整體流程如圖4-2所示。幵始Nt=t+1,工滿至要啟計算每一層各節(jié)點晡輸入°輸
5、出*圧向調(diào)節(jié)T榛在權(quán)值和閩值4榆入今訓傍樣右t=G計聲詒并本卜,的誤羞£初始化網(wǎng)絡(luò)藝數(shù)4_Y結(jié)親圖4-2BP算法流程圖Figure4-2FlowChartofBackPropagationAlgorithm4.2網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計4.2.1設(shè)計思路設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時確定隱含層的層數(shù)以及隱含層的節(jié)點數(shù)是非常重要的。增加隱含層的層數(shù)有利于提高精度同時降低網(wǎng)絡(luò)誤差,但是BP神經(jīng)網(wǎng)絡(luò)的隱含層層數(shù)越多,所需的訓練時間也就越長。對于單隱層神經(jīng)網(wǎng)絡(luò)而言,隱含層的神經(jīng)元數(shù)量過少會導致網(wǎng)絡(luò)的學習能力不足。相反,神經(jīng)元數(shù)量越多,網(wǎng)絡(luò)的學習能力就越強,越容易達到預(yù)期的精度,但是相對地會削弱網(wǎng)絡(luò)的泛化能力,使網(wǎng)絡(luò)容
6、易達到過擬合狀態(tài)。為了保證網(wǎng)絡(luò)擁有足夠強的性能及泛化能力,盡量避免在訓練時出現(xiàn)過擬合現(xiàn)象,本文在設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時主要遵循以下原則:(1)在保證神經(jīng)網(wǎng)絡(luò)檢測精度的前提下,盡量減少神經(jīng)元的數(shù)量;(2)通過仿真實驗試探查找隱含層節(jié)點數(shù)的最優(yōu)值。本文中網(wǎng)絡(luò)結(jié)構(gòu)選擇的是多層前饋神經(jīng)網(wǎng)絡(luò),它的結(jié)構(gòu)雖然簡單,但是能夠?qū)崿F(xiàn)任意精度逼近任意連續(xù)函數(shù),并且可以獲得復雜的處理能力,因此分類能力和模式識別能力一般都會強于反饋網(wǎng)絡(luò)。激活函數(shù)選擇的是線性整流函數(shù)(RectifiedLinearUnit,ReLU),也叫作修正線性單元,函數(shù)曲線如圖4-3所示其公式見式(4-6)。圖4-3ReLU函數(shù)曲線Figure4-3Fu
7、nctionCurveofReLU/(.-d一(4-6)ReLU激活函數(shù)定義了神經(jīng)元在線性變換wTx+b以后的非線性輸出。換句話說,來自上一層網(wǎng)絡(luò)的輸入向量x在進入神經(jīng)元后,將輸出max(O,wtx+b)至下一層神經(jīng)元。采用ReLU激活函數(shù)可以使梯度下降和反向傳播的過程更加高效,同時避免了梯度爆炸與梯度消失的問題。此外,該函數(shù)沒有其他復雜激活函數(shù)如Sigmoid函數(shù)中指數(shù)的影響,并且活躍度較為分散,使得神經(jīng)網(wǎng)絡(luò)整體的計算成本減少,從而簡化計算過程。目標函數(shù)選擇的是Softmax函數(shù)。Softmax函數(shù)是式(4-7)取負對數(shù)后得到的損失函數(shù),其公式見式(4-8)。4.2.2網(wǎng)絡(luò)結(jié)構(gòu)及對應(yīng)實驗分析
8、本文利用生長法來設(shè)計神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),即設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時,首先確定一種較為簡單的網(wǎng)絡(luò)結(jié)構(gòu),然后通過增加隱含層數(shù)和隱含層節(jié)點數(shù)來形成其他的網(wǎng)絡(luò)結(jié)構(gòu)。根據(jù)4.2.1中的設(shè)計思路,設(shè)計并訓練了五種不同的神經(jīng)網(wǎng)絡(luò)模型,對應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖4-4所示。在圖4-4的網(wǎng)絡(luò)結(jié)構(gòu)中,輸入層均由41個神經(jīng)元構(gòu)成,輸出層由5個神經(jīng)元構(gòu)成。X為輸入向量,數(shù)據(jù)輸入后通過隱含層最終輸出分別屬于五個類別的概率,然后將概率最大的類別作為最終的判斷結(jié)果。其中網(wǎng)絡(luò)結(jié)構(gòu)a,b,c包含一個隱含層,分別由50,100,500個神經(jīng)元構(gòu)成;網(wǎng)絡(luò)結(jié)構(gòu)d,e由兩個隱含層構(gòu)成,前者每個隱含層包含50個神經(jīng)元,后者每個隱含層包含100個神經(jīng)元。a
9、)網(wǎng)絡(luò)結(jié)構(gòu)aa)NetworkStructureab)網(wǎng)絡(luò)結(jié)構(gòu)bb)NetworkStructureb223344995SO帝”血C)網(wǎng)絡(luò)結(jié)構(gòu)Cd)網(wǎng)絡(luò)結(jié)構(gòu)dC)NetworkStruCtureCd)NetworkStruCturede)網(wǎng)絡(luò)結(jié)構(gòu)ee)NetworkStruCturee圖4-4神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)Figure4-4StruCtureofNeuralNetwork本章訓練和測試神經(jīng)網(wǎng)絡(luò)時使用了Google推出的Tensorflow深度學習框架,Tensorflow是一個采用數(shù)據(jù)流圖(dataflowgraphs),用于數(shù)值計算的開源軟件庫。它的靈活性和可延展性讓用戶可以在各種平臺上
10、展開計算,例如臺式計算機中的單個或多個CPU(GPU)、服務(wù)器、移動設(shè)備等等,因此主要用于機器學習和深度神經(jīng)網(wǎng)絡(luò)方面的研究。本章實驗部分的機器配置,顯卡采用的是GeForceGT750M,顯存大小為2G,網(wǎng)絡(luò)訓練和測試時使用GPU模式。用完整訓練集分別訓練圖4-4中的五種網(wǎng)絡(luò)結(jié)構(gòu),訓練時的參數(shù)batchsize(每次從訓練集中取的數(shù)據(jù)量)和epochs(使用完整訓練集訓練的輪數(shù))將影響模型的精度和訓練時間。在合理范圍內(nèi)增大batchsize對訓練有一定好處,可以提高訓練的速度,并且batchsize越大其確定的下降方向越準確,引起的訓練震蕩越小。但受顯存的限制,不能無限地增大batchsize
11、,因此在本實驗中batchsize設(shè)為50。Epochs代表使用完整訓練集訓練的輪數(shù),由于訓練集共包含494021條數(shù)據(jù),在batchsize=50的情況下,訓練一次完整的數(shù)據(jù)集就需要9881輪迭代,而完成全部訓練過程的總迭代數(shù)=9881Xepochs??紤]到完整訓練集的數(shù)據(jù)量過于龐大,因此用完整訓練集訓練時epochs設(shè)為50。模型參數(shù)采用高斯分布初始化(Gaussian)方法進行初始化,訓練時使用隨機梯度下降法,基礎(chǔ)學習率設(shè)置為base_lr=0.01調(diào)整策略使用step策略,stepsize=5000,學習率按照式(4-9)進行更新,其中g(shù)amma=0.1,iter是當前的訓練迭代次數(shù)。
12、在以上參數(shù)條件下,本文所設(shè)計的幾種網(wǎng)絡(luò)結(jié)構(gòu)均可以達到收斂。a=basejr憑#測尬口曲£期雖°(4-9)訓練完成后用測試集分別對這五個模型進行測試,得到的結(jié)果見表4-1和4-2表4-1不同網(wǎng)絡(luò)結(jié)構(gòu)每種類別的檢測率Table4-1DetectionRateofDifferentNetworkStructuresforEachCategoryDR(%)NormalDosProbeU2RR2L網(wǎng)絡(luò)結(jié)構(gòu)込98.6797*259L67IO.OS18.85網(wǎng)絡(luò)結(jié)構(gòu)b98.5397J888.4010-1018.80網(wǎng)絡(luò)結(jié)構(gòu)匚98.6897.2489.9610.0718.81網(wǎng)絡(luò)結(jié)構(gòu)U97
13、.5096.8886.599.9718.56網(wǎng)絡(luò)結(jié)構(gòu)e97X596,8286.509.9718.56表4-2不同網(wǎng)絡(luò)結(jié)構(gòu)的整體效果Table4-2OverallEffectUsingTwoTrainingSetstoTraintheStructurea兩軸)FAR(旳TrainingTime(5)TestingTime(s)電絡(luò)結(jié)掏耳92.01140483.99153B.46網(wǎng)絡(luò)姑構(gòu)h0.9016819L711599.53網(wǎng)絡(luò)結(jié)構(gòu)C91.960.S715J272.3617M.11網(wǎng)絡(luò)結(jié)徇d91.560.7225139,761983,05網(wǎng)絡(luò)結(jié)構(gòu)£91.5:0.«725612
14、8,112159,76從表4-1中可以看出使用網(wǎng)絡(luò)結(jié)構(gòu)a訓練的模型在四種攻擊類別上的檢測率都比較高。雖然網(wǎng)絡(luò)結(jié)構(gòu)c在Normal類別上的檢測率高于網(wǎng)絡(luò)結(jié)構(gòu)a,但是對入侵檢測系統(tǒng)來說,檢測出攻擊流量是最為重要的,并且從表4-2中可以看到網(wǎng)絡(luò)結(jié)構(gòu)a對整體攻擊流量的檢測率最高,同時訓練和檢測時間要少于其他四種結(jié)構(gòu),這是由于網(wǎng)絡(luò)結(jié)構(gòu)a的復雜度最低,因此使用它進行訓練和測試所需要的時間也就比較少。綜上所述,本章選取網(wǎng)絡(luò)結(jié)構(gòu)a作為神經(jīng)網(wǎng)絡(luò)的一個基礎(chǔ)候選網(wǎng)絡(luò)結(jié)構(gòu),后續(xù)的研究也主要是在網(wǎng)絡(luò)結(jié)構(gòu)a的基礎(chǔ)上進行一系列的改進。4.2.3Dropout層的引入訓練BP神經(jīng)網(wǎng)絡(luò)時經(jīng)常會遇到的一個問題是容易達到過擬合狀態(tài)
15、,過擬合是指模型在訓練集上損失函數(shù)較小,但是在測試集上損失函數(shù)較大,預(yù)測準確率較低的現(xiàn)象。而dropout的出現(xiàn)可以很好地解決這些問題。dropout是指在神經(jīng)網(wǎng)絡(luò)的訓練過程中,對于網(wǎng)絡(luò)中的神經(jīng)元,按照一定的概率暫時將其從網(wǎng)絡(luò)中丟棄,即在每個batch中,讓一部分隱層節(jié)點值為0。由于是隨機丟棄,所以每一個batch都在訓練不同的網(wǎng)絡(luò),這種方式可以減少神經(jīng)元之間的相互作用。Hinton在論文中證實了dropout對于全連接網(wǎng)絡(luò)有防止過擬合的效果。圖4-5為dropout的可視化表示,其中圖a)為應(yīng)用dropout前的神經(jīng)網(wǎng)絡(luò),圖b)是應(yīng)用dropout后的同一個網(wǎng)絡(luò),虛線代表臨時刪除的神經(jīng)元。a
16、)應(yīng)用out前的神經(jīng)網(wǎng)絡(luò)b)應(yīng)用dropout后的神經(jīng)網(wǎng)絡(luò)a)NeuralNetworkBeforeApplyingDropoutb)NeuralNetworkafterApplyingDropout圖4-5應(yīng)用dropout前后的神經(jīng)網(wǎng)絡(luò)Figure4-5NeuralNetworkBeforeandafterApplyingDropoutDropout會以概率p舍棄部分神經(jīng)元,其他神經(jīng)元以概率1-p被保留,輸入層和輸出層神經(jīng)元不作變動,舍去的神經(jīng)元的輸出都被設(shè)置為零。然后,將輸入數(shù)據(jù)通過修改后的網(wǎng)絡(luò)進行前向傳播,將誤差通過修改后的網(wǎng)絡(luò)進行反向傳播對一個批次的樣本完成上述操作以后,更新相應(yīng)的權(quán)
17、重和偏置,這樣重復迭代處理,直至訓練結(jié)束。Dropout能夠減輕過擬合現(xiàn)象的發(fā)生,主要是因為它達到了一種投票的作用。對于全連接神經(jīng)網(wǎng)絡(luò),用相同的數(shù)據(jù)去訓練多個不同的神經(jīng)網(wǎng)絡(luò)可能會得到多個不同的結(jié)果,這時采用投票機制可以相對提升網(wǎng)絡(luò)的精度與魯棒性。同理,對于單個神經(jīng)網(wǎng)絡(luò)。如果將其進行分批,雖然不同的網(wǎng)絡(luò)可能會產(chǎn)生不同程度的過擬合,但是他們共用一個損失函數(shù),相當于同時對其進行了優(yōu)化,取了平均,因此可以較為有效地防止過擬合的發(fā)生。此外,當隱藏層神經(jīng)元被隨機刪除后使得全連接網(wǎng)絡(luò)具有了一定的稀疏性,從而有效地減輕了不同特征之間的協(xié)同效應(yīng)也就是說,有些特征可能會依賴于特定關(guān)系的隱含節(jié)點的共同作用,而dro
18、pout有效地阻止了那些在其他特征存在下才有效果的情況,提高了神經(jīng)網(wǎng)絡(luò)的魯棒性將dropout添加到4.2.2中的網(wǎng)絡(luò)結(jié)構(gòu)a后訓練使用的epochs量增加為100這是因為dropout會使每次訓練時隨機失效一些節(jié)點,因此需要更多的訓練輪數(shù)來使網(wǎng)絡(luò)達到收斂。表4-3和表4-4展示了添加dropout后網(wǎng)絡(luò)結(jié)構(gòu)a的效果,可以發(fā)現(xiàn)網(wǎng)絡(luò)的檢測效果有一定的提升。雖然訓練時間有所增長,但是訓練時間增長的倍數(shù)并沒有達到與epchos增長相同的倍數(shù),這是由于每次訓練時一些節(jié)點失效,使得實際的網(wǎng)絡(luò)結(jié)構(gòu)要比原始的網(wǎng)絡(luò)結(jié)構(gòu)a更簡單。表4-3添加dropout前后網(wǎng)絡(luò)結(jié)構(gòu)a對每種類別的檢測率Table4-3Detec
19、tionRateofNetworkStructureaforEachCategoryBeforeandafterAddingDR(臨)NormalDosPrpbEU2RR2L添110dropoutnJ9S.6797.1591,6710.081S,85添ilfUropoirt后9蟄669工27giJOID.lll&$0表4-4添加dropout前后網(wǎng)絡(luò)結(jié)構(gòu)a的整體效果Table4-4OverallEffectofNetworkStructureaBeforeandafterAddingDropoutDR(%)PAR(覽)TrainingTimc(s)TestingTimcfs):drop
20、out92.01O.gg140483.9?153846添皿drop<M后9280.90220823*5*159&卩4.3數(shù)據(jù)集聚類與分層檢測框架在神經(jīng)網(wǎng)絡(luò)入侵檢測上的應(yīng)用本文提出了一些針對數(shù)據(jù)集和檢測框架的改進方法,本節(jié)嘗試將部分方法應(yīng)用在神經(jīng)網(wǎng)絡(luò)的入侵檢測上,并通過實驗驗證算法在神經(jīng)網(wǎng)絡(luò)入侵檢測上的效果訓練使用4.2.3中添加了dropout的網(wǎng)絡(luò)結(jié)構(gòu),訓練時batch_size設(shè)為50,epochs設(shè)為100,網(wǎng)絡(luò)初始化和學習率的設(shè)定同4.2.2節(jié)。表4-5用兩種訓練集訓練網(wǎng)絡(luò)結(jié)構(gòu)a所得每種類別的檢測率4-5DetectionRateforEachCategoryUsingT
21、woSetstoTraintheStructureaDR(溝NormalDosProbeU2RR2L完整訓練集98.6697*2791.7010.1118.90子訓練集9855973091.72103521,23表4-6用兩種訓練集訓練網(wǎng)絡(luò)結(jié)構(gòu)a的整體效果Table4-6OverallEffectUsingTwoTrainingSetstoTraintheStructureaDR(怖)FAR羯TrainingTimefaTestingTimc(5)完整訓練集22M23541現(xiàn)12子訓粽集1.15153.671605.29表4-5和表4-6展示了使用聚類后的訓練集的實驗效果,可以發(fā)現(xiàn)用子訓練集訓
22、練神經(jīng)網(wǎng)絡(luò)模型后每一種攻擊的檢測率均高于用完整訓練集訓練神經(jīng)網(wǎng)絡(luò)模型后的檢測率,并且用子訓練集進行訓練所需的時間遠遠低于用完整訓練集訓練的時間。因此在后續(xù)實驗中均采用子訓練集來訓練神經(jīng)網(wǎng)絡(luò)模型。實驗所用網(wǎng)絡(luò)結(jié)構(gòu)如圖4-6所示,由于采用小類別后最終分類目標類別實際有15種,故輸出層由之前的5個節(jié)點改為15個節(jié)點,訓練集得到的結(jié)果見表4-7和表4-8,從表中可以看出這種小類結(jié)構(gòu)的訓練集應(yīng)用于神經(jīng)網(wǎng)絡(luò)后也對檢測效果有了明顯提升,說明這種訓練集的重構(gòu)方法與分類器無關(guān)。圖4-6使用15個小類別的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Figure4-6StructureofNeuralNetworkUsing15SmallCla
23、sses表4-7用小類別訓練集訓練網(wǎng)絡(luò)結(jié)構(gòu)a所得每種類別的檢測率Table4-7DetectionRateforEachCategoryUsingSmallClassTrainingSetstoTraintheStructureaDR(怖)NormalDosProbeU2RR2L王訓練集98.5597.3091.7210.3521.2315小類訓練集98.529732923:5J6.212S.98表4-8用小類別訓練集訓練網(wǎng)絡(luò)結(jié)構(gòu)a的整體效果Table4-8OverallEffectUsingSmallClassTrainingSetstoTraintheStructureaDRWFAR(%)
24、TrainingFjine(s)TestingTime(s)子訓練集92-211,15153.671605,29】5小類訓練集92.肚1.29391.571885J9現(xiàn)對應(yīng)到分層檢測框架中需要使用的是15個二分類器,故模型結(jié)構(gòu)如圖4-7所示,輸出層節(jié)點數(shù)為2。表4-9和表4-10展示了利用神經(jīng)網(wǎng)絡(luò)分層檢測框架進行檢測的結(jié)果,可以發(fā)現(xiàn)Normal.U2R和R2L類別的檢測率有一定的損失,但是剩余二類的檢測率有所提升。檢測率損失的部分原因是Normal,U2R和R2L類別在分層檢測框架中位于框架的末端,故這三類數(shù)據(jù)中有一些被前幾種類別的分類器識別成對應(yīng)類別而未能傳遞到應(yīng)該被正確識別的層次上。但好在
25、這種損失比較輕微,尤其是R2L類別只減少了0.01%的檢測率,并且Probe和Dos類別以及整體的檢測率還有所提升。圖4-7分層檢測框架中用于二分類的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Figure4-7StructureofNeuralNetworkasBinaryClassifierinHierarchicalDetectionFramework.表4-9用神經(jīng)網(wǎng)絡(luò)分層檢測框架檢測所得每種類別的檢測率Table4-9DetectionRateforEachCategoryUsingNeuralNetworkHierarchicalDetectionFrameworkDRNormalDosProbeU2RR2L1
26、5小類訓練集98.11A7.3S1534-10用神經(jīng)網(wǎng)絡(luò)分層檢測框架檢測的整體效果Table4-10OverallEffectUsingNeuralNetworkHierarchicalDetectionFrameworkDR(%)FAR<%)TrainingTiine<$)TestingTimers)15小類訓練集92.811.593510,291401.55本節(jié)的三個實驗可以證明本文提出的對數(shù)據(jù)集的精簡聚類、訓練集數(shù)據(jù)重新構(gòu)造方法和分層檢測框架都是分類器無關(guān)的通用方法,神經(jīng)網(wǎng)絡(luò)可以獲得檢測效果的提升。4.4BP算法優(yōu)化4.4.1傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的局限性盡管傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)在非線
27、性映射能力、自學習和自適應(yīng)、泛化能力和容錯能力等方面相較傳統(tǒng)機器學習方法有一定優(yōu)勢,但是它也在近些年的應(yīng)用中暴露了一些不足之處:(1) 易陷入局部最優(yōu):從數(shù)學的角度上看,BP神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一種基于局部搜索的方法,要解決的問題一般是復雜的非線性問題,其網(wǎng)絡(luò)權(quán)值的調(diào)整是沿局部梯度的方向進行的,有陷入到局部最優(yōu)的風險。同時,BP神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)權(quán)值的初始值比較敏感,使用不同的初始網(wǎng)絡(luò)權(quán)值往往會得到完全不同的結(jié)果。(2) BP神經(jīng)網(wǎng)絡(luò)訓練時的收斂速度較慢:反向傳播算法本質(zhì)是梯度下降,通常給定的目標函數(shù)都比較復雜,因此訓練時往往都會出現(xiàn)震蕩,這使得BP算法的訓練效率變低。與此同時,在訓練中如果神經(jīng)元的輸
28、出比較靠近0或者1,就會出現(xiàn)一些梯度很小的區(qū)域,這些平坦區(qū)內(nèi)的權(quán)值變化往往很小,這使得梯度下降法的訓練非常緩慢;訓練BP神經(jīng)網(wǎng)絡(luò)模型時,對于權(quán)值改變的步長一般也會提前設(shè)置一些靜態(tài)的更新規(guī)則,這些規(guī)則不能及時獲得每次迭代的權(quán)值變化情況,也會引發(fā)一些效率問題。(3) BP神經(jīng)網(wǎng)絡(luò)預(yù)測能力和訓練能力的矛盾問題:一般情況下神經(jīng)網(wǎng)絡(luò)的預(yù)測能力會隨著訓練能力的提升而提高,但是當訓練達到一定程度后,預(yù)測能力反而會有所下降,即出現(xiàn)了過擬合現(xiàn)象。這是由于網(wǎng)絡(luò)學習了過多的樣本細節(jié),導致模型己經(jīng)不能反映總體樣本的規(guī)律,所以如何把握學習的程度來解決網(wǎng)絡(luò)的預(yù)測能力和訓練能力之間的矛盾也是BP神經(jīng)網(wǎng)絡(luò)的重要研究內(nèi)容。4.
29、4.2BP算法的改進針對4.4.1中提出的幾個傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的問題,在先前的研究中已經(jīng)通過在網(wǎng)絡(luò)結(jié)構(gòu)中引入dropout層后在一定程度上解決了BP神經(jīng)網(wǎng)絡(luò)預(yù)測能力和訓練能力的矛盾問題,并且通過使用第三章中重新構(gòu)造的訓練集來優(yōu)化了網(wǎng)絡(luò)的訓練速度。本節(jié)將從BP算法的權(quán)值初始化、增加動量項和自適應(yīng)調(diào)節(jié)學習速率的角度對BP算法進行改進。(1)權(quán)值初始化常用的神經(jīng)網(wǎng)絡(luò)權(quán)值初始化是采用高斯分布來生成隨機初始值,這種做法的本質(zhì)是將所有權(quán)值初始化為接近0的小隨機數(shù),從而避免將權(quán)值全部初始化為0導致的訓練后同層的神經(jīng)元得到相同的參數(shù)的問題。He等人提出了一種針對ReLU神經(jīng)元的特殊初始化,文章給出了采用ReL
30、U神經(jīng)元的網(wǎng)絡(luò)在通過高斯分布對權(quán)值進行初始化時的方差設(shè)置方法?;诜讲畹挠嬎悴隦eLU神經(jīng)元函數(shù)公式,最后推導出的方差表達式如式(4-10)所示,其中nl指第1層的維數(shù),Varwl指第1層的參數(shù)的方差,即wl的初始化公式為N(0,2/nl),本文將此公式作為神經(jīng)網(wǎng)絡(luò)參數(shù)的初始化公式。(4-10)、畑曬=1(2)增加動量項BP神經(jīng)網(wǎng)絡(luò)在訓練過程中調(diào)整權(quán)值時,只按照當前迭代的梯度下降方向進行調(diào)整,而未考慮之前迭代的梯度方向,這有可能會導致訓練出現(xiàn)震蕩而減慢收斂速度。為了解決這一問題,考慮在權(quán)值調(diào)整公式中添加動量項,動量項實際上是從前一次權(quán)值調(diào)整中取出一部分疊加到本次權(quán)值調(diào)整中,添加動量項以后的
31、權(quán)值調(diào)整表達式如式(4-11)所示。式中的mcAwij(k)即為動量項,mcAwij(k)=mc(wij(k)-Wij(k)-l),其中me代表動量因子,0Wmcv1,本實驗中me取0.9可以看出動量項反映了上一次迭代所積累的調(diào)整經(jīng)驗。旳點+D=十+mcAwifCk)(4-11)動量項的作用如下:在訓練過程中,當順序加入訓練數(shù)據(jù)時,在第t次迭代時,如果本次迭代的dE(t)/dwij(式中E為單個樣本的訓練誤差)和上一次迭代同符號,動量項起到加快調(diào)節(jié)權(quán)值wij的作用;而如果本次迭代的dE(t)/dwij和上一次迭代正負相反,說明有一定的震蕩存在,此時動量項使得權(quán)值Wij的變化變小,起到了穩(wěn)定的作
32、用。(3)自適應(yīng)調(diào)節(jié)學習率學習率n也稱為步長,在標準bp算法中設(shè)置為一個常數(shù),然而在實際應(yīng)用中一般不會將其固定,比如在本節(jié)之前的網(wǎng)絡(luò)訓練中,使用式(4-9)來改變學習率,本質(zhì)上就是隨著訓練迭代次數(shù)的增加,逐步降低學習率,使訓練得以收斂。這種降低學習率的方法通常按照經(jīng)驗設(shè)置參數(shù)值,設(shè)定較為困難,并且若只根據(jù)迭代次數(shù)去調(diào)整學習率,在遇到本章研究中這種需要頻繁更換網(wǎng)絡(luò)結(jié)構(gòu)和實驗訓練集的條件下難以保證效果,故引入一種自適應(yīng)調(diào)節(jié)學習率的方法。從bp算法在訓練時學習率n的作用來看,n太小會使訓練迭代次數(shù)增加,此時希望加大n的值;而當誤差變化劇烈時,學習率n太大則會導致對權(quán)值的調(diào)整量過大,很容易跳過最優(yōu)點,使訓練迭代次數(shù)增加,此時則希望降低學習率n的值。為此提出一種可變學習率的BP算法,其規(guī)則如式(4-12)所示。式中a和B是設(shè)置的用于調(diào)整學習率變化的參數(shù),范圍是(0,1),實驗中a=0.53=0.2,Y是設(shè)置的用于條件判斷的參數(shù),實驗中設(shè)定為3%。<(1-ar)x譏隹-1)-1)>y7j(k)=|(1+/?)x-1)AE(k1)<0(4-12)公式所代表的含義是,如果迭代的均方誤差增加且超
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 繩鋸切割橋臺施工方案
- 重慶環(huán)氧地坪施工方案
- 鉬鎳礦渣治理施工方案
- 路燈景觀燈安裝施工方案
- 鋁合金花箱護欄施工方案
- 設(shè)備維修準備方案
- 門頭安裝施工方案
- 租房開放陽臺改造方案
- 伸縮晾衣桿陽臺施工方案
- 綠化養(yǎng)護管理方案投標
- 河南省鄭州外國語高中-【高二】【上期中】【把握現(xiàn)在 蓄力高三】家長會【課件】
- 天津市武清區(qū)2024-2025學年八年級(上)期末物理試卷(含解析)
- 2025年中煤電力有限公司招聘筆試參考題庫含答案解析
- 企業(yè)內(nèi)部控制與財務(wù)風險防范
- 高端民用航空復材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 建設(shè)項目施工現(xiàn)場春節(jié)放假期間的安全管理方案
- 胃潴留護理查房
- 污水處理廠運營方案計劃
- 山東省高等學校精品課程
- 三菱張力控制器LE-40MTA-E說明書
- 生活垃圾填埋場污染控制標準
評論
0/150
提交評論