石晨陽,袁曉燕,江志成
( 重慶交通大學,重慶 400074 )
隨著衛星導航定位技術的快速發展,GPS 技術在各類工程中應用愈加廣泛[1]. GPS 技術可以測得某點的大地高,測繪工程中使用的是正常高,需要使用合適的算法求出高程異常值. 目前高程異常擬合研究方法主要有數學模型擬合法、地球重力場模型法和神經網絡方法[2-4].
神經網絡能夠以任意精度逼近任意連續函數及平方可積函數[5-6],在高程異常擬合中應用廣泛. 魏宗海[7]認為,BP 神經網絡層與層之間初始權值和閾值如果設置不合理,將會導致網絡收斂速度慢和陷入局部最優解;李明飛等[8]提出用遺傳算法優化BP 神經網絡(GA-BP)算法進行高程遺傳擬合,但是優良個體急增會導致種群失去多樣性,過早收斂從而陷入局部最優. 這說明GA-BP 算法需要進行優化,跳出局部最優陷阱.
本文針對傳統BP 神經網絡和GA-BP 算法的不足,采用遺傳模擬退火算法(SA)優化BP 神經網絡算法進行高程遺傳擬合,在遺傳算法的種群更新中加入SA,解決了收斂速度慢、易陷入局部最優的缺陷,精度和效率得到了明顯提高,且能基本滿足四等水準測量精度要求.
BP 神經網絡的訓練模式是誤差反向傳播,它的輸入層和輸出層為一層,隱含層大于或等于一層. 各層之間的權值和閾值由初始化隨機得出,通過反復訓練得到最優的權值和閾值. 其具體網絡結構如圖1所示.

圖1 BP 神經網絡示意圖
下面給出BP 算法步驟[9]:
1)設置各權值和閾值的初始值:wji(0)、θj(0)為小的隨機數.
2)提供訓練樣本:輸入矢量Xk,k=1,2,···,p;期望輸出dk,k=1,2,···,p;對每個輸入樣本進行下面步驟3)~步驟5)的迭代.

6)當k每經歷1~p后,判斷指標是否滿足精度要求

遺傳算法(GA)是模擬生物進化過程中基因的遺傳、雜交和變異的一種搜索算法. 在尋優過程中,首先尋得一組可行解,保持一組解并重新組合,不斷迭代更新直至得到最優解[10].
下面給出GA 算法步驟[11]:
1)確定編碼方式,編碼方式通常為二進制編碼和實數編碼.
2)確定適應度函數

4)計算適應度函數的值,如滿足約束條件,則算法終止,否則返回到步驟2)繼續迭代.
以平面水準坐標X、Y作為輸入層,高程異常值作為輸出層,以GA 算法的染色體賦值權值和閾值,進行遺傳、交叉、變異操作. 當結果滿足結束條件時,保留權值和閾值,再對測試集進行訓練,達到最終結果.
SA 是一種模仿固體退火結晶過程的隨機搜索算法. 在尋優過程中,最優解被接受,非最優解根據算法需要也可能被接受,這樣就使得算法不易陷入局部最優. GSA-BP 算法就是將SA 算法加入到GA 算法的種群更新中,得到最優解后再進行BP 神經網絡訓練.
下面給出SA 算法的步驟[12]:
1)參數初始化:包括初始溫度T,T需要充分大,初始解狀態P,這是算法迭代的起點,每個溫度T值下的迭代次數N;
2)當k=1,···,N時進行步驟3)~步驟6)的操作;
3)產生新解P′;
4)計算增量Δt′=C(P′)?C(P),其中C(P)為評價函數;
5)若Δt′<0 則接受P′作為新的當前解,否則以概率exp(?Δt′/T)接受P′作為新的當前解;
6)如果滿足終止條件則輸出當前解作為最優解,算法終止,否則返回到步驟2).
GSA-BP 算法具體流程如圖2 所示.

圖2 GSA-BP 算法流程圖
以平面水準坐標X、Y作為輸入層,高程異常值作為輸出層,以GA 算法的染色體賦值權值和閾值,進行遺傳、交叉、變異、模擬退火操作,當結果滿足誤差條件時,所得權值和閾值即為最優,以此權值和閾值進行測試集訓練,結果即為所得.
本實驗以南方某市E 級GPS 控制網數據為訓練數據[13]. 實驗區面積約500 km2,共計58 個GPS 點,且已全部進行了四等水準聯測. 該實驗區點位分布均勻,各點與最近點平均距離為2.1 km. 地形較為平坦,正常高最大值為64.7 m,最小值為9.2 m,平均值為25.7 m. 具體點位分布如圖3 所示.

圖3 某地區GPS/水準點分布圖
用該實驗區58 組GPS/水準數據構造21 個訓練集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 個點均勻分布. 然后每個訓練集依次加入G142,G144,G149,G64,G141,G8,G40,G137,G47,G5,G38,G4,G63,G117,G6,G1,G2,G24,G61,G22,剩下的點作測試集B1,B2,···,B21. 分別使用BP 算法、GABP 算法和GSA-BP 算法對訓練集進行訓練,再用測試集進行測試. 對結果進行統計分析,結果如表1、圖4~5 所示.

圖4 測試集高程異常中誤差預測結果對比圖

表1 不同訓練集點個數下測試結果對比表
由表1、圖4~5 可知,當訓練集和測試集都相同時,在進行高程異常擬合訓練后,GSA-BP 算法的測試集精度比BP 算法要高約52%,比GA-BP 算法高約25%,說明GSA-BP 算法可以有效解決陷入局部最優問題,提高精度;GSA-BP 算法訓練時間比BP 算法低約77%,比GA-BP 算法低約39%,說明GSABP 算法可以有效解決收斂速度慢問題.
由圖5 可知,隨著訓練集點個數的增加,三種算法的精度都在提高,但GSA-BP 算法在訓練集點個數很少時也能保持很高的精度,說明GSA-BP 算法對訓練集點個數要求沒有其他兩種算法高;在訓練集點個數為38 時,三種算法的精度都趨于穩定,精度隨訓練集點個數的增加變化不大,說明此時網絡訓練能力已經夠飽和.

圖5 測試集訓練時間對比圖
因此,以訓練集點個數為38 進行訓練為例,剩下點作為測試集. 該測試集38 個點均勻分布,點與最近點平均距離為1.9 km. 分別用三種算法進行高程異常擬合,對結果進行統計分析,并與四等水準要求進行比較,結果如表2 和圖6 所示.
由表2 和圖6 可知,在測試集20 個點位中,BP 算法、GA-BP 算法、GSA-BP 算法高程異常差滿足四等水準限差個數分別是13、15、16. GSA-BP 算法在進行高程異常擬合時能基本滿足四等水準測量精度要求.

圖6 三種算法訓練結果對比圖
本文通過使用BP 算法、GA-BP 算法、GSA-BP算法進行高程異常擬合,并分別使用不同訓練集點個數進行訓練測試,比較三種算法的訓練結果. 得到如下結論:
1) GSA-BP 算法能有效解決網絡收斂速度慢、易陷入局部最優等問題,提高訓練精度和效率;
2)當訓練樣本較少時,GSA-BP 算法也能保持一定的精度;
3) GSA-BP 算法用來進行高程異常擬合,能基本滿足四等水準要求,具有可行性.