胡川
(四川建筑職業(yè)技術學院測量工程研究所,四川德陽 618000)
基于神經(jīng)網(wǎng)絡的GPS高程擬合及其MATLAB實現(xiàn)
胡川?
(四川建筑職業(yè)技術學院測量工程研究所,四川德陽 618000)
GPS高程轉(zhuǎn)換通常采用某種函數(shù)模型進行擬合轉(zhuǎn)換,函數(shù)模型難以真實模擬似大地水準面,具有較大的模型誤差,造成擬合效果不佳。BP神經(jīng)網(wǎng)絡方法進行GPS高程擬合可以減少模型產(chǎn)生的誤差。文章采用MATLAB語言實現(xiàn)了BP神經(jīng)網(wǎng)絡對GPS高程轉(zhuǎn)換擬合并與二次曲面擬合結(jié)果進行比較,結(jié)果體現(xiàn)了神經(jīng)網(wǎng)絡進行高程擬合的優(yōu)越性。
BP;神經(jīng)網(wǎng)絡;高程擬合;MATLAB;全球定位系統(tǒng)
GPS坐標是以地球質(zhì)量中心為坐標原點的三維坐標,其高程是地面某點到橢球面的距離稱大地高。而工程中常用的是正常高或水準高程。因此,兩種高程之間的轉(zhuǎn)換成為工程技術人員所必須面臨的一個難題。用H表示大地高,HZ表示正常高,ξ表示高程異常,則它們之間的關系為:H=HZ+ξ;只要求出高程異常就可以輕松的求得正常高。要精確求取高程異常需要點位的精確重力數(shù)據(jù),實際操作比較的困難。通常求取高程異常的方法是通過某種擬合函數(shù)根據(jù)已知的點位模擬出某種曲面或平面,再以曲面(平面)函數(shù)來求取未知點的高程異常。擬合方法有:繪等值線圖法、曲線內(nèi)插法、樣條函數(shù)法、平面擬合法、多項式曲面擬合法、多面函數(shù)擬合法、曲面樣條擬合法、加權平均法[1]等等。采用數(shù)學函數(shù)模型進行擬合的最大問題就在于模型具有一定的誤差,這對結(jié)果產(chǎn)生一定的影響。為減少模型誤差的影響,研究人員提出了神經(jīng)網(wǎng)絡方法來實現(xiàn)擬合[2]。但是神經(jīng)網(wǎng)絡方法比較的繁雜,對于一般的工程人員來說不太方便。本文利用MATLAB提供的神經(jīng)網(wǎng)絡函數(shù)簡單編程實現(xiàn)了GPS正常高的神經(jīng)網(wǎng)絡擬合,并與二次曲面擬合結(jié)果進行比較,得出較好的效果。
2.1 MATLAB中的神經(jīng)網(wǎng)絡算法模型
神經(jīng)網(wǎng)絡是對人腦的抽象、模擬,反映人腦的基本特性。神經(jīng)元是其最基本的組成,神經(jīng)元是功能簡單但是具有自適應能力的信息處理單元。神經(jīng)元通過某種拓撲結(jié)果按照大規(guī)模的并行方式連接成神經(jīng)網(wǎng)絡。在MATLAB中提供多種的神經(jīng)網(wǎng)絡算法模型,比如: BP前饋后向傳播神網(wǎng)絡(feed-forward backpropagation);GRN廣義回歸神經(jīng)網(wǎng)絡(generalized regression neural);、Elman后向傳播網(wǎng)絡(Elman backpropagation network);可訓練級聯(lián)前導后向傳播網(wǎng)絡(trainable cascade-forward backpropagation network);輸入延遲前饋后向傳播神網(wǎng)絡(feed-forward input-delay backprop network);Hopfield網(wǎng)絡(Hopfield recurrent network);學習矢量量化神經(jīng)網(wǎng)絡(learning vector quantization network);概率神經(jīng)網(wǎng)絡(probabilistic neural network);RBF徑向基神經(jīng)網(wǎng)絡模型(radial basis network);RBFE精確徑向基神經(jīng)網(wǎng)絡(exact radial basis network)等等。神經(jīng)網(wǎng)絡的實現(xiàn)是通過網(wǎng)絡結(jié)構(gòu)來實現(xiàn),一般的網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡結(jié)構(gòu)
從左到右分別是輸入層,隱含層,輸出層。運用BP神經(jīng)網(wǎng)絡和RBF神經(jīng)網(wǎng)絡來進行相關運用的研究是主流趨勢。BP神經(jīng)網(wǎng)絡是多層前饋單向傳播網(wǎng)路,在上述的機構(gòu)基礎上,其隱含層可有多層,層與層之間實現(xiàn)全連接。但是同層之間沒有任何的連接。下一層的輸入受到上一層輸出的影響。網(wǎng)絡的學習過程是由兩部分完成,首先是正向的學習,由輸入層開始向下傳播到輸出層,輸出層比較輸出結(jié)果能否到達預期效果。如不能就反向傳播,通過修改各層神經(jīng)元的權值到達輸入層,最后又正向傳播到輸入層。這樣反復的學習,直到輸出結(jié)果到達預期結(jié)果學習過程結(jié)束。
2.2 MATLAB提供的主要神經(jīng)網(wǎng)絡函數(shù)
為實現(xiàn)各種網(wǎng)絡結(jié)構(gòu)的使用,MATLAB提供了大量的函數(shù)。根據(jù)神經(jīng)網(wǎng)絡實現(xiàn)高程擬合的流程(見后面討論)主要涉及以下各類函數(shù)。
(1)數(shù)據(jù)輸入函數(shù),MATLAB可以讀取多種類型的數(shù)據(jù)格式,比如:Excel文件,mat文件等。函數(shù)形式是xlsread('filename'),load('filename')。
(2)數(shù)據(jù)歸一化函數(shù),歸一化函數(shù)有 premnmx、postmnmx、tramnmx、restd、poststd、trastd幾種;premnmx函數(shù)用于將網(wǎng)絡的輸入數(shù)據(jù)進行歸一化,歸一化后的數(shù)據(jù)將分布在[-1,1]區(qū)間內(nèi)。在訓練網(wǎng)絡時如果所用的是經(jīng)過歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡時所用的測驗數(shù)據(jù)也應該用tramnmx進行相同的處理。當數(shù)據(jù)進行歸一化處理后在結(jié)果中要的與原來數(shù)據(jù)相同的單位就必須進行反歸一化處理。postmnmx是用來反premnmx的歸一化函數(shù)。
(3)網(wǎng)絡創(chuàng)建函數(shù),newelm、newff、newfftd、newgrnn、newhop、newpnn、newrb。newff是創(chuàng)建BP神經(jīng)網(wǎng)絡的函數(shù),也是最常用的函數(shù),其結(jié)構(gòu)為:newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF);PR表示經(jīng)歸一化后的輸入數(shù)據(jù),SN1網(wǎng)絡的層數(shù),TFi為轉(zhuǎn)換函數(shù),主要有tansig,logsig,purelin三種轉(zhuǎn)換函數(shù);BTF表示用于訓練的函數(shù),主要有 rainlm,trainbfg,trainrp,traingd等等;BLF表示需要的學習權函數(shù) learngdm;PF表示性能函數(shù),主要有mse和msereg兩種。
(4)網(wǎng)絡參數(shù)設置,net.trainParam.show:設置顯示間隔;net.trainParam.lr:設置網(wǎng)絡學習速度;net.train-Param.mc:設置動量系數(shù)net.trainParam.epochs設置訓練單位時間;net.trainParam.goal設置目標誤差。
(5)網(wǎng)絡初始函數(shù)init(net),一般采用默認參數(shù)自動初始就可以。
(6)網(wǎng)路訓練函數(shù)train,用于對設定參數(shù)的網(wǎng)絡進行訓練。
(7)網(wǎng)絡仿真函數(shù)a sim(net,PN).通過這些函數(shù)的使用可以實現(xiàn)高程擬合的Matlab仿真,并得到最后的擬合數(shù)據(jù)。
3.1 高程擬合數(shù)據(jù)處理流程
MATLAB高程擬合程序?qū)崿F(xiàn)的流程是:
(1)確定輸入矢量和目標矢量。本文將已知數(shù)據(jù)中的坐標數(shù)據(jù)作為輸入向量,對應的正常高作為輸出向量,當然也可以將高程異常作為輸出向量。注意輸出向量和輸入向量的列數(shù)必須相同。
(2)確定隱含層數(shù)目、各層神經(jīng)元個數(shù)、傳遞函數(shù)以及訓練函數(shù)。這些對象對最后擬合的效果是有很大的影響。設計不好就會出現(xiàn)收斂效果不佳或收斂時間過長等問題,甚至有可能擬合出錯(不能收斂)。
(3)對輸入輸出數(shù)據(jù)進行歸一化處理。數(shù)據(jù)差距較大,為加快收斂速度須對數(shù)據(jù)做歸一化處理,有時也可以不用歸一化處理。待處理的擬合數(shù)據(jù)同樣需要相同的歸一處理,并在擬合完畢后進行反歸一化處理才能得到待求數(shù)據(jù)結(jié)果正解。
(4)創(chuàng)建神經(jīng)網(wǎng)絡。利用上面提供的創(chuàng)建神經(jīng)網(wǎng)絡函數(shù)創(chuàng)建實際的神經(jīng)網(wǎng)絡。不同的網(wǎng)絡創(chuàng)建時的參數(shù)設置不一樣,要注意區(qū)別。一般采用newff和newfftd。
(5)網(wǎng)絡初始化。主要是設置權函數(shù),在高程擬合中可以采用系統(tǒng)默認的參數(shù),可以不單獨初始化。
(6)網(wǎng)絡訓練。通過訓練函數(shù),根據(jù)預設的參數(shù)對網(wǎng)絡進行訓練。
(7)網(wǎng)絡仿真。Sim函數(shù)是專門用來實現(xiàn)網(wǎng)絡仿真的,對輸入數(shù)據(jù)進行仿真計算。
(8)求待擬合正常高。待求正常高的坐標通過相同的歸一化處理采用仿真函數(shù)仿真,經(jīng)過反歸一處理得到擬合結(jié)果。
3.2 程序?qū)崿F(xiàn)
本文設計了一個3層神經(jīng)網(wǎng)絡,一個輸入層,一個隱含層,一個輸出層。隱含層的神經(jīng)元數(shù)目選擇為10個,輸入層輸入元素為(x,y),故設置兩個神經(jīng)元,輸出層只輸出高程,所以就只有一個神經(jīng)元。根據(jù)需要可以創(chuàng)建不同的神經(jīng)網(wǎng)絡,在此以BP后向傳播網(wǎng)絡為例。具體的程序代碼如下:
根據(jù)某地區(qū)GPS控制網(wǎng)的部分數(shù)據(jù),選擇了8個點樣本數(shù)據(jù),點號為1~8。9個點作為測試樣本集實驗數(shù)據(jù),點號為9~17。采用BP神經(jīng)網(wǎng)絡擬合結(jié)果與二次曲面擬合結(jié)果進行比較,精度評定采用均方誤差的方式。實驗對比數(shù)據(jù)如表1所示。
實驗數(shù)據(jù)(單位/m) 表1
通過表1可以明顯看出神經(jīng)網(wǎng)絡方法比二次曲面擬合法的效果要好很多。神經(jīng)網(wǎng)絡和二次曲面擬合的誤差最大點都為15號點,而最小的點點號不同,分別為10和9號點。神經(jīng)網(wǎng)絡方法的均方誤差要比二次型小15倍左右,所以采用神經(jīng)網(wǎng)絡方法更符合實際情況,能夠取得更好的擬合效果。
通過上面的分析可以看出神經(jīng)網(wǎng)路的優(yōu)越性,盡管神經(jīng)網(wǎng)絡的原理要比二次型復雜,感覺更難于實現(xiàn)。在MATLAB強大的數(shù)學處理能力面前,這樣的問題得到很好的解決。促進了神經(jīng)網(wǎng)路在高程轉(zhuǎn)換中的應用。本文選取的數(shù)據(jù)高程異常差不是太大,曲面比較的緩和,對于大區(qū)域的數(shù)據(jù)處理能否適用還需要深入研究。同時由于篇幅的限制,作者沒有對不同的神經(jīng)網(wǎng)絡模型以及不同參數(shù)條件下對結(jié)果影響的關系進行分析。這些都是筆者需要進一步深入研究的方面。
[1]徐紹銓,張華海,楊志強等.GPS測量原理及應用[M].武漢:武漢測繪科技大學出版社,1998
[2]楊明清,靳蕃,朱達成等.用神經(jīng)網(wǎng)絡方法轉(zhuǎn)換GPS高程[J].測繪學報1999(4)
[3]匡翠林.BP神經(jīng)網(wǎng)絡用于GPS高程轉(zhuǎn)換的網(wǎng)絡配置[J].測繪與空間地理信息2004,27(5)
[4]朱衛(wèi)東,李全海.基于標準化動量BP神經(jīng)網(wǎng)絡的GPS高程轉(zhuǎn)換[J].大地測量與地球動力學,2010,(1)
[5]張秋昭,張書畢,劉軍.基于Bayesian正則化BP神經(jīng)網(wǎng)絡的GPS高程轉(zhuǎn)換[J].大地測量與地球動力學,2009(3)
Based on Neural Net Fitting GPS Elevation and Implemented by Matlab
Hu Chuan
(Institute of Engineering Surveying,Sichuan College of Architectural Technology,Deyang 618000,China)
GPS elevation conversion usually adopted a function of model to fitting,function model can not simulate quasi-geoid with large model error and resulting in estimated ineffective.BP neural network method for GPS elevation conversion could reduce the model-generated errors.Articles by MATLAB language to implement the BP neural network for GPS elevation conversion to be combined with the quadratic surface fitting results were compared and the results reflected the neural network superiority.
BP;Neural Net;Elevation Fitting;MATLAB;GPS
1672-8262(2010)05-75-03
P228
B
2010—03—31
胡川(1983—),男,碩士,主要從事空間大地測量理論與數(shù)據(jù)處理研究。
四川省環(huán)境保護科技項目(2008HBY002)