石晨陽,袁曉燕,江志成
( 重慶交通大學(xué),重慶 400074 )
隨著衛(wèi)星導(dǎo)航定位技術(shù)的快速發(fā)展,GPS 技術(shù)在各類工程中應(yīng)用愈加廣泛[1]. GPS 技術(shù)可以測得某點(diǎn)的大地高,測繪工程中使用的是正常高,需要使用合適的算法求出高程異常值. 目前高程異常擬合研究方法主要有數(shù)學(xué)模型擬合法、地球重力場模型法和神經(jīng)網(wǎng)絡(luò)方法[2-4].
神經(jīng)網(wǎng)絡(luò)能夠以任意精度逼近任意連續(xù)函數(shù)及平方可積函數(shù)[5-6],在高程異常擬合中應(yīng)用廣泛. 魏宗海[7]認(rèn)為,BP 神經(jīng)網(wǎng)絡(luò)層與層之間初始權(quán)值和閾值如果設(shè)置不合理,將會導(dǎo)致網(wǎng)絡(luò)收斂速度慢和陷入局部最優(yōu)解;李明飛等[8]提出用遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)(GA-BP)算法進(jìn)行高程遺傳擬合,但是優(yōu)良個(gè)體急增會導(dǎo)致種群失去多樣性,過早收斂從而陷入局部最優(yōu). 這說明GA-BP 算法需要進(jìn)行優(yōu)化,跳出局部最優(yōu)陷阱.
本文針對傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)和GA-BP 算法的不足,采用遺傳模擬退火算法(SA)優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)算法進(jìn)行高程遺傳擬合,在遺傳算法的種群更新中加入SA,解決了收斂速度慢、易陷入局部最優(yōu)的缺陷,精度和效率得到了明顯提高,且能基本滿足四等水準(zhǔn)測量精度要求.
BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練模式是誤差反向傳播,它的輸入層和輸出層為一層,隱含層大于或等于一層. 各層之間的權(quán)值和閾值由初始化隨機(jī)得出,通過反復(fù)訓(xùn)練得到最優(yōu)的權(quán)值和閾值. 其具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 BP 神經(jīng)網(wǎng)絡(luò)示意圖
下面給出BP 算法步驟[9]:
1)設(shè)置各權(quán)值和閾值的初始值:wji(0)、θj(0)為小的隨機(jī)數(shù).
2)提供訓(xùn)練樣本:輸入矢量Xk,k=1,2,···,p;期望輸出dk,k=1,2,···,p;對每個(gè)輸入樣本進(jìn)行下面步驟3)~步驟5)的迭代.
6)當(dāng)k每經(jīng)歷1~p后,判斷指標(biāo)是否滿足精度要求
遺傳算法(GA)是模擬生物進(jìn)化過程中基因的遺傳、雜交和變異的一種搜索算法. 在尋優(yōu)過程中,首先尋得一組可行解,保持一組解并重新組合,不斷迭代更新直至得到最優(yōu)解[10].
下面給出GA 算法步驟[11]:
1)確定編碼方式,編碼方式通常為二進(jìn)制編碼和實(shí)數(shù)編碼.
2)確定適應(yīng)度函數(shù)
4)計(jì)算適應(yīng)度函數(shù)的值,如滿足約束條件,則算法終止,否則返回到步驟2)繼續(xù)迭代.
以平面水準(zhǔn)坐標(biāo)X、Y作為輸入層,高程異常值作為輸出層,以GA 算法的染色體賦值權(quán)值和閾值,進(jìn)行遺傳、交叉、變異操作. 當(dāng)結(jié)果滿足結(jié)束條件時(shí),保留權(quán)值和閾值,再對測試集進(jìn)行訓(xùn)練,達(dá)到最終結(jié)果.
SA 是一種模仿固體退火結(jié)晶過程的隨機(jī)搜索算法. 在尋優(yōu)過程中,最優(yōu)解被接受,非最優(yōu)解根據(jù)算法需要也可能被接受,這樣就使得算法不易陷入局部最優(yōu). GSA-BP 算法就是將SA 算法加入到GA 算法的種群更新中,得到最優(yōu)解后再進(jìn)行BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練.
下面給出SA 算法的步驟[12]:
1)參數(shù)初始化:包括初始溫度T,T需要充分大,初始解狀態(tài)P,這是算法迭代的起點(diǎn),每個(gè)溫度T值下的迭代次數(shù)N;
2)當(dāng)k=1,···,N時(shí)進(jìn)行步驟3)~步驟6)的操作;
3)產(chǎn)生新解P′;
4)計(jì)算增量Δt′=C(P′)?C(P),其中C(P)為評價(jià)函數(shù);
5)若Δt′<0 則接受P′作為新的當(dāng)前解,否則以概率exp(?Δt′/T)接受P′作為新的當(dāng)前解;
6)如果滿足終止條件則輸出當(dāng)前解作為最優(yōu)解,算法終止,否則返回到步驟2).
GSA-BP 算法具體流程如圖2 所示.
圖2 GSA-BP 算法流程圖
以平面水準(zhǔn)坐標(biāo)X、Y作為輸入層,高程異常值作為輸出層,以GA 算法的染色體賦值權(quán)值和閾值,進(jìn)行遺傳、交叉、變異、模擬退火操作,當(dāng)結(jié)果滿足誤差條件時(shí),所得權(quán)值和閾值即為最優(yōu),以此權(quán)值和閾值進(jìn)行測試集訓(xùn)練,結(jié)果即為所得.
本實(shí)驗(yàn)以南方某市E 級GPS 控制網(wǎng)數(shù)據(jù)為訓(xùn)練數(shù)據(jù)[13]. 實(shí)驗(yàn)區(qū)面積約500 km2,共計(jì)58 個(gè)GPS 點(diǎn),且已全部進(jìn)行了四等水準(zhǔn)聯(lián)測. 該實(shí)驗(yàn)區(qū)點(diǎn)位分布均勻,各點(diǎn)與最近點(diǎn)平均距離為2.1 km. 地形較為平坦,正常高最大值為64.7 m,最小值為9.2 m,平均值為25.7 m. 具體點(diǎn)位分布如圖3 所示.
圖3 某地區(qū)GPS/水準(zhǔn)點(diǎn)分布圖
用該實(shí)驗(yàn)區(qū)58 組GPS/水準(zhǔn)數(shù)據(jù)構(gòu)造21 個(gè)訓(xùn)練集A1,A2,···,A21,其中A1={G51,G112,G27,G58, G46, G45, G48, G12, G28, G55, G9, G20,G129,G18,G19,G17,G130,G131,G67,G143,G66,G36,G65,G139,G29,G56,G30,G57},該28 個(gè)點(diǎn)均勻分布. 然后每個(gè)訓(xùn)練集依次加入G142,G144,G149,G64,G141,G8,G40,G137,G47,G5,G38,G4,G63,G117,G6,G1,G2,G24,G61,G22,剩下的點(diǎn)作測試集B1,B2,···,B21. 分別使用BP 算法、GABP 算法和GSA-BP 算法對訓(xùn)練集進(jìn)行訓(xùn)練,再用測試集進(jìn)行測試. 對結(jié)果進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表1、圖4~5 所示.
圖4 測試集高程異常中誤差預(yù)測結(jié)果對比圖
表1 不同訓(xùn)練集點(diǎn)個(gè)數(shù)下測試結(jié)果對比表
由表1、圖4~5 可知,當(dāng)訓(xùn)練集和測試集都相同時(shí),在進(jìn)行高程異常擬合訓(xùn)練后,GSA-BP 算法的測試集精度比BP 算法要高約52%,比GA-BP 算法高約25%,說明GSA-BP 算法可以有效解決陷入局部最優(yōu)問題,提高精度;GSA-BP 算法訓(xùn)練時(shí)間比BP 算法低約77%,比GA-BP 算法低約39%,說明GSABP 算法可以有效解決收斂速度慢問題.
由圖5 可知,隨著訓(xùn)練集點(diǎn)個(gè)數(shù)的增加,三種算法的精度都在提高,但GSA-BP 算法在訓(xùn)練集點(diǎn)個(gè)數(shù)很少時(shí)也能保持很高的精度,說明GSA-BP 算法對訓(xùn)練集點(diǎn)個(gè)數(shù)要求沒有其他兩種算法高;在訓(xùn)練集點(diǎn)個(gè)數(shù)為38 時(shí),三種算法的精度都趨于穩(wěn)定,精度隨訓(xùn)練集點(diǎn)個(gè)數(shù)的增加變化不大,說明此時(shí)網(wǎng)絡(luò)訓(xùn)練能力已經(jīng)夠飽和.
圖5 測試集訓(xùn)練時(shí)間對比圖
因此,以訓(xùn)練集點(diǎn)個(gè)數(shù)為38 進(jìn)行訓(xùn)練為例,剩下點(diǎn)作為測試集. 該測試集38 個(gè)點(diǎn)均勻分布,點(diǎn)與最近點(diǎn)平均距離為1.9 km. 分別用三種算法進(jìn)行高程異常擬合,對結(jié)果進(jìn)行統(tǒng)計(jì)分析,并與四等水準(zhǔn)要求進(jìn)行比較,結(jié)果如表2 和圖6 所示.
由表2 和圖6 可知,在測試集20 個(gè)點(diǎn)位中,BP 算法、GA-BP 算法、GSA-BP 算法高程異常差滿足四等水準(zhǔn)限差個(gè)數(shù)分別是13、15、16. GSA-BP 算法在進(jìn)行高程異常擬合時(shí)能基本滿足四等水準(zhǔn)測量精度要求.
圖6 三種算法訓(xùn)練結(jié)果對比圖
本文通過使用BP 算法、GA-BP 算法、GSA-BP算法進(jìn)行高程異常擬合,并分別使用不同訓(xùn)練集點(diǎn)個(gè)數(shù)進(jìn)行訓(xùn)練測試,比較三種算法的訓(xùn)練結(jié)果. 得到如下結(jié)論:
1) GSA-BP 算法能有效解決網(wǎng)絡(luò)收斂速度慢、易陷入局部最優(yōu)等問題,提高訓(xùn)練精度和效率;
2)當(dāng)訓(xùn)練樣本較少時(shí),GSA-BP 算法也能保持一定的精度;
3) GSA-BP 算法用來進(jìn)行高程異常擬合,能基本滿足四等水準(zhǔn)要求,具有可行性.