何春蓉, 朱 江
(重慶郵電大學(xué)通信與信息工程學(xué)院, 重慶 400065)
隨著網(wǎng)絡(luò)在生活、工業(yè)等領(lǐng)域迅速普及,人們對于網(wǎng)絡(luò)的需求呈爆炸式增長,隨之而來的是層出不窮的網(wǎng)絡(luò)安全問題。各種網(wǎng)絡(luò)安全威脅和復(fù)雜的網(wǎng)絡(luò)攻擊手段使得傳統(tǒng)的殺毒軟件、防火墻等防護手段也難以主動防御。為了應(yīng)對嚴(yán)峻的網(wǎng)絡(luò)安全形式,網(wǎng)絡(luò)安全態(tài)勢感知技術(shù)[1-2]一經(jīng)提出就取得了廣泛的關(guān)注。網(wǎng)絡(luò)安全態(tài)勢預(yù)測作為其核心研究范疇,通過對歷史網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析融合,在一段時間內(nèi)能夠提前預(yù)測網(wǎng)絡(luò)未來的安全性,對未來可能出現(xiàn)的各種威脅和攻擊進(jìn)行預(yù)警,幫助網(wǎng)絡(luò)管理員提前對網(wǎng)絡(luò)資源進(jìn)行合理分配,采取相應(yīng)的措施以應(yīng)對各種網(wǎng)絡(luò)風(fēng)險。
隨著機器學(xué)習(xí)的不斷發(fā)展和人工智能學(xué)習(xí)的逐漸深入,將神經(jīng)網(wǎng)絡(luò)應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢預(yù)測領(lǐng)域成為近幾年的研究熱點,相比于已有的預(yù)測模型,神經(jīng)網(wǎng)絡(luò)模型具有多特征、高容錯性、自組織能力和自學(xué)能力,對復(fù)雜系統(tǒng)具有很強的非線性映射和泛化能力,能夠直接構(gòu)建出多源異構(gòu)數(shù)據(jù)同態(tài)勢值的映射關(guān)系[3]。文獻(xiàn)[4]提出將支持向量機支持向量機(support vector machines, SVM)作為預(yù)測模型,采用布谷鳥搜索算法進(jìn)行參數(shù)優(yōu)化,針對大數(shù)據(jù)的成本問題,使用MapReduce在SVM上進(jìn)行分布式訓(xùn)練,降低了訓(xùn)練時間成本,但是預(yù)測的精度不足,收斂速度慢。文獻(xiàn)[5]提出一種新的基于云信念規(guī)則庫的預(yù)測模型,引入云模型充分考慮了態(tài)勢值的隨機性和模糊性,通過約束協(xié)方差矩陣自適應(yīng)進(jìn)化策略算法優(yōu)化模型參數(shù),在小樣本情況下達(dá)到較高的精度。文獻(xiàn)[6]提出一個兩層的遞歸神經(jīng)網(wǎng)絡(luò)長短期記憶(long short-term memory, LSTM)網(wǎng)絡(luò)和循環(huán)門控單元(recurrent gate unit,GRU)的預(yù)測模型,雖然很大程度上解決了預(yù)測精度的問題,但是也增加了模型復(fù)雜度和訓(xùn)練的時間成本。文獻(xiàn)[7]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的態(tài)勢預(yù)測模型,選取與未來安全相關(guān)性最高的指標(biāo)數(shù)據(jù)構(gòu)建時間序列,實現(xiàn)了態(tài)勢要素到態(tài)勢值的映射,但該方法忽略了選取指標(biāo)的重要性差異,將其同等對待,降低了預(yù)測精度。
為了更好地處理網(wǎng)絡(luò)安全因素之間的關(guān)系對網(wǎng)絡(luò)安全形勢的影響,本文提出一種基于注意力機制的GRU神經(jīng)網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型。考慮到文中采用多屬性的安全指標(biāo)數(shù)據(jù)作為數(shù)據(jù)支持,在傳統(tǒng)的GRU模型上引入注意力機制融合多屬性網(wǎng)絡(luò)安全數(shù)據(jù),根據(jù)各屬性的重要性對其賦予注意力權(quán)重,通過編碼過程將多源安全數(shù)據(jù)融合成態(tài)勢值進(jìn)行預(yù)測,然后利用優(yōu)化的粒子群優(yōu)化(particle swarm optimization, PSO)算法確定網(wǎng)絡(luò)的超參數(shù)和網(wǎng)絡(luò)規(guī)模,進(jìn)一步提高模型的性能。該模型在很大程度上保留了原始網(wǎng)絡(luò)安全數(shù)據(jù)并最大化挖掘數(shù)據(jù)之間的相關(guān)性,提高了預(yù)測精度。本文研究主要包括以下幾點:
(1) 利用不同網(wǎng)絡(luò)安全指標(biāo)數(shù)據(jù)在時間維度上的關(guān)聯(lián)性和差異預(yù)測未來網(wǎng)絡(luò)安全態(tài)勢,充分挖掘時間序列所包含的信息并考慮不同指標(biāo)數(shù)據(jù)之間的依賴關(guān)系;
(2) 通過注意力機制計算不同指標(biāo)的重要度并進(jìn)行編碼得到該時刻的網(wǎng)絡(luò)安全態(tài)勢值;
(3) 為了進(jìn)一步提高性能,降低預(yù)測誤差,利用優(yōu)化的PSO優(yōu)化神經(jīng)網(wǎng)絡(luò)的超參數(shù)。
為了區(qū)別關(guān)注多屬性網(wǎng)絡(luò)安全數(shù)據(jù)中的重要信息,本文提出基于注意力機制結(jié)合GRU的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,利用提出的方法進(jìn)行態(tài)勢預(yù)測能夠更好的挖掘原始安全數(shù)據(jù)之間的關(guān)系,確保重要信息不丟失,提高預(yù)測精度。如圖1所示,該方法的網(wǎng)絡(luò)模型主要由輸入層、GRU編碼器、注意力層和預(yù)測網(wǎng)絡(luò)4部分組成。
圖1 Attention-GRU預(yù)測方法的網(wǎng)絡(luò)模型
(1) 輸入層
選取國家互聯(lián)網(wǎng)應(yīng)急中心的安全數(shù)據(jù)作為實驗數(shù)據(jù),該數(shù)據(jù)由5個安全指標(biāo)構(gòu)成。數(shù)據(jù)輸入網(wǎng)絡(luò)之前將其處理成適合于網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)結(jié)構(gòu):時間步長×輸入維度。
(2) 編碼器
GRU[9-10]是由循環(huán)神經(jīng)網(wǎng)絡(luò)[8]衍化而來的流行變體,通過引入門控機制,自適應(yīng)地控制信息的流動,為神經(jīng)網(wǎng)絡(luò)引入內(nèi)存容量,允許捕捉序列之間的相互依賴關(guān)系,在處理時間序列方面具有明顯的優(yōu)勢。因此,選用GRU作為編碼器的神經(jīng)網(wǎng)絡(luò)處理單元從輸入層獲取數(shù)據(jù),輸出的隱藏狀態(tài)值為注意力層進(jìn)行編碼提供數(shù)據(jù)支持。
(3) 注意力層
采用多屬性的歷史信息作為訓(xùn)練數(shù)據(jù)集,該數(shù)據(jù)集有5個不同的屬性并且數(shù)據(jù)之間存在重要性差異。具有注意力機制的神經(jīng)網(wǎng)絡(luò)能夠幫助模型更好地學(xué)習(xí)多種內(nèi)容模態(tài)之間的相互關(guān)系,避免神經(jīng)網(wǎng)絡(luò)將不同的預(yù)測因子同等對待,忽略了對重要信息的特別關(guān)注[11-13]。因此,在預(yù)測網(wǎng)絡(luò)之前引入注意力層,將編碼器的輸出和安全指標(biāo)數(shù)據(jù)作為該單元的輸入,定量地為多屬性網(wǎng)絡(luò)安全數(shù)據(jù)賦予權(quán)重,重點突出各屬性對于當(dāng)前網(wǎng)絡(luò)安全狀況的影響,讓神經(jīng)網(wǎng)絡(luò)能夠更加專注并高效地找到對當(dāng)前預(yù)測輸出更有用的信息,從而得到更準(zhǔn)確的預(yù)測值。詳細(xì)的處理步驟在第1.3節(jié)介紹。
(4) 預(yù)測網(wǎng)絡(luò)
將注意力層編碼得到的編碼失量送入預(yù)測網(wǎng)絡(luò),得到預(yù)測時刻網(wǎng)絡(luò)的安全態(tài)勢值。
GRU神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)涉及多個超參數(shù)的設(shè)定:神經(jīng)元數(shù)量m、時間步長T、批處理大小batch size。神經(jīng)元數(shù)量決定了神經(jīng)網(wǎng)絡(luò)的擬合程度,時間步長和批處理大小直接影響模型訓(xùn)練的結(jié)果。在實際應(yīng)用中,不同數(shù)據(jù)集對應(yīng)不同的超參數(shù)設(shè)定會影響預(yù)測精度[14-15]。本文采用優(yōu)化的PSO對這些超參數(shù)進(jìn)行尋優(yōu),根據(jù)輸入數(shù)據(jù)自適應(yīng)優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方式,得到模型參數(shù)的最優(yōu)組合
PSO算法是一種基于種群的生物啟發(fā)式算法[16-18],對于一個J維的優(yōu)化問題,種群中有I個粒子,每個粒子具有一個J維的速度和位置。在第p次迭代中,第i個粒子不同維度的速度向量和位置向量為
(1)
(2)
(3)
(4)
基于每次找到的兩個最佳位置,根據(jù)式(5)和式(6)更新粒子速度和位置尋找最優(yōu)解。
(5)
(6)
標(biāo)準(zhǔn)PSO算法中c1、c2都是固定的,無法根據(jù)種群中粒子到最優(yōu)解的距離自適應(yīng)的調(diào)整位置,并且粒子更新的速度取決于粒子到自身的個體最佳位置和到群體最佳位置的距離,所以本文對PSO算法進(jìn)行改進(jìn),使c1、c2根據(jù)進(jìn)化過程和粒子當(dāng)前位置同個體最佳位置及全局最佳位置的距離進(jìn)行自適應(yīng)的調(diào)整。優(yōu)化后的學(xué)習(xí)因子自適應(yīng)調(diào)整公式如下:
(7)
(8)
以上優(yōu)化的PSO算法得到模型最優(yōu)參數(shù)的具體方法如下:
步驟 1初始化算法相關(guān)參數(shù),確定種群規(guī)模、迭代次數(shù)、慣性權(quán)重和學(xué)習(xí)因子的變化區(qū)間;
步驟 2隨機生成一個三維的種群粒子(m,T,batch size),并初始化粒子的位置和速度、粒子的維度即我們需要優(yōu)化的參數(shù);
步驟 3以上述模型的損失函數(shù)作為粒子的適應(yīng)度函數(shù),適應(yīng)度函數(shù)越小說明模型的損失函數(shù)越小,則該粒子求得的參數(shù)組合越好。計算每個粒子的適應(yīng)度函數(shù),根據(jù)適應(yīng)度函數(shù)確定個體最佳位置和群體最佳位置;
步驟 4迭代過程中根據(jù)式(5)和式(6)更新粒子的速度和位置,其中的c1、c2為優(yōu)化后的式子,再重新計算每個粒子的適應(yīng)度函數(shù)并更新個體最佳位置和群體最佳位置;
步驟 5當(dāng)達(dá)到迭代次數(shù)或粒子的適應(yīng)度函數(shù)趨于穩(wěn)定時則停止,作為群體最佳位置的粒子為本次求得的最優(yōu)參數(shù)組合,否則轉(zhuǎn)步驟4繼續(xù)迭代。
基于PSO算法求解模型最優(yōu)參數(shù)組合的算法流程圖如圖2所示。
圖2 PSO算法優(yōu)化模型超參數(shù)的流程圖
本文主要針對網(wǎng)絡(luò)安全態(tài)勢的多影響因素、時間相關(guān)等特點,采用GRU網(wǎng)絡(luò)并引入注意力機制建立編碼預(yù)測網(wǎng)絡(luò)。同時利用PSO算法優(yōu)化GRU超參數(shù),提高預(yù)測精度?;贏ttention-GRU預(yù)測方法的具體算法流程介紹如下。
步驟 1本文原始輸入時間序列為具有n個安全指標(biāo)的多屬性網(wǎng)絡(luò)數(shù)據(jù),輸入樣本數(shù)據(jù)為
X=[x1,x2,…,xn]T=[x1,x2,…,xT]∈Rn×T
(9)
式中,T為時間步長,每個訓(xùn)練樣本Xtrain∈Rn×1為n×1階矩陣。
步驟 2初始化GRU神經(jīng)網(wǎng)絡(luò)的參數(shù)并將其超參數(shù)設(shè)置為PSO算法求得的最優(yōu)組合,將訓(xùn)練樣本輸入編碼器GRU,通過GRU單元將輸入序列Xtrain映射為編碼器的隱藏狀態(tài)ht:
rt=σ(Wr[ht-1,xt]+br)
(10)
zt=σ(Wz[ht-1,xt]+bz)
(11)
(12)
(13)
步驟 3訓(xùn)練樣本同編碼器GRU的輸出作為注意力層的輸入,目的是對每個時刻的訓(xùn)練樣本進(jìn)行有差異性的數(shù)據(jù)融合,此步驟主要包括3部分。
首先需要計算編碼器隱藏狀態(tài)值與不同屬性之間的相似性得分:
(14)
(15)
最后對輸入數(shù)據(jù)進(jìn)行加權(quán)求和操作,得到t時刻融合后的網(wǎng)絡(luò)安全態(tài)勢值:
(16)
通過對n個不同屬性進(jìn)行加權(quán)平均得到t時刻安全指標(biāo)的融合值。
步驟 4將步驟3的輸出作為輸入送入預(yù)測網(wǎng)絡(luò),計算t時刻的網(wǎng)絡(luò)輸出,此時預(yù)測網(wǎng)路GRU的隱藏狀態(tài)更新為
dt=GRU(yt-1,dt-1,ct)
(17)
(18)
重復(fù)步驟2到步驟4,計算出所有訓(xùn)練樣本的預(yù)測值。
在網(wǎng)絡(luò)的訓(xùn)練階段,使用監(jiān)督學(xué)習(xí)對模型進(jìn)行訓(xùn)練,以均方誤差函數(shù)作為模型的損失函數(shù),其數(shù)學(xué)定義如下:
(19)
由于整個預(yù)測過程是平滑且可微的,可以采用端對端的學(xué)習(xí)方式直接通過神經(jīng)網(wǎng)絡(luò)的前向傳播和梯度的反向傳播同模型的其他部分進(jìn)行聯(lián)合優(yōu)化網(wǎng)絡(luò)參數(shù)。采用Adam[19-21]優(yōu)化算法對模型參數(shù)進(jìn)行優(yōu)化,優(yōu)化過程中通過最小化損失函數(shù)不斷迭代更新神經(jīng)元的權(quán)值矩陣和偏置使損失函數(shù)輸出值達(dá)到最低。
采用國家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的安全態(tài)勢周報數(shù)據(jù)作為實驗基礎(chǔ)。國家互聯(lián)網(wǎng)應(yīng)急中心[22]是中國大陸的一個網(wǎng)絡(luò)安全技術(shù)協(xié)調(diào)組織,主要是對全國的安全事件進(jìn)行統(tǒng)計處理并評估網(wǎng)絡(luò)安全狀態(tài),并以周、月、年為周期發(fā)布安全信息。動態(tài)周報主要以5個安全指標(biāo)評估網(wǎng)絡(luò)安全基本態(tài)勢,其中包括境內(nèi)感染網(wǎng)絡(luò)病毒的主機數(shù)量、境內(nèi)被篡改網(wǎng)站總數(shù)、境內(nèi)被植入后門網(wǎng)站總數(shù)、境內(nèi)網(wǎng)站的仿冒頁面數(shù)量和新增信息安全漏洞數(shù)量。本文主要選取2017年第32期到2019年第45期共119期的安全數(shù)據(jù)為實驗基礎(chǔ)驗證本文方法的優(yōu)越性。引用文獻(xiàn)[23]的評估方法對原始數(shù)據(jù)進(jìn)行量化,得到119周的網(wǎng)絡(luò)安全態(tài)勢值,其具體的量化模型如圖3所示。
圖3 網(wǎng)絡(luò)安全態(tài)勢評估量化模型
本文按照時間順序選取前101周的數(shù)據(jù)為訓(xùn)練集,后18周的數(shù)據(jù)為測試集,時間窗口設(shè)置為循環(huán)神經(jīng)網(wǎng)絡(luò)的時間步長,預(yù)測時長為一周。由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性和隨機性,態(tài)勢值量綱差異大,本文所用神經(jīng)網(wǎng)絡(luò)的激活函數(shù)對于輸入數(shù)據(jù)的取值是否在[-1,1]內(nèi)異常敏感,因此對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化可以加快收斂速度,提高神經(jīng)網(wǎng)絡(luò)的預(yù)測精度。采用下面的方法對輸入數(shù)據(jù)進(jìn)行歸一化:
(20)
式中,x′、x為處理前的數(shù)據(jù);min(x)和max(x)是數(shù)據(jù)集中的最小值和最大值。因此,歸一化后的網(wǎng)絡(luò)安全態(tài)勢值如圖4所示。
圖4 標(biāo)準(zhǔn)化后的網(wǎng)絡(luò)安全態(tài)勢時間序列
本文選取兩種計量方法對所提出的預(yù)測模型進(jìn)行評價:平均絕對誤差(mean absolute error,MAE),均方根誤差(root mean square error,RMSE)。具體的公式定義如下:
(21)
(22)
通過第2.2節(jié)對數(shù)據(jù)進(jìn)行預(yù)處理后,采用PSO算法求得模型參數(shù)的最優(yōu)組合。對改進(jìn)的PSO算法進(jìn)行初始化設(shè)置:PSO算法的種群大小為5,進(jìn)化次數(shù)為20次,每個粒子的維度為3,分別代表需要優(yōu)化的參數(shù):編碼器神經(jīng)元數(shù)、預(yù)測網(wǎng)絡(luò)神經(jīng)元數(shù)、時間步長T和批處理大小batch-size。為了簡單起見設(shè)置編碼器神經(jīng)元數(shù)和預(yù)測網(wǎng)絡(luò)神經(jīng)元數(shù)相等,學(xué)習(xí)因子c1和c2的最大值為2.5,最小值為0.5,權(quán)重因子W為0.8。
2.3.1 模型最優(yōu)參數(shù)組合的仿真分析
圖5展示了PSO算法優(yōu)化Attention-GRU神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果,神經(jīng)元個數(shù)、時間步長和批處理大小隨著算法的更新逐漸收斂至最優(yōu)值。由圖4可以看到,神經(jīng)元個數(shù)最終收斂至32個,模型訓(xùn)練數(shù)據(jù)的批處理大小為1,最佳時間步長為6,至此我們獲得了性能最好的超參數(shù)來修正本文的模型結(jié)構(gòu),得到本文模型的最佳參數(shù)組合。
圖5 IPSO優(yōu)化Attention-GRU的參數(shù)變化
為了評價本文提出來的模型在網(wǎng)絡(luò)安全態(tài)勢預(yù)測中的性能,與傳統(tǒng)的機器學(xué)習(xí)方法和深度學(xué)習(xí)方法進(jìn)行了對比實驗,包括反向傳播(back propagation, BP)神經(jīng)網(wǎng)絡(luò)、GRU、PSO_SVM[24]和基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]。文獻(xiàn)[26]中的方法最初用于機器翻譯,在翻譯任務(wù)中解碼器的輸出為每個時間步生成碼字的概率,為了執(zhí)行本文網(wǎng)絡(luò)安全態(tài)勢預(yù)測任務(wù),將網(wǎng)絡(luò)的輸出修改為單個標(biāo)量值,均方誤差函數(shù)作為損失函數(shù)。同時為了公平起見,所有模型均采用本文所提PSO算法得到最優(yōu)參數(shù)組合。
本文的實驗環(huán)境為:Windows 10操作系統(tǒng), python3.7環(huán)境下采用Keras深度學(xué)習(xí)框架進(jìn)行模型訓(xùn)練和測試。硬件配置為:64位操作系統(tǒng),處理器為Inter(R) Core(TM) i5-8500 CPU 3.00 GHz。
2.4.1 注意力模型的可視化
針對基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]和本文所提出來的Attention-GRU模型,為了更好地理解在一個時間步長內(nèi)不同屬性的注意力分配比例,將注意力權(quán)重用熱力圖可視化出來,熱力圖中顏色越深的地方代表分配的注意力權(quán)重越大。從圖6可以看出橫坐標(biāo)為一個步長時間,縱坐標(biāo)為5個不同的屬性,隨著時間點的不同,熱力圖中顏色深淺也不同表明注意力模型在每個時間點為不同屬性賦予不同的權(quán)重,有效地利用一個時間步長內(nèi)的局部信息,自適應(yīng)地融合了該時刻的網(wǎng)絡(luò)安全態(tài)勢值。
圖6 注意力分配比例可視圖
2.4.2 預(yù)測精度比較
為了從整體上評估各模型的預(yù)測能力,計算不同模型最終的兩種誤差,結(jié)果如表1所示,由于神經(jīng)網(wǎng)絡(luò)權(quán)重初始化的隨機性,實驗結(jié)果存在一定的偏差,對所有預(yù)測模型進(jìn)行多次實驗取平均值以減少隨機誤差,增加對比的公平性。根據(jù)本文選取的平均絕對誤差和均方根誤差兩個評價指標(biāo)來衡量預(yù)測結(jié)果的準(zhǔn)確性,兩種評價指標(biāo)分別表示預(yù)測值同真實值之間的偏差和擬合精確度,值越小說明預(yù)測效果越好。我們可以看到本文所提模型在整體的誤差上相比其他模型有較大的優(yōu)勢,相比文獻(xiàn)[25]的方法,誤差降低了60.9%;相比文獻(xiàn)[26],誤差降低了78.3%;同單獨使用GRU的預(yù)測模型相比,誤差降低了97.8%。表明注意力機制在權(quán)重分配方面給予了積極作用,說明了本文提出對于網(wǎng)絡(luò)安全態(tài)勢值的多屬性預(yù)測方法是有效的。
表1 模型預(yù)測誤差指標(biāo)對比
表2的結(jié)果也可以進(jìn)一步證明基于注意力機制的預(yù)測方法在多數(shù)時間點上可以得到很好的預(yù)測結(jié)果。表2為不同預(yù)測模型在進(jìn)行預(yù)測時各時間點的絕對誤差,可以看出本文方法的預(yù)測絕對誤差全部都控制在0.004之內(nèi)并且多數(shù)的誤差相比于0.004會更低一個數(shù)量級,相比其他模型預(yù)測精度高。
表2 不同預(yù)測模型各時間點的預(yù)測絕對誤差對比
圖7展示了本文方法同BP、GRU、PSO_SVM[24]等基本預(yù)測模型和基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]預(yù)測值精度對比圖。從圖7上可以直觀地看到所有預(yù)測模型都有一定的預(yù)測能力,但本文方法的預(yù)測值同真實值的擬合度最高,在每一個預(yù)測點幾乎同真實值重合。相比余下的預(yù)測方法,SVM的預(yù)測效果最差,只預(yù)測出了數(shù)據(jù)的變化趨勢而無法精確的擬合曲線,主要是因為支持向量機主要應(yīng)用于解決小樣本的線性回歸問題,對于大樣本的預(yù)測,誤差較大。BP神經(jīng)網(wǎng)絡(luò)無法捕捉時間序列之間的長期依賴性并且隱含層神經(jīng)元個數(shù)的選取缺乏理論指導(dǎo),容易陷入局部最優(yōu),預(yù)測精度低。本文在GRU神經(jīng)網(wǎng)絡(luò)上進(jìn)行改進(jìn)后,可以看到本文方法的預(yù)測曲線明顯比未進(jìn)行改進(jìn)的更準(zhǔn)確。
圖7 不同預(yù)測模型的態(tài)勢值對比
2.4.3 預(yù)測時長的分析與比較
由于時間序列預(yù)測的評判標(biāo)準(zhǔn)不僅依賴于預(yù)測的準(zhǔn)確性,還依賴于在不同預(yù)測時長下的準(zhǔn)確性。本文針對不同預(yù)測模型在不同預(yù)測時長下的預(yù)測準(zhǔn)確性進(jìn)行了對比,結(jié)果如圖8所示??梢钥吹剿心P驮谶M(jìn)行單步預(yù)測時誤差最小,在相同預(yù)測時長下,本文的預(yù)測能力較好,隨著預(yù)測時長的增大,預(yù)測誤差逐漸增大后變化穩(wěn)定,模型具有一定的魯棒性。
圖8 不同預(yù)測時長下的平均絕對誤差對比
2.4.4 模型復(fù)雜度分析
根據(jù)上文對模型預(yù)測步驟的描述,分析每次模型訓(xùn)練的時間復(fù)雜度。N為樣本個數(shù),m為神經(jīng)元個數(shù),Q=m/batch size為模型訓(xùn)練一次內(nèi)部的迭代次數(shù),模型參數(shù)迭代更新Q次。GRU內(nèi)部存在2個門結(jié)構(gòu)和一個候選狀態(tài),同時注意力層為一個前饋神經(jīng)網(wǎng)絡(luò),因此本文的時間復(fù)雜度為O(3Q(2Nm+m2)),同其他預(yù)測模型的復(fù)雜度比較如表3所示。
表3 不同模型的復(fù)雜度對比
2.4.5 收斂性分析
第2.4.4節(jié)對比了不同模型訓(xùn)練一次的復(fù)雜度,圖9為模型的訓(xùn)練誤差隨迭代次數(shù)的變化情況。由于文獻(xiàn)[24]同本文收斂性分析比較方法不同,因此不予比較。從圖9中可以觀察出本文方法在收斂速度與收斂精度上均具有顯著的優(yōu)勢,說明模型能夠很好的學(xué)習(xí)數(shù)據(jù)。
圖9 訓(xùn)練誤差隨迭代次數(shù)變化的曲線
2.4.6 執(zhí)行時間分析
本文所指執(zhí)行時間包括3部分:PSO算法求解最優(yōu)參數(shù)組合時間、模型訓(xùn)練時間和測試時間。機制的執(zhí)行時間同時與模型的復(fù)雜度、迭代次數(shù)和算法的進(jìn)化代數(shù)相關(guān),通過實驗分別記錄了各模型的執(zhí)行時間,如表4所示。
前3種網(wǎng)絡(luò)產(chǎn)生的時間差異主要來源于網(wǎng)絡(luò)的內(nèi)部單元結(jié)構(gòu),RNN內(nèi)部為一個具有簡單激活函數(shù)的神經(jīng)元,優(yōu)化參數(shù)少,時間代價小但預(yù)測誤差也大。LSTM內(nèi)部有3個門結(jié)構(gòu)和一個候選狀態(tài),優(yōu)化參數(shù)明顯增多的同時帶來了預(yù)測精度的提升。GRU具有兩個門結(jié)構(gòu)即相對減少了參數(shù)的同時降低了預(yù)測誤差。后3種網(wǎng)絡(luò)由于結(jié)構(gòu)簡單、處理簡單,因此執(zhí)行時間代價很小,但這些方法的預(yù)測誤差較大,無法準(zhǔn)確預(yù)測網(wǎng)絡(luò)安全態(tài)勢值。
表4 不同模型的執(zhí)行時間對比
針對存在時序性且受多個變量共同影響的網(wǎng)絡(luò)安全態(tài)勢序列的預(yù)測,本文提出并驗證了一種基于注意力模型融合多變量的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法。該方法結(jié)合了GRU神經(jīng)網(wǎng)絡(luò)和注意力機制,充分挖掘了原始數(shù)據(jù)中多變量的相互依賴關(guān)系,避免了過度依賴評估結(jié)果的準(zhǔn)確性。優(yōu)化的PSO算法根據(jù)數(shù)據(jù)自適應(yīng)的確定模型的最優(yōu)參數(shù)組合,使模型在進(jìn)行態(tài)勢預(yù)測時具有更高的預(yù)測精度與預(yù)測效率。通過實驗數(shù)據(jù)和仿真分析,說明了本文模型的高效性和實用性。