李玉峰,明拓思宇,魏 鵬
(1.上海大學(xué)計算機工程與科學(xué)學(xué)院,上海200444;2.31401部隊,吉林吉林132000;3.61660部隊,北京100089)
DBN 是深度學(xué)習(xí)中的一種經(jīng)典模型,通過學(xué)習(xí)一種深層非線性網(wǎng)絡(luò)結(jié)構(gòu),實現(xiàn)對復(fù)雜函數(shù)的逼近,目的是提升分類或預(yù)測的準(zhǔn)確性,常用模型主要是卷積神經(jīng)網(wǎng)絡(luò)、自動編碼器等[1]。同時,DBN也是一種由多層無監(jiān)督學(xué)習(xí)的限制玻爾茲曼機(restricted Boltzmann machine,RBM)和一層有監(jiān)督學(xué)習(xí)的BP神經(jīng)網(wǎng)絡(luò)組合成的深度神經(jīng)網(wǎng)絡(luò)分類器[2],在語音識別,圖像識別等領(lǐng)域應(yīng)用廣泛。
DBN基本網(wǎng)絡(luò)結(jié)構(gòu)及權(quán)值和閾值參數(shù)是分類器檢測速度和精度的關(guān)鍵,其中,DBN的基本網(wǎng)絡(luò)結(jié)構(gòu)指DBN深度、每層神經(jīng)元的個數(shù)。因此,可以通過以下兩種方式優(yōu)化DBN分類器性能:對DBN網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu),即找到合適的DBN深度及其每層的神經(jīng)元個數(shù),若DBN網(wǎng)絡(luò)太復(fù)雜,會導(dǎo)致DBN訓(xùn)練時間過長,若網(wǎng)絡(luò)太簡單,則會影響DBN分類準(zhǔn)確率;對DBN模型中基本網(wǎng)絡(luò)結(jié)構(gòu)上的權(quán)值或閾值參數(shù)進行優(yōu)化調(diào)整,若參數(shù)設(shè)置不合理,則無法生成有效的訓(xùn)練模型,容易降低DBN分類準(zhǔn)確率。在不確定DBN網(wǎng)絡(luò)結(jié)構(gòu)的情況下,直接優(yōu)化DBN模型參數(shù)難度較大,而直接優(yōu)化DBN網(wǎng)絡(luò)結(jié)構(gòu)計算成本較小,故本文通過優(yōu)化DBN網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整DBN模型。
DBN網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化問題公開文獻(xiàn)較少,大都采用圖像領(lǐng)域、語音識別等領(lǐng)域的經(jīng)驗方法設(shè)定。目前,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)或參數(shù)尋優(yōu)問題可借鑒的研究方法主要是演化計算[3],它是模擬自然界中生物演化過程產(chǎn)生的一種群體導(dǎo)向隨機搜索技術(shù)和方法,該方法主要圍繞三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)的優(yōu)化問題展開研究。簡要文獻(xiàn)如下:文獻(xiàn)[4]將通過粒子群優(yōu)化算法(particle swarm optimization,PSO)優(yōu)化了權(quán)重矩陣和閾值的BP神經(jīng)網(wǎng)絡(luò)(back propagation neural networks,BPNN)作為分類器;文獻(xiàn)[5]使用RBF神經(jīng)網(wǎng)絡(luò)(radial basis function,RBFNN)作為分類器,通過PSO優(yōu)化了RBFNN隱含層的寬度及隱含層到輸出層間的網(wǎng)絡(luò)權(quán)重。文獻(xiàn)[6]將自組織徑向基函數(shù)(a self-organizing radial basis function,SORBF)神經(jīng)網(wǎng)絡(luò)作為分類器,利用非線性回歸函數(shù)調(diào)整PSO的慣性權(quán)重,并利用改進PSO尋優(yōu)SORBF的單隱含層節(jié)點個數(shù)和網(wǎng)絡(luò)權(quán)重。傳統(tǒng)PSO網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化算法都是針對BP、RBF等的單隱含層網(wǎng)絡(luò)的參數(shù)和隱含層節(jié)點個數(shù)進行優(yōu)化,缺乏對多隱含層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu)的成果。
本文將DBN模型作為入侵檢測分類模型,針對DBN模型中多隱含層神經(jīng)網(wǎng)絡(luò)的優(yōu)化問題,提出一種用于構(gòu)建和優(yōu)化基于DBN的入侵檢測分類模型的演化算法,將粒子和隱含層結(jié)構(gòu)相對應(yīng),采用基于人工魚群(Artificial fish swarm)PSO算法聯(lián)合基于環(huán)形滑動窗口PSO算法尋優(yōu)到使DBN模型分類性能優(yōu)越且結(jié)構(gòu)簡單的隱含層結(jié)構(gòu)。本文克服了文獻(xiàn)[4]-[6]只能對單隱含層的神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,且優(yōu)化算法結(jié)構(gòu)簡單,缺乏針對性問題,引入魚群思想,有利于粒子群快速跳出局部最優(yōu)解,且增加了傳統(tǒng)粒子群位置移動方式,有利于粒子群確定最佳隱含層個數(shù);引入滑動窗口機制,可以保留粒子群對應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)某些位置中較優(yōu)的值,能夠找到更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。值得一提,本文DBN模型的權(quán)重或閾值參數(shù)主要是在DBN基本網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上根據(jù)DBN自適應(yīng)調(diào)節(jié)機制自動生成。
如圖1所示,DBN由多層RBM和一層BP神經(jīng)網(wǎng)絡(luò)組成,其中,RBM是由輸入層和隱含層組成的雙層神經(jīng)網(wǎng)絡(luò),RBM同一層節(jié)點之間缺乏直接連接,只有輸入層和隱含層之間存在連接,BP神經(jīng)網(wǎng)絡(luò)是一種按誤差反向傳播訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),主要用于分類數(shù)據(jù)。DBN訓(xùn)練過程是自底向上利用每一層RBM對輸入層的輸入數(shù)據(jù)進行提取、抽象,并通過隱含層輸出,將輸出信息作為上層網(wǎng)絡(luò)的輸入數(shù)據(jù)。其中,上層網(wǎng)絡(luò)指RBM網(wǎng)絡(luò)或頂部BP神經(jīng)網(wǎng)絡(luò),RBM個數(shù)是n(n>1),與DBN的隱含層個數(shù)相等,第d層隱含層表示為hd(d=1,2,…,n),其節(jié)點個數(shù)表示為num(hd)。
圖1 DBN結(jié)構(gòu)
本文的DBN基本網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、輸出層及每層隱含層節(jié)點個數(shù),其中,輸入層節(jié)點個數(shù)對應(yīng)特征個數(shù),輸出層節(jié)點個數(shù)對應(yīng)數(shù)據(jù)類別總數(shù),因此只需尋優(yōu)隱含層數(shù)n和每層隱含層節(jié)點個數(shù)num(hd)即可,為此,可以引入以粒子群為代表的演化計算以尋優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)。
粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法是由Kennedy和Eberhart提出的一種演化方法,可以用來解決許多工程問題[7]。每個粒子都有自己的位置和移動速度。為了保存最佳位置,粒子記錄其歷史最好的位置,稱為pbest,以及所有粒子的歷史最佳位置,稱為gbest,其中,粒子位置的優(yōu)劣可由適應(yīng)度標(biāo)準(zhǔn)判定[8]。pbest和gbest用于確定速度矢量,由xi和vstepi表示的第i個粒子的位置和速度根據(jù)以下等式(1)和(2)進行更新:
(1)
(2)
其中,t表示迭代次數(shù),d是向量中的第d項或搜索空間的第d維,pbestid和gbestd分別表示pbest和gbest的第d維,randi1和randi2是[0,1]之間的隨機數(shù),w是慣性權(quán)重,通過式(3)確定,c1體現(xiàn)了粒子對自身的學(xué)習(xí)能力,c2體現(xiàn)了粒子對群體的學(xué)習(xí)能力[9],c1遞減和c2遞增有利于發(fā)揮粒子初期探索和后期對群體的認(rèn)知能力。因此本文學(xué)習(xí)因子c1、c2賦值如式(4)和(5)。
(3)
(4)
(5)
其中,wmax和wmin分別表示慣性權(quán)重的最大值和最小值,maxt表示最大迭代次數(shù),c3和c4是常數(shù),且c3 PSO有三個主要的變體,即實數(shù)、二進制和整型PSO。由于DBN的深度和隱含層的寬度都是整型數(shù)據(jù),因此,本文將使用整型PSO來優(yōu)化DBN網(wǎng)絡(luò)結(jié)構(gòu)。 本文入侵檢測分類模型DBN的基本網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建和尋優(yōu)概要流程如圖2所示。DBN網(wǎng)絡(luò)結(jié)構(gòu)的輸入層數(shù)和數(shù)據(jù)特征個數(shù)有關(guān),輸出層數(shù)和類別數(shù)量有關(guān),故只需要尋優(yōu)隱含層結(jié)構(gòu),將隱含層結(jié)構(gòu)中每層隱含層節(jié)點個數(shù)和粒子中非零元素的每一維相對應(yīng),通過隨機方式生成的整型粒子群swarm作為初始網(wǎng)絡(luò)結(jié)構(gòu),swarm=[x1,x2,…,xi,…,xn]T,swarm粒子群對應(yīng)的速度矩陣svstep=[vstep1,vstep2,…,vstepi,…,vstepn]T,第i個粒子位置xi=[num(hi1),num(hi2),…,num(hid),…,num(hin)],第i個粒子速度vstepi=[vsi1,vsi2,…,vsid,…,vsin],smin≤num(hid)≤smax,vmin≤vsid≤vmax,其中,smin和smax表示粒子位置中元素最小值和最大值,vmin和vmax表示粒子速度中元素最小值和最大值,num(hid)和vsid都是整數(shù)。 圖2 DBN網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu)概要流程 如圖2所示,本文提出的魚群思想優(yōu)化PSO聯(lián)合滑動窗口優(yōu)化PSO算法,具有尋優(yōu)DBN基本網(wǎng)絡(luò)結(jié)構(gòu)的功能,最終實現(xiàn)對基于DBN的入侵檢測分類模型的構(gòu)建和優(yōu)化。首先將初始網(wǎng)絡(luò)結(jié)構(gòu)作為初始粒子群,基于魚群行為的PSO算法搜索初始優(yōu)化粒子,將搜尋到的初始優(yōu)化粒子作為入侵檢測模型中DBN的網(wǎng)絡(luò)結(jié)構(gòu)[10],入侵檢測模型對入侵檢測數(shù)據(jù)集進行檢測后得到分類準(zhǔn)確率、誤報率和漏報率[11],并求解出適應(yīng)度,記錄每個粒子的歷史個體極值,將其作為候選初始優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),然后判斷是否結(jié)束迭代,若不結(jié)束則繼續(xù)搜尋初始優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),否則選取歷史個體極值平均適應(yīng)度最優(yōu)粒子的前N個最優(yōu)個體極值作為初始優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。將初始優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)作為初始粒子群,基于環(huán)形滑動窗口的PSO算法搜尋全局優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),搜尋過程和基于魚群行為的PSO算法尋優(yōu)初始優(yōu)化粒子流程基本相同,其中,將每輪迭代中適應(yīng)度最優(yōu)粒子作為候選全局優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),迭代結(jié)束后將適應(yīng)度最優(yōu)粒子作為全局優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),最終完成對入侵檢測分類模型的構(gòu)建和優(yōu)化過程。 針對圖2中的適應(yīng)度標(biāo)準(zhǔn),本文提出的適應(yīng)度函數(shù)如式(6)。 (6) ERRate=1-Accuracy (7) 其中,Accuracy指分類準(zhǔn)確率,如式(8)。 (8) 其中,在入侵檢測中TP和TN表示正確分類的正常數(shù)據(jù)和異常數(shù)據(jù);FP和FN表示錯誤分類的正常數(shù)據(jù)和異常數(shù)據(jù),即誤報和漏報。 (9) (10) 通過構(gòu)建如式(6)的適應(yīng)度函數(shù),在確保Accuracy的前提下,本文方法可找到DBN隱含層深度dim和整體網(wǎng)絡(luò)結(jié)構(gòu)xi的優(yōu)化配置組合,實現(xiàn)了對DBN網(wǎng)絡(luò)結(jié)構(gòu)的尋優(yōu)。 人工魚群算法是一種基于動物自治體的優(yōu)化策略[12],其基本思想是:魚類聚集至多的地方食物一般也非常豐富;根據(jù)上述特點構(gòu)造人工魚,并模擬魚群聚群、追尾和覓食行為[13],通過魚群虛擬水域中游動實現(xiàn)尋優(yōu)。 本文利用魚群思想優(yōu)化PSO尋找初始優(yōu)化粒子,將人工魚群算法中的聚群、追尾和覓食行為用于改進PSO算法的移動方式,基于魚群思想的粒子群算法基本流程如下: 算法1:粒子群聚群活動算法 Step1:粒子執(zhí)行聚群行為:探測其鄰域粒子中心xj,若適應(yīng)度(求極小值問題)Fitnessi>Fitnessj,則向中心位置xj如式(11)前進一步,否則跳到Step2。其中,函數(shù)rand產(chǎn)生范圍[0,1]的隨機數(shù) (11) Step2:粒子執(zhí)行覓食行為:在其Visual內(nèi)隨機選擇一個粒子xk,xk如式(12)。如果適應(yīng)度(求極小值問題)Fitnessi>Fitnessk,則向該方向前進一步,如式(13)。其中,Step (12) (13) Step3:粒子執(zhí)行隨機行為:當(dāng)前粒子在視野范圍內(nèi)隨機選擇一個新粒子,然后向該粒子方向移動,作為一種缺省行為,如式(14); (14) 雖然魚群優(yōu)化PSO可以尋優(yōu)初始優(yōu)化粒子,但是粒子群的移動會改變所有位置的值,不會留存某些位置較優(yōu)的值。本文在尋優(yōu)初始優(yōu)化粒子基礎(chǔ)上,引入滑動窗口機制優(yōu)化粒子群算法,尋找全局優(yōu)化粒子。 傳統(tǒng)PSO基于全維度向個體極值和群落全局最優(yōu)解的位置移動,粒子群無法保留某些維對應(yīng)的優(yōu)良值,致使無法找到更好的優(yōu)化解。滑動窗口是通信領(lǐng)域中的一種流量控制技術(shù),可用來控制網(wǎng)絡(luò)中的流量[15]。本文將滑動窗口用于優(yōu)化粒子群移動,通過限定粒子指定長度的連續(xù)位置,控制粒子部分維度進行移動,能夠更精確地找到優(yōu)化解[16]。但如果初始粒子群不夠優(yōu)良,基于環(huán)形滑動窗口的粒子群算法尋優(yōu)效果會受影響。本文在魚群思想優(yōu)化粒子群得到優(yōu)良粒子的基礎(chǔ)上,利用基于環(huán)形滑動窗口的粒子群進行搜索,環(huán)形滑動窗口基本結(jié)構(gòu)如圖3:其中,1,2,…,n表示粒子的維數(shù),本文中基于滑動窗口的粒子群算法基本流程如下: 算法2:粒子群環(huán)形滑動窗口算法 Step1:判定迭代次數(shù)d是否滿足d 圖3 環(huán)形滑動窗口圖 綜上,將魚群思想優(yōu)化PSO和環(huán)形滑動窗口優(yōu)化PSO算法相結(jié)合,該算法首先利用魚群思想優(yōu)化的PSO搜索初始優(yōu)化粒子,再利用滑動窗口優(yōu)化的PSO對初始優(yōu)化粒子搜索找到全局優(yōu)化解。本文算法中粒子群大小均為n2,粒子中非零元素個數(shù)和隱含層個數(shù)一致,其中,魚群思想優(yōu)化的PSO中粒子群swarm中粒子的維度取決于n的大小,即聯(lián)合算法中第n次迭代的魚群思想優(yōu)化PSO中粒子群總維度就是n;環(huán)形滑動窗口優(yōu)化的PSO中粒子群swarm2第i個粒子表示有l(wèi)ength個隱含層的網(wǎng)絡(luò)結(jié)構(gòu),第i個粒子xi=[num(hi1),num(hi2),…,num(hilength)],粒子速度vstepi=[vsi1,vsi2,…,vsilength],length取決于初始優(yōu)化粒子的維度。本文算法基本流程如算法3:該算法中,魚群思想優(yōu)化PSO算法模仿學(xué)習(xí)了鳥群飛行過程,并利用魚群思想中的追尾、覓食、聚群行為豐富和優(yōu)化鳥群的飛行行為,有利于尋優(yōu)到效果較為良好的初始優(yōu)化解。將初始優(yōu)化解作為滑動窗口優(yōu)化PSO的初始解,滑動窗口優(yōu)化PSO算法中的滑動窗口可以用來控制粒子中允許進行飛行行為的維度,有利于保護效果較為良好的部分維度,并繼續(xù)對滑動窗口范圍內(nèi)的維度進行搜索,可以更精確有效地搜尋到效果較好的全局優(yōu)化解。 入侵檢測系統(tǒng)(intrusion detection system,IDS)通過對網(wǎng)絡(luò)上獲取的信息進行分析處理,實現(xiàn)對攻擊行為的檢測,文獻(xiàn)[17]將DBN應(yīng)用于入侵檢測模型中,基于KDD CUP99數(shù)據(jù)集進行實驗,發(fā)現(xiàn)DBN性能優(yōu)于支持向量機(support vector machine,SVM) 算法3:魚群思想優(yōu)化PSO聯(lián)合滑動窗口優(yōu)化PSO算法 輸入:訓(xùn)練集Trset,測試集Teset,粒子群的權(quán)值w,學(xué)習(xí)因子c1、c2,粒子最大速度vmax和最小速度vmin,聚群或覓食行為的試探次數(shù)trytimes,視野范圍Visual,移動步長Step,DBN隱含層最大寬度smax和最小寬度smin,魚群思想優(yōu)化PSO的最大迭代次數(shù)fmaxiter和環(huán)形滑動窗口優(yōu)化PSO的最大迭代次數(shù)wmaxiter,迭代次數(shù)iter=0,iter2=0,窗口滑動次數(shù)d=0,DBN隱含層數(shù)n=1,最大DBN隱含層數(shù)nmax 輸出:全局優(yōu)化極值gbest Step1:若n≤nmax,跳到Step2,否則跳到Step9; Step2:根據(jù)n值隨機初始化粒子群swarm,初始化swarm2為零矩陣,求解swarm的適應(yīng)度fswarm,初始化pbest為swarm,初始化gbest為swarm中最優(yōu)適應(yīng)度粒子,并求其適應(yīng)度fgbest,初始化第i個粒子pbest的極值記錄矩陣temppbesti和其適應(yīng)度ftemppbesti; Step3:魚群優(yōu)化過程中,若當(dāng)前迭代次數(shù)iter≤fmaxiter,跳到Step4,否則跳到Step5; Step4:更新粒子慣性權(quán)重,粒子群速度、位置及其適應(yīng)度,pbest和gbest及其適應(yīng)度。粒子群如算法1執(zhí)行聚群活動算法,并記錄每個粒子的pbest到temppbest中,然后跳到Step3; Step5:求解每個粒子temppbest的平均適應(yīng)度,選取temppbest平均適應(yīng)度最優(yōu)的粒子,將該粒子temppbest中適應(yīng)度最優(yōu)前n個pbest清除零元素后賦值給新的粒子群swarm2,并更新ftemppbest; Step6:滑動窗口優(yōu)化過程中,若當(dāng)前迭代次數(shù)iter2≤wmaxiter,跳到Step7,否則跳到Step8; Step7:如式(3)更新粒子慣性權(quán)重w,如式(4),(5)更新學(xué)習(xí)因子c1、c2,粒子群如算法2執(zhí)行基于環(huán)形滑動窗口的PSO算法,然后跳到Step6; Step8:將每次循環(huán)后得到的全局優(yōu)化粒子gbest當(dāng)作DBN在隱含層數(shù)為n的優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),并記錄下來,且令n=n+1,然后跳到Step1。 Step9:選取DBN隱含層數(shù)為n(n=1,2,…,nmax)中適應(yīng)度最優(yōu)的DBN隱含層結(jié)構(gòu)。 Step10:基于適應(yīng)度最優(yōu)的DBN隱含層結(jié)構(gòu)構(gòu)建DBN最終分類模型和人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)。 文獻(xiàn)[18]提出一種基于DBN和概率神經(jīng)網(wǎng)絡(luò)(probabilistic neural network,PNN)的入侵檢測模型,利用DBN模型對入侵?jǐn)?shù)據(jù)降維,并使用PNN對降維后的數(shù)據(jù)進行分類,實驗結(jié)果表明DBN-PNN分類性能優(yōu)于傳統(tǒng)PNN。其中,DBN的網(wǎng)絡(luò)結(jié)構(gòu)直接決定入侵檢測性能。雖然已有DBN應(yīng)用于入侵檢測的相關(guān)成果,但缺乏對DBN網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu)的研究,本文將第三章方法用于尋找DBN優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),然后構(gòu)建出DBN分類模型,將其應(yīng)用于IDS中,并取得了良好的實驗效果。 KDD CUP99數(shù)據(jù)集是網(wǎng)絡(luò)入侵檢測領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)集,其源于美國國防部高級計劃署DARPA的入侵檢測項目,由Lincoln實驗室主持完成。雖然該數(shù)據(jù)集到目前已有近20年歷史,但其仍然反映了網(wǎng)絡(luò)中最基本的攻擊類型和攻擊特征,是入侵檢測領(lǐng)域的事實Benchmark,為基于計算智能的入侵檢測技術(shù)研究奠定了基礎(chǔ)[19]。因此,即使在當(dāng)前網(wǎng)絡(luò)環(huán)境下,該數(shù)據(jù)集也常被研究人員應(yīng)用在學(xué)術(shù)范圍內(nèi)檢驗入侵檢測分類模型的優(yōu)劣。KDD CUP99數(shù)據(jù)集中每個網(wǎng)絡(luò)連接都標(biāo)記為正常和異常,異常類型分為Probe(掃描與探測)、DoS(拒絕服務(wù)攻擊)、U2R(對本地超級用戶的非法訪問)和R2L(未經(jīng)授權(quán)的遠(yuǎn)程訪問)等4大類型,包含共39種攻擊類型。 本文選取的KDD CUP99樣本數(shù)據(jù)集如表1所示。 表1 KDD CUP99樣本數(shù)據(jù)集 深度信念網(wǎng)絡(luò)的輸入層神經(jīng)元中必須輸入浮點數(shù),浮點數(shù)值的范圍是從0到1。預(yù)處理數(shù)據(jù)有兩個階段,如下所示: 1)特征的數(shù)值化。 使用新的編碼映射方法,可以將protocol_type特征映射到有序數(shù)字,例如協(xié)議類型:tcp=[1,0,0],協(xié)議類型:udp=[0,1,0],協(xié)議類型:icmp3=[0,0,1]。同樣,具有53個不同值的符號特征“service”和具有10個不同值的“flag”特征可以映射到有序數(shù)字。最后,41個特征被數(shù)字化為104個特征。 2)數(shù)字特征的歸一化。 為了消除每個特征的維數(shù)影響,必須對訓(xùn)練集和測試集進行歸一化。根據(jù)下面的數(shù)據(jù)變換式(15),在第一階段獲得的數(shù)據(jù)集 (15) 中的每個數(shù)值在范圍[0,1]上被歸一化。 其中,Yoriginal是一個數(shù)值,Ymin是屬于y特征的最小值,Ymax是屬于y特征的最大值。 六種優(yōu)化算法公共參數(shù)如表2所示。本文算法非公共參數(shù)設(shè)置如下:設(shè)置權(quán)值wmax=0.9,wmin=0.4,學(xué)習(xí)因子c1=1.5,c2=1.0,聚群行為的試探次數(shù)Trytimes=5,視野范圍Visual=150,設(shè)置移動步長Step=5。設(shè)置循環(huán)次數(shù)fmaxiter略多于wmaxiter更有利于尋優(yōu)初始解,且不會影響尋優(yōu)全局優(yōu)化解,因此,設(shè)置本文循環(huán)次數(shù)fmaxiter=60,wmaxiter=40。其它優(yōu)化算法循環(huán)次數(shù)均設(shè)置為maxiter=100。 表2 六種優(yōu)化算法公共參數(shù)設(shè)置 本文實驗的計算機操作系統(tǒng)為 Windows 10,處理器為Intel(R)Core(TM)i5-3230M 2.60 GHz,內(nèi)存為4GB,測試環(huán)境為Matlab 2014b。本文在4.3節(jié)參數(shù)條件下進行實驗,從尋優(yōu)到的DBN模型最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)、平均訓(xùn)練時間、平均檢測時間、平均分類準(zhǔn)確率、平均誤報率六個方面,對比了APSO[6]、CMPSO[20]、PSO[21]、本文算法的分支人工魚群算法優(yōu)化PSO(AFSA-PSO)和滑動窗口優(yōu)化PSO算法,得到如下實驗結(jié)果。 1)表3給出了六種優(yōu)化算法在10次相同實驗尋優(yōu)到的網(wǎng)絡(luò)結(jié)構(gòu)中最佳DBN網(wǎng)絡(luò)結(jié)構(gòu)。從表3中發(fā)現(xiàn),相較其它優(yōu)化算法,本文算法及其分支人工魚群優(yōu)化PSO算法得到的DBN模型最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)隱含層數(shù)只有四層,且隱含層節(jié)點總數(shù)至少,有利于提高入侵檢測中的檢測速度。 表3 六種優(yōu)化算法得到的DBN模型最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu) 2)表4給出了六種優(yōu)化算法10次相同實驗下尋優(yōu)到的網(wǎng)絡(luò)結(jié)構(gòu)平均訓(xùn)練時間以及最佳DBN網(wǎng)絡(luò)結(jié)構(gòu)的平均檢測時間,從圖4和圖5中發(fā)現(xiàn),不同數(shù)據(jù)集中,相比其它模型,本文算法尋優(yōu)的最佳網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練時間增加了至多7.37%,但平均檢測時間降低了至少7.51%,至多54.96%,由此說明,本文算法時間復(fù)雜度雖然略微提升,但卻能有效尋找到更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。其中,AFSA-PSO算法得到的訓(xùn)練時間是最長的,但是得到的檢測時間僅長于本文算法;滑動窗口優(yōu)化PSO得到的訓(xùn)練時間和檢測時間在優(yōu)化算法中均處于中等水平。本文算法將上述兩者相聯(lián)合進行尋優(yōu),雖然以提高一定訓(xùn)練時間為代價,但有利于獲取使得檢測時間更短的DBN網(wǎng)絡(luò)結(jié)構(gòu)。 圖4 六種優(yōu)化算法平均訓(xùn)練時間對比 圖5 六種優(yōu)化算法平均檢測時間對比 表4 六種優(yōu)化算法得到的平均訓(xùn)練時間和平均檢測時間 3)表5中給出了六種優(yōu)化算法得到的最佳DBN網(wǎng)絡(luò)結(jié)構(gòu)平均分類準(zhǔn)確率以及平均誤報率對比。從表5、圖6和圖7中發(fā)現(xiàn):本文算法尋優(yōu)的最佳網(wǎng)絡(luò)結(jié)構(gòu)相比其它模型,平均分類準(zhǔn)確率增加至少0.924%,至多2.176%,平均誤報率降低了至少0.228%,至多0.864%,相較其它優(yōu)化算法,本文算法得到的平均分類準(zhǔn)確率高于其它算法,平均誤報率低于其它優(yōu)化算法。本文方法得到的DBN模型網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)于其它優(yōu)化算法,得到的DBN模型具有更高的平均分類準(zhǔn)確率、更低的平均誤報率,DBN模型的平均檢測時間更短。其中,AFSA-PSO算法得到的分類準(zhǔn)確率和評價誤報率在優(yōu)化算法中處于較高的水平;雖然滑動窗口優(yōu)化PSO算法得到的訓(xùn)練時間和測試時間處于中等水平,但是得到的平均分類準(zhǔn)確率和誤報率處于較低水平。通過將上述兩者相聯(lián)合進行優(yōu)化得到的本文算法,在實驗測試中發(fā)現(xiàn)可以有效提升所得DBN網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建入侵檢測模型的性能。由此說明,本文設(shè)計的算法中:人工魚群優(yōu)化PSO算法本身性能較為優(yōu)越,但有一定局限性,無法尋優(yōu)到更好的優(yōu)化解;滑動窗口優(yōu)化PSO算法性能雖然一般,但在前置算法得到良好基礎(chǔ)解的情況下,有利于尋優(yōu)到更好的全局優(yōu)化解。 表5 六種優(yōu)化算法得到的平均分類準(zhǔn)確率和平均誤報率 圖6 六種優(yōu)化算法平均分類準(zhǔn)確率對比 圖7 六種優(yōu)化算法平均誤報率對比 DBN深度學(xué)習(xí)模型分類性能優(yōu)異,被廣泛應(yīng)用于語音識別、圖像識別等領(lǐng)域,其良好的分類性能也使其適用于入侵檢測中,而網(wǎng)絡(luò)結(jié)構(gòu)是決定DBN模型分類性能的關(guān)鍵之一,然而,公開文獻(xiàn)中少見此類研究。本文提出的一種改進粒子群聯(lián)合算法尋優(yōu)DBN網(wǎng)絡(luò)結(jié)構(gòu)算法,研究了1.DBN網(wǎng)絡(luò)結(jié)構(gòu)的具體尋優(yōu)方法;2.魚群思想在改進粒子群算法搜索機制中的研究;3.滑動窗口在改進粒子群算法搜索機制中的研究;4.改進粒子群聯(lián)合算法在網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu)中的應(yīng)用。本文尋優(yōu)到的最佳網(wǎng)絡(luò)結(jié)構(gòu)相比其它模型,訓(xùn)練時間增加了至多7.37%,但平均檢測時間降低了至少7.51%,至多54.96%,平均分類準(zhǔn)確率增加了至少0.924%,至多2.176%,平均誤報率降低了至少0.228%,至多0.864%,經(jīng)過實驗表明,有效增加了平均分類準(zhǔn)確率,降低了平均檢測時間和平均誤報率。但是,本文方法是在有限隱含層范圍內(nèi)尋優(yōu)到效果良好的DBN網(wǎng)絡(luò)結(jié)構(gòu),若DBN最大隱含層數(shù)設(shè)置過大,會使訓(xùn)練時間對適應(yīng)度造成較大影響,不利于尋優(yōu)到效果良好的DBN網(wǎng)絡(luò)結(jié)構(gòu),下一步可以探究一種更合適的適應(yīng)度函數(shù),拋去訓(xùn)練時間對于適應(yīng)度可能存在的過量影響,并在該結(jié)構(gòu)基礎(chǔ)上,改進DBN網(wǎng)絡(luò)結(jié)構(gòu)上的權(quán)值或閾值參數(shù),從而進一步優(yōu)化基于DBN的入侵檢測分類模型。本文方法不僅適用于尋優(yōu)入侵檢測中DBN網(wǎng)絡(luò)結(jié)構(gòu),還適應(yīng)于對其它非線性系統(tǒng)或?qū)崟r系統(tǒng)中深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的尋優(yōu),在這些系統(tǒng)中,都存在對數(shù)據(jù)進行檢測和分類的需求,因此,本文方法具有一定的普適性。3 入侵檢測分類模型構(gòu)建和優(yōu)化方法
3.1 魚群思想優(yōu)化PSO算法
3.2 滑動窗口優(yōu)化PSO算法
3.3 魚群思想優(yōu)化PSO聯(lián)合滑動窗口優(yōu)化PSO算法應(yīng)用于入侵檢測分類模型
4 實驗設(shè)計與結(jié)果
4.1 KDD CUP99樣本數(shù)據(jù)集的選取
4.2 數(shù)據(jù)預(yù)處理
4.3 參數(shù)設(shè)置
4.4 實驗結(jié)果
5 結(jié)束語