李曉東,徐文兵
(廣東省水利水電第三工程局有限公司,廣東 東莞 523000)
在所有的堤防安全問題中,滲流破壞是最主要、最常見的工程問題之一。堤防工程由于地下水滲漏使?jié)B流量變大,造成滲透比降過大等引起的滲流破壞事故居首位,占總體 37.1%[1]。因此,研究防滲安全措施對堤防工程的作用效果,減少堤防破壞發(fā)生的可能性,具有十分重要的實際意義[2]。
堤防工程滲流問題的相關(guān)研究主要包括:滲流預(yù)測和滲流數(shù)值模擬。滲流數(shù)值模擬研究的技術(shù)已經(jīng)成熟,但是如果使用的是大型軟件,在耗費大量時間的同時還會面臨較大的成本負(fù)擔(dān)。若基于線性回歸模型的方式展開分析,在面對非線性問題時將存在較為明顯的局限性,因其無法充分考慮眾多的的影響因子,進(jìn)而帶來了擬合精度不良的問題。對此,有學(xué)者引入了神經(jīng)網(wǎng)絡(luò)模型,由此展開對堤防滲流的預(yù)測分析工作。
近些年來,相關(guān)研究領(lǐng)域逐漸提出了一種采用多種智能算法結(jié)合的方法,并且已逐步應(yīng)用到大壩的滲流監(jiān)控資料的分析中。相關(guān)智能算法有很多種,然而每一種方法都有不可避免的局限性,如神經(jīng)網(wǎng)絡(luò)的方法學(xué)習(xí)收斂速度慢、易陷入局部極端值、難以確定隱藏層的節(jié)點數(shù)目等諸多問題[3]。盡管模糊數(shù)學(xué)方法吸收了人類大腦的諸多優(yōu)點,仍然缺乏理論化的判別準(zhǔn)則,因此,計算過程存在隨機性,導(dǎo)致算法的計算效率偏低。此外,與算法相關(guān)的隸屬函數(shù)的確定仍然不夠成熟,需要依靠經(jīng)驗進(jìn)行初步擬定[4]。支持向量機算法難以實施于規(guī)模很大的訓(xùn)練數(shù)據(jù)樣本中,無法實現(xiàn)大規(guī)模多數(shù)據(jù)量的處理。此外,在數(shù)據(jù)挖掘?qū)嶋H應(yīng)用的過程中,一般需要解決多類的分類問題,而經(jīng)典的支持向量機算法只是支持二類分類的算法,難以滿足需求[5]。蟻群算法采用地挖式搜索方法,很容易收斂局部的最優(yōu)解,但是算法的總體收斂速度較慢,會影響整體的預(yù)測效率。而粒子群(PSO)算法在處理高維復(fù)雜問題的時候,經(jīng)常發(fā)生提前收斂的情況[6]。
由于上述的理論和方法都有各自不足的地方,近年來,大部分的學(xué)者采用結(jié)合上述兩種或者多種算法的方式進(jìn)行研究。田斌等人[7]構(gòu)建了基于交替學(xué)習(xí)迭代算法的神經(jīng)網(wǎng)絡(luò)模型,相較于傳統(tǒng)模型改善了預(yù)測精度,為滲流量預(yù)測研究方法的探索提供了幫助。此外,閆濱等人[8-9]構(gòu)建了預(yù)測堤壩滲流的小波神經(jīng)網(wǎng)絡(luò)和遺傳神經(jīng)網(wǎng)絡(luò)的實時預(yù)報模型,該模型相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)滲流預(yù)測模型精度更高。雷霆等人[10]基于蟻群算法對神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,主要利用蟻群算法改善神經(jīng)網(wǎng)絡(luò)權(quán)重的方式提高預(yù)測精度,構(gòu)建了用于大量滲流數(shù)據(jù)預(yù)測的神經(jīng)網(wǎng)絡(luò)模型。近來,吳云星等[11-12]使用LM正則算法優(yōu)化了神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差,以此提高網(wǎng)絡(luò)的預(yù)測精度,從而改善土石壩滲流壓力的預(yù)測效果。此外,建立了基于遺傳算法的GA-LMBP神經(jīng)網(wǎng)絡(luò)模型,基于優(yōu)化算法進(jìn)一步提升了神經(jīng)網(wǎng)絡(luò)的預(yù)測精度,以此針對大壩滲流壓力進(jìn)行預(yù)報分析。Wang等[13]為了預(yù)測和評價大壩滲流行為的長期發(fā)展趨勢和短期波動,建立了兩種監(jiān)測模型,一種是基流效應(yīng),另一種是大壩滲流要素的日變化。Zhou等[14]提出了一種新的大壩地基瞬態(tài)滲流反演方法,利用水頭、流量和時間序列測量值建立了目標(biāo)函數(shù),并用權(quán)系數(shù)來保證相對誤差項的一致性。該方法利用正交設(shè)計、有限元法正演、反傳播神經(jīng)網(wǎng)絡(luò)和遺傳算法,降低了計算成本,提高了反演結(jié)果的唯一性和可靠性。此外,還有研究學(xué)者采用智能算法建立了各種不同的滲流預(yù)測模型[15-17]。
綜合上述研究現(xiàn)狀可知,堤壩的滲流預(yù)測正由單一的擬合算法逐漸的向多種智能算法結(jié)合的方向發(fā)展。在新的智能算法下,滲流的預(yù)測效率以及精度在進(jìn)一步提升[17]。因此,同時綜合兩種或者兩種以上的人工智能算法進(jìn)行滲流預(yù)測研究將是未來一個重要的研究方向及趨勢。本文通過建立BP、GA-BP、PSO-BP預(yù)測模型進(jìn)行研究,將2018年1月1日—10月31日的292組數(shù)據(jù)用于預(yù)測訓(xùn)練,具體數(shù)據(jù)包括降雨、水位、測壓管水頭、流量數(shù)據(jù)。最后分析迭代次數(shù)和訓(xùn)練組數(shù)對模型的影響,得到最合適的智能算法及其參數(shù)設(shè)置,從而搭建安全預(yù)測系統(tǒng),得到最準(zhǔn)確的滲流預(yù)測模型。
BP神經(jīng)網(wǎng)絡(luò)是一種具有多層結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)模型,主要由輸入層、隱藏層以及輸出層組成[18]。相關(guān)算法主要包括兩個過程,信號前向傳遞和誤差反向傳遞。前向傳遞過程是指數(shù)據(jù)信號由輸入層輸入,經(jīng)由隱藏層處理,再被輸出層輸出的過程。但是,假如輸出層沒有得到想要的輸出結(jié)果(即預(yù)測誤差不滿足精度要求),網(wǎng)絡(luò)就會進(jìn)入到反向傳播的狀態(tài),該過程主要通過不斷地調(diào)整權(quán)重和偏差使網(wǎng)絡(luò)的計算結(jié)果能夠不斷地去靠近期望的結(jié)果。
圖1是BP神經(jīng)網(wǎng)絡(luò)的拓?fù)錁?gòu)架流程示意,Xj表示第j個節(jié)點輸入值,j=1,2…,m。Yk表示預(yù)測輸出的結(jié)果。觀察圖1中的結(jié)構(gòu),將神經(jīng)網(wǎng)絡(luò)看成一個多元非線性函數(shù),如果該神經(jīng)網(wǎng)絡(luò)有j個輸入、k個輸出,便可認(rèn)為從j個自變量映射到k個因變量的多變量非線性函數(shù)關(guān)系。
圖1 BP神經(jīng)網(wǎng)絡(luò)的拓?fù)錁?gòu)架流程示意
遺傳算法(genetic algorithm,GA)是一種模擬自然界內(nèi)生物遺傳機制的算法,主要是通過模擬達(dá)爾文物種進(jìn)化理論的自然選擇說以及物種遺傳機制而產(chǎn)生的尋優(yōu)算法模型[19]。遵循適者生存的規(guī)律,其主要功能是在優(yōu)化過程中保留有用的結(jié)果,去除無用的結(jié)果,找到種群的最優(yōu)解。
粒子群算法,也被稱為粒子群優(yōu)化算法(particle swarm optimization, PSO),是最近幾十年發(fā)展起來的進(jìn)化算法。算法具有容易實現(xiàn)、精度高、收斂快的優(yōu)勢,從而受到廣泛關(guān)注。
在PSO算法中,所有優(yōu)化問題的潛在解都可以被看作一種搜索空間的小鳥,被稱為粒子。每一個粒子都有通過優(yōu)化函數(shù)確定的適應(yīng)度值,此外,每一個粒子也都有一個額外的速度,決定了粒子們“飛”的方向以及距離。
粒子位置更新方式如圖2所示,x表示粒子起始位置;v表示粒子“飛行”的速度;p表示搜索到的粒子最優(yōu)位置。
圖2 每代粒子位置的更新方式示意
可以假定在D維的目標(biāo)搜索空間內(nèi)部,里面有N個粒子組成的群體,第i個粒子可以被表示為1個D維的向量,如下所示:
Xi=(xi1,xi2,…,xiD),i=1,2,…,N
(1)
第i個粒子“飛行”的速度也可以表示為D維向量,表達(dá)形式如下:
Vi=(xi1,xi2,…,xiD),i=1,2,…,N
(2)
第i個粒子尋找到的最優(yōu)解作為單體的極值,表達(dá)形式如下:
pi=(pi1,pi2,…,piD),i=1,2,…,N
(3)
所有粒子一起找到的整體最優(yōu)解被稱為全局的極值,表達(dá)形式如下:
gbest=(pg1,pg2,…,pgD)
(4)
尋找這兩個極端值的過程中,粒子主要通過下述公式更新自己的速度以及位置:
vid=ω×vid+c1r1(pid-xid)+c2r2(pgd-xgd)
(5)
xid=xid+vid
(6)
主要通過遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差產(chǎn)生GA-BP神經(jīng)網(wǎng)絡(luò)算法,算法流程如圖3所示[20]。
由圖3可知,GA-BP神經(jīng)網(wǎng)絡(luò)算法的結(jié)構(gòu)主要分為3個部分,即BP神經(jīng)網(wǎng)絡(luò)初始參數(shù)以及結(jié)構(gòu)的確定部分、遺傳算法部分、基于最優(yōu)權(quán)重(偏差)的BP神經(jīng)網(wǎng)絡(luò)預(yù)測部分。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)確定單元主要是根據(jù)自適應(yīng)函數(shù)輸入輸出參數(shù)的個數(shù)確定算法的個體長度[21]。遺傳算法的優(yōu)化部分主要采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)重和偏差,種群內(nèi)的每個單體都有一個權(quán)重和偏差,通過遺傳算法找到單體對應(yīng)最佳的自適應(yīng)度值的選擇、交叉和變異操作。最后,通過優(yōu)化的權(quán)重和偏差進(jìn)行擬合預(yù)測。
圖3 GA-BP神經(jīng)網(wǎng)絡(luò)算法流程示意
PSO-BP算法的流程如圖4所示。PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的方式與GA算法相同,基本都是對神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差進(jìn)行整體尋優(yōu)。但是,兩種算法的基本原理并不一致,一種是基于鳥群搜索,另一種是基于遺傳機制,因此,獲得最佳權(quán)重偏差的時間、效率以及質(zhì)量也不盡相同。
圖4 PSO-BP算法流程示意
北江是廣東省珠江流域的第二大水系,在廣東韶關(guān)市與支流武水匯合稱為北江。北江起自韶關(guān),經(jīng)清遠(yuǎn)、佛山三水區(qū)思賢滘與西江相連,并流入珠江三角洲河網(wǎng)區(qū),主流由虎門入海。北江思賢滘以上流域面積為46 710 km2,干流長為468 km,流域以山地和丘陵為主,地勢北高南低,流出飛來峽后逐漸變平。北江大堤全長為64.346 km,在達(dá)標(biāo)加固前北江大堤歷史上曾經(jīng)多次出現(xiàn)險情,主要表現(xiàn)為迎流頂沖深槽迫岸和強透水地基滲漏兩大類型,出險部位主要集中在石角灰窯段(5+450~5+750)、石角靈洲段(8+000~11+300)、石角潭亭滾段(12+200~13+700)、蘆苞長潭段(28+200~30+250)、蘆苞劉寨段(30~950~33+200)、蘆苞墟段(33+400~34+100)、黃塘沙墩段(34+450~40+100)、黃塘灰窯段(41+900~44+300)、西南鎮(zhèn)段(51+893~53+550)等9段,共19.807km。8+000~11+300堤段位于石角靈洲,由于地基透水性較強,以往每遇較大洪水,堤后管涌、冒砂、牛皮脹等險情普遍出現(xiàn),極為嚴(yán)重。達(dá)標(biāo)加固后2005年6月24日17:30,外江的水位為12.35 m,樁號11+212距離內(nèi)坡腳約130 m的水田中出現(xiàn)冒水孔,直徑約0.5 m,帶出大量粉細(xì)砂。
本文主要研究北江大堤石角堤段8+230段的滲流情況,該段堤基20 m下有強透水層存在,歷史上也有滲流破壞事件發(fā)生。1997年進(jìn)行過防滲加固,并且在該段設(shè)置了5個測壓管。該段的斷面地質(zhì)圖以及測壓管布置如圖5所示。
圖5 北江大堤8+230段斷面地質(zhì)及測壓管布置示意(單位:mm)
本文構(gòu)建北江大堤的滲流預(yù)測模型,主要以降雨量、外江水位等作為輸入,測壓管水頭值作為輸出。將從北江大堤管理系統(tǒng)獲取的2018年1月1日—10月31日的292組數(shù)據(jù)用于預(yù)測訓(xùn)練,具體數(shù)據(jù)包括降雨、水位、測壓管水頭、流量數(shù)據(jù)。
1) 降雨數(shù)據(jù)
降雨數(shù)據(jù)共包括2018年1月1日—10月31日的所有數(shù)據(jù),由北江大堤石角段降雨監(jiān)測站提供,其中1—4月降雨情況如圖6 ~圖7所示。
2) 水位流量數(shù)據(jù)
水位流量相關(guān)數(shù)據(jù)由北江大堤管理系統(tǒng)導(dǎo)出,包括2018年1—10月所有的水位流量數(shù)據(jù)(如圖8所示)。
3) 測壓管水頭
測壓管水頭數(shù)據(jù)由北江大堤管理系統(tǒng)導(dǎo)出,包括石角段5個測壓管2018年1—10月的數(shù)據(jù)(1—2月數(shù)據(jù)見圖9)。
圖6 石角段2018年1—2月降雨示意
圖7 石角段2018年3—4月降雨示意
圖8 石角段2018年1—10月水位流量示意
圖9 石角段2018年1—2月測壓管數(shù)據(jù)示意
上述數(shù)據(jù)均由北江大堤管理系統(tǒng)直接導(dǎo)出,用于滲流預(yù)測模型的建立。論文基于上述數(shù)據(jù),以時效因子、水位因子、降雨因子為輸入,以測壓管水頭為輸出,建立3層BP神經(jīng)網(wǎng)絡(luò),并通過GA、PSO優(yōu)化算法針對BP神經(jīng)網(wǎng)絡(luò)算法的權(quán)重和偏差進(jìn)行優(yōu)化,并對比3種方法,尋找最佳的預(yù)測模型。
本文基于3種不同的算法(BP、GA-BP、PSO-BP)建立滲流預(yù)測模型,在擬合預(yù)測部分采用3層BP神經(jīng)網(wǎng)絡(luò)。輸入層的數(shù)據(jù)主要包括降雨數(shù)據(jù)、水位數(shù)據(jù)與時效數(shù)據(jù),水位數(shù)據(jù)的選取需要依據(jù)滲流系數(shù)大小以及滲流路徑的長度, 綜合考慮觀測當(dāng)日和前幾天的水位,降雨數(shù)據(jù)也將進(jìn)行相同處理,時效因子考慮選擇1次項或者自然對數(shù)項等簡單函數(shù)[21]。因此,共選擇10組數(shù)據(jù)作為輸入因子:水位數(shù)據(jù)選擇5組,降雨數(shù)據(jù)選擇4組,時效數(shù)據(jù)選擇1組;將測壓管水頭數(shù)據(jù)作為輸出。
3種模型的參數(shù)具體設(shè)置如下:
1) BP神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)的隱含層和輸入層神經(jīng)傳遞函數(shù)分別使用S型正切函數(shù)tansig以及線性函數(shù)purelin。學(xué)習(xí)速率為0.1,收斂目標(biāo)為0.000 1,迭代次數(shù)為10 000。為進(jìn)一步避開S型函數(shù)的飽和區(qū),提高算法的收斂速度和靈敏性,在網(wǎng)絡(luò)訓(xùn)練前使用MATLAB的數(shù)據(jù)歸一化命令進(jìn)行處理。
2) GA-BP神經(jīng)網(wǎng)絡(luò)
3) PSO-BP神經(jīng)網(wǎng)絡(luò)
在數(shù)據(jù)的擬合預(yù)測部分依然選擇BP神經(jīng)網(wǎng)絡(luò)算法,其參數(shù)設(shè)置與BP模型相同。在粒子群算法中,本次訓(xùn)練的種群進(jìn)化次數(shù)設(shè)置為100,粒子規(guī)模設(shè)置為30。
為了進(jìn)一步量化各個模型之間的可靠性和準(zhǔn)確性,論文將采用3種方式對預(yù)測結(jié)果進(jìn)行評估。包括:均方根誤差(RMSE)、平均絕對百分誤差(MAPE)和擬合優(yōu)度(R2),三者作為衡量預(yù)測結(jié)果精度的評價準(zhǔn)則。相關(guān)計算公式如下:
(7)
(8)
(9)
式中:
di——實際值;
Di——預(yù)測值;
n——預(yù)測樣本的個數(shù)。
2.1 兩組血漿NT-proBNP水平比較 病例組患兒的NT-proBNP水平在治療3 d、治療7d 、治療14 d時均顯著低于組內(nèi)治療前(F=176.405,P<0.05),病例組患兒的NT-proBNP水平在治療前、治療3 d、治療7 d、治療14 d時均顯著高于對照組(F=286.557,P<0.05)。見表1。
由于前期對于數(shù)據(jù)進(jìn)行過多次嘗試計算,參數(shù)設(shè)置已經(jīng)基本達(dá)到最佳。因此,考慮通過增加訓(xùn)練集、優(yōu)化迭代步數(shù),進(jìn)一步提高滲流模型的精度。以第1號測壓管作為對象,優(yōu)化結(jié)果如圖10所示。
圖10 擬合優(yōu)度隨迭代步數(shù)變化示意
當(dāng)?shù)綌?shù)超過5 000后,擬合優(yōu)度提升并不是十分明顯,而且過高的迭代步數(shù)會降低計算效率,因此,模型的迭代步數(shù)設(shè)置為 5000。
數(shù)據(jù)訓(xùn)練集的增加明顯提高了模型的計算精度(見圖11),但是,由于北江大堤管理系統(tǒng)老舊故障,僅導(dǎo)出了292組有效數(shù)據(jù)用于預(yù)測模型,因此,使用272組數(shù)據(jù)用于訓(xùn)練,20組數(shù)據(jù)用于預(yù)測測試。
北江大堤8+230斷面總共有5個測壓管,本文將選擇包括降雨、水位、時間、測壓管水頭等4類,共292組數(shù)據(jù)完成模型的訓(xùn)練與測試。其中272組用于訓(xùn)練,20組用于測試誤差,選擇3種模型預(yù)測的最佳結(jié)果作為預(yù)測結(jié)果進(jìn)行分析。測試結(jié)果如圖12~16所示。
圖11 擬合優(yōu)度隨訓(xùn)練集變化示意
圖12 1號測壓管水頭預(yù)測輸出示意
圖13 2號測壓管的水頭預(yù)測輸出示意
圖14 3號測壓管水頭預(yù)測輸出示意
圖15 4號測壓管水頭預(yù)測輸出示意
圖16 5號測壓管水頭預(yù)測輸出示意
通過計算BP、GA-BP、PSO-BP神經(jīng)網(wǎng)絡(luò)分別對5組預(yù)測誤差結(jié)果的平均值,綜合比較5組測壓管預(yù)測數(shù)據(jù)的均方根誤差(RMSE)、平均絕對百分誤差(MAPE)和擬合優(yōu)度(R2)(見表1)。
比較可得:PSO-BP神經(jīng)網(wǎng)絡(luò)的各項評價指標(biāo)最好,最適合用于本組數(shù)據(jù)的預(yù)測。
表1 誤差分析
此外,針對3種算法的計算時間進(jìn)行了分析。BP神經(jīng)網(wǎng)絡(luò)的計算時間為2.66 s;GA-BP神經(jīng)網(wǎng)絡(luò)算法總耗時為237.66 s,其中GA算法部分計算耗時為237.34 s,BP神經(jīng)網(wǎng)絡(luò)算法部分耗時為0.32 s;PSO-BP神經(jīng)網(wǎng)絡(luò)算法總耗時為218.37 s,其中PSO算法部分耗時為218.04 s,BP神經(jīng)網(wǎng)絡(luò)部分為0.33 s。對比可發(fā)現(xiàn),經(jīng)過GA和PSO算法優(yōu)化過后,BP神經(jīng)網(wǎng)絡(luò)的計算時間更短;整體說,PSO-BP算法的計算時間更短。主要是由于GA算法的隨機性導(dǎo)致計算時間相對較長,而在BP神經(jīng)網(wǎng)絡(luò)部分兩者差別并不大。
因此,綜合對比3種模型的預(yù)測結(jié)果,發(fā)現(xiàn)以PSO-BP神經(jīng)網(wǎng)絡(luò)建立的預(yù)測模型作為北江大堤的滲流預(yù)測模型最優(yōu)。該模型的平均RMSE為0.31,平均MAPE為5%,平均擬合優(yōu)度R2可達(dá)到0.983,計算整體耗時為218.37 s。其精確度足夠滿足實際工程的預(yù)測需求。
本文主要介紹了BP神經(jīng)網(wǎng)絡(luò)以及主要優(yōu)化方法。重點介紹了遺傳算法和粒子群算法的概念和原理。同時,基于BP、GA-BP、PSO-BP神經(jīng)網(wǎng)絡(luò)算法,搭建了北江大堤的滲流模型,并對模型的預(yù)測結(jié)果進(jìn)行評價。計算結(jié)果表明:BP神經(jīng)網(wǎng)絡(luò)算法搭建的滲流模型能夠很好地預(yù)測測壓管的水頭值,擬合優(yōu)度達(dá)到了0.96;而通過遺傳算法和粒子群算法優(yōu)化過的神經(jīng)網(wǎng)絡(luò)算法,展現(xiàn)了更好的預(yù)測精度。兩種改進(jìn)算法平均擬合優(yōu)度達(dá)到0.98,其中PSO算法的精度更高,計算時間更短。