王 瑞,萬定生,聶青青
(河海大學(xué)計(jì)算機(jī)與信息學(xué)院,江蘇南京 211100)
水文時(shí)間序列是水文信息中水位、降雨量等因素隨著時(shí)間變化的序列。對水位時(shí)間序列的預(yù)測分析,不僅可以實(shí)時(shí)精確地對水資源進(jìn)行調(diào)度管理,更能實(shí)時(shí)預(yù)報(bào)洪澇災(zāi)害,對于中小流域防災(zāi)減災(zāi)有著突出貢獻(xiàn)。
水位預(yù)測主要分為水文模型驅(qū)動法和數(shù)據(jù)驅(qū)動法兩大類。水文模型驅(qū)動法需要收集水文數(shù)據(jù),包括降雨、蒸發(fā),流量、土壤含水量和下墊面信息等,如趙人俊提出的新安江模型。通過建立水文物理模型來解釋水位流量變化的原因,并模擬產(chǎn)匯流的物理機(jī)制來預(yù)測水位流量,這些方法雖然預(yù)測精度高,可解釋性強(qiáng),但是都具有一定的局限性和適用條件。數(shù)據(jù)驅(qū)動方法從歷史水位數(shù)據(jù)中使用統(tǒng)計(jì)相關(guān)的方法來預(yù)測水位,如時(shí)間序列模型、人工神經(jīng)網(wǎng)絡(luò)模型和組合學(xué)習(xí)模型。時(shí)間序列模型主要包括自回歸模型和移動平均模型。時(shí)間序列模型需要數(shù)據(jù)平穩(wěn)性假設(shè),因此其預(yù)測精度有限。為了進(jìn)一步提高精度,人工神經(jīng)網(wǎng)絡(luò)模型逐漸應(yīng)用于水文序列預(yù)報(bào)。殷兆凱提出的基于長短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(LSTM)的降雨徑流模擬及預(yù)報(bào)而對預(yù)報(bào)流域產(chǎn)匯流進(jìn)行預(yù)報(bào),LSTM表現(xiàn)出更好的預(yù)報(bào)性能,而單一模型對水文序列進(jìn)行預(yù)報(bào)精度受限。因此提出了一些模型集成的方法。包括馮鈞的一種LSTM_BP多模型組合水文預(yù)報(bào)方法,對子午河流域進(jìn)行洪水預(yù)報(bào),精確度和穩(wěn)定性得到了提高。但是隨著數(shù)據(jù)量的增大,對于預(yù)測殘差等其它因素的處理。許國艷提出的基于GRU和LightGBM特征選擇的水位時(shí)間序列預(yù)測模型,將水位預(yù)測序列分為汛期預(yù)測序列和非汛期預(yù)測序列進(jìn)行分析,并分別作最終序列預(yù)測,預(yù)測精度更進(jìn)一步。
水文時(shí)間序列具有復(fù)雜的特性,為了獲得可靠的、高質(zhì)量的水位預(yù)測接結(jié)果。本文提出一種基于LSTM和GPR的水文時(shí)間序列預(yù)測方法,以屯溪流域水位數(shù)據(jù)進(jìn)行試驗(yàn)分析。
LSTM(Long Short-Term Memory)是一種特殊的遞歸神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN),LSTM是為了解決RNN中誤差梯度隨著時(shí)間消失導(dǎo)致RNN存在長時(shí)依賴問題而提出的。與RNN網(wǎng)絡(luò)不同,LSTM的鏈?zhǔn)浇Y(jié)構(gòu)由記憶區(qū)塊構(gòu)成。LSTM記憶區(qū)塊結(jié)構(gòu)如圖1所示。
圖1 LSTM記憶區(qū)塊結(jié)構(gòu)圖
為遺忘門,用來控制“記憶細(xì)胞”歷史狀態(tài)的保留;為輸入門,用來控制信息到細(xì)胞單元中的輸入狀態(tài);為輸出門,用來控制信息從細(xì)胞單元中的輸出狀態(tài)。
在時(shí)刻,首先計(jì)算遺忘門,通過查看和-1信息輸出一個0~1之間的向量,該向量的0~1的值表示細(xì)胞狀態(tài)中的哪些信息被丟棄多少。0表示不保留,1表示保留。的計(jì)算公式如下:
=(+-1+)
(1)
下一步,決定給細(xì)胞狀態(tài)添加哪些新的信息。首先利用和-1計(jì)算輸入門決定更新哪些信息。的計(jì)算公式如下:
=(+-1+)
(2)
(3)
(3)
計(jì)算輸出門。決定有多少信息輸出到LSTM的當(dāng)前隱藏層狀態(tài)變量,其計(jì)算公式如下
=(+-1+)
(4)
=*tanh()
(5)
最終,傳入輸出層,再經(jīng)過計(jì)算后得到LSTM在時(shí)刻的預(yù)測值。其計(jì)算公式如下
=+
(6)
GPR(Gaussian Process Regression)是一種基于貝葉斯理論和統(tǒng)計(jì)學(xué)習(xí)理論的機(jī)器學(xué)習(xí)方法。適用于解決高維復(fù)雜問題和非線性問題。假設(shè)一個有噪聲的回歸模型。其計(jì)算公式如下
=()+
(7)
(8)
(9)
其中(,)=()是對稱正定協(xié)方差矩陣,其中元素通過核函數(shù)度量和之間的相關(guān)性。(,)=(,)是測試集和訓(xùn)練集之間的協(xié)方差矩陣。(,)是測試集本身的協(xié)方差矩陣。是維單位矩陣。平方指數(shù)核,線性核和多項(xiàng)式核都是常見的核函數(shù)。平方指數(shù)核的計(jì)算公式如下
(10)
是可調(diào)參數(shù)。預(yù)測值的后驗(yàn)分布為
(11)
(12)
(13)
(14)
基于LSTM和GPR的水文時(shí)間序列預(yù)測模型架構(gòu)總體分為三個模塊:
模塊一:收集水文數(shù)據(jù)并將序列化分成訓(xùn)練集和測試集,篩選水位特征,并將特征進(jìn)行組合,分別用高斯過程回歸和支持向量機(jī)回歸(SVR,SupportVectorRegression)計(jì)算均方根誤差,將二者誤差之和作為適應(yīng)度,用遺傳算法(GA,Genetic Algorithm)進(jìn)行演化,找到一組最優(yōu)特征組合。
模塊二:將特征組合與訓(xùn)練集作為輸入,先對LSTM網(wǎng)絡(luò)進(jìn)行完整的訓(xùn)練,并進(jìn)行第一次水位預(yù)測,輸出LSTM序列預(yù)測結(jié)果。
模塊三:LSTM序列預(yù)測值和真實(shí)值構(gòu)建GPR模型,并進(jìn)行最終序列預(yù)測。
組合模型的建模整體架構(gòu)圖如圖2所示。
圖2 組合模型的建模整體架構(gòu)圖
LSTM序列建模能力強(qiáng),GPR的概率預(yù)測結(jié)果可靠,將LSTM和GPR組合將獲得高準(zhǔn)確,高可信度的預(yù)測結(jié)果。本文提出的LSTM與GPR組合,不是傳統(tǒng)意義上的結(jié)果按比例相加,而是完整的訓(xùn)練LSTM神經(jīng)網(wǎng)絡(luò),輸出預(yù)測結(jié)果,然后構(gòu)建GPR模型,將LSTM預(yù)測結(jié)果作為輸入,計(jì)算最終預(yù)測結(jié)果。兩種模型的組合,既保留了LSTM的序列預(yù)測精度高的優(yōu)點(diǎn),也保證了GPR在最終預(yù)測時(shí)的高可靠性。
在水位特征選取時(shí),遺傳算法被用于篩選一組最優(yōu)的水位特征組合。首先,列出一些水位替代特征,這些替代特征擁有兩種狀態(tài),被淘汰或者被保留,特征篩選等價(jià)于0-1背包問題。然后,不同的特征組合將通過計(jì)算GPR和SVR的均方根誤差之和作為適應(yīng)度,用遺傳算法進(jìn)行演化,直到誤差和最小停止演化,以此選取最優(yōu)特征組合。其中,特征篩選和神經(jīng)網(wǎng)絡(luò)參數(shù)訓(xùn)練屬于迭代優(yōu)化問題。而神經(jīng)網(wǎng)絡(luò)訓(xùn)練相對耗時(shí),如果再把神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法用于計(jì)算均方根誤差,這種兩層優(yōu)化方法將會非常耗時(shí)。為了提高時(shí)間效率,采用GPR和SVR計(jì)算均方根誤差。
3.3.1 模型數(shù)據(jù)準(zhǔn)備
本文選取屯溪流域2016年01月02日00:00至2016年01月22日00:00的481條水位數(shù)據(jù),時(shí)間間隔1小時(shí)。數(shù)據(jù)集被分為兩部分,前385條為訓(xùn)練集,后96條為測試集,實(shí)驗(yàn)采用對比的方法,將LSTM和GPR的水文預(yù)測模型的預(yù)測效果分別同LSTM和GPR單個模型相比較。
3.3.2 模型參數(shù)設(shè)定
模型參數(shù)的設(shè)定同樣是模型成功的關(guān)鍵,在進(jìn)行首次預(yù)測時(shí)確定LSTM神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)為特征輸入數(shù)量,隱藏層節(jié)點(diǎn)為8個,輸出層節(jié)點(diǎn)為1個。學(xué)習(xí)系數(shù)為0.01,最大訓(xùn)練次數(shù)為2000次。模型優(yōu)化算法采用自適應(yīng)矩估計(jì)(adaptive moment estimation,ADAM)算法。
3.3.3 評價(jià)指標(biāo)
1)均方根誤差(RMSE)
均方根誤差(RMSE)是預(yù)測值與真實(shí)值方差的算術(shù)平方根。其中是預(yù)測值,是真實(shí)值,是測試集的大小。RMSE越小,測試準(zhǔn)確度越高。其計(jì)算公式如下:
(15)
2)決定系數(shù)(R)
(16)
本實(shí)驗(yàn)主要由三個模塊組成。首先對水文時(shí)間序列數(shù)據(jù)進(jìn)行特征替代,利用0-1規(guī)劃問題求解特征組合,并采用和計(jì)算均方根誤差,利用遺傳算法進(jìn)行演化求解一組最優(yōu)特征組合;將篩選出的特征組合F與水位數(shù)據(jù)序列X進(jìn)行相空間重構(gòu),利用模型計(jì)算屯溪流域水位預(yù)測序列Y,并計(jì)算預(yù)測的殘差序列R;然后把水位預(yù)測序列Y,以及殘差R作為模型預(yù)測的輸入,輸出最終預(yù)測結(jié)果2。
基于LSTM和GPR的水文預(yù)測模型算法步驟如下:
1)對數(shù)據(jù)源數(shù)據(jù)進(jìn)行提取、分析,并對數(shù)據(jù)進(jìn)行歸一化處理。
2)篩選特征組合采用本研究3.3.1節(jié)中的數(shù)據(jù)。本研究假設(shè)特征數(shù)為10,染色體i的0或1標(biāo)志此特征被淘汰或被選取,GPR和SVR計(jì)算均方根誤差作為適應(yīng)度值,遺傳算法進(jìn)行演化直至篩選出一組最優(yōu)的特征組合。遺傳算法采用默認(rèn)參數(shù),染色體的DNA交叉率為0.5,變異概率為0.5,迭代次數(shù)為100次。
3)將本實(shí)驗(yàn)中篩選出的最優(yōu)水位特征組合與一維數(shù)據(jù)利用相空間重構(gòu)的方法構(gòu)造高維度的矩陣,輸入LSTM模型對其神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并計(jì)算屯溪流域水位預(yù)測序列1,并計(jì)算預(yù)測的殘差序列。輸入層節(jié)點(diǎn)為8個,隱藏層節(jié)點(diǎn)為8個,輸出層節(jié)點(diǎn)為1個。
4)將水位預(yù)測序列1和預(yù)測的殘差序列相結(jié)合形成GPR模型的輸入矩陣,計(jì)算并輸出最終預(yù)測序列2。
5)將所得預(yù)測序列2逆歸一化得到最終輸出結(jié)果。具體實(shí)現(xiàn)過程如算法1所示。
算法1:
輸入:水位時(shí)間序列訓(xùn)練數(shù)據(jù)集_以及特征;
輸出:水位預(yù)測序列
為距離當(dāng)前預(yù)報(bào)時(shí)刻的前個小時(shí)
為輸入數(shù)據(jù)長度
∥篩選一組最優(yōu)水位特征組合
1)水位時(shí)間序列數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化
*本實(shí)驗(yàn)采用0-1標(biāo)準(zhǔn)歸一化*
2)輸入訓(xùn)練數(shù)據(jù)和初始特征-
3)0-1規(guī)劃求解特征組合
4)SVR和GPR計(jì)算的均方根誤差同時(shí)最小作為最佳適應(yīng)度
5)GA演化求解一組最優(yōu)特征組合
*最優(yōu)特征組合(,,,,,,,)*
6)劃分訓(xùn)練數(shù)據(jù)集和測試集
7)重構(gòu)LSTM模型輸入的訓(xùn)練數(shù)據(jù)集
*本實(shí)驗(yàn)輸入為8×385高維矩陣,其中8為特征(,,,,,,,),385為訓(xùn)練數(shù)據(jù)集*
8)fori=1 to 1
9)LSTM建模
10)i++;
11)end for
12)輸出水位預(yù)測序列1,預(yù)測殘差序列
13)重構(gòu)GPR模型的輸入
/*此次輸入為水位預(yù)測序列1和預(yù)測殘差序列*
14)forj=1 to 1
15)GPR建模
16)j++;
17)endfor
18)輸出水位預(yù)測序列Y
19)Y反歸一化后輸出最終預(yù)測結(jié)果
LSTM模型、GPR模型以及基于LSTM和GPR的水文預(yù)測模型預(yù)測結(jié)果和真實(shí)值的對比情況見表1.
為了實(shí)驗(yàn)對比結(jié)果更簡單清晰,對2016年01月19日00:00至2016年01月22日00:00進(jìn)行水位預(yù)測,并將預(yù)測結(jié)果和原始真實(shí)值的對比情況見表1。
表1 LSTM模型、GPR模型、基于LSTM和GPR的水文預(yù)測模型預(yù)測結(jié)果對比
采用LSTM模型預(yù)測結(jié)果如圖3。
圖3 LSTM模型預(yù)測結(jié)果
采用GPR模型預(yù)測結(jié)果如圖4。
圖4 GPR模型預(yù)測結(jié)果
采用基于LSTM和GPR模型水文預(yù)測模型結(jié)果如圖5所示。
圖5 基于LSTM和GPR模型預(yù)測結(jié)果
為了使實(shí)驗(yàn)結(jié)果對比更明顯,將LSTM單模型、GPR單模型以及基于LSTM和GPR模型的預(yù)測結(jié)果進(jìn)行對比。各模型對比結(jié)果如圖6所示。
圖6 各模型對比結(jié)果
通過圖6可以看出LSTM和GPR模型相對于單一LSTM模型、GPR模型有具有優(yōu)秀的預(yù)測效果。
不同模型的評價(jià)指標(biāo)的對比如表2。
表2 預(yù)測水位序列評價(jià)指標(biāo)結(jié)果表
對比實(shí)驗(yàn)結(jié)果和評價(jià)指標(biāo),隨著時(shí)間推移,基于LSTM和GPR水文預(yù)測模型相對于單一的
LSTM或GPR水文預(yù)測模型在擬合程度上表現(xiàn)出更高的精確性,預(yù)測值更接近真實(shí)值。實(shí)驗(yàn)證明了基于LSTM和GPR水文預(yù)測模型相對于其它算法在預(yù)測精度上有了提高。
本文提出基于LSTM和GPR的水文時(shí)間序列預(yù)測方法,對屯溪流域水位小時(shí)數(shù)據(jù)進(jìn)行應(yīng)用分析。實(shí)驗(yàn)結(jié)果說明,與單一的LSTM或GPR預(yù)報(bào)模型相比,基于LSTM和GPR水文時(shí)間預(yù)測模型得出的實(shí)驗(yàn)結(jié)果更加準(zhǔn)確。