張 然,劉 敏,張啟坤,尹毅峰
(鄭州輕工業(yè)大學(xué) 計算機與通信工程學(xué)院,鄭州 450002)
隨著大數(shù)據(jù)、人工智能和互聯(lián)網(wǎng)的高速發(fā)展及應(yīng)用,網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜化、數(shù)據(jù)的多元化以及網(wǎng)絡(luò)協(xié)議的多樣化,使得多層面、多形式的網(wǎng)絡(luò)安全風(fēng)險隨之加劇.網(wǎng)絡(luò)攻擊方式也變得多樣化,日漸向著分布化、規(guī)模化、復(fù)雜化等方向發(fā)展,而像入侵檢測系統(tǒng)、防火墻等傳統(tǒng)的網(wǎng)絡(luò)安全防御手段已經(jīng)不能滿足現(xiàn)在高速、智能、多源的網(wǎng)絡(luò)安全需求,我們需要更加先進(jìn)、優(yōu)化的技術(shù)手段和方式方法去防范網(wǎng)絡(luò)安全事件的發(fā)生.
安全態(tài)勢感知最早運用在航空和軍事領(lǐng)域,用來快速決策和處理復(fù)雜的航空和軍事事件.1999年,Bass首次提出了網(wǎng)絡(luò)安全態(tài)勢感知(network security situation awareness,NSSA)的概念[1],后來態(tài)勢感知被研究者們廣泛地運用到網(wǎng)絡(luò)安全領(lǐng)域.研究者們發(fā)現(xiàn)態(tài)勢感知不僅可以進(jìn)行網(wǎng)絡(luò)安全態(tài)勢評估,也可以用來進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測,使原來的被動防御變?yōu)橹鲃臃烙?,可以很大程度的解決網(wǎng)絡(luò)安全的防御問題,因此成為了當(dāng)下的一個熱點研究方向.
本文的主要工作如下:
1)提出了一種基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,利用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練產(chǎn)生安全態(tài)勢值來預(yù)測未來網(wǎng)絡(luò)安全態(tài)勢的狀況以及發(fā)展趨勢.
2)將人群搜索算法應(yīng)用到BP神經(jīng)網(wǎng)絡(luò)中優(yōu)化它的權(quán)值和閾值,提高基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測的精準(zhǔn)度.
3)將模擬退火算法引入到人群搜索算法中來克服它的局部最優(yōu)和收斂緩慢的問題,進(jìn)一步提高安全態(tài)勢預(yù)測的精準(zhǔn)度和收斂速度.
4)應(yīng)用不同優(yōu)化算法進(jìn)行實驗對比,表明我們提出的基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法的誤差最小,精準(zhǔn)度最高,收斂速度較快,可以有效預(yù)測未來網(wǎng)絡(luò)安全態(tài)勢的變化情況.
目前,網(wǎng)絡(luò)安全態(tài)勢預(yù)測的研究已經(jīng)非常廣泛,國外對這方面的研究相對比較早.文獻(xiàn)[2]將現(xiàn)有的網(wǎng)絡(luò)安全狀況預(yù)測機制分為三大類,并就每種模型的優(yōu)缺點進(jìn)行了回顧.文獻(xiàn)[3]提供了有關(guān)網(wǎng)絡(luò)安全中的預(yù)測和方法的概述,對攻擊預(yù)測、意圖識別、入侵預(yù)測和網(wǎng)絡(luò)安全態(tài)勢預(yù)測進(jìn)行了討論和比較.文獻(xiàn)[4]提出了一種基于變長馬爾可夫的預(yù)測模型,通過捕獲攻擊軌跡的順序?qū)傩?,實現(xiàn)對該攻擊的預(yù)測.文獻(xiàn)[5]提出了一種基于時間序列波動分析和預(yù)測的方法,實現(xiàn)對分布式拒絕服務(wù)(DDoS)活動的預(yù)測.文獻(xiàn)[6]提出了基于語義Web的網(wǎng)絡(luò)安全狀態(tài)預(yù)測工具,它可以在系統(tǒng)配置不斷變化的領(lǐng)域(如計算機網(wǎng)絡(luò))中應(yīng)用.
近些年國內(nèi)在網(wǎng)絡(luò)安全態(tài)勢預(yù)測方面也做了大量的研究,很多研究者們嘗試將人工智能的方法引入態(tài)勢感知領(lǐng)域來提高態(tài)勢評估和預(yù)測的準(zhǔn)確性.文獻(xiàn)[7]提出了一種基于灰色關(guān)聯(lián)分析和支持向量機的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,該方法采用灰色關(guān)聯(lián)分析法(GRA)對網(wǎng)絡(luò)評估指標(biāo)進(jìn)行加權(quán)分析,利用支持向量機(SVM)算法對預(yù)測過程進(jìn)行仿真,提高了預(yù)測的精準(zhǔn)度.文獻(xiàn)[8]提出了一種基于改進(jìn)的深度神經(jīng)網(wǎng)絡(luò)模型的入侵檢測方法,該方法利用自編碼器對數(shù)據(jù)特征學(xué)習(xí)、降維和去冗,利用深度神經(jīng)網(wǎng)絡(luò)分類,再通過多層網(wǎng)格搜索算法優(yōu)化,很大程度上提高了精準(zhǔn)度和訓(xùn)練速度.文獻(xiàn)[9]提出了一種基于時空維度分析的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,解決了未來安全態(tài)勢要素值的新變化以及周圍節(jié)點安全態(tài)勢要素對態(tài)勢預(yù)測的影響,但此方法受提取的態(tài)勢要素值的影響較大,另外該方法中用到了脆弱性預(yù)測算法,它的隨機性較大,對預(yù)測的準(zhǔn)確性有影響.文獻(xiàn)[10]提出了一種基于隱Markov模型的實時網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型,可以有效的提高預(yù)測的實時性,但是HMM模型存在參數(shù)估計的效率性問題.文獻(xiàn)[11]提出了一種基于優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的SDN網(wǎng)絡(luò)安全態(tài)勢評估方法,該方法在SDN網(wǎng)絡(luò)中能全面提取態(tài)勢指標(biāo),再通過改進(jìn)的K-means和PSO算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò),在一定程度上提高了態(tài)勢評估的準(zhǔn)確性和性能,但在提取態(tài)勢指標(biāo)時還存在不足.文獻(xiàn)[12]提出了一種基于模擬退火算法和變步長學(xué)習(xí)策略優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的評估模型,克服了傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)反饋誤差慢和易陷入局部極值的局限性,提高了評估的精準(zhǔn)度.文獻(xiàn)[13]提出了一種基于MapReduce和SVM的網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型,該模型使用杜鵑算法優(yōu)化SVM的參數(shù),并使用MapReduce對SVM進(jìn)行分布式訓(xùn)練,以提高訓(xùn)練速度.文獻(xiàn)[14]提出了一種基于IFS-NARX模型的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,該方法具有較高的學(xué)習(xí)效率,可以更及時、準(zhǔn)確地預(yù)測網(wǎng)絡(luò)安全態(tài)勢.文獻(xiàn)[15]提出了一種基于灰色神經(jīng)網(wǎng)絡(luò)的云環(huán)境中網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,該方法用于解決云環(huán)境中現(xiàn)有的網(wǎng)絡(luò)安全態(tài)勢預(yù)測在準(zhǔn)確性和實時性能方面的局限性.這些預(yù)測模型和方法是近幾年研究中比較常用的,主要有基于向量機模型、時間序列分析模型、要素分析方法、隱Markov模型、神經(jīng)網(wǎng)絡(luò)模型等,這些改進(jìn)的方法相比傳統(tǒng)方法在一定程度上提高了評估預(yù)測的效果,但是這些方法面對收集到的海量數(shù)據(jù),在準(zhǔn)確性和效率上還不理想,無法適應(yīng)動態(tài)多變的網(wǎng)絡(luò)安全需求.
人群搜索算法(SOA)是一種智能搜索算法,應(yīng)用較為廣泛.在前面的研究中我們采用SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)并應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢預(yù)測,從一定程度上提高了預(yù)測的精準(zhǔn)度,但SOA存在搜索后期易陷入局部最優(yōu)即“早熟”現(xiàn)象和收斂緩慢的問題.為了克服這個問題,本文又將模擬退火算法(SA)引入人群搜索算法(SOA)并與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,對基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法進(jìn)行研究和仿真實驗.
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumellhart和McCelland為首的科學(xué)小組提出[16].由于BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡單,可調(diào)整的參數(shù)多,訓(xùn)練的算法多,魯棒性和自我學(xué)習(xí)能力強,并且可操作性好,因此它是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)預(yù)測模型之一[17].BP神經(jīng)網(wǎng)絡(luò)主要是通過反向傳播算法反復(fù)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,直到得到最優(yōu)的權(quán)值和閾值,再經(jīng)過不斷地學(xué)習(xí)和訓(xùn)練,使輸出數(shù)據(jù)與真實值盡量地一致,最后當(dāng)輸出的誤差平方和小于指定的誤差時,訓(xùn)練完成,保存最優(yōu)連接權(quán)值和閾值.但是它的初始連接權(quán)值和閾值難以準(zhǔn)確獲得并且迭代次數(shù)多、運算速度低,不能保證收斂到全局極值點.針對BP神經(jīng)網(wǎng)絡(luò)的這些局限性,大多數(shù)的研究都是通過智能優(yōu)化算法尋找最優(yōu)權(quán)值和閾值來彌補BP神經(jīng)網(wǎng)絡(luò)的不足,比如采用粒子群算法(PSO)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)[18],采用遺傳算法(GA)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)[19]等.
為了彌補BP神經(jīng)網(wǎng)絡(luò)的局限性,本文將人群搜索算法(SOA)應(yīng)用到BP神經(jīng)網(wǎng)絡(luò)中,迭代尋找其最優(yōu)權(quán)值和閾值.但是SOA算法在尋找最優(yōu)個體的過程中易陷入局部最優(yōu)和出現(xiàn)收斂緩慢等問題,因此又將模擬退火算法(SA)引入到人群搜索算法(SOA)中,提高它的全局搜索能力,并將模擬退火算法優(yōu)化的人群搜索算法(SA-SOA)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測,以此提高基于BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測的效率和準(zhǔn)確性.
人群搜索算法(Seeker Optimization Algorithm,簡稱SOA)是一種較新的啟發(fā)式隨機搜索算法[20].它主要研究和分析人類在隨機搜尋過程中的智能行為,依靠人類的社會經(jīng)驗,同時結(jié)合進(jìn)化的思想,以搜索最優(yōu)位置為核心,通過利己、利他、預(yù)動和不確定這四種搜索策略行為對其進(jìn)行建模,確定人群搜索的方向和步長,然后不斷地更新位置,獲得最優(yōu)解.SOA算法的優(yōu)點在于它簡單,概念明確、清晰、易于理解、收斂速度快、收斂精度高.其計算步驟主要包括:
1)搜索步長的確定
在確定步長時,需要對個體最優(yōu)適應(yīng)度值進(jìn)行降序排列,并給每個個體賦予索引號作為模糊推理的輸入,本文是使用高斯線性隸屬函數(shù)來表示搜索步長的模糊變量的輸出,它可以很好的將第i個個體最佳適應(yīng)度值線性的映射到最小和最大隸屬度之間,映射公式如下:
(1)
uij=ui+(1-ui)*rand(j=1,2,3,…,D)
(2)
上式中,ui為第i個個體對應(yīng)的隸屬度;Indexfitnessgbest(i)為第i個個體最佳適應(yīng)度值的索引號;sizepop=30,sizepop為種群規(guī)模;Umax=0.95和Umin=0.0111分別表示最大和最小函數(shù)隸屬度;uij表示在j維探索空間中目標(biāo)函數(shù)值i所對應(yīng)的隸屬度;根據(jù)公式(1)和公式(2)得到最佳適應(yīng)度值個體對應(yīng)的隸屬度,再根據(jù)公式(3)確定步長:
(3)
上式中,aij表示為第i個搜尋者在j維搜索空間的搜索步長,δij為高斯隸屬函數(shù)的參數(shù),其值由下列公式確定.
δij=H(t)*|zbest-5*rands(1,10)|
(4)
(5)
zbest表示為全局最佳;rands(1,10)表示為[1,10]之間的隨機實數(shù);H(t)表示第t次迭代的權(quán)重函數(shù)值,在迭代的過程中是不斷的變化,它受最大迭代次數(shù)和當(dāng)前迭代次數(shù)的影響,其中maxgen=100.
2)搜索方向的確定
在確定搜索方向時,依據(jù)個體最佳和全體最佳與當(dāng)前個體相比較確定搜索方向是利己、利他還是預(yù)動方向.
(6)
(7)
(8)
基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法是以三個方向的隨機加權(quán)幾何平均數(shù)為標(biāo)準(zhǔn)確定搜索方向,其計算公式如下:
(9)
(10)
在上式中,W為慣性權(quán)值,φ1和φ2為[0,1]內(nèi)均勻分布的常數(shù).t為當(dāng)前迭代次數(shù),取值范圍為[2,maxgen]之間的整數(shù),Wmax=0.9為權(quán)重最大值,Wmin=0.1為權(quán)重最小值.
3)位置更新
計算得到個體探索的方向和步長之后,要對個體的位置進(jìn)行更新.位置更新公式如下:
(11)
人群搜索算法屬于一種優(yōu)化算法,一般都是通過此算法去優(yōu)化另一種算法或模型,使優(yōu)化后的算法或模型具有更好的準(zhǔn)確性、穩(wěn)定性、收斂性和有效性等.它為一些傳統(tǒng)的預(yù)測模型提供了幫助.
模擬退火算法(Simulated Annealing,簡稱SA)最早是由Metropolis[21]在1953年提出,并由Kirkpatrick[22]等成功引入組合優(yōu)化領(lǐng)域.其思想是對高溫固體退火降溫過程進(jìn)行模擬,通過加溫、等溫和冷卻這三個過程,將系統(tǒng)的能量看成優(yōu)化問題的目標(biāo)函數(shù),其能量隨著溫度的降低也隨之下降,當(dāng)溫度緩緩降溫并趨于零時,此時既是能量最低狀態(tài),也是得到相對全局最優(yōu)解的時刻[23].SA算法具有較強的魯棒性、隱含并行性、廣泛的適應(yīng)性,以及全局搜索能力,它主要利用Metropolis算法并適當(dāng)控制溫度的下降過程,以一定的概率接受劣質(zhì)解,跳出陷入局部極值的陷阱,從而提高算法的全局收斂性.SA算法在大多數(shù)情況下也是用于優(yōu)化另一種算法或模型,很少單獨使用.
人群搜索算法(SOA)具有收斂速度快和精度高等優(yōu)點,但同時也易陷入局部最優(yōu),即出現(xiàn)“早熟”現(xiàn)象,原因是人群搜索算法在搜索后期,當(dāng)搜索步長趨于零時,仍不能搜索到全局最優(yōu)解.為了解決這一問題,本文將模擬退火算法(SA)引入到人群搜索算法(SOA)中,SA算法在搜索尋優(yōu)過程中會以一定的概率接受劣質(zhì)解,即SA算法既能接受優(yōu)解又能接受惡解,從此避免了SOA算法陷入局部最優(yōu).
1)初始化溫度
在退火算法中,初始化溫度的確定很關(guān)鍵,它將會直接影響算法的初始性能,若確定不好,最終可能導(dǎo)致無用的搜索和增加搜索時間.初始溫度確定如下:
(12)
上式中,fitnesszbest表示全局最佳適應(yīng)度值.α為初始接受概率,一般取值為[0.2,0.5].
2)退火速率的控制
Tt+1=γTt(2≤t≤maxgen,0≤γ≤1)
(13)
上式中,γ為降溫的速率,t為迭代次數(shù).
3)突跳概率的確定
當(dāng)退火溫度確定時,當(dāng)前最佳適應(yīng)度值就以突跳概率代替以前個體最佳適應(yīng)度值和全局最佳適應(yīng)度值,則突跳概率的確定公式如下:
(14)
df=fitness(i)-fitnesszbest
(15)
上式中,fitness(i)為當(dāng)前個體適應(yīng)度值,fitnesszbest為全局最佳適應(yīng)度值.如果df<0,則以概率1接受新解;否則以概率exp(-df/T)接受新解.從上式可以看出,在一定程度上退火算法可以幫助人群搜索算法避免陷入局部最優(yōu)值,最后得到最優(yōu)解.
應(yīng)用模擬退火算法優(yōu)化人群搜索算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)(簡稱SA-SOA-BP神經(jīng)網(wǎng)絡(luò))的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法的主要步驟如下:
Step 1.預(yù)處理樣本數(shù)據(jù),再根據(jù)樣本數(shù)據(jù)的特點確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),并初始化BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值.
Step 2.初始化種群個體、種群規(guī)模、最大迭代次數(shù)、空間維數(shù)、最小最大隸屬度、權(quán)重的最小值最大值.
Step 3.初始化退火的溫度、降溫速率、突跳概率.
Step 4.將預(yù)處理過的樣本數(shù)據(jù)代入適應(yīng)度函數(shù)中,計算個體的適應(yīng)度值,找出全局最佳、個體最佳、個體最佳適應(yīng)度值和全局最佳適應(yīng)度值.此算法是以用訓(xùn)練數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)得到的預(yù)測值與真實值之間的誤差絕對值和作為個體適應(yīng)度值.
Step 5.初始化經(jīng)驗梯度方向、搜索步長和方向以及高斯函數(shù)的參數(shù)δij.確定搜索策略,即搜索方向的確定,根據(jù)公式(6)-式(7)計算可得;確定經(jīng)驗梯度的方向,根據(jù)公式(9)計算可得;確定高斯函數(shù)的參數(shù)δij,根據(jù)公式(4)-式(5)計算可得;確定搜索步長的大小,根據(jù)公式(3)計算可得;根據(jù)計算得到的步長和方向按公式(11)更新位置,更新個體最優(yōu)和群體最優(yōu)以及它們的適應(yīng)度值.
Step 6.Metropolis準(zhǔn)則的引入.在全局最優(yōu)適應(yīng)度值的鄰域內(nèi)選擇一個搜尋者,按公式(15)計算當(dāng)前個體的適應(yīng)度值與全局最佳適應(yīng)度值的差值df.如果df<0,則以概率1接受新的位置,否則以概率exp(-df/T)接受新的位置,然后更新個體最優(yōu)位置gbest和群體最優(yōu)位置zbest.
Step 7.降溫處理,根據(jù)公式(13)控制溫度.
Step 8.判斷是否滿足循環(huán)的終止條件,即是否超過最大迭代次數(shù)和種群規(guī)模.如果沒有,繼續(xù)迭代尋優(yōu),跳轉(zhuǎn)至Step 5.
Step 9.得到最佳網(wǎng)絡(luò)權(quán)值和閾值,并賦值賦給BP神經(jīng)網(wǎng)絡(luò)的隨機初始閾值和權(quán)值.
Step 10.訓(xùn)練及預(yù)測.將處理過的訓(xùn)練數(shù)據(jù)輸入該模型,經(jīng)過訓(xùn)練,得到具有預(yù)測能力的SA-SOA-BP模型,再將測試數(shù)據(jù)輸入該模型,得到預(yù)測態(tài)勢值,分析結(jié)果.
基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的安全態(tài)勢預(yù)測算法流程如圖1所示.
本文將模擬退火算法(SA)引入人群搜索算法(SOA)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢預(yù)測中來提高預(yù)測的準(zhǔn)確性和收斂性.實驗以《網(wǎng)絡(luò)安全信息與動態(tài)周報》2015年第1期-2017年第7期所發(fā)布的網(wǎng)絡(luò)安全數(shù)據(jù)作為實驗數(shù)據(jù),它主要以感染病毒的主機數(shù)量、被篡改的網(wǎng)站總數(shù)、被植入后門網(wǎng)站總數(shù)、境內(nèi)網(wǎng)站的仿冒頁面數(shù)量和新增信息安全漏洞數(shù)量作為評價指標(biāo).這五方面可以比較全面的反應(yīng)現(xiàn)代網(wǎng)絡(luò)安全的狀況,可以作為評價每周的網(wǎng)絡(luò)安全基本態(tài)勢的指標(biāo).為了實驗方便,這里將優(yōu)、良、中、差、危五個安全等級轉(zhuǎn)化為數(shù)字等級,如表1所示.
圖1 基于SA-SOA-BP的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法流程圖Fig.1 Flow chart of network security situation prediction algorithm based on SA-SOA-BP
表1 網(wǎng)絡(luò)安全態(tài)勢值轉(zhuǎn)換表Table 1 Network security situation value conversion table
根據(jù)神經(jīng)網(wǎng)絡(luò)的特性,訓(xùn)練樣本數(shù)量過多,將會增加訓(xùn)練的時間,數(shù)量過少將會降低預(yù)測準(zhǔn)確度,所以本文選擇101條數(shù)據(jù)為訓(xùn)練樣本,10條數(shù)據(jù)為測試樣本.為了提高預(yù)測的準(zhǔn)確度,需要先對數(shù)據(jù)進(jìn)行預(yù)處理和歸一化操作.數(shù)據(jù)歸一化的方法一般有兩種,一種是歸一化為[0,1],一種是歸一化為[-1,1].本實驗用到了后一種方法,歸一化公式見公式(16),歸一化后的結(jié)果如圖2所示.
(16)
1)確定BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu).由上述所知網(wǎng)絡(luò)安全態(tài)勢共有五大評價指標(biāo),最后要化為一個安全等級,所以此實驗有五個輸入?yún)?shù),一個輸出參數(shù),再根據(jù)公式(17)-公式(19)確定隱含層節(jié)點個數(shù).
l (17) (18) l=log2n (19) 此公式中,n為輸入層節(jié)點數(shù);l為隱含層節(jié)點數(shù);m為輸出層節(jié)點數(shù);a為0-10之間的正整數(shù).再根據(jù)試湊法確定此實驗的隱含層節(jié)點數(shù)為8,最終確定本實驗的網(wǎng)絡(luò)結(jié)構(gòu)為5-8-1. 圖2 樣本數(shù)據(jù)標(biāo)準(zhǔn)化Fig.2 Standardization of sample data 2)驗證應(yīng)用SA-SOA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測的精準(zhǔn)性和優(yōu)越性.采用均方誤差(MSE)、平均絕對百分比誤差(MAPE)和均方根誤差(RMSE)三個性能指標(biāo)來衡量真實值與預(yù)測值之間的差異. 均方誤差指標(biāo): (20) 平均絕對百分比誤差指標(biāo): (21) 均方根誤差指標(biāo): (22) 3)與其它優(yōu)化算法的預(yù)測結(jié)果進(jìn)行對比分析.圖3顯示了基于粒子群算法(PSO)、遺傳算法(GA)、人群搜索算法(SOA)和SA-SOA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測的實驗結(jié)果對比圖,以及各個優(yōu)化算法的預(yù)測值的折線圖的變化趨勢和真實值的折線圖的接近程度. 圖3 SA-SOA與其它算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的安全態(tài)勢預(yù)測對比圖Fig.3 Comparison chart of SA-SOA and other algorithms to optimize the BP neural network for security situation prediction 從圖3可以看到,基于PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)得到的預(yù)測值折線圖在開始部分相對于真實值折線圖變化波動比較大,后期相對穩(wěn)定;基于GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)得到的預(yù)測值折線圖主要在第6個測試樣本數(shù)據(jù)點與真實值的折線圖相差較大,其它部分比較接近;基于SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)得到的預(yù)測值折線圖相對真實值的折線圖變化波動有點大,不太穩(wěn)定;而基于SA-SOA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)得到的預(yù)測值折線圖整體上比較接近真實值折線圖,比其它的智能優(yōu)化算法相對真實值的折線圖波動最小,與真實值的折線圖更接近,更吻合. 表2給出了PSO、GA、SOA及SA-SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測得到的10個測試值以及與真實值之間的絕對誤差. 表2 預(yù)測數(shù)據(jù)分析表Table 2 Prediction data analysis table 從表2可以看出各個算法在10個測試樣本數(shù)據(jù)點得到的預(yù)測值以及它們與真實值之間的絕對誤差的具體數(shù)值,整體上看基于模擬退火算法改進(jìn)的SOA-BP算法的誤差更小,這說明基于SA-SOA-BP算法進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測的準(zhǔn)確性更高. 表3分別計算了PSO、GA、SOA、SA-SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢預(yù)測得到的預(yù)測值與真實值之間的均方誤差、平均絕對百分誤差以及均方根誤差. 從表3可以宏觀地看出,基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法得到的預(yù)測值與真實值之間的均方誤差、平均絕對百分比誤差和均方根誤差三個衡量指標(biāo)值相對其它優(yōu)化算法得到的衡量指標(biāo)值都是最小,這從宏觀角度表明了基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法比其它三種算法具有更高的精準(zhǔn)性和有效性. 表3 精準(zhǔn)度對照表Table 3 Accuracy comparison table 由于在本實驗中是用訓(xùn)練數(shù)據(jù)預(yù)測誤差絕對值和作為個體適應(yīng)度值,個體適應(yīng)度值越小,說明該個體越優(yōu).因此個體最優(yōu)適應(yīng)度的變化情況既可以反應(yīng)算法的收斂情況,又可以反應(yīng)訓(xùn)練數(shù)據(jù)集的訓(xùn)練過程.圖4給出了PSO、GA、SOA和SA-SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法在迭代尋優(yōu)過程中最優(yōu)個體適應(yīng)度值的變化趨勢. 圖4 最優(yōu)個體適應(yīng)度值變化對照圖Fig.4 Comparison chart of optimal individual fitness value changes 從圖4中可以看出,PSO-BP算法在開始時得到的最優(yōu)個體適應(yīng)度值相對較高,并且自第25次和第62次迭代時開始長期陷入局部極值,跳出局部極值的時間較長,最優(yōu)個體適應(yīng)度值的最小值為21.727;GA-BP算法在第4次迭代時陷入局部極值,經(jīng)過30次迭代才跳出了局部極值,但是之后又陷入了局部極值,并一直到最后沒有再跳出局部極值的陷阱,并且此算法是所有算法中最早陷入局部極值的算法,最優(yōu)個體適應(yīng)度值的最小值為23.837;SOA-BP算法在前期的優(yōu)化效果雖然比較好,但是在自第42次迭代開始陷入局部極值后,一直陷入局部極值中沒有跳出,最優(yōu)個體適應(yīng)度值的最小值為22.957;SA-SOA-BP算法是最不容易陷入局部最優(yōu)的算法,多次跳出了局部極值的陷阱,其最優(yōu)個體適應(yīng)度值的最小值達(dá)到20.699.另外在第84次迭代時,SA-SOA-BP算法首先達(dá)到了最小的適應(yīng)度值20.699,而SOA-BP算法在此時并沒有達(dá)到最小的適應(yīng)度值,說明了在100次迭代內(nèi)SA-SOA-BP算法的收斂速度相對較快達(dá)到最小的適應(yīng)度值.從圖4的最優(yōu)個體適應(yīng)度值的變化趨勢可以看出,采用SA-SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的收斂效果比PSO、GA和SOA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行態(tài)勢預(yù)測的收斂效果更好,其適應(yīng)度值在趨于平穩(wěn)時值最小.綜上所述,SA-SOA-BP算法的收斂性效果相對較好,速度相對較快. 本文將模擬退火算法引入人群搜索算法來優(yōu)化BP神經(jīng)網(wǎng)絡(luò),提出了一種基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,解決了BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值難以確定和SOA算法在搜索后期收斂速度緩慢和易于陷入局部最優(yōu)等問題,增強了人群搜索算法的全局尋優(yōu)能力,加快了算法的收斂速度,提高了網(wǎng)絡(luò)安全態(tài)勢預(yù)測的準(zhǔn)確性.對比實驗結(jié)果表明,基于SA-SOA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法比SOA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)、GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)以及PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果更為穩(wěn)定、準(zhǔn)確,并具有更好的穩(wěn)定性和收斂性.下一步的研究將與其它智能預(yù)測算法進(jìn)行對比,進(jìn)一步尋找精度和效率更高的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法.4.3 算法收斂性分析
5 總 結(jié)