(寧波市測繪設計研究院,浙江 寧波 315100)
GNSS技術不斷完善和成熟,其在測繪領域的應用也變得越來越廣泛,大幅提高了測繪外業工作效率,但在大地高與水準高轉換應用方面仍主要依賴水準面精化模型[1]。通過水準面精化模型進行高程轉換,優點是精度高;缺點是建設成本大、周期長,對作業人員技術水平能力要求高,大范圍推廣應用難度較大。在經費少、工期短、范圍小、無法使用水準面精化模型的情況下,如何高效、便捷地實現GNSS高程轉換,已經成為制約GNSS高程應用的一個難題。
目前主流的GNSS高程轉換方法就是利用獲取的樣本數據,通過嚴密的數學計算方法,建立GNSS點坐標與水準高之間的數學映射關系模型。BP神經網絡算法是一種模擬人腦的數學計算方法[2-3],具有網絡自適應映射能力,可用于GNSS高程轉換的非線性映射運算,但其本身也存在一些缺陷,主要表現為收斂緩慢,易出現因“過訓練/過擬合”情況而陷入局部最優,網絡參數確定困難等。
量子粒子群算法(quantum-behaved particle swarm optimization,QPSO)是一種引入了量子行為的啟發式進化算法,具有極強的粒子搜索性能,使粒子可以在空間中更高效地搜索到全局最優解,目前已被廣泛應用于函數優化、神經網絡訓練等領域。
本文提出利用量子粒子群算法(QPSO)對BP神經網絡進行優化,通過構建量子粒子群BP神經網絡實現GNSS點坐標到正常高的轉換計算,改進傳統BP神經網絡算法存在的局部收斂、無法收斂等缺陷,并通過仿真試驗來驗證量子粒子群BP神經網絡算法的實際效果。
粒子群優化算法是一種隨機全局迭代進化算法[4-6],具有穩健性和全局搜索能力強、參數少、算法簡單、易編程實現等優點,能有效改進BP神經網絡易陷入局部最優的缺陷,大大提高其計算效率及性能。
PSO算法通過搜索空間中粒子位置求取優化問題最優解,算法具體原理如下:
假設存在一個D維搜索空間,該空間中有S個粒子組成的粒子群X={X1,X2,…,Xs},根據適應度函數計算并尋找最優解。第i個粒子的位置在搜索空間中可表示為向量Xi=[Xi1Xi2…Xid…XiD]T,速度可表示為向量Vi=[Vi1Vi2…Vid…ViD]T,個體最優解可表示為Pi=[Pi1Pi2…Pid…PiD]T,整體最優解可表示為Pg=[Pg1Pg2…Pgd…PgD]T。通過粒子自身速度和位置的不斷迭代,對當前解Xi、個體最優解Pi、整體最優解Pg適應度值進行比較,不斷更新個體最優解Pi及整體最優解Pg。每進行一次迭代,粒子會通過式(1)更新自身位置和速度,即
(1)
式中,d=1,2,…,D;i=1,2,…,S;k為迭代次數;Vid為粒子速度;c1和c2分別為認知學習因子和社會學習因子,表示尋找最優解的加速項權重;r1和r2為分布于[0,1]區間的隨機數;w為慣性權重,主要控制算法搜索和收斂能力。當w取值較大時,算法全局搜索能力強而局部收斂性弱;當w取值較小時,算法局部收斂性好但全局搜索能力弱。
粒子位置和速度一般限定在區間[-Xmax,Xmax]和[-Vmax,Vmax]內,Xmax限定粒子位置區間,Vmax限定粒子最大移動距離,以防止粒子盲目搜索、提高算法收斂性;w初始值通常取較大值,令其隨著粒子群迭代而線性遞減,保證算法在迭代初期具有較強的全局搜索能力,而在后期則轉向局部精細搜索以獲得高精度最優解。
經典力學中,粒子i沿確定軌跡運動,其狀態由位置Xid和速度Vid來確定;但在量子力學中,粒子行為則具有多態和不確定性,有概率出現在空間任一位置,其位置Xid和速度Vid無法同時確定。因此,如果粒子具有量子行為,則PSO算法的工作方式將變得不同,即孫俊等提出的粒子具有量子行為的QPSO算法[7],其算法具體原理如下:
假設一個D維搜索空間中有m個粒子組成的粒子群,記第i個粒子當前位置是Xi=[Xi1Xi2…Xid…XiD]T,第i個粒子搜索到的最優位置為Pi=[Pi1Pi2…Pid…PiD]T,粒子群整體最優位置為Pg=[Pg1Pg2…Pgd…PgD]T,勢中心點P=[P1P2…Pd…PD]T。其中勢中心點計算公式為
Pd=(r1Pid+r2Pgd)/(r1+r2)
(2)
粒子狀態則按下式進行迭代和更新
L=z|Xid(t)-P|
(3)
(4)

QPSO算法優化BP神經網絡的基本原理如下:將神經網絡權值和閾值進行粒子化,根據網絡結構定義并構建粒子群空間,其空間維數D一般由網絡輸入層節點數n、隱含層節點數l、輸出層節點數m來確定,具體可表示為D=n×l+l×m+l+m。搜索空間中的每個粒子代表著神經網絡的一組權值和閾值,通過QPSO算法的不斷迭代和搜索,使粒子適應度值在終止條件下趨于最小,從而尋找到粒子最優位置向量,即為BP神經網絡的最優權值和閾值,可用于神經網絡的擬合計算,提高收斂效率和精度。量子粒子群BP神經網絡算法基本流程如圖1所示。
量子粒子群BP神經網絡算法具體實現方法及步驟如下:
(1) 初始化粒子群參數,包括粒子位置(粒子位置即為待優化網絡權值和閾值)、尋優范圍、壓縮擴張因子、迭代次數等。
(2) 計算種群中每個粒子適應度值,獲取每個粒子的個體最優位置和粒子群的全局最優位置。
(3) 根據群體中各粒子的個體最優位置計算平均點。
(4) 通過迭代尋優對群體中每個粒子的位置進行更新。
(5) 重復步驟(2)—(4),直至達到終止條件。
(6) 輸出粒子群全局最優解,作為優化后的網絡最優權值和閾值,進行數據計算及分析。
本文將QPSO-BP神經網絡算法的適應度函數定義為
(5)
式中,RMSE為均方根誤差,代表預測數據與真實數據間的偏離程度;θ=1,2,…,L,L為訓練樣本數量;z(θ)和z*(θ)分別表示真實數據和預測數據。
本文選取某市40個GNSS控制點成果數據(X,Y,h)作為樣本進行仿真試驗,以控制點坐標成果X、Y作為2個輸入神經元,控制點水準高h作為1個輸出神經元,隱含層設置為7個神經元[8-9],其中25個樣本數據進行QPSO-BP神經網絡算法優化與訓練,其余15個樣本數據進行數據計算與分析。
仿真試驗中分別使用PSO算法、QPSO算法對BP神經網絡進行了優化。其中,PSO算法參數設置為[10-12]粒子數20,c1=c2,w=0.9,迭代次數500次;QPSO算法參數設置為粒子數20,迭代次數500次,z=0.8。
通過PSO算法、QPSO算法對BP神經網絡進行優化后,可得到其網絡模型的29個最優權值和閾值。由于篇幅有限,本文僅給出QPSO算法優化得到的最優解,見表1。

表1 QPSO算法優化得到的最優權值和閾值
根據優化后得到的最優權值和閾值,分別構建PSO-BP神經網絡、QPSO-BP神經網絡,利用25組樣本數據進行網絡訓練,再使用訓練后的神經網絡模型對剩余15組樣本數據進行數學模擬計算[13]。由于篇幅有限,這里只給出QPSO-BP神經網絡的最終擬合及預測情況,見表2、表3。

表2 QPSO-BP神經網絡擬合情況 m

表3 QPSO-BP神經網絡預測情況 m
為了更好地驗證QPSO算法對BP神經網絡的優化效果,本文分別對BP神經網絡、PSO-BP神經網絡、QPSO-BP神經網絡的擬合和預測結果進行了比較分析,具體結果見表4、圖2、圖3。
根據上述比較分析結果可以看出:利用量子粒子群(QPSO)算法優秀的迭代進化性能和全局搜索能力[14-15],可實現對BP神經網絡的有效優化,快速跳出局部最小而趨于全局最優解,最大限度避免BP神經網絡收斂慢、易陷入局部最小、難以收斂到全局最優解的缺陷,大大提高GNSS高程轉換的效率、精度和可靠性。

表4 BP、PSO-BP、QPSO-BP 3種算法仿真結果比較m
QPSO-BP算法在數據擬合、預測方面的精度和可靠性均優于BP模型、PSO-BP模型,是一種更加優秀的數學模型,在GNSS高程轉換應用方面具有較大的推廣應用潛力。
本文提出了一種基于量子粒子群BP神經網絡算法的GNSS高程轉換數學模型,利用量子粒子群算法的全局迭代進化特性搜索獲取BP神經網絡最優權值及閾值,有效解決了傳統BP神經網絡算法極易陷入局部極值、無法收斂到全局最優解等缺陷,在GNSS高程轉換方面表現出了更高的效率、精度和可靠性,是一種更加快速、高效的數學模型,值得在GNSS高程轉換方面進行推廣應用。