羅俊松
摘 要: 通過分析BP神經(jīng)網(wǎng)絡(luò)用于檢測(cè)系統(tǒng)存在的問題,在傳統(tǒng)BP算法基礎(chǔ)上,采用自動(dòng)變速率學(xué)習(xí)法,引入遺忘因子、隨機(jī)優(yōu)化算子,并將其用于網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)。仿真實(shí)驗(yàn)結(jié)果表明,改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法用于入侵檢測(cè),速度快、易收斂,目標(biāo)精度0.02很快達(dá)到。改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法的檢測(cè)率、漏測(cè)率、誤報(bào)率分別為96.17%,3.83%,4.15%,檢測(cè)率比未改進(jìn)的BP算法要高出11.65%,漏測(cè)率比未改進(jìn)的BP算法要低10.66%,誤報(bào)率比未改進(jìn)的BP算法要低4.07%,改進(jìn)算法優(yōu)越性明顯。
關(guān)鍵詞: BP算法; 入侵檢測(cè); 神經(jīng)網(wǎng)絡(luò); 隨機(jī)優(yōu)化算子
中圖分類號(hào): TN915.08?34; TP393.08 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)11?0091?04
Research on BP algorithm based on neural network and its application
in network intrusion detection
LUO Junsong
(College of Information Science and Technology, Chengdu University of Technology, Chengdu 610059, China)
Abstract: By analyzing the problems of BP neural network applied to the detection system, the automatic variable?rate learning method, forgetting factor and random optimization operator are introduced into the BP algorithm on the basis of traditional BP algorithm. The BP algorithm is applied to the network intrusion detection system. The simulation results show that the improved BP neural network algorithm applied to intrusion detection has the characteristics of fast speed and easy convergence, and can quickly obtain the target accuracy of 0.02. The detection rate, missed detection rate and false alarm rate of the improved BP neural network algorithm can reach up to 96.17%, 3.83% and 4.15% respectively, whose detection rate is 11.65% higher than that of the traditional BP algorithm, the missed detection rate is 10.66% lower than that of the traditional BP algorithm, and the false alarm rate is 4.07% lower than that of the traditional BP algorithm. The superiority of the algorithm is obvious.
Keywords: BP algorithm; intrusion detection; neural network; random optimization operator
0 引 言
隨著通信技術(shù)和計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)的網(wǎng)絡(luò)規(guī)模越來越大,通信系統(tǒng)也越來越復(fù)雜,由于計(jì)算機(jī)網(wǎng)絡(luò)本身具有漏洞,同時(shí)還有黑客對(duì)網(wǎng)絡(luò)進(jìn)行攻擊,因此計(jì)算機(jī)網(wǎng)絡(luò)受到的威脅和攻擊日益增加[1?3]。網(wǎng)絡(luò)安全形勢(shì)越來越嚴(yán)峻。通過入侵檢測(cè)技術(shù)可收集計(jì)算機(jī)網(wǎng)絡(luò)中的若干關(guān)鍵點(diǎn)信息,同時(shí)對(duì)這些信息進(jìn)行分析,并對(duì)網(wǎng)絡(luò)是否遭到襲擊、是否存在違反安全策略行為進(jìn)行檢查,并做出及時(shí)響應(yīng),對(duì)網(wǎng)絡(luò)連接進(jìn)行切斷并報(bào)警等[4?6]。目前傾向于通過入侵檢測(cè)技術(shù)結(jié)合人工智能算法進(jìn)行相關(guān)研究,對(duì)于各種入侵行為,采用人工智能算法通過自學(xué)習(xí)、自適應(yīng)能力進(jìn)行識(shí)別、檢測(cè)[7]。
作為一種重要的模式識(shí)別方法,人工神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)、自組織、推廣能力強(qiáng)等特點(diǎn)[8]。在入侵檢測(cè)系統(tǒng)中,應(yīng)用人工神經(jīng)網(wǎng)絡(luò)方法可使系統(tǒng)能較好地識(shí)別已知攻擊,同時(shí)還具有對(duì)未知攻擊進(jìn)行檢測(cè)的能力[9]。但是在異常入侵檢測(cè)系統(tǒng)中,應(yīng)用標(biāo)準(zhǔn)BP算法存在收斂局部極小值、學(xué)習(xí)速度慢等缺點(diǎn),這在很大程度上影響了入侵檢測(cè)系統(tǒng)的性能[10]。本文在對(duì)原有BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn)的基礎(chǔ)上,研究了優(yōu)化的神經(jīng)網(wǎng)絡(luò)BP算法及其在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用。
1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),包括輸入信號(hào)前向傳遞和誤差反向傳播兩個(gè)過程,在結(jié)構(gòu)上一般由輸入層、隱含層、輸出層三層構(gòu)成,每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài)。它被廣泛應(yīng)用在BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型中。網(wǎng)絡(luò)結(jié)構(gòu)一般只需單個(gè)隱含層就能以任意精度逼近任意有理函數(shù)。訓(xùn)練樣本的輸入、輸出向量的維數(shù)分別決定了網(wǎng)絡(luò)的輸入、輸出層神經(jīng)節(jié)點(diǎn)個(gè)數(shù),典型的只有單個(gè)隱含層、單個(gè)輸出的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
圖1中,為BP神經(jīng)網(wǎng)絡(luò)的一組輸入向量;為網(wǎng)絡(luò)的目標(biāo)輸出值;為輸入層與隱含層之間的連接權(quán)值;為隱含層與輸出層之間的連接權(quán)值;分別為隱含層和輸出層的節(jié)點(diǎn)閾值。若設(shè)隱含層節(jié)點(diǎn)個(gè)數(shù)為則在前向傳遞中,輸入信號(hào)向量從輸入層經(jīng)隱含層逐層傳輸,最后到輸出層,通過各層連接權(quán)值矢量、閾值矢量和每一層相應(yīng)的激勵(lì)函數(shù)進(jìn)行計(jì)算。得到輸出層的預(yù)測(cè)輸出值若預(yù)測(cè)值與目標(biāo)值之間有誤差,則誤差部分轉(zhuǎn)入反向逐層傳遞,沿誤差減小方向調(diào)整網(wǎng)絡(luò)各層連接的權(quán)值、閾值。反復(fù)執(zhí)行以上過程,使得BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值不斷逼近實(shí)際輸出值。
2 入侵檢測(cè)算法
網(wǎng)絡(luò)入侵檢測(cè)通過分析系統(tǒng)數(shù)據(jù),一旦有網(wǎng)絡(luò)攻擊行為、非授權(quán)網(wǎng)絡(luò)訪問時(shí),入侵檢測(cè)系統(tǒng)就會(huì)報(bào)警,同時(shí)對(duì)入侵線路進(jìn)行切斷。入侵檢測(cè)系統(tǒng)應(yīng)具有監(jiān)視系統(tǒng)、用戶的活動(dòng),對(duì)系統(tǒng)、用戶活動(dòng)進(jìn)行分析,對(duì)異常行為模式進(jìn)行分析,對(duì)已知進(jìn)攻模式進(jìn)行識(shí)別,審計(jì)系統(tǒng)弱點(diǎn)、構(gòu)造,跟蹤管理系統(tǒng)審計(jì),對(duì)系統(tǒng)、數(shù)據(jù)文件完整性進(jìn)行評(píng)估,對(duì)用戶違反安全策略行為進(jìn)行識(shí)別。常見的攻擊手段目前包括非授權(quán)獲得權(quán)限、非授權(quán)訪問、探測(cè)、拒絕服務(wù)等。在實(shí)際中,這些攻擊手段變異很大,入侵檢測(cè)難度較大。BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的自學(xué)習(xí)和自組織能力,經(jīng)過訓(xùn)練后,對(duì)以前觀察到的入侵檢測(cè)行為模式,BP神經(jīng)網(wǎng)絡(luò)會(huì)進(jìn)行歸納和總結(jié),可識(shí)別出已觀察到的攻擊和已知攻擊變異的新攻擊,圖2為網(wǎng)絡(luò)的入侵檢測(cè)過程。
3 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)
3.1 BP神經(jīng)網(wǎng)絡(luò)用于檢測(cè)系統(tǒng)存在的問題
BP神經(jīng)網(wǎng)絡(luò)采用分布式存儲(chǔ),但傳統(tǒng)的BP算法存在一些不足,包括極小的局部,較慢的學(xué)習(xí)收斂速度,缺乏理論隱含層節(jié)點(diǎn)的選取,已經(jīng)學(xué)完樣本會(huì)受到新加入樣本的影響,每次樣本的輸入必須具有確定相同的特征數(shù)目。
在入侵檢測(cè)中,BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)方式主要是與現(xiàn)有系統(tǒng)結(jié)合進(jìn)行,BP神經(jīng)網(wǎng)絡(luò)與應(yīng)用模式識(shí)別系統(tǒng)相結(jié)合使用,例如與專家系統(tǒng)結(jié)合。在這種方式中,BP神經(jīng)網(wǎng)絡(luò)可作為系統(tǒng)組成部分,通常是作為信息過濾模塊或信息預(yù)處理模塊,當(dāng)信息輸入系統(tǒng)后,神經(jīng)網(wǎng)絡(luò)會(huì)對(duì)信息做過濾處理。另外,神經(jīng)網(wǎng)絡(luò)可規(guī)則自動(dòng)生成模塊,進(jìn)而更新入侵檢測(cè)系統(tǒng)規(guī)則庫(kù)、模式庫(kù)。這種方式的優(yōu)點(diǎn)是能將入侵檢測(cè)系統(tǒng)的工作性能提高,缺點(diǎn)是這種方式神經(jīng)網(wǎng)絡(luò)的真正優(yōu)勢(shì)不能得到充分發(fā)揮。
3.2 改進(jìn)的神經(jīng)網(wǎng)絡(luò)算法
在信號(hào)檢測(cè)、非線性處理、模式識(shí)別等領(lǐng)域,人工神經(jīng)網(wǎng)絡(luò)應(yīng)用較多,這是因?yàn)槿斯ど窠?jīng)網(wǎng)絡(luò)自組織性、自適應(yīng)性非常好,同時(shí)其非線性特性明顯,信息存儲(chǔ)為分布式模式、可進(jìn)行大規(guī)模的并行處理。實(shí)質(zhì)上BP神經(jīng)網(wǎng)絡(luò)算法屬于非線性優(yōu)化的梯度算法,在收斂性上,該算法存在不足,也就是說該算法的學(xué)習(xí)結(jié)果有可能落入到均方誤差全局最小點(diǎn),也有可能落入到局部極小點(diǎn),造成算法不收斂,使工作模式陷入錯(cuò)誤。
入侵檢測(cè)系統(tǒng)的主要功能是對(duì)入侵計(jì)算機(jī)網(wǎng)絡(luò)的行為和計(jì)算機(jī)系統(tǒng)進(jìn)行檢測(cè),包括數(shù)據(jù)聚類、數(shù)據(jù)采集、分析判斷行為、對(duì)入侵行為進(jìn)行響應(yīng)、報(bào)警等。BP網(wǎng)絡(luò)各層神經(jīng)元僅連接相鄰層神經(jīng)元;在各層內(nèi)部,神經(jīng)元間無連接;同時(shí)各層神經(jīng)元間也無反饋連接。在信號(hào)輸入后,傳播到隱節(jié)點(diǎn)經(jīng)變換函數(shù)再將信息傳播到輸出節(jié)點(diǎn),經(jīng)過處理,輸出結(jié)果。本文將改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)用于入侵檢測(cè)系統(tǒng),其檢測(cè)模型見圖3。
3.2.1 采用自動(dòng)變速率學(xué)習(xí)法
傳統(tǒng)BP算法在梯度基礎(chǔ)上,采用最陡下降法LMS學(xué)習(xí)問題,學(xué)習(xí)步長(zhǎng)為一個(gè)較小值,并且這個(gè)值是固定不變的,對(duì)網(wǎng)絡(luò)收斂無益處。因而選擇基于梯度方向自動(dòng)對(duì)學(xué)習(xí)速率進(jìn)行調(diào)節(jié)。通過梯度對(duì)學(xué)習(xí)方向做最終確定,在梯度方向上,學(xué)習(xí)步長(zhǎng)由速率決定。若相鄰兩次梯度方向是相同的,表明該方向的收斂有利;若相鄰兩次梯度方向是相反的,表明該方向的收斂不穩(wěn)定。根據(jù)這個(gè)規(guī)律,通過兩次相對(duì)梯度的變化確定學(xué)習(xí)步長(zhǎng)。當(dāng)兩次梯度為相同方向時(shí),學(xué)習(xí)步長(zhǎng)增大,該方向上學(xué)習(xí)速度要加快;在兩次梯度為相反方向時(shí),學(xué)習(xí)步長(zhǎng)減小,整個(gè)網(wǎng)絡(luò)收斂速度要加快,自適應(yīng)速率調(diào)節(jié)方法如下:
(1)
(2)
式中表示在時(shí)刻和時(shí)刻梯度的乘積。
3.2.2 引入遺忘因子
根據(jù)相鄰兩次梯度變化,通過自適應(yīng)變速率學(xué)習(xí)法對(duì)學(xué)習(xí)步長(zhǎng)算法進(jìn)行確定。變化單純學(xué)習(xí)速率,這時(shí)收斂速度不能完全保證,但不會(huì)有振蕩產(chǎn)生,因此考慮變速率學(xué)習(xí)法,在權(quán)值調(diào)節(jié)量上,加一個(gè)量,這個(gè)量正比于前幾次的加權(quán),權(quán)值調(diào)節(jié)量采用式(3)計(jì)算:
(3)
式中:表示遺忘因子,引入遺忘因子項(xiàng),在學(xué)習(xí)過程中可通過對(duì)學(xué)習(xí)速率進(jìn)行等效微調(diào)的效果進(jìn)行說明。遺忘因子的作用是緩沖平滑,并使調(diào)節(jié)的平均方向朝底部變化。
3.2.3 引入隨機(jī)優(yōu)化算子
BP神經(jīng)網(wǎng)絡(luò)算法在引入遺忘因子,采用自動(dòng)變速率學(xué)習(xí)法后,雖然可微調(diào)學(xué)習(xí)速率,但BP神經(jīng)網(wǎng)絡(luò)的不足和限制仍存在,為了進(jìn)一步對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,本文引入隨機(jī)優(yōu)化算子,當(dāng)網(wǎng)絡(luò)權(quán)值誤差迭代達(dá)到一定次數(shù)后,收斂不明顯或連續(xù)幾次發(fā)生系統(tǒng)誤差函數(shù)梯度變化,這種情況表明網(wǎng)絡(luò)進(jìn)入疲乏狀態(tài),要借助外界推動(dòng)力對(duì)網(wǎng)絡(luò)進(jìn)行激活。當(dāng)出現(xiàn)這兩種情況時(shí),與權(quán)值維數(shù)相同的隨機(jī)數(shù)就產(chǎn)生了,直接將權(quán)值和隨機(jī)數(shù)相加,對(duì)系統(tǒng)誤差變化進(jìn)行判斷,若誤差未降低,繼續(xù)產(chǎn)生隨機(jī)數(shù),進(jìn)行權(quán)值修改,當(dāng)誤差出現(xiàn)減少時(shí)停止,然后再?gòu)男聶?quán)值繼續(xù)開始BP算法,隨機(jī)優(yōu)化算子可隨機(jī)變化搜索方向,局部極小點(diǎn)就擺脫掉了,圖4為改進(jìn)的BP算法流程圖。
4 仿真實(shí)驗(yàn)
本文的仿真實(shí)驗(yàn)在Matlab 7.0實(shí)驗(yàn)平臺(tái)進(jìn)行,以此來驗(yàn)證提出改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法是否能達(dá)到較好的效果,本文同時(shí)給出采用未改進(jìn)的BP算法網(wǎng)絡(luò)入侵檢測(cè)和改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法網(wǎng)絡(luò)入侵檢測(cè)模型仿真實(shí)驗(yàn)結(jié)果。
圖5為兩種算法得到的訓(xùn)練精度。從兩種算法的實(shí)驗(yàn)仿真結(jié)果可看出,將改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法用于入侵檢測(cè),速度快、易收斂,目標(biāo)精度0.02很快達(dá)到。在規(guī)定周期內(nèi),未改進(jìn)的BP算法不能達(dá)到規(guī)定的目標(biāo)精度,易陷入局部極小,本文提出的改進(jìn)的BP算法所用訓(xùn)練周期較短,學(xué)習(xí)時(shí)間縮短顯著,效果良好。
評(píng)價(jià)檢測(cè)模型的標(biāo)準(zhǔn)為漏報(bào)率、誤報(bào)率、檢測(cè)率,其定義分別如下:
表1為未改進(jìn)的BP算法與改進(jìn)的BP算法的比較結(jié)果,從表1中可看出,改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法的檢測(cè)率、漏報(bào)率、誤報(bào)率分別為96.17%,3.83%,4.15%,檢測(cè)率比未改進(jìn)的BP算法要高出11.65%,漏報(bào)率比未改進(jìn)的BP算法要低10.66%,誤報(bào)率比未改進(jìn)的BP算法要低4.07%。
表1 兩種算法的入侵檢測(cè)結(jié)果
[算法 訓(xùn)練周期 /s 檢測(cè)率 /% 漏報(bào)率 /% 誤報(bào)率 /% 基本BP算法 480 84.52 14.49 8.22 改進(jìn)的BP算法 480 96.17 3.83 4.15 ]
5 結(jié) 語(yǔ)
本文在對(duì)原有BP 神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn)的基礎(chǔ)上,研究了改進(jìn)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法及其在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用。通過分析BP神經(jīng)網(wǎng)絡(luò)用于檢測(cè)系統(tǒng)存在的問題,在傳統(tǒng)BP算法基礎(chǔ)上,采用自動(dòng)變速率學(xué)習(xí)法,引入遺忘因子、隨機(jī)優(yōu)化算子,并將其用于網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)。仿真實(shí)驗(yàn)表明,改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法用于入侵檢測(cè),速度快易收斂,目標(biāo)精度0.02很快達(dá)到。本文算法具有明顯的優(yōu)越性,各種入侵行為檢測(cè)率得到明顯提高,系統(tǒng)誤報(bào)率也降低了,入侵檢測(cè)系統(tǒng)性能得到有效改進(jìn),本文算法優(yōu)越性明顯。
參考文獻(xiàn)
[1] 宋玲,常磊.變異粒子群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)在入侵檢測(cè)中的應(yīng)用[J].智能系統(tǒng)學(xué)報(bào),2013,8(6):558?563.
[2] 劉伉伉,謝福,郭雪雪.基于BP神經(jīng)網(wǎng)絡(luò)的云計(jì)算入侵檢測(cè)技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2014(12):2357?2361.
[3] 黃煜坤.基于BP神經(jīng)網(wǎng)絡(luò)算法的入侵檢測(cè)技術(shù)[J].電子制作,2015(10):60?62.
[4] 沈夏炯,王龍,韓道軍.人工蜂群優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)在入侵檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)工程,2016,42(2):190?194.
[5] 王玲.基于BP 算法的人工神經(jīng)網(wǎng)絡(luò)建模研究[J].裝備制造技術(shù),2014(1):162?164.
[6] 王俊士,李江濤.一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法在入侵檢測(cè)中的應(yīng)用[J].電腦知識(shí)與技術(shù),2014,10(3):614?617.
[7] 顏謙和,顏珍.遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)[J].計(jì)算機(jī)仿真,2011,28(4):141?144.
[8] 汪潔.基于神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013(5):320?322.
[9] 胡明霞.基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)算法[J].計(jì)算機(jī)工程,2012,38(6):148?151.
[10] 夏淑華.基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2011(4):47?50.