張朝逢,陳皓銳,岳中奇
(1.陜西省地下水管理監測局,西安 710000;2.中國水利水電科學研究院,北京 100048)
隨著國民經濟中的高速發展,水資源的開采日益增大,而我國人均水資源占有量僅為世界平均水平的1/4,水資源的缺乏成為限制經濟發展的重要因素之一[1, 2]。地下水資源的開發和利用在各行業都占有很大比重[3]。因此,準確預測地下水埋深可為地下水資源的有效管理提供科學依據,對區域水資源合理調度以及可持續利用具有重要意義。
地下水埋深影響因素很多,如地形、氣象、土壤、人類活動等,在這些因素的綜合影響下,地下水埋深在時間序列上具有很強的隨機性和滯后性[4-6]。如何準確預測地下水埋深一直是水利領域研究的熱點問題之一。目前針對地下水埋深預測的研究方法有很多,有多元回歸分析、灰色關聯、人工神經網絡模型、基于水量平衡的數值模型,等等[4, 6-11]。近些年,我國信息技術迅速發展,許多學者都試圖利用數據驅動的方式來預測地下水水位[4, 12]。
最早的為人工神經網絡(Artificial Neural Networks, ANN),早在20世紀90年代就被應用于地下水水位預測當中[13]。遞歸神經網絡(Recurrent Neural Network, RNN)的出現改善了人工神經網絡對時間序列數據的模擬精度,也被廣泛應用于地下水水位預測的研究中[14-16]。后來為了解決RNN 在長時間序列學習時出現的梯度消失問題,HOCHREITER和SCHMIDHUBER[17]提出了長短時記憶網絡(Long Short-Term Memory, LSTM)。由于LSTM在時間序列模擬中具有明顯優勢,在醫藥、金融、社會學等多領域中得到了廣泛的應用。近些年,水利領域基于LSTM模型的研究也逐漸在開展。殷兆凱[18]等人基于LSTM模型對錦江流域高安站以上部分降雨徑流進行了模擬和預報,并與新安江模型進行了對比,在相同的預見期下,LSTM模型比新安江模型有更好的預報性能。ZHANG[19]等人改進LSTM算法,運用土壤特征、地形、氣象數據等模擬了河套地區的地下水水位,發現模擬精度較高。HU[20]等對比了LSTM 與ANN 徑流產流方面的預測性能,發現LSTM比ANN模型預報得更為精準。LIANG[21]等運用LSTM 模型分析了多年實測三峽水庫蓄水水位、放水量等數據與洞庭湖水位數據,發現2者關系密切。
然而,上述研究主要集中洪水和徑流的模擬與預報,LSTM模型在地下水水位的模擬研究相對較少,并且已有針對LSTM 模型的參數設置討論也還不夠深入,沒有涉及訓練次數對模擬精度的影響。本研究基于區域地下水水位的實測數據,基于LSTM 模型,進行地下水埋深模擬,并且探索模型參數對模擬精度的影響以及分析模型誤差來源。
關中平原位于陜西省中部,南接秦嶺,北抵北山(梁山、黃龍山、堯山、嵯峨山、五鳳山、岐山、千山和關山等),西起寶雞,東至潼關,是一個三面環山,東部敞開的新生代斷陷盆地。關中是陜西省糧棉油的主要產區,耕地面積145.67 萬hm2,農業生產總值 1 700.40 億元,占陜西省的 60.2%。關中平原是暖溫帶半濕潤季風氣候,多年平均降水量為 505~718 mm。2017年關中地區地下水供水總量為24.84 億m3,占該區域總供水量54.89 億m3的45.25%,占全省地下水總供水量32.57 億m3的76.27%。其中淺層地下水供水量為24.45 億m3,占關中地區地下水總供水量的98.43%。目前關中地區地下水超采嚴重,關中平原地下水埋深大于40 m的面積占總面積的30%,埋深在20~40 m的面積占21%,埋深在8~20 m和4~8 m的面積占23%和12%,埋深小于4 m的占14%。
本研究采用關中平原33個地下水埋深觀測井的逐日地下水水位數據,數據長度為2007-2017年,地下水埋深觀測井的分布如圖1所示。

圖1 研究區地下水埋深33眼觀測井的分布
長短時記憶網絡(LSTM)是一種特殊的時間遞歸神經網絡(RNN),能有效地避免RNN在長依賴序列模型中出現的梯度彌散問題[17]。LSTM模型包括輸入門、遺忘門、輸出門和細胞狀態等4部分。輸入門決定了輸入信息向細胞狀態傳遞的多少;遺忘門主要是控制上一時段細胞狀態中的信息有多少被遺忘,有多少向當前時刻傳遞;而輸出門則是基于遺忘門和輸入門更新的細胞狀態,來輸出計算結果;細胞狀態用來記錄當前輸入、上一時刻隱藏層狀態、上一時刻細胞狀態以及門結構中的信息[17, 19]。LSTM 神經網絡的整體結構如圖2所示。

圖2 LSTM 神經網絡的整體結構
LSTM模型具體計算過程如下。
LSTM在計算過程中,首先計算遺忘門ft。ft控制著從之前的狀態中需要去掉信息的多少,其計算公式如下:
ft=σ[Wf(ht-1,xt)+bf]
(1)
式中:Wf和bf為遺忘門的可調參數矩陣或向量,這些參數將會在訓練過程被優化;σ為Sigmoid 激活函數。
然后,計算輸入門it。it將決定從新獲取的信息中選擇多少用以更新狀態,it的計算公式如下:
it=σ[Wi(ht-1,xt)+bi]
(2)
(3)
式中:Wi、bi、WC和bC都為可調參數矩陣或向量,這些參數將會在訓練過程被優化;tanh為雙曲正切激活函數。
下一步是將過去與現在的記憶進行合并,計算公式如下:
(4)
接下來計算輸出門ot。ot可以決定在t時刻有多少信息生成隱藏層狀態變量ht,其計算公式如下:
ot=σ[Wo(ht-1,xt)+bo]
(5)
ht=ottanh (Ct)
(6)
式中:Wo和bo為輸出門的可調參數矩陣或向量。
最終,ht傳入輸出層,再經過計算后得到LSTM在t時刻的最終輸出yt:
yt=Wdht+bd
(7)
式中:Wd和bd為輸出層的可調參數矩陣或向量,這些參數將會在模型訓練過程被優化。
模型的輸入為2007-2017年關中平原33眼地下水埋深觀測井的逐月地下水水位觀測數據。模型輸出為關中平原觀測期內對應模擬地下水水位。
LSTM模型的建立分為訓練和驗證2個階段。首先以33眼地下水觀測井2007-2017年的逐月觀測數據作為一個整體的數據集并隨機地將其按照2∶1劃分為訓練數據集和驗證數據集。接著對模型進行訓練,在此過程中,分別設置訓練次數為10、20、30、40、50、60、70、80、90和100次,分析模型訓練和驗證階段的模擬精度,確定最優的訓練次數。在模型最優訓練次數確定后,利用建立的LSTM模型,分別針對每一眼觀測井的數據再進行模擬,評價不同樣本容量對模擬精度的影響。
為了量化LSTM模型在地下水水位模擬中的精度,本研究采用了3種評價指標,分別為決定系數R2,均方根誤差RMSE和相對均方根誤差RRMSE。其中R2表示觀測值與模擬值的相關性以及模擬值與觀測值的吻合度;RMSE則反映模擬值與觀測值在數量上的差別,而RRMSE則體現了模擬值與觀測值的誤差所占觀測值的比例。具體的計算公式如下:
(8)
(9)
(1-)
式中:n為總樣本數量;Oi為t時刻的觀測值;Pi為t時刻的模擬值;Oiave為觀測值的平均值。
長短時記憶模型的訓練次數對模型的預測結果產生很大的影響,因此確定好長短時記憶方法訓練次數,是準確預測陜西關中平原地下水埋深的關鍵。圖3給出了10種不同訓練次數(10~100次)LSTM模型對關中平原地下水埋深模擬效果評價指標。整體上決定系數R2隨著訓練次數的增大而逐漸提高,但在訓練次數達到40次后決定系數R2變化不大。對于訓練階段,訓練次數為60次的R2最高為0.980 43,而在驗證階段,R2在訓練次數為40次時最大,為0.981 65。訓練階段和驗證階段均方根誤差RMSE和相對均方根誤差RRMSE對于訓練次數有著相似的結果。均方根誤差RMSE在訓練次數為40次時最小,而在訓練次數為50次和60次時,RMSE相對較大。相對均方根誤差RRMSE也有同樣的結果。這也說明應用LSTM模型并不是訓練次數越多越好,對于特定的樣本,如果樣本中存在一些帶有誤差的信息,而訓練次數越多,網絡精度越高,也意味著記錄的錯誤信息越多,從而導致模擬的精度下降[18]。因此在LSTM模型計算時需要對訓練次數與獲取的試驗數據進行匹配,選擇最優的訓練次數。在本研究中,選擇訓練40次作為試驗區采用LSTM模型預測地下水埋深的訓練次數。

圖3 LSTM模型預測評價指標與訓練次數的關系注:紅色虛線框出的表示該訓練次數獲得最優模擬精度。
LSTM 模型模擬關中平原地下水水位的整體結果如圖4所示。從圖4中可以看, LSTM 模型模擬地下水水位的整體效果較好。在訓練和驗證階段,決定系數R2均為0.98,這也說明運用LSTM模型可以得到較好的地下水水位模擬結果。然而在驗證階段的均方根誤差和相對均方根誤差都要大于訓練階段的,表明雖然LSTM模型較好地模擬了關中平原地下水水位的狀況,但是模擬精度在驗證階段有所下降。另外,盡管在訓練階段地下水埋深沒有大于100 m,但是驗證階段LSTM模型在地下水水位埋深100~120 m區間的模擬精度也很高,這表明LSTM模型通過已有地下水水位數據計算下一時段地下水水位時其模擬范圍可以適當的放大。

圖4 實測和模擬地下水水位對比
圖5給出了訓練階段關中平原33眼地下水水位井單獨運用LSTM模型進行模擬的3個評價指標值。在訓練階段,R2小于0.23的有2眼井,R2大于0.9的有13眼井。通過分析數據發現,模擬不準的2眼井的地下水水位都有大于5 m的突變點,這也說明LSTM模型在計算時間序列時如果有異常點出現時,會記憶并一直傳遞下去,從而導致模擬結果失準。對于訓練階段,均方根誤差整體來說不大,33眼地下水埋深觀測井中只有2眼的均方根誤差大于1 m,其余的都小于1 m。相對均方根誤差也有相似的結果,33眼地下水埋深觀測井中只有2眼的相對均方根誤差大于7%。
如圖5所示,驗證階段33眼地下水埋深觀測井地下水埋深單獨模擬的整體效果較好,大多數地下水埋深觀測井的R2都在0.6以上,相對均方根誤差都小于8%。但是在驗證階段的模擬效果不如訓練階段的。相比訓練階段,在驗證階段R2小于0.23的增加到了4眼,R2大于0.9的只有11眼,并且均方根誤差也有所增大,最大的值為20.43 m,大于2.43 m的也有3眼井,最大的相對均方根誤差增大到了38%。與將33眼地下水埋深觀測井所有觀測數據作為一個樣本集相比,單獨模擬的效果要低于整體的模擬效果,這主要是將33眼井的觀測數據單獨作為樣本集時,樣本的數量不夠,LSTM模型訓練時學習存在偏差,從而導致模擬精度不好。肖晴欣[22]在LSTM預測棉花病蟲害的時候也發現類似的問題,整體樣本比單一樣本的預測精度要好。因此,在以后運用LSTM模型進行地下水水位模擬時應加大樣本數量。

圖5 訓練階段和驗證階段33眼觀測井單獨模擬時各水位井地下水埋深模擬評價指標注:圓圈顏色越深代表其值越大,圓圈直徑越大代表其值越大。
本研究首先通過率定LSTM模型的模型參數(訓練次數),在最優的訓練次數下分析了LSTM模型對關中平原整體地下水水位的模擬效果和單獨33眼井的地下水水位的模擬效果進行了分析。模型在計算方面也有不足之處,主要表現在如下2方面:在模型算法方面,本研究重點研究訓練次數對模擬精度的影響,未考慮網絡節點和層數對模擬精度的影響;在模型輸入方面,模型主要通過實測的地下水埋深數據來模擬下一時刻的地下水埋深,是通過自相關來預測地下水埋深,未考慮氣象條件、人類活動等因素對地下水埋深的影響。因此,今后的研究有必要考慮模型網絡結構的影響以及增加其他環境因素作為輸入數據,更進一步提高模擬精度。
本文通過長短時記憶網絡模型對關中平原地下水水位進行模擬,模型輸入為關中平原33眼地下水埋深觀測井在2007-2017年的逐月地下水水位觀測數據,利用LSTM模型在時間序列上模擬的優勢,采用前一時段的地下水埋深觀測數據來模擬下一時刻的地下水水位,得到以下研究結論。
(1)LSTM在模擬關中平原地下水埋深時,模型訓練次數對模擬精度產生明顯影響,模擬精度在訓練次數為40次時最佳。
(2)在選擇最優訓練次數下,LSTM模型可以較好模擬關中平原的地下水埋深變化,R2在訓練階段和驗證階段都能達到0.98,RMSE和RRMSE也較小。
(3)以33眼地下水埋深觀測井的觀測數據單獨作為一個樣本集時,LSTM模型的模擬精度比把所有數據當作一個樣本集時要差,并且由于樣本數據的減少,驗證階段的模擬效果也遠不如訓練階段的效果。因此,運用LSTM模型模擬地下水埋深變化是應加大樣本數量,以得到更好的模擬效果。