宋斌斌,余 敏,何肖娜,薛 峰 ,阮 超
(1.江西師范大學 軟件學院,南昌 330022;2.江西師范大學 計算機信息工程學院,南昌 330022)
基于位置的服務(location based services,LBS)需求呈爆發式增長,對于空曠的室外環境,如知名的全球定位系統(global positioning system,GPS)、蓬勃發展的北斗衛星導航系統(BeiDou navigation satellite system,BDS)等都能為用戶提供較好的米級位置服務,解決在復雜的道路上導航定位的問題[1]。然而有研究表明,人們大約有80 %的時間處于室內環境,但受制于技術、成本等各方面因素,室內定位沒有被大范圍地應用。目前,國內外學者提出了基于無線保真(wireless fidelity,WiFi)、藍牙、紅外線、射頻識別、超聲波、超寬帶等室內定位技術及應用系統[2],綜合考慮部署成本和定位精度等因素,其中基于WiFi的室內定位技術應用前景最為廣泛[3]。但另一方面,由于軟硬件異構,同一位置不同手機的WiFi觀測量存在差異,這已經被認為是影響定位系統性能的關鍵因素。當離線建庫和在線定位使用的為同一型號手機時,往往能得到較為滿意的定位精度;但其他型號手機進入該定位環境時,由于觀測量差異會造成定位精度損失,為了讓各型號手機適應原位置指紋數據庫進行定位時獲得更高的定位精度,就需對不同型號手機的WiFi進行標定,標定的本質是為了使用戶設備和參考設備在同一位置接收的觀測量近似。
對于WiFi標定問題,目前國內外學者研究的重點都是圍繞基于接收信號強度指示(received signal strength indicator,RSSI)數據處理的方法使不同設備間形成對應的關系,這類方法的原理是基于不同設備間的RSSI值存在著一種映射關系的事實,并且已經被許多研究和實驗所證實。文獻[4]在2013年提出先驗知識對RSSI值進行校正的方法,采集較少的數據利用不同的映射表進行標定;文獻[5]提出多任務學習和貝葉斯優化的方法進行設備標定;文獻[6]提出利用線性回歸分析對設備進行標定的可能性。雖然上述方法都能取得一定的效果,但是并不能得到較為滿意的映射模型。本文提出一種使用反向傳播(back propagation,BP)神經網絡的WiFi標定方法,通過神經網絡反復訓練使得用戶設備的預期值與參考設備的真實值接近,當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,得到較為穩定的標定模型,即完成標定,利用該標定模型可以對不同型號手機的觀測量進行校正。該標定方法可以有效降低手機軟硬件異構對定位精度的影響。

基于歐式距離平均值的離群點檢測算法可以描述如下:
1)給定參數k,求點p和k個離其最近臨近點的歐式距離之和為
(1)
式中:(x,y)為點p的坐標;(xa,yb)為其余點的坐標,a=1,2,…,k,b=1,2,…,k。
(2)

初始的數據對可通過上述的離群點檢測算法為后續的BP神經網絡訓練提供純凈的數據對。
BP神經網絡(neural networks,BPNN)即按照誤差反向傳播算法訓練的神經網絡,由正向傳播過程和誤差反向傳播過程2個部分組成[8-9]。核心原理是:輸入數據集,通過正向傳播的多層前饋網絡確定正向傳播過程的輸出值,在此過程中各層的權值和偏向值都是隨機生成。得到輸出值與真實值進行誤差分析,使用誤差的反向傳播算法對網絡各層的權值和偏向值進行反復更新,使輸出值盡可能接近真實值。當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,確定較為穩定的網絡模型,即完成標定。BP神經網絡模型如圖1所示,包括輸入層、隱藏層和輸出層,隱藏層又包括單層或者多層。

圖1 BP神經網絡
圖1中:xi(i=1,2,…,n)表示為輸入信號;wij代表從神經元j到神經元i的權值,也稱為第j個輸入鏈上的權值;yj(j=1,2,…,n)為神經元的最終輸出信號[10]。
1)經過離群檢測算法處理后的數據輸入到BP神經網絡進行訓練,每個輸入單元信號分別乘以當前的權值求和,再加偏向值,最后通過非線性激勵函數轉換可得到輸出信號。整個正向傳播過程各層的權值和偏向值都是隨機生成,只有在誤差的反向傳播過程中才會反復更新權值和偏向值。每個單元都稱為神經節點,每一層都有權值和偏向值。計算式為
(3)
式中:Oi是輸入值;Wij是代表從神經元j到神經元i的權值;Θj是偏向值;Ij是凈輸入值。
2)在輸出之前需要進行非線性的轉換。本文非線性激勵函數使用的是sigmoid函數。計算式為
(4)
式中Oj是輸出值。如果含有多層隱藏層,當前輸出值也是下一層的輸入值。
1)對網絡正向過程的輸出值與真實值之間的誤差進行分析,根據誤差反向傳播算法更新權值和偏向值。輸出層中的誤差值計算式為
Ej=Oj(1-Oj)(Tj-Oj)
(5)
式中:Ej是輸出層誤差值;Tj是真實值。
2)獲取最后一層誤差值后再按照逐層反傳計算所有層的誤差,即在各層隱藏層中利用輸出層的誤差來計算上一層的誤差,再使用這個新誤差來估計更上一層的誤差,直到反傳到最上一層,通過這種方法即可得到所有層誤差估計[11]。計算式為
(6)

3)根據梯度下降法則更新權值,利用神經元j上的輸出誤差和神經元i上的輸入信號以及學習率更新權值。權值參數需要不斷進行調整直到輸出值和真實值近似。計算式為
ΔWij=(l)EjOi
(7)
Wij=Wij+ΔWij
(8)
式中:ΔWij是更新權值;l是學習率。當前的權值加上更新的權值得到更新后的權值。學習率其值在0和1之間,可以用來控制每次循環時的調整量。若l接近0,則新的權值受上一個權值的影響最大,相應的,若l接近1,那么新權值主要對現階段循環中的調整量會更敏感。在某種情況下,可以使用一個自適應的l值,l在前幾次循環時值相對較大,而在接下來的循環中逐漸減少。學習率實際和信號分析里的時間常數是一樣的,學習率越小學習會越精細,但同時學習速度也會降低,因為現實中很多模型都是非線性的。學習速率對梯度下降算法的性能影響非常大,如果學習速率設置太高,算法起伏震蕩變得很不穩定,反之,算法需要較長的時間來收斂。在還沒有進行訓練的時候,則沒有辦法確定最優的學習速率,也沒必要,而且在實際訓練時,隨著訓練的不斷進行,最優的學習速率也是改變的。本文使用學習率自適應調節方法:若相比上一次迭代誤差值減少,則以5 %的幅度增大學習率;若相比上一次迭代誤差值增大,則重新設置上一輪迭代的值,同時把學習率調整到之前的50 %。
4)根據梯度下降法則更新偏向值,利用神經元j上的輸出誤差和學習率更新偏向值。計算式為
ΔΘj=(l)Ej
(9)
Θj=Θj+ΔΘj
(10)
式中ΔΘj是更新偏向值。當前的偏向加上更新的偏向值得到更新后的偏向值。
BP神經網絡最重要的是誤差反向傳播算法:利用梯度下降法使誤差在反向傳播過程中逐層減少,經過層層傳遞之后將變得更小;當誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,即可確定出較為穩定網絡模型。
標定總體流程可描述如下:
首先獲取不同手機在各采樣點處RSSI值,形成數據對(RSSIhuaweid,RSSIgloryd)(d=1,2,…,n),然后對數據對進行離群點檢測處理獲得相對純凈的數據對,輸入到BP神經網絡中,根據BP神經網絡訓練數據實時更新網絡中權值和偏向值。最后當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,確定較為穩定的標定模型,即完成標定,否則就需要一直訓練,流程如圖2所示。

圖2 WiFi標定流程
為驗證本文提出的標定方法的有效性,在江西師范大學青山湖校區進行了位置指紋定位實驗。將實驗區域劃分成若干0.8 m×0.8 m的矩形網格,各網格頂點設定為采樣點。使用華為Mate8(參考設備)和華為榮耀6(用戶設備)在每一個采樣點采集50組RSSI樣本值并做均值處理,共采集120組數據對。使用離群點檢測算法剔除數據對中的離群點。圖3是對數據進行離群點檢測的效果圖,數據中圓圈標注的即是離群點,剔除離群點可以降低數據對定位精度的影響。

圖3 離群點檢測
為對比分析,接下來分別采用基于最小二乘法的線性標定方法和使用BP神經網絡的非線性標定方法進行WiFi標定。圖4為使用最小二乘法進行線性標定的效果圖,圖5為使用BP神經網絡進行非線性標定的效果圖。

圖4 最小二乘標定法

圖5 BP神經網絡標定法
圖4中的直線為最小二乘法擬合得到參考設備與用戶設備的RSSI數據對的函數關系,圖5的曲線為BP神經網絡訓練得到參考設備與用戶設備的RSSI數據對的函數關系。為分析BP神經網絡標定方法的有效性,進一步使用2種方法標定得到的RSSI數據對關系模型,對用戶設備在線定位階段實時RSSI數據進行校正,利用校正后的數據進行WiFi指紋定位實驗。表1分別為使用最小二乘法線性和使用BP神經網絡非線性標定后的定位精度。對比現有的線性標定方法和未標定的移動設備,定位精度分別提高了22.29 %和39.72 %。因此,相比最小二乘法線性標定方法而言,本文提出的使用BP神經網絡的WiFi非線性標定方法能更準確地描述不同設備的RSSI數據對的函數關系,有效減小設備軟硬件異構性導致的定位誤差。

表1 WiFi標定后定位精度差異 m
本文提出使用BP神經網絡的WiFi標定方法來解決軟硬件異構導致定位精度損失的問題。先使用離群點檢測算法對不同手機在各采樣點處的RSSI數據對進行處理,獲得相對純凈的數據對,然后運用BP神經網絡對不同手機的RSSI樣本進行訓練,建立穩定的非線性標定模型,最后利用該模型對各型號手機WiFi觀測量進行校正,獲得更為精確的觀測量數據用于定位。通過實驗對比現有的線性標定方法和未標定的移動設備,定位精度分別提高了22.29 %和39.72 %。值得注意的是本文使用的BP神經網絡為三層感知器網絡,具有接近任何非線性的能力,下一步需要解決的是確定合適的隱藏層層數,使得訓練模型能夠迅速趨于穩定,因為隱藏層過多會導致網絡出現過擬合,太少會使得網絡欠擬合。