夏 容,江官星
(南昌航空大學科技學院,江西 共青城 332020)
近年來,網絡信息技術領域發(fā)展迅速,軟件更新速度也隨之加速。成千上萬的軟件應用充斥在人們生活的方方面面,軟件中的時間序列的安全問題逐漸被人們所關注[1]。傳統(tǒng)的軟件時間序列延遲預測方法漸漸適應不了更新過后的軟件,這時提出一種新型的軟件時間序列延遲預測方法就變得尤為重要[2]。
潘玉民[3]等人提出一種基于QPSO-FNN的混沌時間序列延遲預測方法。該方法根據軟件中時間序列的延遲因子和飽和嵌入維數重構一個空間,利用Lyapunov指數法來判別時序系統(tǒng)的混沌特性,再采用混合的模糊神經推理方法來擬合混沌吸引子特性,在線調整隸屬度函數與結論參數,最后利用量子粒子群算法對優(yōu)化后的軟件初始參數進行計算,以此來進行軟件時間序列的延遲預測。該方法的預測準確率較高,但預測的時間長;劉新婷[4]等人提出混沌不穩(wěn)定周期方法的軟件時間序列延遲預測。依據時間序列運行軌跡的重合度來構建一個不穩(wěn)定周期的優(yōu)化函數,再通過對該函數的計算獲取最佳的不穩(wěn)定周期值及嵌入維數參數,依據獲取的延遲時間與嵌入維數等軟件參數對軟件的時間序列進行相空間的重構,最后利用前一個不穩(wěn)定周期軌跡中的數值來實現對軟件時間序列延遲的預測。該方法的預測時間較短,但漏報率高;徐科[5]等人提出基于小波分解的軟件時間序列延遲的預測方法。該方法首先將一些不平穩(wěn)的時間序列分解為幾個近似的平穩(wěn)時間序列,并對其進行小波的分解,再利用自回歸模型對分解后的延遲時間序列進行預測。該方法的漏報率較低,但預測準確率較差。
為解決上述方法中存在的問題,提出基于LSTM的軟件時間序列延遲預測方法。
長短期記憶網絡是以循環(huán)神經網絡為基礎的一種改進算法。循環(huán)神經網絡將軟件中前一個時刻中存在的隱藏層狀態(tài)信息進行計算,并將結果應用于當前的輸出中。當軟件中的時間序列為輸出數據時,將時間序列展開便能夠獲取一個能夠相互連接的標準神經元[6]。循環(huán)神經網絡結構如圖1所示。
圖中,t時刻的輸入數據為xt,軟件的隱藏層狀態(tài)為ht,而軟件中的最終輸出數據為yt,V、U、W則為循環(huán)神經網絡中各個隱藏層之間的權重系數矩陣。根據網絡結構展開循環(huán)神經網絡,就能夠明確看到,時間序列中的位置參數(V、U、W)可以共享,由此縮減預測時所需要的參數,為軟件時間序列延遲預測做準備。
RNN原理如下:
設定軟件的時間序列為x=[x1,x2,…,xt-1,xt],將循環(huán)神經網絡展開成一個隱含層數量為t個的RNN循環(huán)神經網絡,網絡的傳播過程如下式所示

(1)
式中,循環(huán)網絡中的偏置項為b,網絡中t-1時刻的隱藏層狀態(tài)為ht-1,激活函數為f(一般為tanh函數或Relu函數)。
RNN中的輸入源分為兩部分,一部分是隱藏層的當前輸入數據xt,另一部分則是前一個隱藏層中的狀態(tài)輸出數據ht-1。通常情況下,傳統(tǒng)神經網絡的輸入只包含輸入層的數據輸入與隱藏層的數據輸出。經過驗證后可知,當軟件中時間序列的間隔慢慢增大時,循環(huán)神經網絡會逐漸喪失對歷史數據的學習、留存能力,從而使軟件出現梯度消失現象,影響軟件時間序列延遲預測的精準度。
基于上述問題,將LSTM細胞結構單元加入隱藏層中,代替網絡中原有的隱藏層單元,形成LSTM(長短期記憶網絡)的神經網絡模型。對軟件中的數據進行特征挖掘,LSTM細胞結構單元構成如圖2所示。

圖2 LSTM細胞結構單元構成
長短期記憶網絡結構單元分為四個部分,依次為LSTM中記憶單元的狀態(tài)值、遺忘門、以及輸入門與輸出門。長短期記憶網絡中三個單元門的主要作用為控制信息的傳遞,而xt、ct-1、ht-1的取值則與三個單元控制門控制多少數據進行傳遞,分配多少數據相關[7]。
遺忘門、輸入與輸出門可以如下式所示

(2)
式中,ft、ot、it分別為軟件中t時刻遺忘門的輸出數據,輸出門的輸出數據以及軟件中輸入門的輸出數據,ht-1、ct-1分別為軟件中t-1時刻的隱藏層輸出和記憶單元中的狀態(tài)值,d為對應的偏置項,激活函數為σ。而式子中的Wxi、Whi、Wci分別是輸入門與輸入層、隱藏層及記憶單元之間的權值系數矩陣,Wxo、Who、Wco分別為軟件中輸出門與輸入層、隱藏層、記憶單元之間產生的權值系數矩陣,Wxf、Whf、Wcf分別為遺忘門與輸入層、隱藏層、記憶單元之間產生的權值系數矩陣[8]。
軟件中t時刻記憶單元狀態(tài)值分別由上一時刻的記憶單元狀態(tài)值和當前的候選記憶狀態(tài)值Wxcxt+Whcht-1+d組成,再利用輸入門與遺忘門對狀態(tài)值進行控制,集體算法如下式所示
ct=ftct-1+ittanh(Wxcxt+Whcht-1+d)
(3)
其中,ct為測試軟件中t時刻記憶單元值的狀態(tài)。
這樣,LSTM單元中的記憶單元細胞就可以長時間地對軟件中的儲存數據進行保留,消除軟件的梯度消失問題[9]。再利用激活函數計算輸出門與當前記憶狀態(tài)值,并對獲取的結果進行整合,獲取軟件的最終輸出值ht,計算流程如下式所示
ht=ottanh(cth)
(4)
通過上述過程,對軟件中的數據進行特征提取,并以此為基礎簡化軟件中的時間序列,為之后的軟件時間序列延遲的預測做準備。
根據軟件中提取的數據特征以及簡化后的軟件時間序列,利用支持向量機的函數擬合構建軟件時間序列的延遲預測模型[10]。
首先,基于線性回歸問題,設定軟件中數據的訓練樣本(xi,yi),x∈Rd,yi∈R,i=0,1,…,n,依據線性回歸的目標計算下列回歸函數
f(x)=(w·x)+b
(5)
其中,(w·x)是w與x的內積,b∈R,w∈Rd,并且能夠滿足結構的風險最小化。
計算優(yōu)化后的目標函數,求極值

(6)
其中,C為數據集中的懲罰因子,以此實現風險與置信范圍之間的折中,Remp(f)是損失函數(通常為Huber函數、Laplace函數、ε-不敏感函數以及二次函數)。ε-不敏感函數能夠確保對偶變量的稀疏性并且確保全局最小解的存在及可靠泛化界的優(yōu)化,所以得到廣泛應用,其定義為

(7)
由上式所示,當|yi-(w·xi)-b|≤ε(i=1,2,…,n)時,所有的數據樣本都會落入f(x)+ε與f(x)-ε組成的帶狀區(qū)域中,所以優(yōu)化問題就為

(8)
f(x)+ε與f(x)-ε組成的帶狀區(qū)域為圖3所示。

圖3 線性回歸的不敏感區(qū)域
由于上述條件不能充分滿足,所以引入松弛因子ζ≥0與ζ*≥0,式(8)就變?yōu)椋?/p>

(9)

(10)

(11)
獲取b,xs、xt為時間序列中任選的兩個非支持向量。由此獲得擬合函數

(12)
利用核函數K(xi,xj)替代內積運算,由此來實現低維空間到高維空間的映射,使低維空間的非線性問題轉化為高維的線性問題[11]。引入核函數后,目標函數會發(fā)生,如下式所示

(13)
這樣,軟件時間序列的相應擬合函數也就此轉化為

(14)
通常情況下,若對軟件中時間序列進行分析,整合數據構建一個自回歸的動態(tài)模型,軟件時間序列中的當前時刻值與以前n-1個時刻的值均有關系,所以要建立輸入向量xt={xt-1,xt-2,…,xt-p}與輸出的xt之間一對一的映射關系:f:Rp-R,p為軟件中的嵌入維數[12]。依據以上計算流程獲取軟件中數據的訓練樣本集

(15)
根據上述的擬合函數計算流程,建立軟件時間序列的延遲預測模型,如下式所示

(16)
依據軟件中挖掘出的數據特征以及簡化的軟件時間序列結合時間序列延遲預測模型對軟件中的時間序列進行計算,以此完成軟件中的時間序列延遲預測。
為了驗證上述方法的整體有效性,需要對該方法進行對比測試。
采用的操作系統(tǒng)為Windows7,CPU為Pentium(R)Dual-Core,內存為8G、硬盤為120G、處理器為戴爾11代i5。分別采用文獻[3]方法、文獻[4]方法及所提方法進行測試。
1)利用同一型號的處理器對所提方法、文獻[3]方法和文獻[4]方法的軟件時間序列延遲預測的預測時間進行測試,測試結果如圖4所示。

圖4 預測時間測試結果
分析圖4可知,文獻[4]方法在測試初期測試時間要低于所提方法和文獻[3]方法,但是隨著測試次數的增加所提方法的預測時間要低于文獻[3]方法和文獻[4]方法,這主要是因為所提方法在進行軟件時間序列延遲預測時,利用LSTM對軟件中的數據進行特征提取,簡化軟件中的時間序列,再將提取的數據特征放入構建的軟件時間序列延遲的預測模型中,以此實現對軟件的時間序列延遲的預測。使用該方法預測軟件的時間序列延遲,可以縮短時間序列延遲的預測時間,增加預測效率。
2)結合實驗(1)利用同一型號的處理器,對所提方法、文獻[3]方法以及文獻[4]方法進行預測準確率的測試,測試結果如圖5所示。

圖5 預測準確率的檢測結果
分析圖5可知,所提方法的軟件時間序列延遲的預測準確率遠高于文獻[3]方法與文獻[4]方法,并且檢測效率較為穩(wěn)定,而文獻[4]方法雖然在檢測初期準確率一度高于所提方法,但是隨著檢測次數的增加,文獻[4]方法的預測準確率呈急速下降趨勢。這主要是因為所提方法在進行軟件時間序列延遲預測時,利用二次函數對時間序列進行計算,獲取了軟件中記憶單元狀態(tài)值與候選記憶狀態(tài)值,以此解決了影響預測的梯度消失問題。增加了預測的準確性,縮短的預測時間。
3)基于上述測試結果對所提方法、文獻[3]方法和文獻[4]方法的漏報率進行測試,測試結果如圖6所示。

圖6 預測的漏報率測試結果
分析圖6可知,所提方法的軟件時間序列延遲預測的漏報率要遠低于文獻[3]方法與文獻[4]方法,并能夠將漏報率穩(wěn)定維持在10%左右。這主要是因為所提方法在進行軟件時間序列延遲預測時利用LSTM中的激活函數來計算對軟件中門控機制與隱藏單元層之間的權值系數矩陣,簡化軟件中的時間序列,以此降低預測時的漏報率,增加預測效率。
針對目前方法在軟件時間序列延遲預測時所存在的預測時間長、預測準確率低、漏報率高的問題,提出基于LSTM的軟件時間序列延遲預測方法。通過仿真得出,所提方法的預測漏報率較低,預測準確率較高,耗時較短,證明了所提方法的有效性。由于建立軟件時間序列延遲的預測模型時利用了支持向量機的函數擬合過程,所以該方法還存在一些不穩(wěn)定因素,今后會根據這一缺陷繼續(xù)對預測模型進行優(yōu)化。