張朝逢,陳皓銳,岳中奇
(1.陜西省地下水管理監(jiān)測局,西安 710000;2.中國水利水電科學(xué)研究院,北京 100048)
隨著國民經(jīng)濟(jì)中的高速發(fā)展,水資源的開采日益增大,而我國人均水資源占有量僅為世界平均水平的1/4,水資源的缺乏成為限制經(jīng)濟(jì)發(fā)展的重要因素之一[1, 2]。地下水資源的開發(fā)和利用在各行業(yè)都占有很大比重[3]。因此,準(zhǔn)確預(yù)測地下水埋深可為地下水資源的有效管理提供科學(xué)依據(jù),對區(qū)域水資源合理調(diào)度以及可持續(xù)利用具有重要意義。
地下水埋深影響因素很多,如地形、氣象、土壤、人類活動等,在這些因素的綜合影響下,地下水埋深在時間序列上具有很強(qiáng)的隨機(jī)性和滯后性[4-6]。如何準(zhǔn)確預(yù)測地下水埋深一直是水利領(lǐng)域研究的熱點(diǎn)問題之一。目前針對地下水埋深預(yù)測的研究方法有很多,有多元回歸分析、灰色關(guān)聯(lián)、人工神經(jīng)網(wǎng)絡(luò)模型、基于水量平衡的數(shù)值模型,等等[4, 6-11]。近些年,我國信息技術(shù)迅速發(fā)展,許多學(xué)者都試圖利用數(shù)據(jù)驅(qū)動的方式來預(yù)測地下水水位[4, 12]。
最早的為人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks, ANN),早在20世紀(jì)90年代就被應(yīng)用于地下水水位預(yù)測當(dāng)中[13]。遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)的出現(xiàn)改善了人工神經(jīng)網(wǎng)絡(luò)對時間序列數(shù)據(jù)的模擬精度,也被廣泛應(yīng)用于地下水水位預(yù)測的研究中[14-16]。后來為了解決RNN 在長時間序列學(xué)習(xí)時出現(xiàn)的梯度消失問題,HOCHREITER和SCHMIDHUBER[17]提出了長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)。由于LSTM在時間序列模擬中具有明顯優(yōu)勢,在醫(yī)藥、金融、社會學(xué)等多領(lǐng)域中得到了廣泛的應(yīng)用。近些年,水利領(lǐng)域基于LSTM模型的研究也逐漸在開展。殷兆凱[18]等人基于LSTM模型對錦江流域高安站以上部分降雨徑流進(jìn)行了模擬和預(yù)報,并與新安江模型進(jìn)行了對比,在相同的預(yù)見期下,LSTM模型比新安江模型有更好的預(yù)報性能。ZHANG[19]等人改進(jìn)LSTM算法,運(yùn)用土壤特征、地形、氣象數(shù)據(jù)等模擬了河套地區(qū)的地下水水位,發(fā)現(xiàn)模擬精度較高。HU[20]等對比了LSTM 與ANN 徑流產(chǎn)流方面的預(yù)測性能,發(fā)現(xiàn)LSTM比ANN模型預(yù)報得更為精準(zhǔn)。LIANG[21]等運(yùn)用LSTM 模型分析了多年實測三峽水庫蓄水水位、放水量等數(shù)據(jù)與洞庭湖水位數(shù)據(jù),發(fā)現(xiàn)2者關(guān)系密切。
然而,上述研究主要集中洪水和徑流的模擬與預(yù)報,LSTM模型在地下水水位的模擬研究相對較少,并且已有針對LSTM 模型的參數(shù)設(shè)置討論也還不夠深入,沒有涉及訓(xùn)練次數(shù)對模擬精度的影響。本研究基于區(qū)域地下水水位的實測數(shù)據(jù),基于LSTM 模型,進(jìn)行地下水埋深模擬,并且探索模型參數(shù)對模擬精度的影響以及分析模型誤差來源。
關(guān)中平原位于陜西省中部,南接秦嶺,北抵北山(梁山、黃龍山、堯山、嵯峨山、五鳳山、岐山、千山和關(guān)山等),西起寶雞,東至潼關(guān),是一個三面環(huán)山,東部敞開的新生代斷陷盆地。關(guān)中是陜西省糧棉油的主要產(chǎn)區(qū),耕地面積145.67 萬hm2,農(nóng)業(yè)生產(chǎn)總值 1 700.40 億元,占陜西省的 60.2%。關(guān)中平原是暖溫帶半濕潤季風(fēng)氣候,多年平均降水量為 505~718 mm。2017年關(guān)中地區(qū)地下水供水總量為24.84 億m3,占該區(qū)域總供水量54.89 億m3的45.25%,占全省地下水總供水量32.57 億m3的76.27%。其中淺層地下水供水量為24.45 億m3,占關(guān)中地區(qū)地下水總供水量的98.43%。目前關(guān)中地區(qū)地下水超采嚴(yán)重,關(guān)中平原地下水埋深大于40 m的面積占總面積的30%,埋深在20~40 m的面積占21%,埋深在8~20 m和4~8 m的面積占23%和12%,埋深小于4 m的占14%。
本研究采用關(guān)中平原33個地下水埋深觀測井的逐日地下水水位數(shù)據(jù),數(shù)據(jù)長度為2007-2017年,地下水埋深觀測井的分布如圖1所示。
圖1 研究區(qū)地下水埋深33眼觀測井的分布
長短時記憶網(wǎng)絡(luò)(LSTM)是一種特殊的時間遞歸神經(jīng)網(wǎng)絡(luò)(RNN),能有效地避免RNN在長依賴序列模型中出現(xiàn)的梯度彌散問題[17]。LSTM模型包括輸入門、遺忘門、輸出門和細(xì)胞狀態(tài)等4部分。輸入門決定了輸入信息向細(xì)胞狀態(tài)傳遞的多少;遺忘門主要是控制上一時段細(xì)胞狀態(tài)中的信息有多少被遺忘,有多少向當(dāng)前時刻傳遞;而輸出門則是基于遺忘門和輸入門更新的細(xì)胞狀態(tài),來輸出計算結(jié)果;細(xì)胞狀態(tài)用來記錄當(dāng)前輸入、上一時刻隱藏層狀態(tài)、上一時刻細(xì)胞狀態(tài)以及門結(jié)構(gòu)中的信息[17, 19]。LSTM 神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖2所示。
圖2 LSTM 神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)
LSTM模型具體計算過程如下。
LSTM在計算過程中,首先計算遺忘門ft。ft控制著從之前的狀態(tài)中需要去掉信息的多少,其計算公式如下:
ft=σ[Wf(ht-1,xt)+bf]
(1)
式中:Wf和bf為遺忘門的可調(diào)參數(shù)矩陣或向量,這些參數(shù)將會在訓(xùn)練過程被優(yōu)化;σ為Sigmoid 激活函數(shù)。
然后,計算輸入門it。it將決定從新獲取的信息中選擇多少用以更新狀態(tài),it的計算公式如下:
it=σ[Wi(ht-1,xt)+bi]
(2)
(3)
式中:Wi、bi、WC和bC都為可調(diào)參數(shù)矩陣或向量,這些參數(shù)將會在訓(xùn)練過程被優(yōu)化;tanh為雙曲正切激活函數(shù)。
下一步是將過去與現(xiàn)在的記憶進(jìn)行合并,計算公式如下:
(4)
接下來計算輸出門ot。ot可以決定在t時刻有多少信息生成隱藏層狀態(tài)變量ht,其計算公式如下:
ot=σ[Wo(ht-1,xt)+bo]
(5)
ht=ottanh (Ct)
(6)
式中:Wo和bo為輸出門的可調(diào)參數(shù)矩陣或向量。
最終,ht傳入輸出層,再經(jīng)過計算后得到LSTM在t時刻的最終輸出yt:
yt=Wdht+bd
(7)
式中:Wd和bd為輸出層的可調(diào)參數(shù)矩陣或向量,這些參數(shù)將會在模型訓(xùn)練過程被優(yōu)化。
模型的輸入為2007-2017年關(guān)中平原33眼地下水埋深觀測井的逐月地下水水位觀測數(shù)據(jù)。模型輸出為關(guān)中平原觀測期內(nèi)對應(yīng)模擬地下水水位。
LSTM模型的建立分為訓(xùn)練和驗證2個階段。首先以33眼地下水觀測井2007-2017年的逐月觀測數(shù)據(jù)作為一個整體的數(shù)據(jù)集并隨機(jī)地將其按照2∶1劃分為訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)集。接著對模型進(jìn)行訓(xùn)練,在此過程中,分別設(shè)置訓(xùn)練次數(shù)為10、20、30、40、50、60、70、80、90和100次,分析模型訓(xùn)練和驗證階段的模擬精度,確定最優(yōu)的訓(xùn)練次數(shù)。在模型最優(yōu)訓(xùn)練次數(shù)確定后,利用建立的LSTM模型,分別針對每一眼觀測井的數(shù)據(jù)再進(jìn)行模擬,評價不同樣本容量對模擬精度的影響。
為了量化LSTM模型在地下水水位模擬中的精度,本研究采用了3種評價指標(biāo),分別為決定系數(shù)R2,均方根誤差RMSE和相對均方根誤差RRMSE。其中R2表示觀測值與模擬值的相關(guān)性以及模擬值與觀測值的吻合度;RMSE則反映模擬值與觀測值在數(shù)量上的差別,而RRMSE則體現(xiàn)了模擬值與觀測值的誤差所占觀測值的比例。具體的計算公式如下:
(8)
(9)
(1-)
式中:n為總樣本數(shù)量;Oi為t時刻的觀測值;Pi為t時刻的模擬值;Oiave為觀測值的平均值。
長短時記憶模型的訓(xùn)練次數(shù)對模型的預(yù)測結(jié)果產(chǎn)生很大的影響,因此確定好長短時記憶方法訓(xùn)練次數(shù),是準(zhǔn)確預(yù)測陜西關(guān)中平原地下水埋深的關(guān)鍵。圖3給出了10種不同訓(xùn)練次數(shù)(10~100次)LSTM模型對關(guān)中平原地下水埋深模擬效果評價指標(biāo)。整體上決定系數(shù)R2隨著訓(xùn)練次數(shù)的增大而逐漸提高,但在訓(xùn)練次數(shù)達(dá)到40次后決定系數(shù)R2變化不大。對于訓(xùn)練階段,訓(xùn)練次數(shù)為60次的R2最高為0.980 43,而在驗證階段,R2在訓(xùn)練次數(shù)為40次時最大,為0.981 65。訓(xùn)練階段和驗證階段均方根誤差RMSE和相對均方根誤差RRMSE對于訓(xùn)練次數(shù)有著相似的結(jié)果。均方根誤差RMSE在訓(xùn)練次數(shù)為40次時最小,而在訓(xùn)練次數(shù)為50次和60次時,RMSE相對較大。相對均方根誤差RRMSE也有同樣的結(jié)果。這也說明應(yīng)用LSTM模型并不是訓(xùn)練次數(shù)越多越好,對于特定的樣本,如果樣本中存在一些帶有誤差的信息,而訓(xùn)練次數(shù)越多,網(wǎng)絡(luò)精度越高,也意味著記錄的錯誤信息越多,從而導(dǎo)致模擬的精度下降[18]。因此在LSTM模型計算時需要對訓(xùn)練次數(shù)與獲取的試驗數(shù)據(jù)進(jìn)行匹配,選擇最優(yōu)的訓(xùn)練次數(shù)。在本研究中,選擇訓(xùn)練40次作為試驗區(qū)采用LSTM模型預(yù)測地下水埋深的訓(xùn)練次數(shù)。
圖3 LSTM模型預(yù)測評價指標(biāo)與訓(xùn)練次數(shù)的關(guān)系注:紅色虛線框出的表示該訓(xùn)練次數(shù)獲得最優(yōu)模擬精度。
LSTM 模型模擬關(guān)中平原地下水水位的整體結(jié)果如圖4所示。從圖4中可以看, LSTM 模型模擬地下水水位的整體效果較好。在訓(xùn)練和驗證階段,決定系數(shù)R2均為0.98,這也說明運(yùn)用LSTM模型可以得到較好的地下水水位模擬結(jié)果。然而在驗證階段的均方根誤差和相對均方根誤差都要大于訓(xùn)練階段的,表明雖然LSTM模型較好地模擬了關(guān)中平原地下水水位的狀況,但是模擬精度在驗證階段有所下降。另外,盡管在訓(xùn)練階段地下水埋深沒有大于100 m,但是驗證階段LSTM模型在地下水水位埋深100~120 m區(qū)間的模擬精度也很高,這表明LSTM模型通過已有地下水水位數(shù)據(jù)計算下一時段地下水水位時其模擬范圍可以適當(dāng)?shù)姆糯蟆?/p>
圖4 實測和模擬地下水水位對比
圖5給出了訓(xùn)練階段關(guān)中平原33眼地下水水位井單獨(dú)運(yùn)用LSTM模型進(jìn)行模擬的3個評價指標(biāo)值。在訓(xùn)練階段,R2小于0.23的有2眼井,R2大于0.9的有13眼井。通過分析數(shù)據(jù)發(fā)現(xiàn),模擬不準(zhǔn)的2眼井的地下水水位都有大于5 m的突變點(diǎn),這也說明LSTM模型在計算時間序列時如果有異常點(diǎn)出現(xiàn)時,會記憶并一直傳遞下去,從而導(dǎo)致模擬結(jié)果失準(zhǔn)。對于訓(xùn)練階段,均方根誤差整體來說不大,33眼地下水埋深觀測井中只有2眼的均方根誤差大于1 m,其余的都小于1 m。相對均方根誤差也有相似的結(jié)果,33眼地下水埋深觀測井中只有2眼的相對均方根誤差大于7%。
如圖5所示,驗證階段33眼地下水埋深觀測井地下水埋深單獨(dú)模擬的整體效果較好,大多數(shù)地下水埋深觀測井的R2都在0.6以上,相對均方根誤差都小于8%。但是在驗證階段的模擬效果不如訓(xùn)練階段的。相比訓(xùn)練階段,在驗證階段R2小于0.23的增加到了4眼,R2大于0.9的只有11眼,并且均方根誤差也有所增大,最大的值為20.43 m,大于2.43 m的也有3眼井,最大的相對均方根誤差增大到了38%。與將33眼地下水埋深觀測井所有觀測數(shù)據(jù)作為一個樣本集相比,單獨(dú)模擬的效果要低于整體的模擬效果,這主要是將33眼井的觀測數(shù)據(jù)單獨(dú)作為樣本集時,樣本的數(shù)量不夠,LSTM模型訓(xùn)練時學(xué)習(xí)存在偏差,從而導(dǎo)致模擬精度不好。肖晴欣[22]在LSTM預(yù)測棉花病蟲害的時候也發(fā)現(xiàn)類似的問題,整體樣本比單一樣本的預(yù)測精度要好。因此,在以后運(yùn)用LSTM模型進(jìn)行地下水水位模擬時應(yīng)加大樣本數(shù)量。
圖5 訓(xùn)練階段和驗證階段33眼觀測井單獨(dú)模擬時各水位井地下水埋深模擬評價指標(biāo)注:圓圈顏色越深代表其值越大,圓圈直徑越大代表其值越大。
本研究首先通過率定LSTM模型的模型參數(shù)(訓(xùn)練次數(shù)),在最優(yōu)的訓(xùn)練次數(shù)下分析了LSTM模型對關(guān)中平原整體地下水水位的模擬效果和單獨(dú)33眼井的地下水水位的模擬效果進(jìn)行了分析。模型在計算方面也有不足之處,主要表現(xiàn)在如下2方面:在模型算法方面,本研究重點(diǎn)研究訓(xùn)練次數(shù)對模擬精度的影響,未考慮網(wǎng)絡(luò)節(jié)點(diǎn)和層數(shù)對模擬精度的影響;在模型輸入方面,模型主要通過實測的地下水埋深數(shù)據(jù)來模擬下一時刻的地下水埋深,是通過自相關(guān)來預(yù)測地下水埋深,未考慮氣象條件、人類活動等因素對地下水埋深的影響。因此,今后的研究有必要考慮模型網(wǎng)絡(luò)結(jié)構(gòu)的影響以及增加其他環(huán)境因素作為輸入數(shù)據(jù),更進(jìn)一步提高模擬精度。
本文通過長短時記憶網(wǎng)絡(luò)模型對關(guān)中平原地下水水位進(jìn)行模擬,模型輸入為關(guān)中平原33眼地下水埋深觀測井在2007-2017年的逐月地下水水位觀測數(shù)據(jù),利用LSTM模型在時間序列上模擬的優(yōu)勢,采用前一時段的地下水埋深觀測數(shù)據(jù)來模擬下一時刻的地下水水位,得到以下研究結(jié)論。
(1)LSTM在模擬關(guān)中平原地下水埋深時,模型訓(xùn)練次數(shù)對模擬精度產(chǎn)生明顯影響,模擬精度在訓(xùn)練次數(shù)為40次時最佳。
(2)在選擇最優(yōu)訓(xùn)練次數(shù)下,LSTM模型可以較好模擬關(guān)中平原的地下水埋深變化,R2在訓(xùn)練階段和驗證階段都能達(dá)到0.98,RMSE和RRMSE也較小。
(3)以33眼地下水埋深觀測井的觀測數(shù)據(jù)單獨(dú)作為一個樣本集時,LSTM模型的模擬精度比把所有數(shù)據(jù)當(dāng)作一個樣本集時要差,并且由于樣本數(shù)據(jù)的減少,驗證階段的模擬效果也遠(yuǎn)不如訓(xùn)練階段的效果。因此,運(yùn)用LSTM模型模擬地下水埋深變化是應(yīng)加大樣本數(shù)量,以得到更好的模擬效果。