余聰聰,熊才權(quán),徐仕強(qiáng),古小惠
(湖北工業(yè)大學(xué)計算機(jī)學(xué)院,湖北 武漢 430068)
風(fēng)速不僅決定了船只的航行路線,還對船只的航行安全產(chǎn)生很大的影響。如果船只能夠在出海前比較精確的掌握未來一段時間相應(yīng)海域的風(fēng)速情況,那將對船只的航行線路規(guī)劃產(chǎn)生積極影響。
針對近海海域風(fēng)速變化的特點(diǎn),風(fēng)速預(yù)報大多在一些臨近海邊的風(fēng)場中。如張增海等[1]通過地表的粗糙度指數(shù)和大氣的穩(wěn)定度給出了相應(yīng)的海上風(fēng)速和沿海風(fēng)速觀測站風(fēng)速關(guān)系的經(jīng)驗(yàn)公式,此經(jīng)驗(yàn)公式適用于該觀測站附近的海域風(fēng)速預(yù)測??紤]到風(fēng)速序列中既有線性因素的影響又有非線性因素的影響和單一預(yù)測模型自身的局限性,研究者們又提出來一系列組合預(yù)測的風(fēng)速預(yù)測模型[2-4]。如田中大等[5]將ARIMA[6]和回聲狀態(tài)網(wǎng)絡(luò)(Echo State Network, ESN)相結(jié)合、李蓉蓉等[7]將時間序列分析和LSTM相結(jié)合,高桂革等[8]將經(jīng)驗(yàn)?zāi)B(tài)分解和極限學(xué)習(xí)機(jī)相結(jié)合,王耀慶等[9]將小波變換與LSTM相結(jié)合,他們的做法都是將原始風(fēng)速序列分解為線性自相關(guān)和非線性殘差兩部分,使用組合模型分別對兩部分進(jìn)行建模預(yù)測,充分利用好每一個模型優(yōu)勢,提高風(fēng)速預(yù)測[10]精度。
現(xiàn)有研究使用季節(jié)性差分移動自回歸平均模型(Seasonal Autoregressive Integrated Moving Average Model, SARIMA)進(jìn)行時間序列預(yù)測時,對于季節(jié)性參數(shù)的判定大都是通過人為估計,存在一定的誤差。本文提出將STL[11](Seasonal-Trend decomposition procedure based on Loess)方法用于SARIMA模型季節(jié)性差分步長的判定,以提高 SARIMA的預(yù)測精度,進(jìn)而提升和長短時記憶神經(jīng)網(wǎng)絡(luò)模型(Long Short-term Memory,LSTM)相結(jié)合后對海上風(fēng)速預(yù)測的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,通過對SARIMA模型的改進(jìn),可以有效提高海上風(fēng)速預(yù)測的精度。
在眾多時間序列中,由于月度、季度等因素影響,如某景點(diǎn)的旅游人次數(shù)據(jù),某些序列常常呈現(xiàn)出一種周期性變化,這類序列統(tǒng)稱為季節(jié)性序列,同時也衍生出了季節(jié)性 ARIMA 模型,用 SARIMA 表示,它對數(shù)據(jù)變量建立序列回歸,并根據(jù)數(shù)據(jù)周期項(xiàng)和隨機(jī)項(xiàng)對序列未來趨勢做測算。SARIMA 模型[12]源于 ARIMA 模型。將原始的時間序列記為yt,SARIMA模型首先是對yt進(jìn)行差分處理,消除序列當(dāng)中的趨勢性,然后通過季節(jié)性差分消除季節(jié)性,經(jīng)過處理后,模型可以表示為SARIMA(p,d,q)(P,D,Q)s,記作[10]:
φp(Bs)φP(B)(1-Bs)D(1-B)dyt=
ΘQ(Bs)θq(B)at
(1)
其中:φp(BS)為季節(jié)P階自回歸算子多項(xiàng)式、p為自回歸階數(shù)、P為季節(jié)性自回歸階數(shù)、φp(B)為非季節(jié)自回歸多項(xiàng)式、D為季節(jié)差分階數(shù)、d為逐期差分階數(shù)、s為季節(jié)差分步長、(1-Bs)D為季節(jié)差分算子、(1-B)d為差分算子、Q為季節(jié)移動平均階數(shù)、ΘQ(Bs)為季節(jié)Q階移動平均算子多項(xiàng)式、θq(B)為非季節(jié)移動平均多項(xiàng)式、at為白噪聲序列。
典型循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)一般如圖1所示,主體結(jié)構(gòu)的輸入包括輸入層xt,循環(huán)邊上所提供的上一時刻隱藏狀態(tài)st-1。在某一個時刻t,網(wǎng)絡(luò)在讀取了xt和st-1之后還會生成新的隱藏狀態(tài)st和產(chǎn)生當(dāng)前時刻的輸出ot。
圖 1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
從理論上來說,循環(huán)神經(jīng)網(wǎng)絡(luò)可以處理任意長度的序列,但在實(shí)際的訓(xùn)練過程中,當(dāng)序列過長時,一方面可能會導(dǎo)致出現(xiàn)梯度消失和梯度爆炸的問題,另一方面網(wǎng)絡(luò)展開后會占用過大的內(nèi)存,因此在實(shí)際使用時會規(guī)定一個序列的最大長度,當(dāng)序列的長度超過這個長度時,應(yīng)該進(jìn)行分段處理。
循環(huán)神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比可以通過歷史保存的信息來輔助當(dāng)前的決策,但在某些問題中,模型只需要短期的信息來處理當(dāng)前任務(wù),因此循環(huán)神經(jīng)網(wǎng)絡(luò)存在長期依賴問題。長短時記憶神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),與傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)相比,LSTM在其基礎(chǔ)上添加了一些“門”結(jié)構(gòu),它可以選擇性保留網(wǎng)絡(luò)信息,有效地解決了一些無效數(shù)據(jù)的依賴問題,提高了神經(jīng)網(wǎng)絡(luò)的效率,LSTM單元結(jié)構(gòu)如圖2所示。
圖 2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2中的“遺忘門”和“輸入門”是LSTM結(jié)構(gòu)中最為核心的部分。其中“遺忘門”會依據(jù)當(dāng)前輸入的xt和上一時刻輸出的ht-1來決定遺忘哪一部分記憶,而“輸入門”依據(jù)xt和ht-1決定哪些信息應(yīng)該加入到狀態(tài)ct-1中從而生成新的狀態(tài)ct。此時“輸出門”會根據(jù)當(dāng)前時刻的輸入xt,上一時刻的輸出ht-1和ct來決定此刻的輸出。
STL是一種通用穩(wěn)健基于Loess的分解時間序列方法。估計某個響應(yīng)變量值時,優(yōu)先選擇預(yù)測變量附近的一個數(shù)據(jù)子集,通過采用二次回歸或加權(quán)最小二乘法進(jìn)行線性回歸,使離該響應(yīng)變量較遠(yuǎn)點(diǎn)的權(quán)重變小后通過局部回歸模型估算出響應(yīng)變量的值。它通過提取時間序列中的部分局部數(shù)據(jù),從而使得回歸曲線變得平滑且讓數(shù)據(jù)在一定的范圍內(nèi)的趨勢和變化規(guī)律變得更加明顯。影響海上風(fēng)速序列變動的因素包括季節(jié)變動、趨勢變動和不規(guī)則變動,SARIMA模型季節(jié)性差分步長通常是人為估計,會存在誤差,使得模型的預(yù)測結(jié)果不準(zhǔn)確。為了能夠更好的確定SARIMA模型的季節(jié)性差分步長,使用STL將海上風(fēng)速序列進(jìn)行分解,通過分解后的風(fēng)速季節(jié)分量來確定該參數(shù)值。分解后的表達(dá)式可以表示如下:
Tt=St+Ct+Rt(t|0≤t≤|T|,t∈Z)
(2)
其中,T為原始海上風(fēng)速序列、S為季節(jié)分量、C為趨勢分量、R為剩余分量、|T|為序列的長度。STL分解過程由內(nèi)循環(huán)和外循環(huán)兩部分組成。每次內(nèi)循環(huán)都包含季節(jié)性平滑,用來更新季節(jié)性分量,而外循環(huán)則是在內(nèi)循環(huán)完成之后計算穩(wěn)健的權(quán)重,以減少下一次內(nèi)循環(huán)中異常值對更新季節(jié)性分量的影響。STL內(nèi)循環(huán)過程見圖3。步驟分別為:
圖 3 STL內(nèi)循環(huán)過程圖
在外循環(huán)中,使用內(nèi)循環(huán)得到的趨勢分量C和季節(jié)分量S來計算剩余分量S。分析季節(jié)分量S得到SARIMA模型的季節(jié)性差分步長。
海上風(fēng)速序列不僅具有線性特征,還具有非線性、隨機(jī)性和非平穩(wěn)性等特征。改進(jìn)后的SARIMA模型對風(fēng)速序列中的線性部分?jǐn)M合得更好,而長短時記憶網(wǎng)絡(luò)模型(LSTM)的優(yōu)勢在于擬合較為復(fù)雜的非線性,非平穩(wěn)性數(shù)據(jù),二者的優(yōu)勢互補(bǔ)。假設(shè)存在風(fēng)速時間序列Yt由兩部分組成,分別為線性自相關(guān)的Lt和非線性的殘差Nt,則有:Yt=Lt+Nt,本文將采用改進(jìn)后的SARIMA和LSTM的組合模型進(jìn)行風(fēng)速預(yù)測。
圖 4 SARIMA與LSTM組合預(yù)測原理圖
實(shí)驗(yàn)數(shù)據(jù)的提供方是中國科學(xué)院南海海洋研究所,選取我國南海17.5°N/110.5°E、17.8°N/110.7°E、18°N/111°E分別表示為A、B、C的三個點(diǎn)從2020年4月20日中午12時至2020年4月25日中午12時為期時長5 d的風(fēng)速數(shù)據(jù)分別進(jìn)行實(shí)驗(yàn),前4 d數(shù)據(jù)作為模型的訓(xùn)練數(shù)據(jù),最后一天數(shù)據(jù)作為測試數(shù)據(jù)。
以A點(diǎn)為例,首先對風(fēng)速時間序列進(jìn)行STL分解,結(jié)果見圖5。
圖 5 風(fēng)速時間序列分解示意圖
從圖5中可以看出觀測的風(fēng)速序列整體在前4 d存在明顯的下降趨勢,最后一天稍微有所上升,每一天內(nèi)都呈現(xiàn)出先上升后下降的趨勢。由于實(shí)測的數(shù)據(jù)是以小時為單位進(jìn)行觀測得到,因此確定SARIMA(p,d,q)(P,D,Q)s模型中的季節(jié)性差分步長s的值為24。
模型的參數(shù)確定通過網(wǎng)格搜索的方式進(jìn)行,參數(shù)搜索范圍確定為0~2,確定了模型的參數(shù)后,需要對模型進(jìn)行檢驗(yàn),主要是進(jìn)行模型的顯著性檢驗(yàn)和參數(shù)的顯著性檢驗(yàn)。模型參數(shù)及其顯著性檢驗(yàn)信息見表1,檢驗(yàn)方法采用Z值檢驗(yàn)。結(jié)果表明該模型參數(shù)均顯著非零,模型參數(shù)均通過檢驗(yàn)。
表1 模型參數(shù)與參數(shù)顯著性檢驗(yàn)
采用相同的方式對B、C兩點(diǎn)的風(fēng)速數(shù)據(jù)進(jìn)行同樣的建模處理,最后使用得到的模型對觀測到的風(fēng)速數(shù)據(jù)進(jìn)行提前一天的預(yù)測,得到的風(fēng)速實(shí)際預(yù)測值和風(fēng)速觀測值對比結(jié)果見圖6。
(a)A點(diǎn)
觀察以上三個地點(diǎn)風(fēng)速的觀測值和預(yù)測值的結(jié)果曲線,預(yù)測值曲線的整體波動趨勢與觀測值曲線的波動趨勢基本一致,但在風(fēng)速波動較大時,預(yù)測精度還有待提升。
在SARIMA-LSTM組合模型中,先使用風(fēng)速的觀測值進(jìn)行SARIMA模型建模,將模型得到的殘差作為LSTM模型的輸入。為了實(shí)現(xiàn)對模型殘差進(jìn)行準(zhǔn)確的預(yù)測,設(shè)計了圖7所示的殘差預(yù)測LSTM網(wǎng)絡(luò)結(jié)構(gòu)。
圖 7 殘差LSTM網(wǎng)絡(luò)結(jié)構(gòu)
設(shè)置LSTM網(wǎng)絡(luò)的輸入維度和輸出維度都是1維,隱藏層神經(jīng)元節(jié)點(diǎn)的個數(shù)為120,損失函數(shù)設(shè)置為均方誤差函數(shù)(MSE),優(yōu)化器選擇Adam, 對模型進(jìn)行訓(xùn)練。網(wǎng)絡(luò)的輸出信息見圖8。加入LSTM網(wǎng)絡(luò)后,組合風(fēng)速預(yù)測模型在A、B、C 三點(diǎn)的預(yù)測效果見圖9。
圖 8 LSTM網(wǎng)絡(luò)信息輸出
(a)A點(diǎn)
從實(shí)驗(yàn)結(jié)果可以看出,在SARIMA模型的預(yù)測基礎(chǔ)之上增加長短時記憶網(wǎng)絡(luò)后的預(yù)測結(jié)果值與原始的風(fēng)速值更為接近,預(yù)測曲線的變化趨勢與實(shí)際觀測風(fēng)速曲線的變化趨勢也基本一致。
為了驗(yàn)證改進(jìn)后組合模型在風(fēng)速預(yù)測中的有效性,在相同的實(shí)驗(yàn)條件下,分別使用SARIMA模型、BP網(wǎng)絡(luò)模型、LSTM網(wǎng)絡(luò)模型、LSTM-SARIMA組合模型和本文的STL-SARIMA-LSTM組合模型進(jìn)行實(shí)驗(yàn)對比。預(yù)測誤差選取3個不同地點(diǎn)平均絕對誤差MAE、均方根誤差RMSE和平均絕對百分比誤差MAPE的均值作為評價標(biāo)準(zhǔn)。定義見公式(3)~(5)。
(3)
(4)
(5)
表2 預(yù)測結(jié)果對比
由表2可知: 單一預(yù)測模型中,SARIMA模型預(yù)測效果較好,LSTM神經(jīng)網(wǎng)絡(luò)模型和BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測精度相差不大。由于組合模型對海上風(fēng)速數(shù)據(jù)特征的提取更加充分,預(yù)測精度高于單一預(yù)測模型。使用LSTM和SARIMA組合時預(yù)測誤差較小,而當(dāng)在SARIMA模型季節(jié)性差分參數(shù)確定時,考慮結(jié)合STL后,再結(jié)合LSTM進(jìn)行海上風(fēng)速的預(yù)測時,預(yù)測風(fēng)速曲線與實(shí)際風(fēng)速曲線最為接近,預(yù)測精度最高。
在STL分解海上風(fēng)速序列后,SARIMA模型的季節(jié)性差分步長確定變得更為準(zhǔn)確,從而使其預(yù)測精度得到了提升。從一系列的對比實(shí)驗(yàn)中可以看出改進(jìn)后的SARIMA與LSTM組合后對于海上風(fēng)速預(yù)測的精度更高。加入STL后模型變得更為復(fù)雜,導(dǎo)致數(shù)據(jù)處理的時間變長且由于海上風(fēng)速的不穩(wěn)定性,在風(fēng)速波動較大點(diǎn)預(yù)測精度還不夠好。后續(xù)研究應(yīng)進(jìn)一步優(yōu)化模型并考慮諸如氣壓、溫度等額外因素對于海上風(fēng)速大小的影響。