包苑村, 解建倉, 羅軍剛
(西安理工大學 西北旱區(qū)生態(tài)水利國家重點實驗室, 陜西 西安 710048)
徑流預測是水文學與水資源學科的關鍵內(nèi)容,是實現(xiàn)水資源科學規(guī)劃、合理調配、適應性利用的基礎。但在氣候變化和人類活動的影響下,徑流過程存在高度變異性,對現(xiàn)有預測模型和方法的適用性是一個巨大的挑戰(zhàn)[1]。徑流序列高度的非線性與不穩(wěn)定性,使得運用單一模型對徑流序列預測,并不能完全捕捉徑流序列中的非線性因素[2]。信號分解[3]可將水文序列分解得到多個相對穩(wěn)定的分量,使模型更好地捕捉特征。許多學者對基于信號分解與各種模型的組合預測問題開展了大量的研究。邵駿等[3]將Bayes證據(jù)框架理論[4-5]用于最小二乘支持向量機(LLSVM)參數(shù)的優(yōu)選,建立了中長期徑流預報模型。研究結果表明,該預報模型在中長期預報中具有較好的適應性。張洪波等[6]使用經(jīng)驗模態(tài)分解(EMD)與ARMIA的混合模型用于月徑流預測中,結果較單一的ARMIA模型Nash系數(shù)(NSE)提升0.3左右。Wang等[7]將集成經(jīng)驗模態(tài)分解(EEMD)與人工神經(jīng)網(wǎng)絡進行組合,與單一人工神經(jīng)網(wǎng)絡方法相比,EEMD-ANN模型在中長期徑流預測中有顯著的改進。胡慶芳等[8]采用長短期記憶神經(jīng)網(wǎng)絡(LSTM),構建了漢江上游安康站日徑流預測模型,研究表明LSTM模型對于峰值的擬合更加精確,但更高精度的預測仍有機會實現(xiàn)。
為了更好地提升預報的精度,更好地適應變化的徑流過程,引入變分模態(tài)分解(VMD),與卷積-長短期記憶神經(jīng)網(wǎng)絡(CNN-LSTM)[9]進行組合預測,提出VMD-CNN-LSTM模型。將其應用于渭河張家山站,魏家堡站的月徑流預測中。CNN用于提取特征,LSTM可以捕獲時間序列中的長期依賴關系,具備更好適用性的同時還提高預測的精度。
VMD是一種新的非平穩(wěn)信號自適應分解估計方法。它由Dragomiretskiy等[10]提出。VMD方法采用非遞歸和變分模式分解對原始信號進行處理,將輸入信號分成若干個分量(IMFs)與一個殘差(R),對測量噪聲有較好的魯棒性。此外,由于K可以預先設定,通過設置合理的收斂個數(shù),可以有效地降低模型的計算復雜度。
VMD的總體框架是一個變分問題,主要包括變分問題的構造和求解[11]。原始徑流序列視為非平穩(wěn)信號f,將變分問題描述為利用中心頻率求K個有限帶寬模態(tài)函數(shù)uk(t)(k=1,2,3…K),從而使每個模態(tài)的帶寬估計之和最小化[12]。約束條件為所有的分量的和等于原始信號f,具體表達式為:
(1)
式中:{uk}={u1,u2,…,uK}是模態(tài)函數(shù)的集合;{ωk}={ω1,ω2,…,ωK}是與模態(tài)函數(shù)相對應的中心頻率集;?是卷積運算;K是模態(tài)函數(shù)的總數(shù),δ(t)是Dirac分布,是復平面上模態(tài)函數(shù)中心頻率的相量描述;ωk是模態(tài)函數(shù)的中心頻率。文獻[10]給出了VMD分解詳盡的計算方法。
卷積神經(jīng)網(wǎng)絡(CNN)是一種具有高效特征識別的網(wǎng)絡,在圖像識別,自然語言處理,無人駕駛汽車等方面得到了廣泛的應用[13]。CNN由卷積層,池化層和全連接層組成。卷積層是CNN的核心,其中的卷積核Cj用于提取內(nèi)部特征:
Cj=σ(∑Ai?wi+bi)
(2)
式中:Ai表示輸入;?表示卷積運算;σ為激活函數(shù),這里選擇Relu[14];wi表示權值矩陣;bi則表示偏置矩陣。
池化層主要是對卷積運算后的數(shù)據(jù)進行池化操作,其作用是壓縮數(shù)據(jù)與去除不必要的信息,有效地提高網(wǎng)絡的泛化能力并且提升計算速度。這里選擇最大池化方式(Maxpooling[15])。
全連接層的每一個結點都與上一層的所有結點相連,用來把前邊提取到的特征綜合起來,為之后的LSTM層的預測提供幫助。一維卷積神經(jīng)網(wǎng)絡結構見圖1。
圖1 一維卷積神經(jīng)網(wǎng)絡結構圖
月徑流的準確預測不僅需要考慮近期徑流數(shù)據(jù),也應該計及遠期歷史數(shù)據(jù)的影響。普通的遞歸神經(jīng)網(wǎng)絡(RNN)具有記憶性,但在應用中難以解決梯度消失的問題[16]。長短期記憶神經(jīng)網(wǎng)絡(LSTM)應運而生,LSTM相較于RNN,能更好地分配歷史單元的信息,并且具有捕獲時間序列中長期依賴關系的能力。LSTM單元結構見圖2。
圖2 LSTM單元結構圖
一個LSTM單元由忘記門ft、輸入門it和輸出門Ot組成,其中it判斷上層輸入是否進入隱藏層,Ot選擇該單元的輸出是否進入下一單元,ft表示是否將該單元的歷史信息進行存儲。具體計算公式見下。
ft=σ(Wf[ht-1,xt]+bf)
(3)
it=σ(Wi[hi-1,xt]+bi)
(4)
(5)
(6)
ot=σ(Wo[ht-1,xt]+bo)
(7)
ht=ot*tanh(Ct)
(8)
VMD-CNN-LSTM(VCL)模型的基本預測流程為如下。
1) 將原始月徑流序列進行VMD分解。
2) 將分解后的多個分量進行歸一化處理。
3) 選取模型的輸入輸出。根據(jù)月徑流的年際變化規(guī)律,選取每一個分量的歷史滯后12個月作為模型的輸入,原始徑流序列的第十三個月作為輸出,預見期為1個月,如下所示:
(9)
式中:t>12;S為原始月徑流序列。
4) 將選好的輸入與輸出放入CNN-LSTM模型訓練,進行預測。實驗流程圖見圖3。
圖3 預測模型流程圖
選取均方根誤差(RMSE),平均絕對誤差(MAE)和Nash系數(shù)(NSE)對測試集的預測結果進行評價,更加清楚地反應模型的預測效果。
(10)
(11)
(12)
式中:yi為i時刻的預測值;y0為i時刻的實測值;y為實測值的均值。
本實驗全流程采用python3.7完成,其中VMD分解使用python的第三方庫vmdpy完成,神經(jīng)網(wǎng)絡的搭建則使用Keras 2.2.4。
渭河是黃河的最大的一級支流,是陜西人民的“母親河”[17]。主要流經(jīng)今甘肅天水、陜西關中平原的寶雞、咸陽、西安、渭南等地,至渭南市潼關縣匯入黃河。但近幾年來,渭河流域水災害頻發(fā),對社會經(jīng)濟造成了重大影響。因此,對渭河流域進行徑流預測的研究有重要的戰(zhàn)略意義。
張家山水文站是渭河最大支流涇河的下游干流控制站,站址位于陜西省涇陽縣王橋鎮(zhèn)岳家坡村趙家溝,東經(jīng)105°36′,北緯34°38′,集水面積43 216 km2,控制河長397 km,河流平均比降2.78‰,距河口里程58 km。魏家堡水文站是渭河干流控制站,站址位于陜西省眉縣城關鎮(zhèn)西關村,東經(jīng)107°43′,北緯34°17′。集水面積37 012km2,河長494 km,流域平均比降2.75‰,距河口里程323 km。本文分別選取張家山站與魏家堡站1960—2005年的552個實測月徑流資料為研究對象。其中張家山站前400個月數(shù)據(jù)作為訓練集,后152個月數(shù)據(jù)作為測試集。魏家堡站前442個月數(shù)據(jù)作為訓練集,后110個月數(shù)據(jù)作為測試集。張家山站與魏家堡站的實測月徑流序列見圖4和圖5。
圖4 張家山站月徑流序列
圖5 魏家堡站月徑流序列
為了使CNN-LSTM模型能更好地識別徑流的變化規(guī)律,降低預測的難度,對兩個站的月徑流資料進行VMD分解,最重要的是確定VMD分解的模態(tài)數(shù)K。通過多次預實驗,將每個模態(tài)分量進行Fourier變換,發(fā)現(xiàn)兩個站點的月徑流都在K=9時(見圖6(a)和圖7(a)),中心頻率開始出現(xiàn)混疊現(xiàn)象[18],即不同頻率的尺度未完全分離(見圖6(b)和圖7(b)),因此K選擇8。
圖6 K=8、K=9時張家山站月徑流VMD模態(tài)分量與對應頻譜圖
圖7 K=8、K=9時魏家堡站月徑流VMD模態(tài)分量與對應頻譜圖
如圖8和圖9所示,通過VMD分解,將原始徑流序列分為了不同頻率的8個分量,分量的頻率由高到低依次排列,前7個分量具有周期性,最后1個分量表示原始徑流序列的趨勢變化。VMD分解后,原始徑流序列中的隱藏信息(周期與趨勢)被挖掘出來,這樣做不僅使模型能更好地理解周期性的信息,同時也增加了數(shù)據(jù)量。
本實驗的CNN-LSTM網(wǎng)絡使用兩層卷積層,卷積核大小為3×1。一層池化層,采用最大池化(Maxpooling)方式,后接兩層LSTM層及一個全連接層輸出結果。在相同的預測流程下選擇EMD-LSTM(EL)、EMD-CNN-LSTM(ECL)、EMD-LSSVM(ES)、VMD-LSSVM(VS)、VMD-LSTM(VL)進行對比分析。
根據(jù)月徑流的年際變化規(guī)律,將VMD分解好的數(shù)據(jù)選取輸入和輸出,用訓練集的數(shù)據(jù)訓練模型,用測試集驗證模型,不同模型的測試集預測結果見圖10和圖11。
圖8 張家山站月徑流VMD分解
圖9 魏家堡站月徑流VMD分解
圖10 張家山站測試集預測結果圖
圖11 魏家堡站測試集預測結果圖
由表1可知,基于VMD分解的VS、VL、VCL模型較之基于EMD分解的ES、EL、ECL模型有較大的預測性能提升。其中VL與VCL模型的預測性能最優(yōu),NSE系數(shù)達到了0.90以上,MAE與RMSE降低至0.6以內(nèi),這主要是因為EMD分解容易產(chǎn)生端點效應和模態(tài)混疊的問題,且本實驗中的EMD分解的固有模態(tài)分量個數(shù)為6,相較于VMD可以自由選擇模態(tài)分量個數(shù)來說,數(shù)據(jù)量較少。而對ECL較之EL、VCL較之VL在預測性能也有小幅度的提升,這是由于卷積核中的池化層可以去除不必要信息,使得LSTM層在預測中的四個判斷門中能更好地捕捉長期依賴關系,選擇最優(yōu)的輸入和輸出,圖10與圖11可進一步印證結論。除此之外分別對比兩個站的EL和ECL模型、VL和VCL模型可以看出,加入卷積層的模型能更好地學習月徑流數(shù)據(jù)的特征,且對于峰值和谷值的擬合更加地精確。兩個站的VCL模型的整體預測性能優(yōu)越,RMSE與MAE等指標較之其它模型均最小,可證明該模型的穩(wěn)定性以及在渭河流域的預測可行性,可以應用于非線性,非平穩(wěn)的月徑流序列預測中。
表1 各模型在測試集上的預測效果
為了提升月徑流預測的精度,更好地學習月徑流序列中的隱藏信息,本文提出了基于變分模態(tài)分解(VMD),卷積神經(jīng)網(wǎng)絡(CNN)與長短期記憶神經(jīng)網(wǎng)絡(LSTM)的組合預測方法,并應用于渭河流域張家山站和魏家堡站的月徑流預測中,得出的結論見下。
1) 對于高度非線性的月徑流序列進行預測時,將原始徑流數(shù)據(jù)分解為多個分量,VMD可以手動選擇模態(tài)個數(shù),且較EMD能更好地避免中心頻率混疊的問題,同時增加了數(shù)據(jù)量,為數(shù)據(jù)驅動模型提供了良好的數(shù)據(jù)基礎,因此先將月徑流序列進行VMD分解是必要的。
2) CNN-LSTM模型較于單一的LSTM模型能更好地提取特征,且對于峰值谷值的預測更為精確,提供更高的預測精度。本文將VMD-CNN-LSTM模型應用于渭河流域的張家山站,魏家堡站的月徑流預測中,相較于EMD-LSTM、EMD-CNN-LSTM、EMD-LLSVM、VMD-LLSVM與VMD-LSTM能取得更高的精度與更低的誤差,從而證明該模型的穩(wěn)定性,為渭河的月徑流預測提供了一條新的途徑。