馬心雨, 梁正和, 朱躍龍, 萬定生
(河海大學(xué)計算機與信息學(xué)院, 南京 211100)
近年來,洪水災(zāi)害事件危及了人民的生命安全和財產(chǎn)安全。為了在災(zāi)難發(fā)生前給人民預(yù)留足夠的時間做好撤離工作,需要對水文數(shù)據(jù)實施準(zhǔn)確和準(zhǔn)時的預(yù)測。
目前,用于水文預(yù)測的模型主要有概念模型、物理模型和數(shù)據(jù)驅(qū)動模型。前兩種模型需要水文現(xiàn)象的具體物理過程和大量的水文參數(shù)作支撐,具有一定的局限性。而數(shù)據(jù)驅(qū)動模型只需要歷史數(shù)據(jù)就能實現(xiàn)模型的建立與未來數(shù)據(jù)的預(yù)測,因此,它受到廣泛的應(yīng)用。常見的數(shù)據(jù)驅(qū)動模型有長短期記憶神經(jīng)網(wǎng)絡(luò)(long and short-term memory neural network,LSTM)[1]、支持向量機(support vector machine,SVM)[2]、極限學(xué)習(xí)機(extreme learning machine,ELM)[3]等,但單一的模型存在著預(yù)測的不足。為此,張洋銘等[4]利用改進粒子群算法優(yōu)化LSTM,改善了傳統(tǒng)LSTM參數(shù)選取困難的問題,提高了預(yù)測的效率及時間序列的擬合能力。Li等[5]利用布谷鳥搜索算法(cuckoo search algorithm,CS)對LSTM的參數(shù)進行尋優(yōu),并利用自我注意機制捕捉時序數(shù)據(jù)之間的相關(guān)性,進一步提高了預(yù)測的精度。徐松金等[6]利用差分進化優(yōu)化最小二乘支持向量機(least square support vector machine,LSSVM)的懲罰因子和核函數(shù)參數(shù),避免了選擇參數(shù)的盲目和耗時。Zhao等[7]在學(xué)習(xí)水文數(shù)據(jù)具有的時間信息的基礎(chǔ)上,對研究區(qū)域內(nèi)的空間信息進行了捕捉,降低了預(yù)測的誤差。以上方式均實現(xiàn)了對時間序列更加準(zhǔn)確的預(yù)測,但對預(yù)測的準(zhǔn)時問題思考不足,導(dǎo)致以上模型的預(yù)測結(jié)果存在預(yù)測峰值落后于真實峰值的現(xiàn)象,即預(yù)測延遲的問題,該問題可能會造成撤離工作的失敗。目前,在水文中,大多數(shù)數(shù)據(jù)驅(qū)動模型都存在準(zhǔn)確性較高,而準(zhǔn)時性不足的問題。
針對預(yù)測延遲問題,早期,De Vos等[8]通過分析預(yù)測模型,提出了兩點造成預(yù)測延遲的原因,第一,輸入歷史數(shù)據(jù)間高度的自相關(guān)性導(dǎo)致建立的模型傾向于對歷史數(shù)據(jù)的回歸輸出,因此導(dǎo)致預(yù)測結(jié)果與上一時刻已知數(shù)據(jù)的近似,表現(xiàn)出預(yù)測延遲的現(xiàn)象;第二,神經(jīng)網(wǎng)絡(luò)優(yōu)化時使用的目標(biāo)函數(shù)過于單一,如均方根誤差只考慮了預(yù)測效果的準(zhǔn)確性。針對上述原因,眾學(xué)者進行了分析和研究。對于第一個原因,通過設(shè)置不同的小波基函數(shù)對時間序列進行了多級分解,削弱輸入時間序列的相關(guān)性,并對得到的子序列進行預(yù)測模型的構(gòu)建和預(yù)測結(jié)果的重構(gòu),有效解決了預(yù)測延遲問題。但是,Dixit等[9]利用試錯法選擇小波基函數(shù)和分解級數(shù)時,耗費了大量的時間,降低了效率,并且小波分解存在模態(tài)混疊的問題,影響預(yù)測模型的建立。Samanta等[10]建立雙層網(wǎng)絡(luò),同時捕捉時間序列的動態(tài)信息和靜態(tài)信息,削弱了輸入的自相關(guān)成分實現(xiàn)了時間序列的準(zhǔn)時預(yù)測。對于第二個原因,Abrahart等[11]利用神經(jīng)進化工具箱優(yōu)化神經(jīng)網(wǎng)絡(luò)的參數(shù),將預(yù)測結(jié)果的均方根誤差和時間校正因子相結(jié)合作為優(yōu)化的目標(biāo)函數(shù),同時考慮了預(yù)測結(jié)果的準(zhǔn)確性和準(zhǔn)時性,實現(xiàn)了對時間序列的精準(zhǔn)預(yù)測。
基于以上思考,現(xiàn)從以上兩個原因出發(fā),首先利用變分模態(tài)分解(variational mode decomposition,VMD)作為時間序列的分解算法削弱時間序列的高自相關(guān)性,它克服了模態(tài)混疊的問題,并利用CS確定VMD參數(shù)的最優(yōu)解,提高參數(shù)選擇的效率。CS選用的適應(yīng)度函數(shù)將預(yù)測延遲變量與確定性系數(shù)相結(jié)合,同時考慮預(yù)測結(jié)果的準(zhǔn)確性和準(zhǔn)時性。其次,利用CS優(yōu)化VMD的結(jié)果指導(dǎo)其對時間序列的分解過程。最后,基于LSTM和ELM神經(jīng)網(wǎng)絡(luò)為分解的子序列建立預(yù)測模型,構(gòu)成CSVMD-LSTM-ELM模型對水文中的預(yù)測延遲問題進行研究。
在水文時間序列的預(yù)測研究中,預(yù)測延遲現(xiàn)象很普遍。原因是衡量模型精度常用的評價指標(biāo),如均方根誤差等,本身沒有符號,無法對方向上的誤差進行衡量。因此,這些評價指標(biāo)分?jǐn)?shù)即使再好,卻沒有改善預(yù)測延遲的問題。
圖1為基于LSTM的水文時間序列預(yù)測局部圖,僅使用歷史水位作為輸入,未來水位作為輸出。由圖1可以看出,預(yù)測的波谷點落后于真實位置,并且,當(dāng)水位的真實趨勢已經(jīng)開始上升了,預(yù)測趨勢卻還是下降的。這樣將會得到錯誤的信息,造成判斷的失誤,可能帶來巨大的經(jīng)濟損失。傳統(tǒng)降低誤差,提高模型評價指標(biāo)分?jǐn)?shù)的方式只能改善整體的擬合效果,并不能避免這樣的局部問題。因此,研究并對其進行解決,使建立的模型能夠?qū)崿F(xiàn)準(zhǔn)確且準(zhǔn)時的預(yù)測,是具有重要意義的。
圖1 預(yù)測延遲現(xiàn)象Fig.1 Prediction delay phenomenon
水文時間序列的預(yù)測延遲問題是由于時間序列間的高自相關(guān)性引起的,因此首先利用VMD算法對時間序列進行分解,以削弱時間序列的相關(guān)性,并結(jié)合CS來尋找VMD分解算法的最優(yōu)參數(shù),目的是得到時間序列的最優(yōu)分解程度,其既可以削弱時間序列的相關(guān)性,又保留它的時間特征?;诖嗽賹ι窠?jīng)網(wǎng)絡(luò)進行訓(xùn)練,建立無延遲預(yù)測模型,解決水文時間序列中預(yù)測延遲的問題。
2.1.1 VMD算法
基于數(shù)據(jù)驅(qū)動方式的水文時間序列預(yù)測大大減少了水文工作者的工作量,并且提高了準(zhǔn)確性。但時間序列本身的特點也帶來一些新的問題。首先水文時間序列數(shù)據(jù)是不穩(wěn)定和非線性的,并且包含著多個尺度的變化,如果直接對這樣的時間序列進行預(yù)測,多尺度的信息融合在一起,必定會對模型的訓(xùn)練帶來一定的影響。其次是時間序列的連續(xù)值之間存在高自相關(guān)性,這樣得到的結(jié)果會出現(xiàn)預(yù)測延遲的問題。為了解決上述問題,傳統(tǒng)的小波分解是一種很好的預(yù)處理方式,它通過設(shè)置小波基函數(shù)和分解層級,就能將時間序列分解為多個細(xì)節(jié)分量和一個近似分量;同樣的,經(jīng)驗?zāi)B(tài)分解(empirical mode decomposition,EMD),可以將時間序列分解為處在不同頻段的多個模態(tài)分量和一個殘余分量,相對于小波分解,它不需要人為設(shè)置小波基函數(shù),并且分解過程具有自適應(yīng)性,但是會出現(xiàn)模態(tài)混疊的現(xiàn)象和端點效應(yīng),為了解決這些問題,又出現(xiàn)了集合經(jīng)驗?zāi)B(tài)分解 (ensemble empirical mode decomposition,EEMD)等方法,但它們都屬于遞歸分解法,且計算效率低下。而后出現(xiàn)的VMD分解算法是基于完全非遞歸性質(zhì)的時間序列分解法,它不僅消除了分解過程中的模態(tài)混疊與端點效應(yīng)問題,并且具有更高的計算效率。該分解算法的具體步驟參見文獻[12]。
2.1.2 CS算法
在VMD算法的兩個參數(shù)中,分解個數(shù)k和懲罰因子α是需要人為設(shè)定的,它們關(guān)系著VMD分解的程度,分解程度過高會使時間序列的時間特征丟失,過低則無法使多個尺度的信息分離,這都會導(dǎo)致預(yù)測模型建立的失誤,從而無法解決預(yù)測延遲問題。CS作為一種優(yōu)化算法,可以通過設(shè)置適應(yīng)度函數(shù),尋找合適的VMD參數(shù)。它的適用性很廣,只要能夠公式化為函數(shù)的優(yōu)化問題,都可以利用優(yōu)化算法找到很好的解決方案,并且,CS需要調(diào)節(jié)的參數(shù)少,不易陷入局部最優(yōu)。CS的具體步驟參見文獻[13]。
2.1.3 基于CS優(yōu)化的VMD分解算法
為了高效地確定VMD參數(shù)的最優(yōu)解,利用CS對VMD參數(shù)進行優(yōu)化,構(gòu)成了CSVMD分解算法。在CS與VMD進行結(jié)合時,大多數(shù)學(xué)者利用均方根誤差、平均絕對誤差、確定性系數(shù)等作為CS的適應(yīng)度函數(shù),通過優(yōu)化提高了預(yù)測的精度。這種方式,在誤差相對大時會產(chǎn)生良好的效果,但是,當(dāng)誤差已經(jīng)縮小到一定的程度,如確定性系數(shù)已經(jīng)達(dá)到0.99以上,再進行這種優(yōu)化是沒有意義的。然而無論誤差降低到多小,“預(yù)測延遲”現(xiàn)象都是存在的。該現(xiàn)象導(dǎo)致預(yù)測的峰值出現(xiàn)的時間較晚,這無疑會帶來嚴(yán)重的后果。因此,只考慮誤差是不全面的。
為了同時考慮誤差和“預(yù)測延遲”帶來的影響,將確定性系數(shù)R2與延遲變量TLag進行結(jié)合,作為CS優(yōu)化VMD時的適應(yīng)度函數(shù),這樣在保證緩解預(yù)測延遲問題的同時,使預(yù)測結(jié)果具有較低的誤差。
根據(jù)Conway等[14]的研究,并經(jīng)過多次實驗,將適應(yīng)度函數(shù)定義為
(1)
式(1)適應(yīng)度函數(shù)指導(dǎo)CS對VMD的參數(shù)進行迭代,通過尋找該適應(yīng)度函數(shù)的最小值,得到VMD的最優(yōu)參數(shù)。它的意義在于,當(dāng)具有預(yù)測延遲時,TLag將會放大預(yù)測結(jié)果的誤差,L將會很大,從而將優(yōu)化的重點放在緩解預(yù)測延遲問題上,提高預(yù)測的準(zhǔn)時性;當(dāng)延遲時間幾乎為0時,優(yōu)化算法將會尋找使誤差更低的參數(shù)組合,從而將優(yōu)化重點轉(zhuǎn)移到預(yù)測的準(zhǔn)確性方面。
基于CS的VMD優(yōu)化過程如下。
(1)初始化鳥巢位置的集合。鳥巢位置即需要優(yōu)化參數(shù)的隨機值的組合,該隨機值所屬范圍根據(jù)要解決的優(yōu)化問題而定。
例如,對于一個二維的優(yōu)化問題,第i個鳥巢的位置可以定義為
(2)
式(2)中:v1為要優(yōu)化的參數(shù)1的隨機值;v2為要優(yōu)化的參數(shù)2的隨機值。
那么,鳥巢位置的集合為
(3)
(2)根據(jù)所有參數(shù)組合建立神經(jīng)網(wǎng)絡(luò)模型,計算對應(yīng)適應(yīng)度函數(shù)的值,尋找當(dāng)前參數(shù)組合中的最優(yōu)解。
(3)更新參數(shù)組合值,再次計算新組合的適應(yīng)度。更新組合值時結(jié)合了Levy飛行的搜索方式。
(4)將新一批的參數(shù)組合中的最優(yōu)解與前一次迭代的最優(yōu)解進行比較,選出新的最優(yōu)解。
(5)按照發(fā)現(xiàn)概率丟棄適應(yīng)度差的解。
(6)繼續(xù)迭代,更新鳥巢位置,直到滿足指定的停止條件。
該算法的流程如圖2所示。
t為當(dāng)前迭代次數(shù),初始值為0;Max為最大迭代次數(shù); pa為鳥巢被發(fā)現(xiàn)的概率圖2 基于CS的VMD參數(shù)尋優(yōu)過程Fig.2 VMD parameter optimization process based on CS
現(xiàn)將無延遲預(yù)測模型的建立分為兩個階段,具體如圖3所示。首先,對于VMD參數(shù)設(shè)置階段,利用CS初始化一系列VMD的參數(shù)組合后進行迭代,找到最優(yōu)的參數(shù)組合,該組參數(shù)指導(dǎo)訓(xùn)練階段中的VMD分解過程。其次,在預(yù)測模型訓(xùn)練階段,通過對子序列進行兩種神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與模型評價等步驟,建立基于LSTM-ELM的神經(jīng)網(wǎng)絡(luò),從而構(gòu)成無延遲預(yù)測模型。
k和α為VMD分解算法的兩個參數(shù),分別是分解個數(shù)和懲罰因子圖3 無延遲預(yù)測模型建立步驟Fig.3 Steps for buildingdelay-free prediction model
圖4 LSTM與ELM預(yù)測對比圖Fig.4 Comparison diagram of LSTM and ELM prediction
VMD將時間序列分解成不同頻率的子序列,為了訓(xùn)練得到不同頻率的最佳預(yù)測模型,采用兩種神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,包括LSTM神經(jīng)網(wǎng)絡(luò)和ELM神經(jīng)網(wǎng)絡(luò),并通過使用評價指標(biāo)進行比較與選擇,構(gòu)成整體的最佳預(yù)測模型,克服單神經(jīng)網(wǎng)絡(luò)只能很好地提取某一特征的不足[15]。并且,LSTM在處理較長時間序列方面有很好的性能,但訓(xùn)練速度較慢,這樣在對多個子序列進行訓(xùn)練時,時間耗時將會成倍增長;ELM在速度方面有很好的性能,然而由于 ELM 隨機給定隱含層權(quán)重與偏置[16],導(dǎo)致ELM預(yù)測序列不如LSTM預(yù)測序列平穩(wěn),如圖4所示。可以看出,將LSTM與ELM進行結(jié)合的方式相較于單一神經(jīng)網(wǎng)絡(luò)建立的模型,具有更好的預(yù)測性能。
為了對不同神經(jīng)網(wǎng)絡(luò)的預(yù)測效果進行對比,選用以下的評價指標(biāo)。
(1)均方根誤差(root mean square error,RMSE),它用來反映預(yù)測結(jié)果的離散程度。公式定義為
(4)
(2)平均絕對誤差(mean absolute error,MAE),它是真實值和預(yù)測值的絕對誤差的均值。公式定義為
(5)
(3)確定性系數(shù)(deterministic coefficient,DC),它反映了預(yù)測值與真實值之間的吻合程度,在統(tǒng)計學(xué)里,一般用R2表示。公式定義為
(6)
(4)預(yù)測延遲時間Lag,它表示預(yù)測序列落后于真實序列的時間,單位為h。它的值利用序列間的皮爾森相關(guān)系數(shù)進行求解,通過移動預(yù)測序列,計算其與真實序列的相關(guān)系數(shù),記錄相關(guān)系數(shù)最大時的移動距離。該距離代表延遲的時間。
皮爾森相關(guān)系數(shù)(pearson correlation coefficient,PCC),一般用r表示,計算公式為
(7)
求解r最大值的過程為
Max{r(p[i:],q)},i=1,2,…,n
(8)
式(8)中:Max為求解最大值的函數(shù);r為兩個時間序列間的皮爾森相關(guān)系數(shù);p[i:]為預(yù)測序列從位置i到最終位置的截斷子序列;q為真實序列。
3.1.1 數(shù)據(jù)準(zhǔn)備
以秦淮流域東山站的水位為研究對象,該流域地處我國長江中下游地區(qū),是平原地區(qū)的中小河流域。該流域包含多個雨量計和水文站,數(shù)據(jù)資源豐富。選取2016年1月1日00:00—2018年12月31日23:00共26 304條數(shù)據(jù)作為數(shù)據(jù)集,水位數(shù)據(jù)的數(shù)據(jù)間隔為1 h。選取前17 544條數(shù)據(jù)作為訓(xùn)練集,后8 760條數(shù)據(jù)作為測試集。輸入數(shù)據(jù)為歷史上前10 h的水位數(shù)據(jù),即(rivert-10,rivert-9,…,rivert),輸出數(shù)據(jù)為未來第3小時的預(yù)測水位。即rivert+3。
3.1.2 CS參數(shù)設(shè)置
利用CS對VMD參數(shù)進行優(yōu)化,在CS啟動前,需要對算法中的變量進行如下設(shè)置。
初始的參數(shù)組合數(shù)設(shè)置為50,由于需要優(yōu)化的變量個數(shù)為2,因此,維度設(shè)為2,發(fā)現(xiàn)概率設(shè)為0.25。分解個數(shù)范圍設(shè)為2~10,懲罰因子設(shè)為500~5 000,分解個數(shù)的步長設(shè)為1,懲罰因子的步長設(shè)為參數(shù)范圍的5%,最大迭代數(shù)設(shè)為1 000。在CS的運行過程中,尋找使適應(yīng)度值最小的參數(shù)組合。
VMD主要有兩個參數(shù),包括分解個數(shù)k和懲罰因子α,為了比較不同參數(shù)的預(yù)測結(jié)果,選擇了6組參數(shù)進行實驗,模型的預(yù)見期選為3 h,為了關(guān)注預(yù)測的延遲問題,除了采用三種常用的評價指標(biāo)外,還計算了每個模型產(chǎn)生的預(yù)測延遲時間,如表1所示,為不同VMD參數(shù)預(yù)測結(jié)果的比較??梢钥闯?,不同的參數(shù)組合建立的模型的預(yù)測誤差及預(yù)測延遲時間是不同的,效果最好的一組為α=500,k=6,效果最差的一組為α=1 500,k=6。下文對此進行單獨的分析。
通過比較分解之后的時間序列的自相關(guān)程度,從而分析兩組參數(shù)對預(yù)測的影響。如表2所示,為分解后的子序列與原序列的互相關(guān)系數(shù),該系數(shù)絕對值越大,子序列對原序列的影響程度就越大。為了選擇相關(guān)系數(shù)較大的序列,將閾值設(shè)為0.3,因此,選出前兩個序列進行分析。如圖5所示,為兩組參數(shù)得到的分解序列的自相關(guān)性比較圖??梢?,組合2的自相關(guān)性小于組合1,所以,組合2的分解程度更高,但它的預(yù)測效果卻很差。因此,并非分解程度越高越好,合適的分解程度才能解決預(yù)測延遲問題。為了尋找合適的分解參數(shù),利用CS來初始化一系列參數(shù),對VMD進行迭代尋優(yōu),優(yōu)化得到的參數(shù)指導(dǎo)VMD對時間序列進行分解,經(jīng)過實驗得出,k=4、α=1 625時預(yù)測效果最好。因此,后續(xù)將統(tǒng)一設(shè)置為k=4、α=1 625。
表1 不同VMD參數(shù)設(shè)置下模型預(yù)測效果對比Table 1 Comparison of model prediction effects of different VMD parameter settings
表2 子序列與原序列的相關(guān)系數(shù)Table 2 Correlation coefficient between subsequences and original sequence
圖5 子序列的自相關(guān)性比較Fig.5 Comparison of autocorrelation of subsequences
通過對時間序列進行分解,以削弱時間序列間的自相關(guān)。首先按上述得到的VMD參數(shù)對時間序列進行分解,如圖6所示,為分解后的4個子序列按頻率從低到高排列的結(jié)果,可見,分解能夠?qū)⒍鄠€尺度的信息分離開。其次,基于LSTM和ELM神經(jīng)網(wǎng)絡(luò)為每個子序列建立了兩種預(yù)測模型。它們的預(yù)測效果如表3所示。
表3 子序列的預(yù)測結(jié)果比較Table 3 Comparison of prediction results of subsequences
由表3的指標(biāo)可以看出,對于序列1、序列2和序列4,基于ELM的神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果具有更低的均方根誤差、平均絕對誤差和更高的確定性系數(shù),而對于序列3,基于LSTM的神經(jīng)網(wǎng)絡(luò)預(yù)測表現(xiàn)較好,因此對于序列1、序列2以及序列4選擇使用基于ELM的神經(jīng)網(wǎng)絡(luò),對于序列3選擇使用基于LSTM的神經(jīng)網(wǎng)絡(luò),從而建立水文時間序列無延遲預(yù)測模型。
圖6 時間序列分解結(jié)果Fig.6 Time series decomposition results
為了驗證所提出的CSVMD-LSTM-ELM無延遲模型在解決預(yù)測延遲問題的有效性,分別與VMD-LSTM-ELM和LSTM進行對比。不同模型的預(yù)測趨勢對比如圖7所示;不同模型的每個評價指標(biāo)的結(jié)果如表4所示??梢钥闯觯N模型的預(yù)測趨勢都與真實趨勢類似,其中,LSTM模型可以實現(xiàn)有效的預(yù)測,但是它相對于真實趨勢是落后的,且落后時間為3 h。結(jié)合VMD算法對時間序列分解之后,可以將時間序列不同尺度的信息分隔開,因此,VMD-LSTM-ELM模型降低了延遲時間,均方根誤差降低了0.01,得到了更好地預(yù)測效果,但由于其模型的VMD參數(shù)不是最優(yōu)的,并非完全消除了預(yù)測延遲。在其模型基礎(chǔ)上利用CS對VMD參數(shù)進行尋優(yōu),建立的CSVMD-LSTM-ELM模型得到的預(yù)測結(jié)果在該數(shù)據(jù)集上幾乎沒有延遲,并將預(yù)測誤差降低到0.026,其預(yù)測序列更加接近真實序列。因此,本文所提模型在解決預(yù)測延遲問題上取得了良好的效果。
圖7 不同方法下的預(yù)測趨勢比較Fig.7 Comparison of prediction trends of different methods
表4 不同方法下的預(yù)測評價指標(biāo)比較Table 4 Comparison of prediction evaluation indexes under different methods
針對水文時間序列預(yù)測的延遲問題,提出一種基于CSVMD-LSTM-ELM無延遲預(yù)測方法,采用秦淮河流域的數(shù)據(jù)集進行預(yù)測,得到以下結(jié)論。
(1)VMD算法對時間序列進行分解,可以去除時間序列連續(xù)值之間的高自相關(guān)性,減小預(yù)測的延遲時間。
(2)通過CS算法可以得到VMD參數(shù)的最優(yōu)組合,有效解決了VMD參數(shù)選擇困難的這一問題,進一步解決了“預(yù)測延遲”的現(xiàn)象,并具有較低的誤差。
但本文仍有許多不足,單一的優(yōu)化算法并不能同時兼顧尋優(yōu)的準(zhǔn)確性和效率,今后可以嘗試使用多種優(yōu)化算法結(jié)合進行提高。