姚志武 侯麗娜 文茂華
(1.長江勘測規(guī)劃設計研究有限責任公司,湖北 武漢 430010;2.長江空間信息技術工程有限公司(武漢),湖北 武漢 430010)
目前,在滲壓擬合方面應用較多的是集成時間序列(ITS)模型,逐步回歸分析法作為ITS中的代表性方法在滲壓分析預報方面取得了不錯的成績[2]。BP神經(jīng)網(wǎng)絡在大壩滲流安全監(jiān)測數(shù)據(jù)的分析和處理中得到了廣泛的應用,對非線性問題的高仿真性能、適應性及擬合精度優(yōu)于逐步回歸方法,但泛化能力弱、易陷入局部極小點等缺陷問題是近年研究的重點之一[3]。
鑒于標準BP算法存在的缺陷,為了提高壩體滲流壓力的預測效果,本文利用混凝土壩實時監(jiān)測數(shù)據(jù)建立基于LSTM算法的滲壓預測模型,以滲透壓力作為研究指標進行示例預測,并與傳統(tǒng)BP神經(jīng)網(wǎng)絡方法進行對比,搭建高精度滲壓預測模型,為水庫安全運行管理及大壩滲透壓力控制提供科學依據(jù)[4]。
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)是一類以序列數(shù)據(jù)為輸入,在序列的演進方向進行遞歸且所有節(jié)點(循環(huán)單元)按鏈式連接的遞歸神經(jīng)網(wǎng)絡[5]。RNN由具有時間序列建模特點的神經(jīng)元構成,包括輸入層、隱藏層和輸出層,并通過層之間的神經(jīng)元建立權連接。循環(huán)神經(jīng)網(wǎng)絡在數(shù)據(jù)傳遞上具有額外的權重,表示關于此神經(jīng)元之前輸入對當前神經(jīng)元影響的程度。在每個神經(jīng)元更新時,會把先前的值與其他權重一起輸入到激活函數(shù)中。所以此刻的狀態(tài)不僅包含了新的輸入數(shù)據(jù),還包含了之前輸入數(shù)據(jù)的歷史影響,因此具有一定的預測能力[6]。RNN展開后由多個相同的單元連續(xù)連接,是一個自我不斷循環(huán)的結構,見圖1。隨著輸入信息的不斷增加,自我循環(huán)結構中的上一狀態(tài)傳遞給自我作為輸入,一起作為新的輸入信息進行當前批次的訓練和學習,一直到訓練結束,最終達到信息預測的效果。
圖1 RNN基本結構
然而,在RNN的訓練過程中,先前數(shù)據(jù)中的信息對后續(xù)數(shù)據(jù)的影響逐漸減少,信息的保存率較低,難以控制對先前數(shù)據(jù)中信息的利用程度。長短時記憶網(wǎng)絡(Long Short-Term Memory,LSTM)是RNN的一種特殊網(wǎng)絡,是在計算機內(nèi)存單元設計靈感下誕生的[7]。通過在算法中加入判斷先前數(shù)據(jù)信息是否有用的門單元,能夠有效解決長序依賴問題。因此,可以利用長短時記憶網(wǎng)絡來創(chuàng)建大型的循環(huán)神經(jīng)網(wǎng)絡,用于解決機器學習中比較復雜的序列問題,并且長時期記憶網(wǎng)絡對序列問題的處理具有很高的效率[8]。
LSTM是一種特殊的RNN,兩者的區(qū)別在于普通的RNN單個循環(huán)結構內(nèi)部只有一個狀態(tài),而LSTM的單個循環(huán)結構(又稱為細胞)內(nèi)部有四個狀態(tài)。相比于RNN,LSTM循環(huán)結構之間保持一個持久的單元狀態(tài)不斷傳遞下去,用于決定哪些信息要遺忘或者繼續(xù)傳遞下去[9]。LSTM網(wǎng)絡的結構相比普通的RNN結構來說較為復雜(見圖2),采用LSTM層替代傳統(tǒng)的隱藏層,并且擁有三個門:輸入門、遺忘門和輸出門。其中遺忘門的存在使得LSTM能夠刪除和遺忘部分信息,從而解決了RNN存在的長期依賴問題[10]。LSTM的具體實現(xiàn)過程如下:
圖2 LSTM網(wǎng)絡結構
a.計算遺忘門的輸出值:
模式預報結果的檢驗是按照《環(huán)境空氣質(zhì)量標準》(GB 3095—2012)中的標準及算法進行的。使用了2016年7月1日~2017年10月31日模式預報數(shù)據(jù)和環(huán)??傉景l(fā)布的污染物濃度監(jiān)測數(shù)據(jù)2015年1月1日~2017年10月31日進行對比分析,使用了相關系數(shù)、均方根誤差來檢驗模式預報結果。
ft=σ(wf·[ht-1,xt]+bf)
b.計算輸入門的值:
it=σ(wi·[ht-1,xt]+bi)
C′t=tanh(wC·[ht-1,xt]+bC)
c.更新細胞狀態(tài):
Ct=ft⊙Ct-1+it⊙Ct
d.計算輸出門的值:
ot=σ(wo·[ht-1,xt]+bo)
ht=ot⊙tanh(Ct)
式中:wf,wi,wC,wo分別為遺忘門、輸入門、細胞狀態(tài)和輸出門的權重矩陣;bf,bi,bC,bo分別為遺忘門、輸入門、細胞狀態(tài)和輸出門的偏置項;ft,it,Ct,ot分別為t時刻的遺忘門、輸入門、細胞狀態(tài)和輸出門;C′t為記憶單元的輸入狀態(tài);ht為t時刻的隱藏層輸出;σ為sigmoid函數(shù);xt為t時刻的輸入;tanh為雙曲正切函數(shù);⊙表示矩陣元素相乘[11]。
本文以湖北省恩施市境內(nèi)馬尾溝流域的青龍水電站為研究對象。水電站壩高139.7m,壩址以上集雨面積為226km2,水庫正常蓄水位735m,庫容2939萬m3。大壩基礎廊道共埋設了9支滲壓計(P-1~P-9),其中P-1、P-4、P-7位于帷幕前,其他測點位于帷幕后,布置見圖3。
圖3 滲壓計布置
本文選取滲壓計P-1(2017年12月1日至2022年2月25日)進行分析計算。上述自動化監(jiān)測時間序列里共有監(jiān)測數(shù)據(jù)1522組,將其中80%的數(shù)據(jù)作為訓練及擬合樣本,20%的數(shù)據(jù)作為測試樣本。本文對獲取到的自動化監(jiān)測數(shù)據(jù)進行數(shù)據(jù)標準化操作,從而避免由奇異樣本數(shù)據(jù)導致的訓練時間成本增加,進而提升模型訓練的收斂速度。本文采用Sklearn庫自帶的MinMaxScaler方法進行標準化操作,對原始數(shù)據(jù)進行線性變換,從而使最后的數(shù)據(jù)落在0至1之間。
本文實驗所使用的的計算機物理環(huán)境如下:CPU為AMD Ryzen 7 4800H 2.90GHz,運行內(nèi)存為40GB;軟件環(huán)境如下:操作系統(tǒng)為64位的win10系統(tǒng),Python版本為3.7,IDE工具為PyCharm,神經(jīng)網(wǎng)絡基于Keras框架搭建。
LSTM神經(jīng)網(wǎng)絡涉及的參數(shù)較多,選取合適的參數(shù)對獲得良好的預測精度和提升訓練速度均有著較大影響[12]。LSTM模型的結構主要分輸入層、隱藏層、輸出層三個部分,隱藏層數(shù)較多的LSTM參數(shù)更加復雜,容易增加訓練難度,考慮到本文中所使用的樣本量較少,所有模型均在單隱藏層LSTM神經(jīng)網(wǎng)絡下構建。參考相關文獻,無論是從提升LSTM神經(jīng)網(wǎng)絡性能還是時間效率上來講,合理選擇時間步長和隱藏層神經(jīng)元的個數(shù)至關重要[13]。本文主要探討時間步長、隱藏層神經(jīng)元個數(shù)對模型訓練的影響。
基于LSTM大壩壩體滲透壓力的預測模型包括5個模塊:數(shù)據(jù)獲取、數(shù)據(jù)預處理、模型構建、訓練與優(yōu)化、模型預測。模型通過數(shù)據(jù)庫獲取滲壓計歷史監(jiān)測數(shù)據(jù),數(shù)據(jù)間隔為一天,并通過一定步長的時間序列數(shù)據(jù)預測后一天的滲透壓力值;考慮到自動化監(jiān)測設備存在數(shù)據(jù)采集異常等情況,將時間序列數(shù)據(jù)中的異常值、缺失值等進行補全;通過經(jīng)驗法和逐步試錯法確定最優(yōu)的時間步長和隱藏層神經(jīng)元個數(shù);最后,對模型進行訓練、驗證和測試,并預測大壩壩體滲透壓力值。具體的LSTM預測模型結構見圖4。
圖4 LSTM預測模型結構
為了提高大壩壩體滲壓預測模型的預測精度,需要根據(jù)預測結果比較參數(shù)的變化對結果的影響。在深度學習領域,常用的模型評估方法有準確率、覆蓋率、MAE、RMSE、R2等[14]。準確率和覆蓋率多用在分類問題上,MAE、RMSE、R2多用于回歸預測問題。
其中,MAE為平均絕對誤差,用來度量預測誤差的真實情況,為絕對誤差的均值。
RMSE為均方根誤差,度量預測值和真實值之間的偏差,是預測值與真實值的差的平方和與樣本量比值的平方根。
R2為確定系數(shù),用來度量未來的樣本是否可能通過模型被很好地預測,值越接近1表示回歸分析中自變量對因變量的解釋越好,即預測效果越好。
3.1.1 時間步長
本實驗數(shù)據(jù)是每日一條的大壩滲壓監(jiān)測數(shù)據(jù),結合實際情況分析,選取時間步長分別為6d、8d、10d、15d、20d進行模型訓練,并在驗證集上計算各步長下的性能。時間步長是LSTM神經(jīng)網(wǎng)絡中引入時序概念的決定性參數(shù),步長過短可能導致歷史信息不足而降低訓練性能,步長過長可能增加訓練時間且降低訓練性能。根據(jù)如圖5和圖6所示的實驗結果發(fā)現(xiàn),隨著時間步長的增加,RMSE存在明顯的先降后升趨勢,即時間步長為10d能夠達到更好的預測效果,本文中將選取時間步長為10d作為模型參數(shù)。
圖5 時間步長對LSTM模型性能的影響
圖6 隱藏層神經(jīng)元個數(shù)對LSTM模型性能的影響
3.1.2 隱藏層神經(jīng)元個數(shù)
理論上來講,神經(jīng)元個數(shù)過多容易陷入過擬合,而數(shù)量較少則無法很好地進行模型訓練。本文選取隱藏層神經(jīng)元個數(shù)為50、100、150、200、250進行模型訓練,并在驗證集上計算各隱藏層神經(jīng)元個數(shù)下的性能。根據(jù)如圖6所示的實驗結果發(fā)現(xiàn),隨著隱藏層神經(jīng)元數(shù)量的增加,RMSE會明顯地降低,但數(shù)量大于200后,模型性能差別并沒有顯著變化,本文中將選取隱藏層神經(jīng)元個數(shù)為200作為模型參數(shù)。
綜上所述,最終選取時間步長為10d,隱藏層神經(jīng)元個數(shù)為200作為最后的參數(shù)訓練LSTM模型,并調(diào)節(jié)正則化、dropout等參數(shù)防止過擬合,最終LSTM神經(jīng)網(wǎng)絡的RMSE為23.98(實驗數(shù)據(jù)值域為781.81~1100.23kPa,預測波動范圍為2%~3%),R2為0.94,整體擬合效果較好。
為進行對比分析,本文同時使用BP神經(jīng)網(wǎng)絡[15]、LSTM模型對樣本數(shù)據(jù)進行擬合預測(BP神經(jīng)網(wǎng)絡采用MLP模型,同樣采用經(jīng)驗法和逐步試錯法確定最優(yōu)參數(shù),其中預測窗口步長為10d,隱藏層神經(jīng)元個數(shù)為200)。表1為驗證集中部分樣本大壩壩體滲壓實際值和預測值的比較,圖7為驗證集中所有樣本實際值和預測值的對比。
表1 部分預測壩體滲壓值和實際值數(shù)據(jù)
圖7 實際值與預測值(BP神經(jīng)網(wǎng)絡和LSTM模型)對比
表1和圖7的數(shù)據(jù)對比顯示:LSTM模型的預測值與實際值相比波動微弱,且總體趨勢更接近實際值。由表2可以看出:BP神經(jīng)網(wǎng)絡和LSTM模型的R2都在0.9以上,表明兩種模型對測點滲壓的擬合度均較高,其擬合曲線與實際動態(tài)基本貼合(見圖7),LSTM模型相較BP神經(jīng)網(wǎng)絡的平均絕對誤差和均方根誤差均更小。綜合對比,LSTM作為深度學習網(wǎng)絡,相較傳統(tǒng)機器學習方法的BP神經(jīng)網(wǎng)絡能更好地進行本文所研究大壩的滲壓預測。
表2 模型評價對比
本文基于青龍水電站大壩壩體的滲壓自動化監(jiān)測數(shù)據(jù),構建了LSTM神經(jīng)網(wǎng)絡模型,探究了時間步長、隱藏層神經(jīng)元個數(shù)對模型訓練性能的影響,并與傳統(tǒng)BP神經(jīng)網(wǎng)絡模型進行對比分析,得出如下結論:
a.LSTM神經(jīng)網(wǎng)絡在不同時間步長和隱藏層神經(jīng)元個數(shù)下均有較好預測效果,本文中的實驗數(shù)據(jù)模型時間步長為10d,隱藏層神經(jīng)元個數(shù)為200時,整體擬合效果較好。
b.LSTM模型能夠準確反映大壩壩體滲壓系統(tǒng)的不確定性非線性關系,與傳統(tǒng)BP神經(jīng)網(wǎng)絡對比分析表明,LSTM模型擬合曲線R2達到0.943,擬合水平顯著,性能優(yōu)越。
c.本文中搭建的LSTM神經(jīng)網(wǎng)絡預測模型,時間步長為10d的能達到較好的預測結果,均方根誤差(RMSE)為23.98,預測波動范圍為2%~3%,能夠初步判定大壩工作狀態(tài)是否存在安全隱患,為水庫安全運行管理及大壩滲透壓力控制提供科學依據(jù),滿足水電站日常管理需求,具有很好的工程應用價值。