李 春,高 飛,王會(huì)青
太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,太原030024
時(shí)間序列是指某種現(xiàn)象或某一類統(tǒng)計(jì)指標(biāo)按照時(shí)間的先后順序排列形成的序列。時(shí)間序列已經(jīng)存在于生活的各個(gè)領(lǐng)域中,如洪水預(yù)報(bào)[1]、天氣預(yù)報(bào)[2]、能源消耗[3]等。利用時(shí)間序列的歷史信息以及數(shù)據(jù)之間的相關(guān)性進(jìn)行假設(shè)與推理,為科學(xué)決策提供了理論及實(shí)踐支持。時(shí)間序列預(yù)測一直是各個(gè)領(lǐng)域研究的熱點(diǎn)問題之一。
時(shí)間序列受到各方面因素影響,通常表現(xiàn)為非線性、非平穩(wěn)性、快速變換且包含噪聲等特點(diǎn)。為了提高時(shí)間序列預(yù)測的精度,各個(gè)領(lǐng)域?qū)W者提出了不同的時(shí)間序列預(yù)測方法。自回歸滑動(dòng)平均模型(ARIMA)[4]是一種傳統(tǒng)的線性時(shí)間序列預(yù)測模型,但ARIMA 主要針對(duì)平穩(wěn)時(shí)間序列,具有較大的局限性。大數(shù)據(jù)時(shí)代的到來,傳統(tǒng)的線性時(shí)序模型已經(jīng)不能解決高度非線性的時(shí)間序列問題。隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)這類新的非線性時(shí)間序列預(yù)測模型已經(jīng)廣泛應(yīng)用于各個(gè)領(lǐng)域。Huang W[5]和Lv Y[6]等人將深度信念網(wǎng)絡(luò)(DBN)用于當(dāng)前短期交通預(yù)測中。李哲敏等人[7]采用動(dòng)態(tài)混沌神經(jīng)網(wǎng)絡(luò)用于農(nóng)產(chǎn)品價(jià)格預(yù)測。龍勇等人[8]采用反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)用于電力負(fù)荷預(yù)測。但是,這些網(wǎng)絡(luò)由于其拓?fù)浣Y(jié)構(gòu)特點(diǎn)無法捕獲長時(shí)間的序列依賴關(guān)系進(jìn)而降低了預(yù)測的準(zhǔn)確度。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一種可以感知上一時(shí)刻信息的定向循環(huán)神經(jīng)網(wǎng)絡(luò),可以很好地處理輸入數(shù)據(jù)之間關(guān)聯(lián)的問題[9],因此RNN相比其他神經(jīng)網(wǎng)絡(luò)更適合用于時(shí)間序列預(yù)測。但是,RNN隨著時(shí)間間隔的增加會(huì)喪失學(xué)習(xí)多個(gè)間隔之前信息的能力,最終導(dǎo)致梯度消失或爆炸。Sak H等人[10]針對(duì)RNN的不足提出了長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM),該網(wǎng)絡(luò)通過使用“門”結(jié)構(gòu)不僅具有了長期記憶的能力,還解決了梯度消失或爆炸的問題。所以,LSTM近幾年已經(jīng)廣泛應(yīng)用于各個(gè)領(lǐng)域[11-12]。
Alkhasawneh M S 等人指出神經(jīng)網(wǎng)絡(luò)在處理目標(biāo)系統(tǒng)包含線性成份時(shí)精確度不高[13]。針對(duì)高度非線性的神經(jīng)網(wǎng)絡(luò)可能會(huì)忽略線性因素的影響,本文提出了將多個(gè)時(shí)間步的輸入與輸出進(jìn)行全連接的LSTM 網(wǎng)絡(luò)(CIAO-LSTM),增強(qiáng)了網(wǎng)絡(luò)的泛化能力與預(yù)測精度。同時(shí),針對(duì)BPTT復(fù)雜度高、易收斂于局部最優(yōu)的缺點(diǎn),本文通過改進(jìn)的果蠅優(yōu)化算法(IFOA)優(yōu)化網(wǎng)絡(luò)參數(shù),提高了網(wǎng)絡(luò)優(yōu)化能力。
傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)認(rèn)為數(shù)據(jù)之間是獨(dú)立的,而沒有考慮數(shù)據(jù)之間的時(shí)序性,所以對(duì)于時(shí)間序列數(shù)據(jù)并不能很好地?cái)M合。長短期記憶網(wǎng)絡(luò)(LSTM)作為一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),不僅具有RNN 對(duì)前面信息進(jìn)行長時(shí)記憶的特點(diǎn),還通過增加遺忘門避免長期依賴的問題。在LSTM 細(xì)胞結(jié)構(gòu)中,包括遺忘門ft、輸入門it、輸出門Ot和1個(gè)記憶單元,其內(nèi)部結(jié)構(gòu)如圖1所示。
遺忘門決定了保留多少上一時(shí)刻的單元狀態(tài)Ct-1信息在當(dāng)前狀態(tài)Ct中,計(jì)算公式為:
圖1 LSTM細(xì)胞結(jié)構(gòu)示意圖
輸入門控制新信息的輸入,計(jì)算公式為:
更新記憶單元狀態(tài)為:
輸出門計(jì)算公式為:
輸出層計(jì)算公式為:
雖然LSTM在時(shí)間序列研究中取得了一定的成果,但是當(dāng)目標(biāo)系統(tǒng)中包含線性關(guān)系且含有噪聲時(shí),高度非線性的LSTM網(wǎng)絡(luò)會(huì)造成訓(xùn)練模型過擬合,降低時(shí)序預(yù)測的精度。同時(shí),LSTM參數(shù)在反向調(diào)節(jié)所采用的BPTT(Back Propagation Through Time)算法存在復(fù)雜度高、容易收斂于局部最優(yōu)等缺點(diǎn)。
果蠅優(yōu)化算法(FOA)由我國學(xué)者潘文超先生[14]提出,是基于果蠅覓食行為尋求全局最優(yōu)的新方法。果蠅優(yōu)化算法可應(yīng)用于求解全局最優(yōu)解,F(xiàn)OA算法可歸結(jié)為以下幾個(gè)步驟:
步驟1 初始化果蠅群體最大迭代次數(shù)Maxgen 和種群規(guī)模Sizepop ,隨機(jī)初始果蠅群體位置(X_axis,Y_axis)。
步驟2 賦予果蠅個(gè)體利用嗅覺搜尋食物的隨機(jī)距離與方向,R 為果蠅搜索半徑。
步驟3 由于無法得知食物的位置,因此通過判斷與原點(diǎn)的距離Di,并且以距離的倒數(shù)作為味道濃度的判定值Si。
步驟4 通過將濃度判定值Si代入濃度判定函數(shù)f()中求出果蠅個(gè)體的味道濃度,并找出該果蠅群體味道濃度最高(最低)的果蠅。
步驟5 保留最佳味道濃度值與X 、Y 坐標(biāo),此時(shí)果蠅群體利用視覺向該位置飛去。
步驟6 重復(fù)執(zhí)行步驟2~4,若當(dāng)前味道濃度優(yōu)于前一迭代味道濃度,則執(zhí)行式(12),直到達(dá)到迭代次數(shù)Maxgen 為止。
時(shí)間序列分為線性時(shí)間序列和非線性時(shí)間序列兩類,在以往的時(shí)間序列預(yù)測研究中,大部分學(xué)者首先通過一定手段判斷時(shí)序數(shù)據(jù)的性質(zhì),然后選擇合適的模型。即使在非線性的時(shí)序數(shù)據(jù)中也可能包含線性關(guān)系,當(dāng)目標(biāo)系統(tǒng)中包含線性關(guān)系且含有噪聲時(shí),高度非線性的LSTM網(wǎng)絡(luò)可能會(huì)造成訓(xùn)練模型過擬合,降低時(shí)序預(yù)測的精度。針對(duì)這種問題,本文提出了改進(jìn)的CIAOLSTM(Connect Inputs and Outputs in Long Short-Term Memory)網(wǎng)絡(luò),即直連長短期記憶網(wǎng)絡(luò)。通過將時(shí)間序列中的每個(gè)時(shí)間步輸入與預(yù)測輸出進(jìn)行全連接,從而加強(qiáng)了整個(gè)網(wǎng)絡(luò)對(duì)于時(shí)序數(shù)據(jù)中的線性關(guān)系描述,提高了網(wǎng)絡(luò)的泛化能力。本文針對(duì)時(shí)序數(shù)據(jù)進(jìn)行滾動(dòng)預(yù)測,即多個(gè)時(shí)間步輸入預(yù)測多個(gè)輸出。改進(jìn)后的CIAO-LSTM網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 CIAO-LSTM網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D
圖2 中,{X0,X1,…,Xt-1}是多個(gè)時(shí)間步的輸入值,{Yt,Yt+1,…,Yt+n} 是多個(gè)時(shí)間步的預(yù)測輸出值,Ct、Ct+1是當(dāng)前LSTM 細(xì)胞的輸出狀態(tài),{W0t,W(t-1)t} 、{W0t+1,W(t-1)t+1}代表多個(gè)時(shí)間步輸入值與預(yù)測輸出值連接權(quán)重。預(yù)測輸出值Yt的表達(dá)式如式(15)所示:
傳統(tǒng)FOA算法在步驟2中,果蠅個(gè)體在搜尋食物時(shí)以固定的半徑R 向四周隨機(jī)搜索。搜索半徑R 的大小與算法性能直接相關(guān),搜索半徑較大時(shí)可以在前期具有較強(qiáng)的全局尋優(yōu)能力,但后期會(huì)造成局部收斂較慢的問題,而搜索半徑過小則可能會(huì)陷入局部最優(yōu)。
文獻(xiàn)[15]提出了改進(jìn)的DS-FOA 算法,該算法中搜索半徑R 滿足以下函數(shù)關(guān)系式:
其中,變量Rmax為初始最大搜索半徑,常量Iter 為當(dāng)前迭代次數(shù),常量Itermax為初始最大迭代次數(shù)。
在DS-FOA 算法中,搜索半徑在初期下降較為迅速,極易陷入局部最優(yōu)。本文基于DS-FOA做出了改進(jìn)的果蠅優(yōu)化算法,在迭代前期采用最大搜索半徑提高全局尋優(yōu)能力,而在迭代后期通過對(duì)搜索半徑采用衰減策略使其能夠收斂于局部最優(yōu)點(diǎn)。改進(jìn)之后的搜索半徑定義如式(17)所示:
其中,μ 是搜索半徑的衰減因子。
改進(jìn)后的式(16)只是增加了全局尋優(yōu)能力,而尋優(yōu)的收斂速度并沒有得到解決。文獻(xiàn)[16]針對(duì)式(11)適應(yīng)度函數(shù)進(jìn)行了修正,使得FOA 算法可以在有限的迭代次數(shù)和極小的搜索半徑內(nèi)取得全局最優(yōu)解,修正后的適應(yīng)度函數(shù)如式(18):
式中,Δ 為逃脫系數(shù),可以使適應(yīng)度函數(shù)取得負(fù)值。
采用改進(jìn)后的式(17)與式(18)相結(jié)合提出的IFOA算法,不僅可以解決目標(biāo)函數(shù)尋求全局最優(yōu)的問題,而且可以加快尋優(yōu)的收斂速度。
傳統(tǒng)的LSTM 通過BPTT 算法(Back Propagation Through Time)對(duì)參數(shù)進(jìn)行優(yōu)化,但BPTT 存在復(fù)雜度高、容易收斂于局部最優(yōu)等缺點(diǎn)。本文將IFOA 算法用于優(yōu)化CIAO-LSTM網(wǎng)絡(luò)(IFOA_CIAO-LSTM算法),在保證模型能夠收斂于全局最優(yōu)的同時(shí),減小了尋優(yōu)的迭代次數(shù)。IFOA_CIAO-LSTM算法流程如圖3所示。
IFOA_CIAO-LSTM算法具體過程如下:
步驟1 確定CIAO-LSTM網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。
步驟2 初始化最大迭代次數(shù)、果蠅種群規(guī)模,每個(gè)果蠅包含網(wǎng)絡(luò)初始連接的權(quán)重與偏置。由于在一個(gè)固定時(shí)間步長的權(quán)重與偏置共享,故輸入到LSTM細(xì)胞的權(quán)重與偏置只需要初始化一次,果蠅初始位置為(X_axis,Y_axis)。
步驟3 賦予果蠅個(gè)體利用嗅覺搜尋食物的隨機(jī)距離與方向,R 為果蠅搜索半徑。
圖3 IFOA_CIAO-LSTM算法流程圖
步驟4 判斷與原點(diǎn)的距離Di,并且以距離的倒數(shù)作為味道濃度的判定值Si:
步驟5 通過濃度判定函數(shù)中求解果蠅個(gè)體的味道濃度,本文將CIAO-LSTM 網(wǎng)絡(luò)均方誤差(Mean-Square Error,MSE)作為濃度判定函數(shù)。
式中,y'是預(yù)測輸出值,y 是真實(shí)值。
步驟6 通過將濃度判定值Si代入濃度判定函數(shù)f()中求出果蠅個(gè)體的味道濃度,并找出該果蠅群體味道濃度最高(最低)的果蠅。
步驟7 保留最佳味道濃度值與X 、Y 坐標(biāo),此時(shí)果蠅群體利用視覺向該位置飛去。
步驟8 重復(fù)執(zhí)行步驟3~7,若當(dāng)前味道濃度優(yōu)于前一迭代味道濃度,則執(zhí)行步驟6,直到達(dá)到迭代次數(shù)Maxgen 為止。最后將保留的最佳參數(shù)模型保存并進(jìn)行預(yù)測,輸出預(yù)測結(jié)果。
實(shí)驗(yàn)環(huán)境為python3.5,tensorflow1.7.0 框架,ubuntu16.0.4,8 GB 內(nèi) 存,Inter?Core ?,i7-3632QM CPU@2.2 GHz。
本實(shí)驗(yàn)選取了四組不同領(lǐng)域的時(shí)間序列數(shù)據(jù)來測試模型的適用性及性能,第一組來自澳大利亞能源市場運(yùn)營商(Australian Energy Market Operator,AEMO)提供的新南威爾士州2017 年的全年電力負(fù)荷數(shù)據(jù),第二組至第四組數(shù)據(jù)來自DataMarket 提供的1965—1980 年二氧化碳濃度、1962—1975 年牛奶產(chǎn)量數(shù)據(jù)和1990—2015 年股票當(dāng)日交易最高價(jià)。其具體的數(shù)據(jù)信息如表1所示。
表1 數(shù)據(jù)集信息
為了提高模型預(yù)測精度,對(duì)數(shù)據(jù)進(jìn)行歸一化處理,通過公式(28)將數(shù)據(jù)映射到[0,1]范圍之間,xt為實(shí)際值,xt' 為歸一化后的值,xmax與xmin為數(shù)據(jù)集中的最大與最小值。得
到的預(yù)測輸出值按公式(29)反歸一化為實(shí)際值,yt'為歸一化的網(wǎng)絡(luò)輸出預(yù)測值,yt是網(wǎng)絡(luò)輸出反歸一化后的實(shí)際值。
為了評(píng)價(jià)IFOA_CIAO-LSTM預(yù)測方法的性能。主要通過以下兩個(gè)指標(biāo)評(píng)價(jià)該方法性能:(1)不同預(yù)測模型的預(yù)測序列與實(shí)際序列的擬合效果對(duì)比圖;(2)歸一化均方根誤差(normalized Root Mean Square Error,nRMSE)和平均絕對(duì)百分誤差(Mean Absolute Percentage Error,MAPE)作為評(píng)價(jià)指標(biāo),定義如下:
其中,y' 表示網(wǎng)絡(luò)輸出的預(yù)測值,y 表示實(shí)際值,ymax是測試數(shù)據(jù)的最大值,ymin是測試數(shù)據(jù)的最小值,N 表示測試數(shù)據(jù)的長度。
實(shí)驗(yàn)1 不同時(shí)序模型的預(yù)測曲線與實(shí)際曲線擬合效果對(duì)比。
本文分別采用長短期記憶(LSTM)網(wǎng)絡(luò)模型、直連長短期記憶(CIAO-LSTM)網(wǎng)絡(luò)模型、基于果蠅算法優(yōu)化直連長短期記憶網(wǎng)絡(luò)(FOA_CIAO-LSTM)、基于改進(jìn)果蠅優(yōu)化算法的直連長短期記憶(IFOA_CIAO-LSTM)網(wǎng)絡(luò)模型設(shè)計(jì)預(yù)測實(shí)驗(yàn)。將這四種模型分別應(yīng)用在四組不同領(lǐng)域的時(shí)序數(shù)據(jù)上,對(duì)不同模型的預(yù)測結(jié)果與實(shí)際結(jié)果進(jìn)行對(duì)比,并通過擬合曲線圖來評(píng)價(jià)不同模型的優(yōu)劣。第一組和第四組數(shù)據(jù)由于測試集較大,因此選取了部分?jǐn)?shù)據(jù)體現(xiàn)數(shù)據(jù)的擬合程度。
圖4 為四種預(yù)測模型在四組數(shù)據(jù)上的預(yù)測值與實(shí)際值擬合圖。從圖中可以看出,CIAO-LSTM 模型對(duì)不同時(shí)序數(shù)據(jù)的擬合效果優(yōu)于傳統(tǒng)的LSTM 模型,表明LSTM 加入輸入與輸出全連接加強(qiáng)了時(shí)序數(shù)據(jù)的擬合效果,因此該網(wǎng)絡(luò)相比傳統(tǒng)的LSTM具有更高的預(yù)測精度。FOA_CIAO-LSTM模型擬合效果優(yōu)于CIAO-LSTM模型,表明果蠅優(yōu)化算法在尋找最優(yōu)網(wǎng)絡(luò)參數(shù)能力優(yōu)于傳統(tǒng)BPTT 算法。圖4(d)中,LSTM 模型、CIAO-LSTM模型和FOA_CIAO-LSTM 模型在峰值具有較大的偏差,擬合效果較差。而IFOA_CIAO-LSTM 模型采用尋求全局最優(yōu)和快速局部收斂的改進(jìn)果蠅優(yōu)化算法,克服了傳統(tǒng)BPTT算法陷入局部最優(yōu)的問題,在峰值可以更好擬合,表明改進(jìn)的果蠅算法(IFOA)相比傳統(tǒng)的FOA算法具有更強(qiáng)的全局尋優(yōu)能力。同時(shí),IFOA_CIAO-LSTM模型相比本文其他模型對(duì)于波動(dòng)較大的數(shù)據(jù)可以更好地?cái)M合。
實(shí)驗(yàn)2 各模型在不同數(shù)據(jù)集下歸一化均方根誤差(nRMSE)、平均絕對(duì)百分誤差和模型訓(xùn)練時(shí)間對(duì)比結(jié)果。
從表2中的第4、5列可以得出,CIAO-LSTM模型的nRMSE和MAPE明顯低于LSTM模型,表明CIAO-LSTM模型相比傳統(tǒng)的LSTM模型,在時(shí)序預(yù)測方面有更好的預(yù)測精度。由表2中的第3、6列可以得出,CIAO-LSTM模型在傳統(tǒng)的LSTM 模型加入輸入與輸出全連接可以降低模型隱藏層神經(jīng)元個(gè)數(shù),進(jìn)而加快了模型的訓(xùn)練時(shí)間。
同時(shí),IFOA_CIAO-LSTM的nRMSE明顯低于其他三種模型,表明采用改進(jìn)的果蠅優(yōu)化算法(IFOA)提高了網(wǎng)絡(luò)的尋優(yōu)能力,進(jìn)而提高了模型的預(yù)測精度,因此IFOA_CIAO-LSTM 網(wǎng)絡(luò)模型在時(shí)序預(yù)測方面具有更好的性能,且IFOA_CIAO-LSTM 模型在不同數(shù)據(jù)集下的MAPE 均在3%以內(nèi),在實(shí)際應(yīng)用中具有一定的指導(dǎo)作用。
根據(jù)以上實(shí)驗(yàn)可以得出,本文提出的IFOA_CIAOLSTM模型與本文其他模型相比,在不同數(shù)據(jù)集上具有較強(qiáng)的泛化能力和較高的預(yù)測精度,且對(duì)于波動(dòng)較大的數(shù)據(jù)也可以進(jìn)行很好的擬合,是一種高效的時(shí)間序列預(yù)測模型。
圖4 不同模型預(yù)測值與真實(shí)值擬合效果圖
表2 不同數(shù)據(jù)集下四種模型的實(shí)驗(yàn)結(jié)果
為了提高時(shí)間序列的預(yù)測精度,本文提出了一種基于改進(jìn)果蠅算法優(yōu)化CIAO-LSTM 網(wǎng)絡(luò)參數(shù)的時(shí)序預(yù)測方法。首先通過將長短期記憶網(wǎng)絡(luò)的多個(gè)時(shí)間步輸入與輸出進(jìn)行全連接(CIAO-LSTM),解決了目標(biāo)系統(tǒng)包含線性成分時(shí)預(yù)測精確度不高的問題。其次,利用改進(jìn)的果蠅優(yōu)化算法(IFOA)對(duì)CIAO-LSTM 網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化,解決了傳統(tǒng)BPTT算法優(yōu)化網(wǎng)絡(luò)易陷入局部最優(yōu)解的問題。同時(shí),本文提出的IFOA_CIAO-LSTM在時(shí)序預(yù)測方面具有較高的預(yù)測精度,對(duì)波動(dòng)較大的數(shù)據(jù)也可以很好地?cái)M合,因此該模型在實(shí)際應(yīng)用中可以發(fā)揮重要的作用。下一步將探究本文提出的網(wǎng)絡(luò)模型與優(yōu)化參數(shù)方法是否在文本處理、語音識(shí)別等其他領(lǐng)域仍然具有優(yōu)勢(shì)。