李 春,高 飛,王會青
太原理工大學 信息與計算機學院,太原030024
時間序列是指某種現象或某一類統計指標按照時間的先后順序排列形成的序列。時間序列已經存在于生活的各個領域中,如洪水預報[1]、天氣預報[2]、能源消耗[3]等。利用時間序列的歷史信息以及數據之間的相關性進行假設與推理,為科學決策提供了理論及實踐支持。時間序列預測一直是各個領域研究的熱點問題之一。
時間序列受到各方面因素影響,通常表現為非線性、非平穩性、快速變換且包含噪聲等特點。為了提高時間序列預測的精度,各個領域學者提出了不同的時間序列預測方法。自回歸滑動平均模型(ARIMA)[4]是一種傳統的線性時間序列預測模型,但ARIMA 主要針對平穩時間序列,具有較大的局限性。大數據時代的到來,傳統的線性時序模型已經不能解決高度非線性的時間序列問題。隨著人工智能的發展,神經網絡這類新的非線性時間序列預測模型已經廣泛應用于各個領域。Huang W[5]和Lv Y[6]等人將深度信念網絡(DBN)用于當前短期交通預測中。李哲敏等人[7]采用動態混沌神經網絡用于農產品價格預測。龍勇等人[8]采用反向傳播神經網絡(BPNN)用于電力負荷預測。但是,這些網絡由于其拓撲結構特點無法捕獲長時間的序列依賴關系進而降低了預測的準確度。
循環神經網絡(Recurrent Neural Network,RNN)是一種可以感知上一時刻信息的定向循環神經網絡,可以很好地處理輸入數據之間關聯的問題[9],因此RNN相比其他神經網絡更適合用于時間序列預測。但是,RNN隨著時間間隔的增加會喪失學習多個間隔之前信息的能力,最終導致梯度消失或爆炸。Sak H等人[10]針對RNN的不足提出了長短期記憶神經網絡(Long Short-Term Memory,LSTM),該網絡通過使用“門”結構不僅具有了長期記憶的能力,還解決了梯度消失或爆炸的問題。所以,LSTM近幾年已經廣泛應用于各個領域[11-12]。
Alkhasawneh M S 等人指出神經網絡在處理目標系統包含線性成份時精確度不高[13]。針對高度非線性的神經網絡可能會忽略線性因素的影響,本文提出了將多個時間步的輸入與輸出進行全連接的LSTM 網絡(CIAO-LSTM),增強了網絡的泛化能力與預測精度。同時,針對BPTT復雜度高、易收斂于局部最優的缺點,本文通過改進的果蠅優化算法(IFOA)優化網絡參數,提高了網絡優化能力。
傳統的人工神經網絡認為數據之間是獨立的,而沒有考慮數據之間的時序性,所以對于時間序列數據并不能很好地擬合。長短期記憶網絡(LSTM)作為一種特殊的循環神經網絡(RNN),不僅具有RNN 對前面信息進行長時記憶的特點,還通過增加遺忘門避免長期依賴的問題。在LSTM 細胞結構中,包括遺忘門ft、輸入門it、輸出門Ot和1個記憶單元,其內部結構如圖1所示。
遺忘門決定了保留多少上一時刻的單元狀態Ct-1信息在當前狀態Ct中,計算公式為:

圖1 LSTM細胞結構示意圖

輸入門控制新信息的輸入,計算公式為:

更新記憶單元狀態為:

輸出門計算公式為:

輸出層計算公式為:

雖然LSTM在時間序列研究中取得了一定的成果,但是當目標系統中包含線性關系且含有噪聲時,高度非線性的LSTM網絡會造成訓練模型過擬合,降低時序預測的精度。同時,LSTM參數在反向調節所采用的BPTT(Back Propagation Through Time)算法存在復雜度高、容易收斂于局部最優等缺點。
果蠅優化算法(FOA)由我國學者潘文超先生[14]提出,是基于果蠅覓食行為尋求全局最優的新方法。果蠅優化算法可應用于求解全局最優解,FOA算法可歸結為以下幾個步驟:
步驟1 初始化果蠅群體最大迭代次數Maxgen 和種群規模Sizepop ,隨機初始果蠅群體位置(X_axis,Y_axis)。
步驟2 賦予果蠅個體利用嗅覺搜尋食物的隨機距離與方向,R 為果蠅搜索半徑。

步驟3 由于無法得知食物的位置,因此通過判斷與原點的距離Di,并且以距離的倒數作為味道濃度的判定值Si。

步驟4 通過將濃度判定值Si代入濃度判定函數f()中求出果蠅個體的味道濃度,并找出該果蠅群體味道濃度最高(最低)的果蠅。

步驟5 保留最佳味道濃度值與X 、Y 坐標,此時果蠅群體利用視覺向該位置飛去。

步驟6 重復執行步驟2~4,若當前味道濃度優于前一迭代味道濃度,則執行式(12),直到達到迭代次數Maxgen 為止。
時間序列分為線性時間序列和非線性時間序列兩類,在以往的時間序列預測研究中,大部分學者首先通過一定手段判斷時序數據的性質,然后選擇合適的模型。即使在非線性的時序數據中也可能包含線性關系,當目標系統中包含線性關系且含有噪聲時,高度非線性的LSTM網絡可能會造成訓練模型過擬合,降低時序預測的精度。針對這種問題,本文提出了改進的CIAOLSTM(Connect Inputs and Outputs in Long Short-Term Memory)網絡,即直連長短期記憶網絡。通過將時間序列中的每個時間步輸入與預測輸出進行全連接,從而加強了整個網絡對于時序數據中的線性關系描述,提高了網絡的泛化能力。本文針對時序數據進行滾動預測,即多個時間步輸入預測多個輸出。改進后的CIAO-LSTM網絡的拓撲結構如圖2所示。

圖2 CIAO-LSTM網絡結構拓撲圖
圖2 中,{X0,X1,…,Xt-1}是多個時間步的輸入值,{Yt,Yt+1,…,Yt+n} 是多個時間步的預測輸出值,Ct、Ct+1是當前LSTM 細胞的輸出狀態,{W0t,W(t-1)t} 、{W0t+1,W(t-1)t+1}代表多個時間步輸入值與預測輸出值連接權重。預測輸出值Yt的表達式如式(15)所示:

傳統FOA算法在步驟2中,果蠅個體在搜尋食物時以固定的半徑R 向四周隨機搜索。搜索半徑R 的大小與算法性能直接相關,搜索半徑較大時可以在前期具有較強的全局尋優能力,但后期會造成局部收斂較慢的問題,而搜索半徑過小則可能會陷入局部最優。
文獻[15]提出了改進的DS-FOA 算法,該算法中搜索半徑R 滿足以下函數關系式:

其中,變量Rmax為初始最大搜索半徑,常量Iter 為當前迭代次數,常量Itermax為初始最大迭代次數。
在DS-FOA 算法中,搜索半徑在初期下降較為迅速,極易陷入局部最優。本文基于DS-FOA做出了改進的果蠅優化算法,在迭代前期采用最大搜索半徑提高全局尋優能力,而在迭代后期通過對搜索半徑采用衰減策略使其能夠收斂于局部最優點。改進之后的搜索半徑定義如式(17)所示:

其中,μ 是搜索半徑的衰減因子。
改進后的式(16)只是增加了全局尋優能力,而尋優的收斂速度并沒有得到解決。文獻[16]針對式(11)適應度函數進行了修正,使得FOA 算法可以在有限的迭代次數和極小的搜索半徑內取得全局最優解,修正后的適應度函數如式(18):

式中,Δ 為逃脫系數,可以使適應度函數取得負值。
采用改進后的式(17)與式(18)相結合提出的IFOA算法,不僅可以解決目標函數尋求全局最優的問題,而且可以加快尋優的收斂速度。
傳統的LSTM 通過BPTT 算法(Back Propagation Through Time)對參數進行優化,但BPTT 存在復雜度高、容易收斂于局部最優等缺點。本文將IFOA 算法用于優化CIAO-LSTM網絡(IFOA_CIAO-LSTM算法),在保證模型能夠收斂于全局最優的同時,減小了尋優的迭代次數。IFOA_CIAO-LSTM算法流程如圖3所示。
IFOA_CIAO-LSTM算法具體過程如下:
步驟1 確定CIAO-LSTM網絡的拓撲結構。
步驟2 初始化最大迭代次數、果蠅種群規模,每個果蠅包含網絡初始連接的權重與偏置。由于在一個固定時間步長的權重與偏置共享,故輸入到LSTM細胞的權重與偏置只需要初始化一次,果蠅初始位置為(X_axis,Y_axis)。
步驟3 賦予果蠅個體利用嗅覺搜尋食物的隨機距離與方向,R 為果蠅搜索半徑。


圖3 IFOA_CIAO-LSTM算法流程圖
步驟4 判斷與原點的距離Di,并且以距離的倒數作為味道濃度的判定值Si:

步驟5 通過濃度判定函數中求解果蠅個體的味道濃度,本文將CIAO-LSTM 網絡均方誤差(Mean-Square Error,MSE)作為濃度判定函數。

式中,y'是預測輸出值,y 是真實值。
步驟6 通過將濃度判定值Si代入濃度判定函數f()中求出果蠅個體的味道濃度,并找出該果蠅群體味道濃度最高(最低)的果蠅。

步驟7 保留最佳味道濃度值與X 、Y 坐標,此時果蠅群體利用視覺向該位置飛去。

步驟8 重復執行步驟3~7,若當前味道濃度優于前一迭代味道濃度,則執行步驟6,直到達到迭代次數Maxgen 為止。最后將保留的最佳參數模型保存并進行預測,輸出預測結果。
實驗環境為python3.5,tensorflow1.7.0 框架,ubuntu16.0.4,8 GB 內 存,Inter?Core ?,i7-3632QM CPU@2.2 GHz。
本實驗選取了四組不同領域的時間序列數據來測試模型的適用性及性能,第一組來自澳大利亞能源市場運營商(Australian Energy Market Operator,AEMO)提供的新南威爾士州2017 年的全年電力負荷數據,第二組至第四組數據來自DataMarket 提供的1965—1980 年二氧化碳濃度、1962—1975 年牛奶產量數據和1990—2015 年股票當日交易最高價。其具體的數據信息如表1所示。

表1 數據集信息
為了提高模型預測精度,對數據進行歸一化處理,通過公式(28)將數據映射到[0,1]范圍之間,xt為實際值,xt' 為歸一化后的值,xmax與xmin為數據集中的最大與最小值。得

到的預測輸出值按公式(29)反歸一化為實際值,yt'為歸一化的網絡輸出預測值,yt是網絡輸出反歸一化后的實際值。

為了評價IFOA_CIAO-LSTM預測方法的性能。主要通過以下兩個指標評價該方法性能:(1)不同預測模型的預測序列與實際序列的擬合效果對比圖;(2)歸一化均方根誤差(normalized Root Mean Square Error,nRMSE)和平均絕對百分誤差(Mean Absolute Percentage Error,MAPE)作為評價指標,定義如下:

其中,y' 表示網絡輸出的預測值,y 表示實際值,ymax是測試數據的最大值,ymin是測試數據的最小值,N 表示測試數據的長度。
實驗1 不同時序模型的預測曲線與實際曲線擬合效果對比。
本文分別采用長短期記憶(LSTM)網絡模型、直連長短期記憶(CIAO-LSTM)網絡模型、基于果蠅算法優化直連長短期記憶網絡(FOA_CIAO-LSTM)、基于改進果蠅優化算法的直連長短期記憶(IFOA_CIAO-LSTM)網絡模型設計預測實驗。將這四種模型分別應用在四組不同領域的時序數據上,對不同模型的預測結果與實際結果進行對比,并通過擬合曲線圖來評價不同模型的優劣。第一組和第四組數據由于測試集較大,因此選取了部分數據體現數據的擬合程度。
圖4 為四種預測模型在四組數據上的預測值與實際值擬合圖。從圖中可以看出,CIAO-LSTM 模型對不同時序數據的擬合效果優于傳統的LSTM 模型,表明LSTM 加入輸入與輸出全連接加強了時序數據的擬合效果,因此該網絡相比傳統的LSTM具有更高的預測精度。FOA_CIAO-LSTM模型擬合效果優于CIAO-LSTM模型,表明果蠅優化算法在尋找最優網絡參數能力優于傳統BPTT 算法。圖4(d)中,LSTM 模型、CIAO-LSTM模型和FOA_CIAO-LSTM 模型在峰值具有較大的偏差,擬合效果較差。而IFOA_CIAO-LSTM 模型采用尋求全局最優和快速局部收斂的改進果蠅優化算法,克服了傳統BPTT算法陷入局部最優的問題,在峰值可以更好擬合,表明改進的果蠅算法(IFOA)相比傳統的FOA算法具有更強的全局尋優能力。同時,IFOA_CIAO-LSTM模型相比本文其他模型對于波動較大的數據可以更好地擬合。
實驗2 各模型在不同數據集下歸一化均方根誤差(nRMSE)、平均絕對百分誤差和模型訓練時間對比結果。
從表2中的第4、5列可以得出,CIAO-LSTM模型的nRMSE和MAPE明顯低于LSTM模型,表明CIAO-LSTM模型相比傳統的LSTM模型,在時序預測方面有更好的預測精度。由表2中的第3、6列可以得出,CIAO-LSTM模型在傳統的LSTM 模型加入輸入與輸出全連接可以降低模型隱藏層神經元個數,進而加快了模型的訓練時間。
同時,IFOA_CIAO-LSTM的nRMSE明顯低于其他三種模型,表明采用改進的果蠅優化算法(IFOA)提高了網絡的尋優能力,進而提高了模型的預測精度,因此IFOA_CIAO-LSTM 網絡模型在時序預測方面具有更好的性能,且IFOA_CIAO-LSTM 模型在不同數據集下的MAPE 均在3%以內,在實際應用中具有一定的指導作用。
根據以上實驗可以得出,本文提出的IFOA_CIAOLSTM模型與本文其他模型相比,在不同數據集上具有較強的泛化能力和較高的預測精度,且對于波動較大的數據也可以進行很好的擬合,是一種高效的時間序列預測模型。

圖4 不同模型預測值與真實值擬合效果圖

表2 不同數據集下四種模型的實驗結果
為了提高時間序列的預測精度,本文提出了一種基于改進果蠅算法優化CIAO-LSTM 網絡參數的時序預測方法。首先通過將長短期記憶網絡的多個時間步輸入與輸出進行全連接(CIAO-LSTM),解決了目標系統包含線性成分時預測精確度不高的問題。其次,利用改進的果蠅優化算法(IFOA)對CIAO-LSTM 網絡的參數進行優化,解決了傳統BPTT算法優化網絡易陷入局部最優解的問題。同時,本文提出的IFOA_CIAO-LSTM在時序預測方面具有較高的預測精度,對波動較大的數據也可以很好地擬合,因此該模型在實際應用中可以發揮重要的作用。下一步將探究本文提出的網絡模型與優化參數方法是否在文本處理、語音識別等其他領域仍然具有優勢。