宋斌斌,余 敏,何肖娜,薛 峰 ,阮 超
(1.江西師范大學 軟件學院,南昌 330022;2.江西師范大學 計算機信息工程學院,南昌 330022)
基于位置的服務(location based services,LBS)需求呈爆發(fā)式增長,對于空曠的室外環(huán)境,如知名的全球定位系統(tǒng)(global positioning system,GPS)、蓬勃發(fā)展的北斗衛(wèi)星導航系統(tǒng)(BeiDou navigation satellite system,BDS)等都能為用戶提供較好的米級位置服務,解決在復雜的道路上導航定位的問題[1]。然而有研究表明,人們大約有80 %的時間處于室內(nèi)環(huán)境,但受制于技術、成本等各方面因素,室內(nèi)定位沒有被大范圍地應用。目前,國內(nèi)外學者提出了基于無線保真(wireless fidelity,WiFi)、藍牙、紅外線、射頻識別、超聲波、超寬帶等室內(nèi)定位技術及應用系統(tǒng)[2],綜合考慮部署成本和定位精度等因素,其中基于WiFi的室內(nèi)定位技術應用前景最為廣泛[3]。但另一方面,由于軟硬件異構,同一位置不同手機的WiFi觀測量存在差異,這已經(jīng)被認為是影響定位系統(tǒng)性能的關鍵因素。當離線建庫和在線定位使用的為同一型號手機時,往往能得到較為滿意的定位精度;但其他型號手機進入該定位環(huán)境時,由于觀測量差異會造成定位精度損失,為了讓各型號手機適應原位置指紋數(shù)據(jù)庫進行定位時獲得更高的定位精度,就需對不同型號手機的WiFi進行標定,標定的本質(zhì)是為了使用戶設備和參考設備在同一位置接收的觀測量近似。
對于WiFi標定問題,目前國內(nèi)外學者研究的重點都是圍繞基于接收信號強度指示(received signal strength indicator,RSSI)數(shù)據(jù)處理的方法使不同設備間形成對應的關系,這類方法的原理是基于不同設備間的RSSI值存在著一種映射關系的事實,并且已經(jīng)被許多研究和實驗所證實。文獻[4]在2013年提出先驗知識對RSSI值進行校正的方法,采集較少的數(shù)據(jù)利用不同的映射表進行標定;文獻[5]提出多任務學習和貝葉斯優(yōu)化的方法進行設備標定;文獻[6]提出利用線性回歸分析對設備進行標定的可能性。雖然上述方法都能取得一定的效果,但是并不能得到較為滿意的映射模型。本文提出一種使用反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡的WiFi標定方法,通過神經(jīng)網(wǎng)絡反復訓練使得用戶設備的預期值與參考設備的真實值接近,當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,得到較為穩(wěn)定的標定模型,即完成標定,利用該標定模型可以對不同型號手機的觀測量進行校正。該標定方法可以有效降低手機軟硬件異構對定位精度的影響。
基于歐式距離平均值的離群點檢測算法可以描述如下:
1)給定參數(shù)k,求點p和k個離其最近臨近點的歐式距離之和為
(1)
式中:(x,y)為點p的坐標;(xa,yb)為其余點的坐標,a=1,2,…,k,b=1,2,…,k。
(2)
初始的數(shù)據(jù)對可通過上述的離群點檢測算法為后續(xù)的BP神經(jīng)網(wǎng)絡訓練提供純凈的數(shù)據(jù)對。
BP神經(jīng)網(wǎng)絡(neural networks,BPNN)即按照誤差反向傳播算法訓練的神經(jīng)網(wǎng)絡,由正向傳播過程和誤差反向傳播過程2個部分組成[8-9]。核心原理是:輸入數(shù)據(jù)集,通過正向傳播的多層前饋網(wǎng)絡確定正向傳播過程的輸出值,在此過程中各層的權值和偏向值都是隨機生成。得到輸出值與真實值進行誤差分析,使用誤差的反向傳播算法對網(wǎng)絡各層的權值和偏向值進行反復更新,使輸出值盡可能接近真實值。當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,確定較為穩(wěn)定的網(wǎng)絡模型,即完成標定。BP神經(jīng)網(wǎng)絡模型如圖1所示,包括輸入層、隱藏層和輸出層,隱藏層又包括單層或者多層。
圖1 BP神經(jīng)網(wǎng)絡
圖1中:xi(i=1,2,…,n)表示為輸入信號;wij代表從神經(jīng)元j到神經(jīng)元i的權值,也稱為第j個輸入鏈上的權值;yj(j=1,2,…,n)為神經(jīng)元的最終輸出信號[10]。
1)經(jīng)過離群檢測算法處理后的數(shù)據(jù)輸入到BP神經(jīng)網(wǎng)絡進行訓練,每個輸入單元信號分別乘以當前的權值求和,再加偏向值,最后通過非線性激勵函數(shù)轉換可得到輸出信號。整個正向傳播過程各層的權值和偏向值都是隨機生成,只有在誤差的反向傳播過程中才會反復更新權值和偏向值。每個單元都稱為神經(jīng)節(jié)點,每一層都有權值和偏向值。計算式為
(3)
式中:Oi是輸入值;Wij是代表從神經(jīng)元j到神經(jīng)元i的權值;Θj是偏向值;Ij是凈輸入值。
2)在輸出之前需要進行非線性的轉換。本文非線性激勵函數(shù)使用的是sigmoid函數(shù)。計算式為
(4)
式中Oj是輸出值。如果含有多層隱藏層,當前輸出值也是下一層的輸入值。
1)對網(wǎng)絡正向過程的輸出值與真實值之間的誤差進行分析,根據(jù)誤差反向傳播算法更新權值和偏向值。輸出層中的誤差值計算式為
Ej=Oj(1-Oj)(Tj-Oj)
(5)
式中:Ej是輸出層誤差值;Tj是真實值。
2)獲取最后一層誤差值后再按照逐層反傳計算所有層的誤差,即在各層隱藏層中利用輸出層的誤差來計算上一層的誤差,再使用這個新誤差來估計更上一層的誤差,直到反傳到最上一層,通過這種方法即可得到所有層誤差估計[11]。計算式為
(6)
3)根據(jù)梯度下降法則更新權值,利用神經(jīng)元j上的輸出誤差和神經(jīng)元i上的輸入信號以及學習率更新權值。權值參數(shù)需要不斷進行調(diào)整直到輸出值和真實值近似。計算式為
ΔWij=(l)EjOi
(7)
Wij=Wij+ΔWij
(8)
式中:ΔWij是更新權值;l是學習率。當前的權值加上更新的權值得到更新后的權值。學習率其值在0和1之間,可以用來控制每次循環(huán)時的調(diào)整量。若l接近0,則新的權值受上一個權值的影響最大,相應的,若l接近1,那么新權值主要對現(xiàn)階段循環(huán)中的調(diào)整量會更敏感。在某種情況下,可以使用一個自適應的l值,l在前幾次循環(huán)時值相對較大,而在接下來的循環(huán)中逐漸減少。學習率實際和信號分析里的時間常數(shù)是一樣的,學習率越小學習會越精細,但同時學習速度也會降低,因為現(xiàn)實中很多模型都是非線性的。學習速率對梯度下降算法的性能影響非常大,如果學習速率設置太高,算法起伏震蕩變得很不穩(wěn)定,反之,算法需要較長的時間來收斂。在還沒有進行訓練的時候,則沒有辦法確定最優(yōu)的學習速率,也沒必要,而且在實際訓練時,隨著訓練的不斷進行,最優(yōu)的學習速率也是改變的。本文使用學習率自適應調(diào)節(jié)方法:若相比上一次迭代誤差值減少,則以5 %的幅度增大學習率;若相比上一次迭代誤差值增大,則重新設置上一輪迭代的值,同時把學習率調(diào)整到之前的50 %。
4)根據(jù)梯度下降法則更新偏向值,利用神經(jīng)元j上的輸出誤差和學習率更新偏向值。計算式為
ΔΘj=(l)Ej
(9)
Θj=Θj+ΔΘj
(10)
式中ΔΘj是更新偏向值。當前的偏向加上更新的偏向值得到更新后的偏向值。
BP神經(jīng)網(wǎng)絡最重要的是誤差反向傳播算法:利用梯度下降法使誤差在反向傳播過程中逐層減少,經(jīng)過層層傳遞之后將變得更?。划斦`差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,即可確定出較為穩(wěn)定網(wǎng)絡模型。
標定總體流程可描述如下:
首先獲取不同手機在各采樣點處RSSI值,形成數(shù)據(jù)對(RSSIhuaweid,RSSIgloryd)(d=1,2,…,n),然后對數(shù)據(jù)對進行離群點檢測處理獲得相對純凈的數(shù)據(jù)對,輸入到BP神經(jīng)網(wǎng)絡中,根據(jù)BP神經(jīng)網(wǎng)絡訓練數(shù)據(jù)實時更新網(wǎng)絡中權值和偏向值。最后當輸出層誤差的平方和小于閾值時則訓練完成,保存各層的權值和偏向值,確定較為穩(wěn)定的標定模型,即完成標定,否則就需要一直訓練,流程如圖2所示。
圖2 WiFi標定流程
為驗證本文提出的標定方法的有效性,在江西師范大學青山湖校區(qū)進行了位置指紋定位實驗。將實驗區(qū)域劃分成若干0.8 m×0.8 m的矩形網(wǎng)格,各網(wǎng)格頂點設定為采樣點。使用華為Mate8(參考設備)和華為榮耀6(用戶設備)在每一個采樣點采集50組RSSI樣本值并做均值處理,共采集120組數(shù)據(jù)對。使用離群點檢測算法剔除數(shù)據(jù)對中的離群點。圖3是對數(shù)據(jù)進行離群點檢測的效果圖,數(shù)據(jù)中圓圈標注的即是離群點,剔除離群點可以降低數(shù)據(jù)對定位精度的影響。
圖3 離群點檢測
為對比分析,接下來分別采用基于最小二乘法的線性標定方法和使用BP神經(jīng)網(wǎng)絡的非線性標定方法進行WiFi標定。圖4為使用最小二乘法進行線性標定的效果圖,圖5為使用BP神經(jīng)網(wǎng)絡進行非線性標定的效果圖。
圖4 最小二乘標定法
圖5 BP神經(jīng)網(wǎng)絡標定法
圖4中的直線為最小二乘法擬合得到參考設備與用戶設備的RSSI數(shù)據(jù)對的函數(shù)關系,圖5的曲線為BP神經(jīng)網(wǎng)絡訓練得到參考設備與用戶設備的RSSI數(shù)據(jù)對的函數(shù)關系。為分析BP神經(jīng)網(wǎng)絡標定方法的有效性,進一步使用2種方法標定得到的RSSI數(shù)據(jù)對關系模型,對用戶設備在線定位階段實時RSSI數(shù)據(jù)進行校正,利用校正后的數(shù)據(jù)進行WiFi指紋定位實驗。表1分別為使用最小二乘法線性和使用BP神經(jīng)網(wǎng)絡非線性標定后的定位精度。對比現(xiàn)有的線性標定方法和未標定的移動設備,定位精度分別提高了22.29 %和39.72 %。因此,相比最小二乘法線性標定方法而言,本文提出的使用BP神經(jīng)網(wǎng)絡的WiFi非線性標定方法能更準確地描述不同設備的RSSI數(shù)據(jù)對的函數(shù)關系,有效減小設備軟硬件異構性導致的定位誤差。
表1 WiFi標定后定位精度差異 m
本文提出使用BP神經(jīng)網(wǎng)絡的WiFi標定方法來解決軟硬件異構導致定位精度損失的問題。先使用離群點檢測算法對不同手機在各采樣點處的RSSI數(shù)據(jù)對進行處理,獲得相對純凈的數(shù)據(jù)對,然后運用BP神經(jīng)網(wǎng)絡對不同手機的RSSI樣本進行訓練,建立穩(wěn)定的非線性標定模型,最后利用該模型對各型號手機WiFi觀測量進行校正,獲得更為精確的觀測量數(shù)據(jù)用于定位。通過實驗對比現(xiàn)有的線性標定方法和未標定的移動設備,定位精度分別提高了22.29 %和39.72 %。值得注意的是本文使用的BP神經(jīng)網(wǎng)絡為三層感知器網(wǎng)絡,具有接近任何非線性的能力,下一步需要解決的是確定合適的隱藏層層數(shù),使得訓練模型能夠迅速趨于穩(wěn)定,因為隱藏層過多會導致網(wǎng)絡出現(xiàn)過擬合,太少會使得網(wǎng)絡欠擬合。