邢 尹,陳 闖,劉立龍+,程 勝,蘇永檸,周 威
(1.桂林理工大學(xué) 測繪地理信息學(xué)院,廣西 桂林 541004;2.桂林理工大學(xué) 廣西空間信息與測繪重點實驗室,廣西 桂林 541004;3.南京工業(yè)大學(xué) 電氣工程與控制科學(xué)學(xué)院,江蘇 南京 211816)
近年來,研究人員已經(jīng)著手將遺傳算法(genetic algorithm,GA)應(yīng)用于大壩的變形檢測資料分析,但傳統(tǒng)的遺傳算法易造成收斂速度慢、陷入局部極值等問題[1]。文獻[2]利用人工神經(jīng)網(wǎng)絡(luò)進行大壩變形監(jiān)測,但也存在一定的局限性。如:訓(xùn)練速度比減慢、訓(xùn)練抖動問題、容易收斂于局部極小點以及算法不一定收斂等[3],這些因素往往對預(yù)測精度產(chǎn)生很大的影響,因此亟需研究新的方法來解決上述問題。
本文提出一種基于改進遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的預(yù)測方法,使用改進的遺傳算法對BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)閾值進行優(yōu)化,克服其參數(shù)初始化的隨機性缺陷。
設(shè)Xi=(x1,x2,…,xn)(i=1,2,…,n)為系統(tǒng)輸入,輸出為Yi=xi+1,選擇典型的3層網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計[4]。假設(shè)3層網(wǎng)絡(luò)結(jié)構(gòu)為n-p-l,采用Sigmoid轉(zhuǎn)移函數(shù),那么隱含層的各節(jié)點輸入、輸出分別為式(1)、式(2)
(1)
(2)
式中:wij為輸入層和隱含層之間的連接權(quán)值;θj為隱含層節(jié)點的閾值。同理可得,輸出層的節(jié)點輸入、輸出分別為式(3)、式(4)
(3)
(4)
式中:vj為隱含層和輸出層之間的連接權(quán)值;γ為輸出層的閾值;bj為隱含層節(jié)點的輸出。因此,輸出Yi是可以預(yù)測的。
BP網(wǎng)絡(luò)的權(quán)閾值均為-1和1之間的小數(shù),并且數(shù)量較多,不適宜采用二進制編碼,本文采用實數(shù)編碼規(guī)則,每個基因位的值代表一個權(quán)值或閾值。一般來說,適應(yīng)度值越大的個體,表明個體越優(yōu)秀,本文以BP網(wǎng)絡(luò)的輸出誤差平方和倒數(shù)作為該個體的適應(yīng)度函數(shù),公式為式(5)
fitness(x)=1/E(x)
(5)
式中:E(x)為個體x的輸出誤差平方和。
選擇算子常采用輪盤賭法或最優(yōu)個體保存策略[5]。但是輪盤賭法可能會產(chǎn)生隨機誤差,也就是說適應(yīng)度高的個體可能被淘汰掉,適應(yīng)度低的個體可能被選中,體現(xiàn)出不好的競爭力。最優(yōu)個體保存策略忽視了其余個體破壞種群多樣性而造成局部收斂的可能性[6]。本文提出了一種新的選擇算子,不僅可以擴大種群的多樣性,而且可以保存最優(yōu)個體。改進選擇算子如下:
(1)確定一個初始種群,計算種群內(nèi)每個個體的適應(yīng)度值;
(2)將種群內(nèi)的個體按照適應(yīng)度由大到小降序排列;
(3)選取前兩個體直接遺傳到下一代,其余個體進入交叉操作;
(4)交叉操作后的種群,隨機選取25%的個體直接遺傳到下一代;
(5)交叉后的所有種群,進行變異操作,隨機選取25%的個體直接遺傳到下一代;
(6)變異后的所有種群,按照適應(yīng)度降序排列,選取前50%的個體遺傳到下一代。
標(biāo)準(zhǔn)的遺傳算法采用固定的交叉和變異概率,參數(shù)難以調(diào)節(jié)至最佳。如果采用較大的交叉率,則可以較快地產(chǎn)生新個體,但是面臨破壞種群優(yōu)良個體的風(fēng)險;采用較小的交叉率,又易使算法早熟,停滯不前。如果采用較大的變異率,則GA成為純粹的隨機算法[7];采用較小的變異率,又很難產(chǎn)生新的模式結(jié)構(gòu)。針對標(biāo)準(zhǔn)遺傳算法的缺陷,Srinvas等[8]提出了自適應(yīng)遺傳算法(adaptive GA,AGA),公式為式(6)、式(7)
(6)
(7)
式中:f′為待交叉的兩個個體中較大的適應(yīng)度值;fmax為種群的最大適應(yīng)度;favg表示種群的平均適應(yīng)度;f表示變異個體的適應(yīng)度;k1~k4均為自適應(yīng)控制參數(shù)。但是在實際使用中,人們發(fā)現(xiàn)AGA在進化前期不太理想。這是因為在進化前期,群體中較優(yōu)個體幾乎處于不發(fā)生狀態(tài),而此時的較優(yōu)個體未必是全局最優(yōu)解,這就容易使得算法陷入局部最優(yōu)。目前常使用的一種改進算法[9](improved adaptive genetic algorithm,IAGA)為式(8)、式(9)
(8)
(9)
式中:pc1=0.9,pc2=0.6,pm1=0.1,pm2=0.001。
(1)確定實驗樣本并歸一化處理;
(2)設(shè)置種群規(guī)模N,最大迭代次數(shù)G以及初始隱含層節(jié)點數(shù)等運行參數(shù);
(3)隨機生成N個體的初始種群,進行實數(shù)編碼;
(4)對每個個體解碼,獲取BP網(wǎng)絡(luò)初始連接權(quán)閾值,使用樣本數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),依據(jù)式(5)計算個體適應(yīng)度;
(5)依據(jù)個體適應(yīng)度值,按照2.2和2.3進行選擇、交叉和變異操作;
(6)對子代種群每個個體解碼,獲取新的權(quán)閾值,再次訓(xùn)練網(wǎng)絡(luò),計算個體適應(yīng)值;
(7)判斷是否達到最大進化次數(shù),若不滿足則返回(5),若滿足則進入(8);
(8)對適應(yīng)度最優(yōu)個體進行解碼作為BP網(wǎng)絡(luò)初始的權(quán)閾值,建立IAGA-BP模型。
本文選取豐滿大壩某一測段1985年1月4日至1988年7月13日的200期多源監(jiān)測數(shù)據(jù)[10],以1~160期數(shù)據(jù)作為訓(xùn)練樣本,161~200期數(shù)據(jù)作為測試樣本。200期大壩水平位移變形值,如圖1所示。大壩變形監(jiān)測BP網(wǎng)絡(luò)模型的輸入層節(jié)點數(shù)由影響該變形觀測量的因子數(shù)決定。根據(jù)文獻[11]影響混凝土重力壩垂直位移的因子有3類,即水壓、溫度和時效,其中水壓因子H取3個(H1、H12、H13),溫度因子T0取正弦、余弦諧波因子取4個(sin(2πt/365)、cos(2πt/365)、sin(4πt/365)、cos(4πt/365)),時效因子取θ和ln(θ)共兩項,其中θ=0.01t,t為起始觀測至本次觀測的累計天數(shù)。文獻[12]利用平均影響值(MIV)結(jié)合BP神經(jīng)網(wǎng)絡(luò)的方法對影響因子進行了深刻分析,認(rèn)為選取H1、T0、sin(2πt/365)、sin(4πt/365)、θ以及l(fā)n(θ)就可以達到較好的預(yù)測效果。因此,本文選取此6個影響因子作為BP網(wǎng)絡(luò)的輸入,輸出為大壩水平位移值,建立了6-12-1網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 大壩水平位移序列
本實驗在MATLAB R2014a平臺上進行編程實驗。BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置為:最大迭代次數(shù)為3000,目標(biāo)精度為1e-6,學(xué)習(xí)率為0.1;GA參數(shù)設(shè)置為:種群規(guī)模為50,最大進化次數(shù)為200。為了說明IAGA-BP模型的優(yōu)越性,分別建立了BP和GA-BP模型對大壩水平位移值進行預(yù)測。3種模型預(yù)測結(jié)果,如圖2所示。從圖2中可以看出IAGA-BP模型跟隨實際值的效果最好,其它依次為GA-BP、BP模型,說明采用GA對BP網(wǎng)絡(luò)初始的權(quán)閾值進行優(yōu)化是有效的,可以改善BP網(wǎng)絡(luò)的預(yù)測性能。特別地,如果依據(jù)周圍環(huán)境自適應(yīng)地調(diào)節(jié)交叉和變異概率,將進一步提升BP神經(jīng)網(wǎng)絡(luò)的性能。GA和IAGA最佳適應(yīng)度尋優(yōu)過程,如圖3所示。從圖3中可以看出,GA在進化至125代時,最佳適應(yīng)度值基本穩(wěn)定,很難跳出舊模式。而IAGA通過增加種群多樣性以及自適應(yīng)地調(diào)整自身參數(shù),呈階梯上升狀,帶動算法的繼續(xù)進行,擺脫局部收斂。
圖2 3種模型的水平位移預(yù)測結(jié)果比較
圖3 最佳適應(yīng)度值尋優(yōu)過程
為了進一步說明采用IAGA-BP模型對大壩變形預(yù)測的優(yōu)越性,統(tǒng)計預(yù)測結(jié)果的殘差分布和誤差標(biāo)準(zhǔn)差。殘差及誤差標(biāo)準(zhǔn)差公式為式(10)、式(11)
Δi=Kpre[i]-Kact[i]
(10)
(11)
式中:Kpre[i]、Kact[i]和Δi分別是第i期的預(yù)測值、實際值和預(yù)測殘差;s是誤差標(biāo)準(zhǔn)差。3種模型的統(tǒng)計結(jié)果見表1。
表1 3種模型的預(yù)測殘差及誤差標(biāo)準(zhǔn)差
從表1可以看出,IAGA-BP模型的預(yù)測殘差絕對值在0.5 mm之內(nèi)達到了67.5%,遠遠高于BP和GA-BP模型;對于超出1.0 mm的預(yù)測誤差,IAGA-BP模型僅僅只有15.0%,均低于另外兩種模型,說明IAGA-BP模型的預(yù)測精度更高。從誤差標(biāo)準(zhǔn)差上來看,IAGA-BP模型的誤差標(biāo)準(zhǔn)差最小,為0.5080,小于BP模型的1.2374和GA-BP模型的0.7250,說明IAGA-BP模型預(yù)測更加穩(wěn)定。對大壩變形預(yù)測所建立的IAGA-BP模型最終的權(quán)值和閾值,見表2。表中,W1為輸入層與隱含層連接權(quán)值矩陣;B1為隱含層節(jié)點閾值;W2為隱含層與輸出層連接權(quán)值矩陣;B2為輸出層節(jié)點閾值。
表2 IAGA-BP模型最終的權(quán)值和閾值
本文提出了改進的自適應(yīng)遺傳算法對BP神經(jīng)網(wǎng)絡(luò)初始的權(quán)閾值進行優(yōu)化,建立了IAGA-BP預(yù)測模型。通過改進GA中的選擇算子和交叉變異概率,使得算法能夠自適應(yīng)周圍環(huán)境,跳出局部最優(yōu)解,尋找到最佳的BP網(wǎng)絡(luò)初始的權(quán)閾值。針對大壩非線性變形預(yù)測,選取了水壓、溫度、時效中的6個影響因素作為輸入樣本,水平位移值作為輸出樣本,分別建立了BP和GA-BP模型。經(jīng)過實驗,結(jié)果表明,采用IAGA-BP模型不僅提高了預(yù)測精度,而且具備良好的穩(wěn)定性,是一種較佳的預(yù)測模型。