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