賈家銀,劉宇豪,李曉軍,王程平,李孟桓
(1.重慶中環(huán)建設(shè)有限公司, 重慶 渝北 401120;2.重慶交通大學(xué) 3S應(yīng)用技術(shù)研究所, 重慶 南岸 400074)
雖然BP神經(jīng)網(wǎng)絡(luò)存在不少優(yōu)點(diǎn),但其也伴隨著學(xué)習(xí)時(shí)間較長(zhǎng)、易陷入局部最優(yōu)解和收斂速度較慢等不足。諸多學(xué)者采用粒子群優(yōu)化算法(PSO)對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,所形成的網(wǎng)絡(luò)模型性能良好。標(biāo)準(zhǔn)粒子群算法(PSO)可以減少BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)所需要的學(xué)習(xí)時(shí)間,提高計(jì)算精度[1-3]。但是,標(biāo)準(zhǔn)粒子群算法的收斂速度較緩慢,且存在局部的優(yōu)化和早熟收斂問(wèn)題,導(dǎo)致權(quán)重的選擇不準(zhǔn)確。
本文對(duì)PSO算法進(jìn)行了相應(yīng)的改進(jìn),并使用改進(jìn)后的PSO算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的整體預(yù)測(cè)性能進(jìn)行了優(yōu)化。將學(xué)習(xí)因子和慣性權(quán)值的變化策略實(shí)行了動(dòng)態(tài)調(diào)整,在搜索過(guò)程中引入了一種自適應(yīng)變異算法,以防止粒子陷入局部最優(yōu)解,保證了早期粒子的多樣性和快速收斂到全局最優(yōu)解。
定義n1、n2和n3分別是組成神經(jīng)網(wǎng)絡(luò)的輸入層隱含層和輸出層的神經(jīng)元個(gè)數(shù)。在學(xué)習(xí)過(guò)程中,我們使用Sigmoid和Purelin函數(shù)作為神經(jīng)網(wǎng)絡(luò)隱含層的激活函數(shù)和輸出層的傳輸函數(shù)。接著用經(jīng)驗(yàn)公式算出隱含層神經(jīng)元個(gè)數(shù),根據(jù)公式(9)算得最小誤差。
(1)
(2)
式中:輸入層與隱含層之間的連接權(quán)值定義為wij;隱含層與輸出層之間的連接權(quán)值定義為vjk;f0為隱含層的Sigmoid激勵(lì)函數(shù);f1為輸出層的線性激勵(lì)函數(shù);ηk為輸出層的閾值0.6;θj為隱含層的閾值。
將每個(gè)網(wǎng)絡(luò)的均方根誤差(RMSE)作為計(jì)算適應(yīng)度值的近似適應(yīng)度函數(shù),即公式(3),根據(jù)適應(yīng)度函數(shù)f(x)=E(x)計(jì)算出最小誤差值Emin作為粒子篩選閾值。
(3)
圖1為改進(jìn)PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的過(guò)程。主要步驟描述如下:
(1) 步驟1:根據(jù)訓(xùn)練樣本數(shù)據(jù)確定BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
(2) 步驟2:對(duì)所有的粒子進(jìn)行初始化操作,重置粒子的速度、位置、個(gè)體最優(yōu)值Pbest與全局最優(yōu)值Gbest。
(3) 步驟3:根據(jù)公式(1)、公式(2)、公式(3)、公式(6)、公式(7)計(jì)算出每個(gè)粒子的速度和位置。
(4) 步驟4:選擇合適的適應(yīng)度評(píng)價(jià)函數(shù)來(lái)評(píng)估每個(gè)粒子的適應(yīng)度值。
(5) 步驟5:對(duì)得到的新的適應(yīng)度值與歷史適應(yīng)度值作比較,如果這個(gè)值優(yōu)于歷史個(gè)體最優(yōu)解,那么個(gè)體最優(yōu)解Pbest將用當(dāng)前值更新。如果個(gè)體優(yōu)于全局最優(yōu)解,采用同樣的方法替代全局最優(yōu)解Gbest。
(6) 步驟6:根據(jù)公式(8)對(duì)粒子進(jìn)行突變操作。
(7) 步驟7:持續(xù)更新不同分量下粒子的vi,若訓(xùn)練誤差小于Emin或迭代次數(shù)達(dá)到Tmax,則進(jìn)入下一步。反之,則返回步驟3。
(8) 步驟8:利用改進(jìn)的粒子群算法,將獲得的最優(yōu)權(quán)重和閾值分配給神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和學(xué)習(xí)。
為進(jìn)一步驗(yàn)證所建立的模型,以重慶市海天堡淺埋隧道為研究對(duì)象,采用該方法進(jìn)行了圍巖變形預(yù)測(cè)研究。海天堡隧道位于中國(guó)重慶市北碚區(qū),隧道全線長(zhǎng)377 m,雙向8車(chē)道,施工方法為機(jī)械開(kāi)挖法、鉆爆開(kāi)挖法。隧道右線出口段發(fā)育一山丘,地勢(shì)相對(duì)較陡,坡度約15°~28°,陡坎處地形坡度40°~80°,局部近90°。兩端地勢(shì)較低且較為平緩,多被開(kāi)墾為耕地,形成階梯狀,地形坡角多小于10°,僅在階梯邊緣呈陡立狀。
圖1 改進(jìn)PSO-BP算法流程圖
地形標(biāo)高256.03 m~330.35 m,相對(duì)高差約74.32 m。上覆土層厚度小,下覆基巖為粉砂質(zhì)泥巖、砂巖,隧道走向與巖層走向大角度斜交,巖體單軸飽和抗壓強(qiáng)度為3.30 MPa~16.05 MPa。地下水類(lèi)型為基巖裂隙水,地下水出水狀態(tài)為點(diǎn)滴狀出水為主,隧道埋深2.6 m~22.1 m,為淺埋隧道,成洞條件較差,拱部易坍塌,巖體質(zhì)量指標(biāo)BQ為240,隧道圍巖級(jí)別為Ⅴ級(jí)。
本文以2019年10月28日至2019年11月27日海天堡隧道拱頂沉降值與周邊收斂30 d數(shù)據(jù)作為訓(xùn)練和驗(yàn)證樣本;以YK4+110斷面30 d拱頂沉降和周邊收斂監(jiān)測(cè)數(shù)據(jù)為測(cè)試樣本進(jìn)行預(yù)測(cè)。由于隧道施工情況影響,測(cè)量控制點(diǎn)被遮擋,對(duì)數(shù)據(jù)進(jìn)行了預(yù)處理后得到時(shí)間間隔步長(zhǎng)為24 h的等距時(shí)間序列數(shù)據(jù)集。圖2為海天堡隧道YK4+110斷面拱頂沉降和周邊收斂曲線。
圖2 YK4+110斷面拱頂沉降與周邊收斂觀測(cè)值
2.2.1 基于BP神經(jīng)網(wǎng)絡(luò)的圍巖變形預(yù)測(cè)
采用MATLAB2018b平臺(tái)進(jìn)行海天堡隧道圍巖變形值預(yù)測(cè)的仿真實(shí)驗(yàn),使用了Python編程和MySgl數(shù)據(jù)庫(kù)。在搭建神經(jīng)網(wǎng)絡(luò)模型的過(guò)程中,參數(shù)的設(shè)置至關(guān)重要,其中隱含層的節(jié)點(diǎn)數(shù)和輸入單元中的神經(jīng)元是最重要的變量,輸入單元中的神經(jīng)元數(shù)量與預(yù)測(cè)結(jié)果直接相關(guān)。
采用主成分分析法對(duì)隧道監(jiān)測(cè)數(shù)據(jù)做預(yù)處理,將隧道斷面寬度B、圍巖錨桿軸力P、隧道埋深H、圍巖內(nèi)部位移量U和圍巖彈性模量E共5個(gè)影響因子[4]作為神經(jīng)網(wǎng)絡(luò)的輸入變量。使用Mapminmax函數(shù)將樣本輸入數(shù)據(jù)歸一化為[-1,1],采用8∶1∶1比例構(gòu)成訓(xùn)練樣本集、驗(yàn)證樣本集和測(cè)試樣本集。
隱含層中的節(jié)點(diǎn)數(shù)量同樣重要。理論上講,在神經(jīng)網(wǎng)絡(luò)中,如果有一個(gè)隱含層,節(jié)點(diǎn)在一個(gè)必要的量上可以接近任何隨機(jī)連續(xù)函數(shù)。但是目前還沒(méi)有詳細(xì)的計(jì)算標(biāo)準(zhǔn),我們采用了經(jīng)驗(yàn)公式來(lái)確定隱含層的神經(jīng)元數(shù)量。根據(jù)經(jīng)驗(yàn)公式,神經(jīng)元數(shù)量屬于[4,13]。進(jìn)行重復(fù)實(shí)驗(yàn),在此過(guò)程中獲得的最優(yōu)參數(shù)用于對(duì)PSO-BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行評(píng)估和預(yù)測(cè)(見(jiàn)圖3)。通過(guò)試錯(cuò)法以獲得隱含層中的最佳節(jié)點(diǎn)數(shù)量,并且最終得出隱含層神經(jīng)元數(shù)量設(shè)置為13個(gè)最為合適, 確定了PSO-BP神經(jīng)網(wǎng)絡(luò)輸入層、隱藏層和輸出層為5-13-1。接著設(shè)定終止的迭代次數(shù)為4 000次,學(xué)習(xí)率設(shè)定為0.01,目標(biāo)誤差設(shè)置為0.8×10-4。通過(guò)設(shè)置網(wǎng)絡(luò)參數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和測(cè)試,采用平均絕對(duì)百分比誤差(MAPE)對(duì)預(yù)測(cè)模型的性能進(jìn)行評(píng)價(jià),得到BP神經(jīng)網(wǎng)絡(luò)拱頂沉降預(yù)測(cè)精度為93.82%、周邊收斂預(yù)測(cè)(見(jiàn)圖4)精度為90.11%。因?yàn)锽P神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)圍巖變形數(shù)據(jù),單點(diǎn)預(yù)測(cè)誤差較大;因此,該模型還需要進(jìn)一步改進(jìn)。
圖3 拱頂沉降預(yù)測(cè)曲線
圖4 周邊收斂預(yù)測(cè)曲線
2.2.2 基于PSO-BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的圍巖變形預(yù)測(cè)
本文采用PSO-BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò)對(duì)淺埋隧道圍巖變形預(yù)測(cè)精度進(jìn)行了實(shí)驗(yàn)(見(jiàn)圖5、圖6)。PSO算法的參數(shù)設(shè)置如下:c1=c2=1.494 45,其中粒子數(shù)為30。種群迭代次數(shù)為50次,粒子速度范圍為[-1,1],粒子位置范圍為[-5,5]。
從圖5與圖6可以的得出:利用PSO-BP神經(jīng)網(wǎng)絡(luò)對(duì)淺埋隧道圍巖拱頂沉降的預(yù)測(cè)精度為96.92%;對(duì)周邊收斂的預(yù)測(cè)精度為96.24%。顯而易見(jiàn),預(yù)測(cè)精度都要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型。訓(xùn)練改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò),設(shè)置參數(shù)為:
圖5 拱頂沉降預(yù)測(cè)誤差曲線
圖6 周邊收斂預(yù)測(cè)誤差曲線
改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的實(shí)驗(yàn)結(jié)果如圖3、圖4所示,利用改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)對(duì)淺埋隧道圍巖拱頂沉降預(yù)測(cè)精度為99.36%;對(duì)周邊收斂預(yù)測(cè)精度為98.51%,預(yù)測(cè)精度都要優(yōu)于其他模型。從圖7可以看出,改進(jìn)的PSO算法在收斂精度、速度和優(yōu)化結(jié)果上都優(yōu)于標(biāo)準(zhǔn)PSO算法。優(yōu)化后,改進(jìn)PSO算法的平均最優(yōu)適應(yīng)度值低于標(biāo)準(zhǔn)PSO算法的平均最優(yōu)適應(yīng)度值。
圖7 適應(yīng)度值變化曲線
BP神經(jīng)網(wǎng)絡(luò)、PSO-BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)誤差統(tǒng)計(jì)如圖5和圖6所示,結(jié)合表1和表2可得:在拱頂沉降和周邊收斂的預(yù)測(cè)結(jié)果中顯示,改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò)的總誤差值分別僅為1.416 4和1.235 3,遠(yuǎn)低于其他模型。同時(shí),對(duì)兩次預(yù)測(cè)精度結(jié)果進(jìn)行了分析,在拱頂沉降預(yù)測(cè)模型中,改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度為99.36%,相比于另外兩種神經(jīng)網(wǎng)絡(luò)模型分別提高了2.44%和5.54%;在周邊收斂預(yù)測(cè)模型中,改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度為98.51%,相比于另外兩種神經(jīng)網(wǎng)絡(luò)模型分別提高了2.28%和8.4%。與BP神將網(wǎng)絡(luò)模型相比,PSO-BP神經(jīng)網(wǎng)絡(luò)模型和改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)模型具有更好的預(yù)測(cè)趨勢(shì)和精度;與標(biāo)準(zhǔn)PSO-BP神經(jīng)網(wǎng)絡(luò)模型相比,改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)模型具有更快的收斂性和自適應(yīng)能力。綜上所述,改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)模型更適合預(yù)測(cè)淺埋隧道圍巖變形數(shù)據(jù)。
表1 拱頂沉降預(yù)測(cè)統(tǒng)計(jì)
表2 周邊收斂預(yù)測(cè)統(tǒng)計(jì)
本文針對(duì)淺埋隧道圍巖變形的時(shí)間序列回歸問(wèn)題,基于一種基于改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型。并對(duì)了仿真預(yù)測(cè)實(shí)驗(yàn),結(jié)果表明:
(1) 改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)在模擬圍巖變形時(shí)間序列的回歸趨勢(shì)方面具有很強(qiáng)的學(xué)習(xí)能力。采用優(yōu)化PSO算法參數(shù)的預(yù)測(cè)模型可以有效避免粒子搜索的盲目性和低效性。
(2) 與傳統(tǒng)的預(yù)測(cè)模型相比,基于改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的時(shí)間序列回歸模型能夠預(yù)測(cè)非線性系統(tǒng)的變化趨勢(shì)和變化空間。工程應(yīng)用表明,該模型預(yù)測(cè)拱頂沉降和周邊收斂變化范圍準(zhǔn)確,且又具備良好的預(yù)測(cè)效果。
(3) 基于改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)時(shí)間序列預(yù)測(cè)模型為淺埋隧道拱頂沉降和周邊收斂的非線性時(shí)間序列回歸提供了一種新方法。該方法也適用于時(shí)變非線性系統(tǒng)的其他領(lǐng)域,具有一定的參考價(jià)值。