張明岳,李麗敏,溫宗周
(西安工程大學(xué)電子信息學(xué)院,陜西 西安 710600)
滑坡災(zāi)害嚴重威脅著國家生態(tài)環(huán)境和當?shù)鼐用竦娜松戆踩卤O(jiān)測的預(yù)警、預(yù)報因可以有效避免災(zāi)害造成的各方面損失而顯得尤為重要。目前,滑坡預(yù)測研究主要分為時間、空間2種預(yù)測方法[1]。在滑坡區(qū)域確定的前提下,如何更加準確地預(yù)測在不同時間滑坡的位移成為關(guān)鍵問題。例如雷德鑫等[2]基于時間序列分析,采用差分整合移動平均自回歸(Auto Regressive Integrated Moving Average,ARIMA)模型預(yù)測滑坡位移,實現(xiàn)對滑坡位移滾動預(yù)測,但由于滑坡非線性動力學(xué)特征復(fù)雜致使預(yù)測時間延長、預(yù)測精度下降,可見滑坡位移的演化是呈動態(tài)的。楊背背等[3]基于時間序列的滑坡位移動態(tài)預(yù)測模型在實際應(yīng)用中預(yù)測結(jié)果較好,但其預(yù)測精度和計算時間明顯受制于算法結(jié)構(gòu),可見算法本身參數(shù)數(shù)量和結(jié)構(gòu)復(fù)雜程度也影響著預(yù)測精度。
從以往的滑坡位移研究成果來看,多數(shù)研究人員使用徑向基函數(shù)(Radial Basis Function,RBF)、反向傳播(Back Propagation,BP)、K-means等智能算法,然而這些算法從實際應(yīng)用的情況來看還存在如下問題:①RBF神經(jīng)網(wǎng)絡(luò)具有較強的聚類能力,在處理復(fù)雜事物和大量數(shù)據(jù)方面能力較強,但其是一個靜態(tài)網(wǎng)絡(luò),不能用于滑坡動態(tài)預(yù)測;②BP神經(jīng)網(wǎng)絡(luò)可以解決非線性問題,但由于其網(wǎng)絡(luò)自身的局限性,在訓(xùn)練過程中會出現(xiàn)陷入局部極小值、收斂速度慢等問題[4],對訓(xùn)練樣本具有依賴性。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN主要用于對時序數(shù)據(jù)的處理和預(yù)測,是一種典型的動態(tài)神經(jīng)網(wǎng)絡(luò)。其具有以下優(yōu)勢:①適用于時序數(shù)據(jù)的處理,擁有記憶功能,使得前一時刻的狀態(tài)能夠?qū)笠粫r刻的狀態(tài)造成影響,實現(xiàn)網(wǎng)絡(luò)狀態(tài)的反饋;②在LSTM中,引入“門”解決了神經(jīng)網(wǎng)絡(luò)中長序列依賴問題;③RNN本身特有的結(jié)構(gòu)使其預(yù)測精度更加準確。RNN的提出是為了描述一個序列當前的輸出與之前狀態(tài)信息的關(guān)系。RNN包括以下3個特性:①RNN隱含層神經(jīng)單元間的連接是循環(huán)的;②RNN能夠在每個時間節(jié)點產(chǎn)生一個輸出向量值,且該時間節(jié)點上的輸出值僅與下一時間節(jié)點的隱單元有循環(huán)連接;③RNN能夠處理序列數(shù)據(jù)并輸出單一的預(yù)測,即RNN會記憶之前的信息,并利用之前的信息作用于后面結(jié)點的輸出。RNN相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的隱藏層各結(jié)點間是有連接的,隱藏層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出[5]。
LSTM是一種特定形式的RNN,它的提出是為了解決RNN在處理長期依賴時產(chǎn)生的梯度爆炸或梯度消失的現(xiàn)象,其在其他領(lǐng)域也取得了驚人的成就。例如朱肖穎等[6]應(yīng)用LSTM模型進行新聞分類,在對原始數(shù)據(jù)展開格式變換、分詞加工后,進行特征提取并建立LSTM網(wǎng)絡(luò)模型,解決在海量新聞數(shù)據(jù)下RNN存在的梯度消失現(xiàn)象已不能提高分類效率的問題,表現(xiàn)出LSTM模型的高準確度和良好的擴展性;王森等[7]通過時間序列模型LSTM對故障的燃料電池進行分類,試驗結(jié)果表明分類準確率高達到95%以上;權(quán)波等[8]基于LSTM的船舶航跡預(yù)測模型,以廣州港內(nèi)的船舶AIS數(shù)據(jù)作為LSTM模型的輸入矢量進行訓(xùn)練,并對未來船舶航行軌跡進行預(yù)測,突顯出LSTM模型預(yù)測法具有高精確度;陳超強等[9]提出了自動編碼器和LSTM相結(jié)合的步態(tài)預(yù)測模型,該模型可以根據(jù)前一時刻的步態(tài)序列預(yù)測出下一時刻的步態(tài)信息,解決了下肢外骨骼機器人跟隨控制問題。結(jié)果表明,該模型平均預(yù)測準確率能夠達到92.9%以上。可見LSTM在諸多領(lǐng)域應(yīng)用中具有一定的優(yōu)勢,但在滑坡預(yù)測領(lǐng)域涉及較少,因此其具有較好的研究前景。
LSTM與RNN同屬于動態(tài)神經(jīng)網(wǎng)絡(luò),2種算法均可用于時序數(shù)據(jù)的處理,并且在處理長序列數(shù)據(jù)預(yù)測問題方面具有明顯的優(yōu)勢,但在滑坡位移預(yù)測方面的應(yīng)用較少。因此,本文分別使用LSTM和RNN 2種算法,通過對監(jiān)測點數(shù)據(jù)采用“3δ”法及歸一化處理并建立動態(tài)模型,應(yīng)用于新灘滑坡工程中。最后,將2種預(yù)測模型得到的實驗結(jié)果與實測數(shù)據(jù)進行比對得出預(yù)測精度,并利用MAE與MAPE 2個指標做出評價。
1.1.1RNN算法描述
圖1為循環(huán)神經(jīng)網(wǎng)絡(luò)RNN結(jié)構(gòu)。該網(wǎng)絡(luò)分為3層:輸入層、隱藏層、輸出層[10]。其中x為輸入層的向量值,s為隱藏層的向量值[11](由當前輸入向量x與隱含層上一次的值st-1共同決定),o為輸出層的向量值。U為連接輸入層到隱含層的權(quán)重矩陣,W為隱藏層的權(quán)重矩陣(取決于隱藏層上一時刻的值),V是隱藏層到輸出層的權(quán)重矩陣[12]。
圖1 RNN網(wǎng)絡(luò)結(jié)構(gòu)
式(1)、(2)為循環(huán)神經(jīng)網(wǎng)絡(luò)計算方法:
st=f(UXt+Wst-1)
(1)
ot=g(Vst)
(2)
式(1)表示隱藏層的計算過程,其中f為激活函數(shù),U代表輸入向量值x的權(quán)重矩陣,W為上一時刻結(jié)果作為本次輸入時的權(quán)重矩陣。式(2)表示t時刻輸出層向量值ot的計算過程,輸出層的每個節(jié)點都和隱藏層的對應(yīng)節(jié)點相連。Vst為輸出層的權(quán)重矩陣,g為激活函數(shù)。RNN采用BPTT算法進行訓(xùn)練。
1.1.2LSTM算法描述
理論上,RNN能夠處理任意長的序列。然而在實際應(yīng)用中,RNN會出現(xiàn)梯度消失問題。為了克服傳統(tǒng)RNN的缺點,提出了一種特殊的RNN,稱為LSTM神經(jīng)網(wǎng)絡(luò)。與傳統(tǒng)RNN相比,LSTM中隱藏層的基本單元是存儲塊。存儲塊包含內(nèi)存單元和3個“門”(遺忘門、輸入門、輸出門)。通過這3個“門”調(diào)節(jié)信息流入和流出存儲單元。輸入門控制進入存儲單元的輸入向量。遺忘門控制上一時間步驟中的信息是被記住還是被遺忘。當遺忘門打開時,上一時刻的信息傳遞到下一時刻;當遺忘門關(guān)閉時,上一時刻的所有信息都被遺忘,不能傳遞到下一時刻。這意味著遺忘門可以過濾信息,保留有用的信息,丟棄無用的信息。輸出門控制輸出向量到其他塊或最終結(jié)果。圖2為RNN與LSTM結(jié)構(gòu)對比。
a)RNN
RNN與LSTM的關(guān)鍵區(qū)別在于隱向量的構(gòu)造。LSTM的主要結(jié)構(gòu)算法:
ft=σ(Wf·[ht-1,xt]+bf)
(3)
it=σ(Wi·[ht-1,xt]+bi)
(4)
(5)
(6)
ot=σ(Wo·[ht-1,xt]+bo)
(7)
ht=ot·tanh(ct)
(8)
LSTM訓(xùn)練算法步驟如下:①前向計算神經(jīng)元ft、it、ct、ot、ht的輸出值;②通過沿時間的反向傳播計算各個時刻誤差項,再將誤差項向上一層傳播;③按照相應(yīng)的誤差項,計算每個權(quán)重的梯度。
新灘滑坡位于湖北省秭歸縣西陵峽段,屬于堆積層滑坡?;麻L度約2 km,面積0.73 km2。巖層與上游河段傾角25~38°[14],西側(cè)是堆積層物質(zhì)的主要來源,緊鄰一二疊系砂巖和灰?guī)r組成的陡崖,深300~450 m[15];東側(cè)為低山丘,主要物質(zhì)由志留系頁巖組成,來自志留系?;孪蚰涎由熘两吀叱碳s65 m,平均坡度23°。滑前坡體中部有兩級橫向陡坎,一為走向NE30″,坡度50~60°的姜家坡前緣陡坎,將斜坡分為上段(姜家坡斜坡)和下段(新灘斜坡);另一陡坎在毛家院前緣,走向NE75″,將新灘斜坡分為毛家院臺面和陡坎下2段。圖3為滑坡變形監(jiān)測點具體布設(shè)情況。
注:A、B、C、D—SHZ1-01、SHZ1-02、SHZ1-03、SHZ1-04;S2—志留系砂頁巖;頁巖;Q—第四系沖積層、崩積層、坡積層;P2—二疊系上統(tǒng)灰?guī)r;C2—黃龍灰?guī)r;D2+3—泥盆系石英砂巖;馬鞍山煤組巖層;棲履組與第四組灰?guī)r;A-A’—觀測及其編號;1—地層界限;2—第四系與基巖界限;3—巖層產(chǎn)狀;4——斷層;5—泉水出漏點;6—滑坡變形邊界;7—預(yù)留觀測及其編號;8—陡崖;9—GPS監(jiān)測點。
根據(jù)新灘滑坡監(jiān)測資料和調(diào)查記錄,1977、1981年北側(cè)的廣家崖頻繁發(fā)生較大規(guī)模崩塌。同年,專家和相關(guān)技術(shù)人員根據(jù)實地坡體情況布設(shè)監(jiān)測點見圖3。為進一步驗證模型的可靠性,選取2011年4月到2012年6月4個監(jiān)測點的位移數(shù)據(jù)作為本次訓(xùn)練樣本。在進行訓(xùn)練之前需要對采集來的數(shù)據(jù)做“3δ”法數(shù)據(jù)異常剔除處理[16]。假設(shè)對某監(jiān)測點進行了n次監(jiān)測,所得的第i次監(jiān)測值為Mι(i=1,2,…,n),累積連續(xù)3次監(jiān)測值為Ti-1,Ti,Ti+1(i=2,3,…,n-1),則第i次監(jiān)測的跳動特征定義為[17]:
hi=|2×Mi-(Ti-1+Ti+1)|
(9)
跳動特征值均值為:
(10)
跳動特征值均方差為:
(11)
相對差值為:
(12)
若Qi>3,則將該數(shù)據(jù)作為異常值剔除。
圖4為處理后各監(jiān)測點數(shù)據(jù)對比結(jié)果,縱坐標為水平位移,橫坐標為第N次采集數(shù)據(jù),以前15次采集數(shù)據(jù)為例進行數(shù)據(jù)剔除處理,可以看出處理前數(shù)據(jù)波動明顯,處理后曲線較為平緩。
圖4 “3δ”方法處理監(jiān)測點數(shù)據(jù)前后對比
在利用“3δ”處理傳感器采集來的數(shù)據(jù)后,還需對數(shù)據(jù)做歸一化處理[18],主要目的:①加快收斂速度;②避免大數(shù)據(jù)淹沒小數(shù)據(jù),提升預(yù)測精度。采用任意區(qū)間法,其步驟如下。
步驟一找到樣本數(shù)據(jù)Y的最小值Min及最大值Max。
步驟二計算系數(shù)見式(13):
(13)
步驟三得到[a,b]區(qū)間的歸一化數(shù)據(jù),見式(14):
norY=a+k×(Y-Min)
(14)
在函數(shù)運算過程中,輸入的取值直接影響著模型的性能,輸入選值不當會導(dǎo)致輸出數(shù)值落在曲線飽和區(qū),為防止Sigmoid開函數(shù)兩頭飽和區(qū)對實驗造成誤差影響,本文選用函數(shù)中段的函數(shù)關(guān)系進行運算[19]。
圖5為LSTM動態(tài)建模算法流程。首先進行初始化,包括學(xué)習(xí)速率、期望精度Ti、各層初始權(quán)重Wij等;然后輸入給定向量值,求出目標輸出值并與給定值進行偏差值Ej計算,判斷其是否滿足誤差精度要求,否則對所有各層之間權(quán)重進行更新,直到偏差滿足預(yù)期給定期望值時,迭代停止,訓(xùn)練結(jié)束。
圖5 LSTM動態(tài)建模流程
本文采用“流轉(zhuǎn)訓(xùn)練”方式對數(shù)據(jù)進行訓(xùn)練,如根據(jù)前3組4個監(jiān)測點的采集數(shù)據(jù),預(yù)測第4組4個監(jiān)測點的數(shù)據(jù),依此類推,表1為網(wǎng)絡(luò)訓(xùn)練過程[20]。
滑坡體形變是一個復(fù)雜的非線性演化過程,合理選擇參數(shù)配置可以有效提升模型的預(yù)測精度,選擇輸入層個數(shù)并不是越多越合理,輸入數(shù)量太多有可能會導(dǎo)致訓(xùn)練效率低,影響網(wǎng)絡(luò)訓(xùn)練精度等問題。隱含層的節(jié)點數(shù)的選值需要根據(jù)轉(zhuǎn)換函數(shù)的型式、樣本數(shù)據(jù)特性以及要解決問題的復(fù)雜程度進行匹配。此外,為避免網(wǎng)絡(luò)模型沒有泛化能力,即網(wǎng)絡(luò)模型的系統(tǒng)誤差與訓(xùn)練樣本的特性無關(guān)而趨于0。隱含層節(jié)點個數(shù)還需滿足小于N-1(其中N為訓(xùn)練樣本數(shù)),因此合理的設(shè)置參數(shù)配置顯得尤為重要。本文采用網(wǎng)格搜索法進行參數(shù)尋優(yōu)[21],最終設(shè)定輸入節(jié)點數(shù)為12,隱藏層節(jié)點為18。本文總共選取200個[22]數(shù)據(jù),其中每個監(jiān)測點采集50次。
以新灘滑坡2011年4月到2012年6月,4個監(jiān)測點SHZ1-01、SHZ1-02、SHZ1-03、SHZ1-04所采集的數(shù)據(jù)作為本次實驗的樣本來源。本文選取SHZ1-03監(jiān)測點對其進行分析,其中70%作為輸入數(shù)據(jù)用于預(yù)測模型的建立,30%用于檢驗。本次訓(xùn)練以第42期監(jiān)測點的數(shù)據(jù)為預(yù)測目標,前41次采用“流轉(zhuǎn)訓(xùn)練”的方式,訓(xùn)練中所有數(shù)據(jù)為量化處理后的值。圖6為RNN和LSTM訓(xùn)練實測-預(yù)測,圖7為RNN和LSTM訓(xùn)練誤差-迭代,表2為訓(xùn)練后輸出的預(yù)測結(jié)果和訓(xùn)練所用時間值。圖6所示,橫坐標為組數(shù),縱坐標為位移量化值(歸一化值)。比較圖6,可知LSTM預(yù)測曲線與實測曲線的擬合度更高。究其原因,RNN存在梯度消失現(xiàn)象,無法處理長序列數(shù)據(jù):即當進行某一輪訓(xùn)練時,某一時刻梯度已減小為0,并且從此刻以后所得到的梯度都近似為0,其對權(quán)重數(shù)組W最終的梯度貢獻為0(即W不再更新)。而LSTM由于算法結(jié)構(gòu)的特殊及復(fù)雜,可以解決梯度消失問題并且提高預(yù)測精度。
表2 各算法針對第42次數(shù)據(jù)進行驗證的結(jié)果比較
圖6 實測-預(yù)測結(jié)果
本次訓(xùn)練中預(yù)設(shè)期望精度為0.003,2種算法初始學(xué)習(xí)速率均為0.001,每經(jīng)過1 000步長,學(xué)習(xí)率衰減0.1倍。圖7所示,當?shù)綌?shù)為500時,RNN訓(xùn)練結(jié)果的誤差約為0.009 7,未達到目標要求。而LSTM訓(xùn)練結(jié)果的誤差約為0.001 9,此時已滿足預(yù)設(shè)期望精度;當RNN訓(xùn)練滿足預(yù)設(shè)期望精度時,此時迭代步數(shù)為3 000,而LSTM在迭代步數(shù)為3 000時的誤差約為0.000 03,顯然LSTM訓(xùn)練算法結(jié)果更優(yōu)。
a)RNN
LSTM由于引進了“門”以及其算法內(nèi)部結(jié)構(gòu)、參數(shù)的復(fù)雜,使其在處理長時序數(shù)據(jù)的能力大大提高,但其在預(yù)測計算時間上比RNN要慢。表2中RNN訓(xùn)練所用時間為2.484 s,LSTM訓(xùn)練所用時間為119.476 s,得出RNN的訓(xùn)練時間比LSTM約快50倍,驗證了上述觀點。圖6曲線可得LSTM算法預(yù)測較RNN預(yù)測擬合程度更高。圖7(RNN誤差-迭代)實際訓(xùn)練誤差接近0.003與(LSTM誤差-迭代)實際訓(xùn)練誤差接近0.000 03相比,LSTM訓(xùn)練的誤差精度比RNN訓(xùn)練的誤差精度更高。基于以上數(shù)據(jù)結(jié)果,更加印證了RNN循環(huán)神經(jīng)網(wǎng)絡(luò)在處理距離較近的信息方面的優(yōu)勢,也表明了其在處理距離較遠信息時能力不足。而在本次滑坡位移預(yù)測實例中,2種算法的計算時間可忽略,因其位移的演化是一個逐漸累積的過程,需要的時間遠大于計算機預(yù)測所需的時間。
通過對比2種算法位移預(yù)測值,實驗結(jié)果表明2種算法整體的預(yù)測結(jié)果基本一致。為驗證模型的科學(xué)性,本文選用平均絕對誤差(MAE)、平均相對誤差(MAPE)2個評價指標進一步評估模型預(yù)測精度[23],見式(15)、(16):
(15)
(16)
式中c——實際測量值;ci——預(yù)測值;n——組數(shù)。
以No.3監(jiān)測點為例,表3為該監(jiān)測點應(yīng)用2種算法后的MAE與MAPE指標評價結(jié)果對比。
綜合表3可得,LSTM算法訓(xùn)練的效果總體優(yōu)于RNN。2種算法中,LSTM訓(xùn)練后的結(jié)果更靠近實際值;在數(shù)值上,MAE與MAPE 2項評價指標,LSTM明顯小于RNN。
圖8所示,比較2種算法的預(yù)測曲線與實測曲線,LSTM的預(yù)測曲線基本與實測曲線吻合,可見LSTM訓(xùn)練模型的效果更好。以表3中第5組為例分析(圖9):RNN的預(yù)測值與LSTM的預(yù)測值在一定范圍內(nèi)都滿足要求,而在計算誤差之后,RNN模型訓(xùn)練的MAE為0.024 1,LSTM模型訓(xùn)練的MAE為0.006 0,顯然LSTM模型訓(xùn)練后的MAE更小,表明LSTM收斂程度要高于RNN。表4為第5組、第6組數(shù)據(jù)分別在2種算法下的MAE與MAPE偏差。
表3 No.3監(jiān)測點2種訓(xùn)練MAE、MAPE值
圖8 RNN、LSTM實測
a)MAE
表4 2種算法MAE與MAPE偏差
表4中LSTM的MAE與MAPE偏差明顯大于RNN,表明第6組預(yù)測值存在異常,輸出不穩(wěn)定。究其原因在RNN與LSTM訓(xùn)練過程中,每一個循環(huán)的輸出都依賴于上一層的ht-1與ct-12個因素。在計算過程中可能會出現(xiàn)當前ht或ct的前向計算被阻止或處于閑置狀態(tài),直到上一層的ht-1、ct-1的整個計算完成,才會進入下一循環(huán)。
針對新灘滑坡實時變形進行的動態(tài)預(yù)測,本文選用2種適用于建立動態(tài)模型的算法RNN與LSTM,并應(yīng)用于新灘滑坡實際工程中,結(jié)果表明LSTM比RNN在滑坡位移預(yù)測中的總體效果更優(yōu)。
a)LSTM算法預(yù)報精度更高。由圖7可知,當RNN訓(xùn)練步數(shù)達到3 000步,誤差函數(shù)滿足期望精度時,LSTM和RNN的訓(xùn)練誤差分別為0.000 03和0.003,表明LSTM比RNN的訓(xùn)練結(jié)果更精確。表2中LSTM和RNN在本次訓(xùn)練中計算所用時間分別為119.476、2.484 s表明:LSTM算法結(jié)構(gòu)比RNN更為復(fù)雜,其動態(tài)模型的參數(shù)與訓(xùn)練樣本數(shù)目也相對較多,訓(xùn)練結(jié)果更加具有可靠性。
b)滑坡預(yù)測的結(jié)果可轉(zhuǎn)化為滑坡風(fēng)險預(yù)測,因此LSTM動態(tài)模型算法可應(yīng)用于預(yù)警預(yù)測中,防止災(zāi)害的發(fā)生,保障人民的生命和財產(chǎn)安全。