崔 方,趙庶旭
(蘭州交通大學電子與信息工程學院,甘肅 蘭州 730070)
隨著GPS技術的發展和應用,越來越多的工程需要利用GPS來進行測量。GPS測量通常采用WGS-84空間直角坐標系統,然而我國的測繪生產普遍采用1954北京坐標系和1980西安坐標系[1],因此,在利用GPS作我國控制測量或工程測量時,為了適應測量的需求,就必須將GPS測量獲得的WGS-84坐標轉換到地方坐標系中去[2]。在GPS坐標轉換問題上,目前的研究成果有多種轉換模式,傳統的方法是采用坐標投影和七參數相似變換等,然而這些方法計算量大,過于復雜,會有一定的投影誤差,精度難以保證[3]。
為了更好地研究GPS坐標轉換問題,文獻[4]基于人工神經網絡所具有的高度非線性的信息處理能力,提出了一種新的坐標轉換方法,即設計出一種BP神經網絡進行GPS坐標轉換;文獻[5]提出了一種基于改進BP算法神經網絡的GPS坐標轉換方法。神經網絡方法在GPS高程轉換方面有較多研究,并取得了較好的結果[6]。這些研究成果雖然提高了轉換精度,但由于其使用的BP神經網絡屬于淺層模型,在面對巨大且復雜的GPS數據處理時,泛化能力受到限制,不能輕易地進行坐標轉換。
深度學習是近年來被提出的一種新的基于無監督特征學習的具有多個特征層次結構的機器學習方法。其主要思想是堆疊多個層,即該層的輸出作為下一層的輸入。通過采用自下而上地無監督逐層訓練來學習特征,再應用由上而下地有監督訓練來微調整個網絡參數[7]。面對巨大的GPS數據,深度學習架構可以有效地進行特征學習,進而實現其坐標的轉換。
本文利用深度學習對非結構化數據處理的優勢,提出一種新的基于卷積神經網絡(convolutional neural network,CNN)的坐標轉換方法,即利用卷積神經網絡能夠自動提取數據中的特征,根據最小化數據預處理要求的特點來進行GPS坐標轉換。試驗結果表明,該轉換方法與BP神經網絡相比取得了更加有效的精度。
卷積神經網絡模型最初是一種用于識別二維形狀的多層感知器,是常用的深度學習模型之一。CNN模型屬于層次模型,其典型結構主要包含輸入層、卷積層、池化層(又稱下采樣層)、全連接層及輸出層,通過這些層就構建出一個多層次的網絡模型[8]。
卷積神經網絡又是一種特殊的多層感知器模型,它對幾何變換、形變具有一定程度的不變性。它的結構特殊性主要體現在3個方面:①不同層中的各個神經元節點之間的稀疏連接;②同一層中的局部神經元節點之間的權值共享;③池采樣,對得到的特征信息進行降維。卷積神經網絡通過結合稀疏連接、權值共享、空間或時間上的池采樣能夠最小化對數據本身包含的局部特征的預處理要求,無監督地從數據中提取出有效特征,有良好的自學習能力和泛化能力[9-10]。
在標準BP神經網絡的結構中,層與層之間的各個神經元的節點都是相互全連接的。然而在卷積神經網絡的結構中,為了有效挖掘出圖像中興趣目標的局部空間關聯信息,使得網絡各層之間的神經元節點變成稀疏連接的形式[11],CNN利用神經網絡中相鄰層節點之間的局部空間相關性來表示網絡的連接模式,即局部連接(局部感知),連接方式如圖1所示。
由圖1可以看出,第k層的神經元節點在第k-1層中僅僅與它最為相近的幾個神經元節點連接。根據局部特征聯系較緊密,而距離較遠特征聯系較弱的原則,只需對局部信息進行感知,利用更高層將這些局部信息組合起來就可以得到全部信息,這就有效降低了神經網絡結構的參數規模[12]。
在CNN模型中,卷積層的每一個卷積濾波器在整個感受野中是重復疊加的,這些重復單元形成了一種特征圖(feature map),每一個特征圖都可以共享相同的參數,包括相同的權值矩陣和偏置向量,權值共享如圖2所示。
由圖2可以看出,第k層的特征數據包含了3個神經元節點,第k-1層的神經元節點與第k層神經元節點不同連接線之間的權值參數是共享的。使用改進之后的梯度下降法學習共享的權值參數,即所要學習的共享權值的梯度是所有共享連接參數的梯度之和[13]。權值共享的特點是無需考慮重復單元在感受野外的位置也可以檢測到局部特征并進行特征提取,且權值共享可以大大減少CNN模型需要訓練的參數數目。
目前在卷積神經網絡的研究中常用的池化方法是最大池采樣(max-pooling)、最小池采樣(min-pooling)及平均池采樣(average-pooling)方法。本文使用的池化方法是最大池采樣方法。池采樣是一種非線性的降采樣方法,能夠使得特征量減少,同時保持特征的局部不變性。
在獲取數據的卷積特征后,確定池化區域的大小,通過最大池采樣方法計算圖像區域的最大特征來獲取池化后的卷積特征[14],這樣不僅減少了卷積層輸出的特征向量,而且避免了過擬合現象。
利用卷積神經網絡對GPS數據進行建模時,直接將原始GPS數據輸入模型中容易造成CNN算法的發散,不能有效找出原始GPS數據中的特征規律。由于CNN應用較成功的是在圖像中,因此先將原始GPS數據轉化為非結構化圖片數據可提升CNN模型的精確度。
GPS數據的卷積神經網絡轉換方法的基本思想包括3步:首先,建立CNN模型結構;然后,建立CNN學習規則,利用原始樣本數據(即大地坐標系統的經度和緯度值)轉換的非結構化圖片數據作為網絡的輸入值,對網絡進行訓練;最后,通過訓練好的網絡得到輸出值(地方坐標系統的平面投影坐標值)。圖3給出了使用卷積神經網絡進行GPS數據轉換的基本結構圖。本文方法采用了4層相互交替的卷積層和最大池采樣層來進行逐層特征的提取工作,得到的矢量信息特征通過一個全連接的輸出層進行識別。在圖3所顯示的CNN基本結構中,C1i(i=1,2,…,m1)、C1j(j=1,2,…,m2)、…、C1k(k=1,2,…,m(n-1))分別表示卷積層L1,L3,…,Ln-1的卷積核;Input表示輸入的GPS坐標數據;Pool表示結構中每個池采樣層的采樣池;Map表示結構中逐層提取的特征子圖;Y表示最終的全連接輸出。
本文應用于GPS數據坐標轉換的卷積神經網絡的訓練算法主要包括4個步驟,可以分為兩個階段:
(1) 前向傳播階段分為:
a. 從非結構化圖片樣本數據集中取出一個樣本(X,Yp),將X值作為網絡的輸入。
b. 計算相對應的實際輸出Op,在此過程中,特征信息將從輸入層經過之后各層從低到高逐一變換來傳送到全連接層,即輸出層,該階段網絡中使用的計算表達式為
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
(1)
(2) 反向傳播階段分為:
a. 計算經過第一階段得出的輸出值Yp與樣本數據集中的實際輸出值Op的差。
b. 利用該差值,通過采用隨機梯度下降使誤差平方和函數值極小化,以此調整權值矩陣。
為了能夠更加清晰地闡述本文方法所采用的CNN的訓練過程,假設網絡的輸入層、中間各層和輸出層的單元數分別為N、L和M[15]。X=(x0,x1,…,xN)為加到網絡的輸入矢量,H=(h0,h1,…,hL)為中間層輸出矢量,Y=(y0,y1,…,yM)為網絡的實際輸出矢量,并且用D=(d0,d1,…,dM)表示訓練數據集合中各模式的目標輸出矢量。輸出單元i到隱藏單元j的權值為Vij,而隱藏單元j到輸出單元k的權值為Wjk。另外用θk和φj分別表示輸出單元和隱藏單元的閾值。中間層各單元的輸出為
(2)
輸出層各單元的輸出為

(3)
其中,f(*)為激勵函數,采用S型函數,即
(4)
在以上設置的條件下,本文方法的卷積神經網絡的訓練過程具體如下:
(1) 選定訓練集。從非結構化圖片樣本數據集中隨機選取2000個圖片樣本作為訓練集。
(2) 將以上提到的網絡中的各個權值Vij、Wjk和閾值θk、φj設置為相對于0來說較小的隨機值,以及初始化精度控制參數ε和學習率α。
(3) 從步驟(1)的訓練集中取出X作為網絡的輸入值,并給定它的目標輸出矢量值為D。
(4) 利用式(2)計算中間各層的輸出矢量值H,接著利用式(3)計算出該網絡學習到的實際輸出矢量值Y。
(5) 將步驟(4)中得到的輸出矢量值Y中的元素yk與步驟(3)中給定的對應目標矢量值D中的元素dk進行比較,計算得出M個輸出誤差項
δk=(dk-yk)yk(1-yk)
(5)
對中間各層的隱藏單元也計算得出L個誤差項

(6)
(6) 依次計算出網絡中各個權值參數的調整量
ΔWjk(n)=(α/(1+L))·(ΔWjk(n-1)+1)·δk·hj
(7)
ΔVij(n)=(α/(1+N))·(ΔVij(n-1)+1)·δk·hj
(8)
閾值參數的調整量為
Δθk(n)=(α/(1+L))·(Δθk(n-1)+1)·δk
(9)
Δφj(n)=(α/(1+L))·(Δφj(n-1)+1)·δj
(10)
(7) 根據各誤差項來調整權值參數
Wjk(n+1)=Wjk(n)+ΔWjk(n)
(11)
Vij(n+1)=Vij(n)+ΔVij(n)
(12)
調整閾值參數
θk(n+1)=θk(n)+Δθk(n)
(13)
φj(n+1)=φj(n)+Δφj(n)
(14)
(8) 當下標值k每次經歷從1~M后,就會自動判斷精度控制參數值是否滿足精度的要求:E≤ε,其中E是總誤差函數
(15)
如果不滿足此要求,就會返回到步驟(3),繼續進行迭代過程;如果滿足此要求就會進入下一步驟。
(9) 整個網絡的訓練過程結束,就可認為各個權值已經基本達到穩定狀態。在此還可將訓練好的各個權值和閾值保存在本地文件中,下一次進行網絡訓練時,可以直接從本地文件中導出各個權值和閾值進行訓練,無需再進行參數的初始化。
根據以上步驟,對應的簡單CNN訓練過程如圖4所示。
本文利用所研究的卷積神經網絡轉換方法對山東省淄博市張店區與臨淄區域內的GPS坐標數據進行仿真試驗,以驗證本文方法在研究GPS坐標轉換問題上的有效性。
本文選取淄博市內以張店區與臨淄區域為中心、經度范圍為113.52°E—118.28°E、緯度范圍為32.25°N—36.833°N區域內的2000個GPS點作為網絡訓練樣本集,1000個GPS點作為網絡測試樣本集。網絡的部分訓練樣本見表1。在開始訓練網絡之前,需要對訓練樣本集進行預處理,即將樣本集的輸入和輸出數據歸一化到[-1,1]。
本試驗構造了一個輸入為28×28像素的非結構化圖片、輸出為2個神經元的7層卷積神經網絡。網絡的輸入是將原始GPS點大地坐標系統的經緯度值轉化為28×28像素的非結構化數據集,輸出是1954北京坐標系的平面坐標。表2給出了CNN的結構參數,包括網絡中每一層的特征數、神經元數、卷積核尺寸和池采樣尺寸等。

表1 網絡的部分訓練樣本

表2 7層卷積神經網絡的結構參數
采用經過預處理方法選取的非結構化圖片樣本數據集對建立的7層CNN模型進行訓練和測試,完成GPS點的坐標轉換過程。圖5為坐標轉換的訓練總誤差E曲線。從圖5可以看出,整個網絡的訓練在迭代500次時,誤差值迅速下降,而在迭代2000次之后是一個平穩的收斂過程。
表3為分別采用傳統轉換方法、BP神經網絡、卷積神經網絡進行GPS坐標轉換的結果,可以看出本文使用的卷積神經網絡方法能夠建立坐標轉換的復雜模型,具有較高的轉換正確率。

表3 幾種方法的轉換結果比較 (%)
綜合以上試驗結果分析可以得出以下幾個結論:
(1) 卷積神經網絡方法可以模擬復雜的非線性變化關系,利用卷積神經網絡進行坐標轉換完全可行。
(2) 在卷積神經網絡訓練過程中,整個網絡的總體誤差曲線是快速且平穩下降的,體現出CNN的特征學習過程具有良好的收斂性。
(3) 根據平均轉換正確率的結果,與傳統方法及BP神經網絡轉換方法相比較,卷積神經網絡能夠達到更深的特征學習,即在GPS數據轉換時能夠得到更高的正確率,轉換效果更好。
本文提出了一種應用卷積神經網絡模型的GPS坐標轉換方法,將原始GPS坐標數據轉化為非結構化圖片數據,利用卷積神經網絡模型對非結構化圖片數據進行特征學習,從而提取出GPS數據的內在特征并進行坐標轉換。實測GPS數據驗證的結果表明,本文所提出的基于卷積神經網絡的GPS坐標轉換方法取得了良好的轉換效果,預測精度高,是一種有效的GPS坐標轉換方法。但由于卷積神經網絡的良好表現受限于自身的監督式訓練,再加上實際采集到的原始GPS數據中存在著較為嚴重的背景干擾,導致GPS坐標轉換的精度降低。因此,如何降低干擾并設計出更加合理的網絡結構以提高網絡的通用性和穩健性,是下一步值得研究的內容。