胡川
(四川建筑職業(yè)技術(shù)學(xué)院測(cè)量工程研究所,四川德陽(yáng) 618000)
基于神經(jīng)網(wǎng)絡(luò)的GPS高程擬合及其MATLAB實(shí)現(xiàn)
胡川?
(四川建筑職業(yè)技術(shù)學(xué)院測(cè)量工程研究所,四川德陽(yáng) 618000)
GPS高程轉(zhuǎn)換通常采用某種函數(shù)模型進(jìn)行擬合轉(zhuǎn)換,函數(shù)模型難以真實(shí)模擬似大地水準(zhǔn)面,具有較大的模型誤差,造成擬合效果不佳。BP神經(jīng)網(wǎng)絡(luò)方法進(jìn)行GPS高程擬合可以減少模型產(chǎn)生的誤差。文章采用MATLAB語(yǔ)言實(shí)現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)對(duì)GPS高程轉(zhuǎn)換擬合并與二次曲面擬合結(jié)果進(jìn)行比較,結(jié)果體現(xiàn)了神經(jīng)網(wǎng)絡(luò)進(jìn)行高程擬合的優(yōu)越性。
BP;神經(jīng)網(wǎng)絡(luò);高程擬合;MATLAB;全球定位系統(tǒng)
GPS坐標(biāo)是以地球質(zhì)量中心為坐標(biāo)原點(diǎn)的三維坐標(biāo),其高程是地面某點(diǎn)到橢球面的距離稱(chēng)大地高。而工程中常用的是正常高或水準(zhǔn)高程。因此,兩種高程之間的轉(zhuǎn)換成為工程技術(shù)人員所必須面臨的一個(gè)難題。用H表示大地高,HZ表示正常高,ξ表示高程異常,則它們之間的關(guān)系為:H=HZ+ξ;只要求出高程異常就可以輕松的求得正常高。要精確求取高程異常需要點(diǎn)位的精確重力數(shù)據(jù),實(shí)際操作比較的困難。通常求取高程異常的方法是通過(guò)某種擬合函數(shù)根據(jù)已知的點(diǎn)位模擬出某種曲面或平面,再以曲面(平面)函數(shù)來(lái)求取未知點(diǎn)的高程異常。擬合方法有:繪等值線圖法、曲線內(nèi)插法、樣條函數(shù)法、平面擬合法、多項(xiàng)式曲面擬合法、多面函數(shù)擬合法、曲面樣條擬合法、加權(quán)平均法[1]等等。采用數(shù)學(xué)函數(shù)模型進(jìn)行擬合的最大問(wèn)題就在于模型具有一定的誤差,這對(duì)結(jié)果產(chǎn)生一定的影響。為減少模型誤差的影響,研究人員提出了神經(jīng)網(wǎng)絡(luò)方法來(lái)實(shí)現(xiàn)擬合[2]。但是神經(jīng)網(wǎng)絡(luò)方法比較的繁雜,對(duì)于一般的工程人員來(lái)說(shuō)不太方便。本文利用MATLAB提供的神經(jīng)網(wǎng)絡(luò)函數(shù)簡(jiǎn)單編程實(shí)現(xiàn)了GPS正常高的神經(jīng)網(wǎng)絡(luò)擬合,并與二次曲面擬合結(jié)果進(jìn)行比較,得出較好的效果。
2.1 MATLAB中的神經(jīng)網(wǎng)絡(luò)算法模型
神經(jīng)網(wǎng)絡(luò)是對(duì)人腦的抽象、模擬,反映人腦的基本特性。神經(jīng)元是其最基本的組成,神經(jīng)元是功能簡(jiǎn)單但是具有自適應(yīng)能力的信息處理單元。神經(jīng)元通過(guò)某種拓?fù)浣Y(jié)果按照大規(guī)模的并行方式連接成神經(jīng)網(wǎng)絡(luò)。在MATLAB中提供多種的神經(jīng)網(wǎng)絡(luò)算法模型,比如: BP前饋后向傳播神網(wǎng)絡(luò)(feed-forward backpropagation);GRN廣義回歸神經(jīng)網(wǎng)絡(luò)(generalized regression neural);、Elman后向傳播網(wǎng)絡(luò)(Elman backpropagation network);可訓(xùn)練級(jí)聯(lián)前導(dǎo)后向傳播網(wǎng)絡(luò)(trainable cascade-forward backpropagation network);輸入延遲前饋后向傳播神網(wǎng)絡(luò)(feed-forward input-delay backprop network);Hopfield網(wǎng)絡(luò)(Hopfield recurrent network);學(xué)習(xí)矢量量化神經(jīng)網(wǎng)絡(luò)(learning vector quantization network);概率神經(jīng)網(wǎng)絡(luò)(probabilistic neural network);RBF徑向基神經(jīng)網(wǎng)絡(luò)模型(radial basis network);RBFE精確徑向基神經(jīng)網(wǎng)絡(luò)(exact radial basis network)等等。神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)是通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)實(shí)現(xiàn),一般的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
從左到右分別是輸入層,隱含層,輸出層。運(yùn)用BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行相關(guān)運(yùn)用的研究是主流趨勢(shì)。BP神經(jīng)網(wǎng)絡(luò)是多層前饋單向傳播網(wǎng)路,在上述的機(jī)構(gòu)基礎(chǔ)上,其隱含層可有多層,層與層之間實(shí)現(xiàn)全連接。但是同層之間沒(méi)有任何的連接。下一層的輸入受到上一層輸出的影響。網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程是由兩部分完成,首先是正向的學(xué)習(xí),由輸入層開(kāi)始向下傳播到輸出層,輸出層比較輸出結(jié)果能否到達(dá)預(yù)期效果。如不能就反向傳播,通過(guò)修改各層神經(jīng)元的權(quán)值到達(dá)輸入層,最后又正向傳播到輸入層。這樣反復(fù)的學(xué)習(xí),直到輸出結(jié)果到達(dá)預(yù)期結(jié)果學(xué)習(xí)過(guò)程結(jié)束。
2.2 MATLAB提供的主要神經(jīng)網(wǎng)絡(luò)函數(shù)
為實(shí)現(xiàn)各種網(wǎng)絡(luò)結(jié)構(gòu)的使用,MATLAB提供了大量的函數(shù)。根據(jù)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)高程擬合的流程(見(jiàn)后面討論)主要涉及以下各類(lèi)函數(shù)。
(1)數(shù)據(jù)輸入函數(shù),MATLAB可以讀取多種類(lèi)型的數(shù)據(jù)格式,比如:Excel文件,mat文件等。函數(shù)形式是xlsread('filename'),load('filename')。
(2)數(shù)據(jù)歸一化函數(shù),歸一化函數(shù)有 premnmx、postmnmx、tramnmx、restd、poststd、trastd幾種;premnmx函數(shù)用于將網(wǎng)絡(luò)的輸入數(shù)據(jù)進(jìn)行歸一化,歸一化后的數(shù)據(jù)將分布在[-1,1]區(qū)間內(nèi)。在訓(xùn)練網(wǎng)絡(luò)時(shí)如果所用的是經(jīng)過(guò)歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡(luò)時(shí)所用的測(cè)驗(yàn)數(shù)據(jù)也應(yīng)該用tramnmx進(jìn)行相同的處理。當(dāng)數(shù)據(jù)進(jìn)行歸一化處理后在結(jié)果中要的與原來(lái)數(shù)據(jù)相同的單位就必須進(jìn)行反歸一化處理。postmnmx是用來(lái)反premnmx的歸一化函數(shù)。
(3)網(wǎng)絡(luò)創(chuàng)建函數(shù),newelm、newff、newfftd、newgrnn、newhop、newpnn、newrb。newff是創(chuàng)建BP神經(jīng)網(wǎng)絡(luò)的函數(shù),也是最常用的函數(shù),其結(jié)構(gòu)為:newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF);PR表示經(jīng)歸一化后的輸入數(shù)據(jù),SN1網(wǎng)絡(luò)的層數(shù),TFi為轉(zhuǎn)換函數(shù),主要有tansig,logsig,purelin三種轉(zhuǎn)換函數(shù);BTF表示用于訓(xùn)練的函數(shù),主要有 rainlm,trainbfg,trainrp,traingd等等;BLF表示需要的學(xué)習(xí)權(quán)函數(shù) learngdm;PF表示性能函數(shù),主要有mse和msereg兩種。
(4)網(wǎng)絡(luò)參數(shù)設(shè)置,net.trainParam.show:設(shè)置顯示間隔;net.trainParam.lr:設(shè)置網(wǎng)絡(luò)學(xué)習(xí)速度;net.train-Param.mc:設(shè)置動(dòng)量系數(shù)net.trainParam.epochs設(shè)置訓(xùn)練單位時(shí)間;net.trainParam.goal設(shè)置目標(biāo)誤差。
(5)網(wǎng)絡(luò)初始函數(shù)init(net),一般采用默認(rèn)參數(shù)自動(dòng)初始就可以。
(6)網(wǎng)路訓(xùn)練函數(shù)train,用于對(duì)設(shè)定參數(shù)的網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
(7)網(wǎng)絡(luò)仿真函數(shù)a sim(net,PN).通過(guò)這些函數(shù)的使用可以實(shí)現(xiàn)高程擬合的Matlab仿真,并得到最后的擬合數(shù)據(jù)。
3.1 高程擬合數(shù)據(jù)處理流程
MATLAB高程擬合程序?qū)崿F(xiàn)的流程是:
(1)確定輸入矢量和目標(biāo)矢量。本文將已知數(shù)據(jù)中的坐標(biāo)數(shù)據(jù)作為輸入向量,對(duì)應(yīng)的正常高作為輸出向量,當(dāng)然也可以將高程異常作為輸出向量。注意輸出向量和輸入向量的列數(shù)必須相同。
(2)確定隱含層數(shù)目、各層神經(jīng)元個(gè)數(shù)、傳遞函數(shù)以及訓(xùn)練函數(shù)。這些對(duì)象對(duì)最后擬合的效果是有很大的影響。設(shè)計(jì)不好就會(huì)出現(xiàn)收斂效果不佳或收斂時(shí)間過(guò)長(zhǎng)等問(wèn)題,甚至有可能擬合出錯(cuò)(不能收斂)。
(3)對(duì)輸入輸出數(shù)據(jù)進(jìn)行歸一化處理。數(shù)據(jù)差距較大,為加快收斂速度須對(duì)數(shù)據(jù)做歸一化處理,有時(shí)也可以不用歸一化處理。待處理的擬合數(shù)據(jù)同樣需要相同的歸一處理,并在擬合完畢后進(jìn)行反歸一化處理才能得到待求數(shù)據(jù)結(jié)果正解。
(4)創(chuàng)建神經(jīng)網(wǎng)絡(luò)。利用上面提供的創(chuàng)建神經(jīng)網(wǎng)絡(luò)函數(shù)創(chuàng)建實(shí)際的神經(jīng)網(wǎng)絡(luò)。不同的網(wǎng)絡(luò)創(chuàng)建時(shí)的參數(shù)設(shè)置不一樣,要注意區(qū)別。一般采用newff和newfftd。
(5)網(wǎng)絡(luò)初始化。主要是設(shè)置權(quán)函數(shù),在高程擬合中可以采用系統(tǒng)默認(rèn)的參數(shù),可以不單獨(dú)初始化。
(6)網(wǎng)絡(luò)訓(xùn)練。通過(guò)訓(xùn)練函數(shù),根據(jù)預(yù)設(shè)的參數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
(7)網(wǎng)絡(luò)仿真。Sim函數(shù)是專(zhuān)門(mén)用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)仿真的,對(duì)輸入數(shù)據(jù)進(jìn)行仿真計(jì)算。
(8)求待擬合正常高。待求正常高的坐標(biāo)通過(guò)相同的歸一化處理采用仿真函數(shù)仿真,經(jīng)過(guò)反歸一處理得到擬合結(jié)果。
3.2 程序?qū)崿F(xiàn)
本文設(shè)計(jì)了一個(gè)3層神經(jīng)網(wǎng)絡(luò),一個(gè)輸入層,一個(gè)隱含層,一個(gè)輸出層。隱含層的神經(jīng)元數(shù)目選擇為10個(gè),輸入層輸入元素為(x,y),故設(shè)置兩個(gè)神經(jīng)元,輸出層只輸出高程,所以就只有一個(gè)神經(jīng)元。根據(jù)需要可以創(chuàng)建不同的神經(jīng)網(wǎng)絡(luò),在此以BP后向傳播網(wǎng)絡(luò)為例。具體的程序代碼如下:


根據(jù)某地區(qū)GPS控制網(wǎng)的部分?jǐn)?shù)據(jù),選擇了8個(gè)點(diǎn)樣本數(shù)據(jù),點(diǎn)號(hào)為1~8。9個(gè)點(diǎn)作為測(cè)試樣本集實(shí)驗(yàn)數(shù)據(jù),點(diǎn)號(hào)為9~17。采用BP神經(jīng)網(wǎng)絡(luò)擬合結(jié)果與二次曲面擬合結(jié)果進(jìn)行比較,精度評(píng)定采用均方誤差的方式。實(shí)驗(yàn)對(duì)比數(shù)據(jù)如表1所示。

實(shí)驗(yàn)數(shù)據(jù)(單位/m) 表1
通過(guò)表1可以明顯看出神經(jīng)網(wǎng)絡(luò)方法比二次曲面擬合法的效果要好很多。神經(jīng)網(wǎng)絡(luò)和二次曲面擬合的誤差最大點(diǎn)都為15號(hào)點(diǎn),而最小的點(diǎn)點(diǎn)號(hào)不同,分別為10和9號(hào)點(diǎn)。神經(jīng)網(wǎng)絡(luò)方法的均方誤差要比二次型小15倍左右,所以采用神經(jīng)網(wǎng)絡(luò)方法更符合實(shí)際情況,能夠取得更好的擬合效果。
通過(guò)上面的分析可以看出神經(jīng)網(wǎng)路的優(yōu)越性,盡管神經(jīng)網(wǎng)絡(luò)的原理要比二次型復(fù)雜,感覺(jué)更難于實(shí)現(xiàn)。在MATLAB強(qiáng)大的數(shù)學(xué)處理能力面前,這樣的問(wèn)題得到很好的解決。促進(jìn)了神經(jīng)網(wǎng)路在高程轉(zhuǎn)換中的應(yīng)用。本文選取的數(shù)據(jù)高程異常差不是太大,曲面比較的緩和,對(duì)于大區(qū)域的數(shù)據(jù)處理能否適用還需要深入研究。同時(shí)由于篇幅的限制,作者沒(méi)有對(duì)不同的神經(jīng)網(wǎng)絡(luò)模型以及不同參數(shù)條件下對(duì)結(jié)果影響的關(guān)系進(jìn)行分析。這些都是筆者需要進(jìn)一步深入研究的方面。
[1]徐紹銓?zhuān)瑥埲A海,楊志強(qiáng)等.GPS測(cè)量原理及應(yīng)用[M].武漢:武漢測(cè)繪科技大學(xué)出版社,1998
[2]楊明清,靳蕃,朱達(dá)成等.用神經(jīng)網(wǎng)絡(luò)方法轉(zhuǎn)換GPS高程[J].測(cè)繪學(xué)報(bào)1999(4)
[3]匡翠林.BP神經(jīng)網(wǎng)絡(luò)用于GPS高程轉(zhuǎn)換的網(wǎng)絡(luò)配置[J].測(cè)繪與空間地理信息2004,27(5)
[4]朱衛(wèi)東,李全海.基于標(biāo)準(zhǔn)化動(dòng)量BP神經(jīng)網(wǎng)絡(luò)的GPS高程轉(zhuǎn)換[J].大地測(cè)量與地球動(dòng)力學(xué),2010,(1)
[5]張秋昭,張書(shū)畢,劉軍.基于Bayesian正則化BP神經(jīng)網(wǎng)絡(luò)的GPS高程轉(zhuǎn)換[J].大地測(cè)量與地球動(dòng)力學(xué),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—),男,碩士,主要從事空間大地測(cè)量理論與數(shù)據(jù)處理研究。
四川省環(huán)境保護(hù)科技項(xiàng)目(2008HBY002)