楊伊璇
(廣東電網(wǎng)有限責(zé)任公司,廣東廣州 510520)
移動電話通過安裝WiFi設(shè)備,可實現(xiàn)基于WiFi的室內(nèi)定位,進(jìn)而估計用戶位置[1-2]。然而,并非所有移動電話都安裝了WiFi芯片。此外,為了提高WiFi室內(nèi)定位精度,研究者通過在移動電話上安裝其他慣性傳感器,如加速計、壓力傳感器、陀螺儀[3-4]。但是,安裝這些傳感器加大了移動電話成本,并且這些傳感器往往只安裝于高端電話。
此外,在很多地方,沒有WiFi信號,只有蜂窩信號。因此,利用蜂窩信號估計用戶位置受到關(guān)注。基于蜂窩信號用戶定位過程分為離線階段和在線階段。在離線階段:移動電話從不同信號塔獲取接收信號強(qiáng)度(Received Signal Strength, RSS),且這些信號塔位置已知,進(jìn)而構(gòu)成“指紋”;然后進(jìn)入在線階段,監(jiān)聽移動電話信號,再依據(jù)移動電話信號,在指紋中尋找最佳的位置匹配,進(jìn)而獲取用戶位置。
然而,當(dāng)前的基于蜂窩的室內(nèi)定位方案可分為兩類:(1)傳統(tǒng)的分類器,如SVM[5]、KNN[6],學(xué)習(xí)RSS的模型,(2)采用概率技術(shù)[7-9]。但是,傳統(tǒng)的機(jī)器學(xué)習(xí)并不能有效地處理無線信道的噪聲。而概率技術(shù)能夠有效處理無線信號噪聲。然而,這些基于概率技術(shù)方案是假定來自信號塔的不同信號是相互獨(dú)立的,這容易形成粗粒度的精度。
為此,提出基于深度學(xué)習(xí)的室內(nèi)定位(Deep Learning-based Cellular Signal Indoor localization, DLCS)算法。DLCS算法先建立深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)模型,然后DNN模型學(xué)習(xí)來自不同信號塔的RSS與移動電話位置間的非線性的關(guān)系。具體而言,在離線階段,將來自不同信號塔的RSS信號用于訓(xùn)練DNN模型;在在線階段,用戶自由移動,獲取來自RSS信號,再將這些信號反饋給DNN模型,進(jìn)而估計用戶位置。
為了獲取高的定位精度和強(qiáng)健定位,DLCS算法需要應(yīng)對多項挑戰(zhàn),訓(xùn)練數(shù)據(jù)的噪聲處理、數(shù)據(jù)開銷的控制、避免訓(xùn)練數(shù)據(jù)的過擬合。為此,DLCS算法引用新的數(shù)據(jù)增廣算法,提升DNN的輸入數(shù)據(jù)容量,同時引用異常檢測方案和模型正規(guī)化技術(shù)避免過似合。
在二維監(jiān)測區(qū)域內(nèi)部署m個信號塔,并由m個信號塔監(jiān)聽整個監(jiān)測區(qū)域。為了降低開銷,將監(jiān)測區(qū)域進(jìn)行網(wǎng)格化。每個網(wǎng)格的邊長為dr。并在所有網(wǎng)格內(nèi)部署n個參考點。
在離線階段,對n個參考點的信號進(jìn)行抽樣,將這些抽樣數(shù)據(jù)構(gòu)成訓(xùn)練數(shù)據(jù)。為此,用戶利用自己的移動電話掃描周圍信號塔,進(jìn)而獲取信號RSS值。對于第i個信號塔,系統(tǒng)記錄它的二元信息c=
整個DLCS算法由離線階段和在線階段構(gòu)成,如圖1所示。在離線階段,收集訓(xùn)練數(shù)據(jù),形成模型。主要由訓(xùn)練數(shù)據(jù)收集、預(yù)處理、數(shù)據(jù)增廣和模型產(chǎn)生構(gòu)成。
圖1 系統(tǒng)模型
在在線階段中,依據(jù)已訓(xùn)練的模型,根據(jù)所接收的RSS值,進(jìn)行位置匹配,獲取用戶位置。主要由RSS收集、預(yù)處理、在線預(yù)測和定位構(gòu)成。
離線階段和在線階段均需進(jìn)行預(yù)處理操作。通過預(yù)處理操作,將輸入的掃描數(shù)據(jù)進(jìn)行規(guī)范化處理。具體而言,由于無線信道的噪聲,用戶并不能掃描到所有信號塔。為了構(gòu)建連續(xù)的信號塔輸入集,預(yù)處理將所掃描的數(shù)據(jù)進(jìn)行擴(kuò)展成一個矢量s:
s=(s1,s2,…,sm)
(1)
若用戶沒有掃描到某信號塔,則該信號塔所對應(yīng)的RSS值為零。為了提高模型的收斂時間,將所有RSS值歸化為0至1的數(shù)。
相比于傳統(tǒng)的機(jī)器學(xué)習(xí),深度學(xué)習(xí)模型在捕獲不同信號塔間的RSS值的非線性關(guān)系方面具有明顯的優(yōu)勢。然而,為了獲取此非線性關(guān)系,需要大量訓(xùn)練數(shù)據(jù),這可能極大地增加了訓(xùn)練開銷。而數(shù)據(jù)增廣對數(shù)據(jù)進(jìn)行對稱訓(xùn)練抽樣,即增加了訓(xùn)練數(shù)據(jù)尺寸,又控制了數(shù)據(jù)訓(xùn)練開銷。
為此,DLCS算法采用隨機(jī)增廣策略。其先隨機(jī)產(chǎn)生二值矩陣,然后再將其與RSS矢量相乘,進(jìn)而丟棄一些信號塔的信號值。這與事實相符:用戶可能沒有接收到一些信號塔的RSS值。
例如,如圖2所示。原始的RSS值為{0.15 0.5 0.8 0.2},并將其與隨機(jī)產(chǎn)生的矩陣相乘,可得合成的抽樣值。
圖2 基于RSS的隨機(jī)增廣策略
DNN的一個主要優(yōu)勢就是它能夠以層次分布形式表征模型的輸入數(shù)據(jù)[10]。因此,可利用DNN處理蜂窩數(shù)據(jù)。
引用如圖3所示DNN結(jié)構(gòu)。DNN的輸入層為長度為m的矢量m=(RSS1,RSS2,…,RSSm)。中間有四個隱藏層,它們屬于非線性處理單元。同時,引用校正線性單元(Rectified Linear Units, ReLUs)作為隱藏層的激活函數(shù),進(jìn)而減少梯度消息問題[11]。
圖3 DNN網(wǎng)絡(luò)結(jié)構(gòu)
輸出層由n個單元構(gòu)成,其對應(yīng)到在離線階段所設(shè)的參考點數(shù)。輸出問題屬于分類問題。為此,引用softmax函數(shù)。
具體而言,假定有t個訓(xùn)練抽樣數(shù)據(jù),每項記錄sj包含了m個特征(si1,si2,…,sim),且1≤j≤t。(si1,si2,…,sim)表示來自m個信號塔的RSS值。將輸入sj值進(jìn)行離散化,即aj=(aj1,aj2,…,ajn)。aj蘊(yùn)含了n個參考點成為估計點的可能性。為此,softmax函數(shù)將此可能性轉(zhuǎn)化為概率:
(2)
此外,為了增加模型強(qiáng)健性,并控制過似合現(xiàn)象,引用丟棄正則化(Dropout Regularization, DR)[12]。通過DR防止在訓(xùn)練階段,數(shù)據(jù)間的彼此的相互依賴。DR策略在訓(xùn)練階段,隨機(jī)地將神經(jīng)元從DNN中移除,如圖3所示。移除的神經(jīng)元不再參與前向或反向過程。
假定用戶在未知位置u,從周圍的信號塔接收了蜂窩信號[13]。在線預(yù)測階段就是通過這些信號的RSS值(矢量s)估計u的位置。即u最可能出現(xiàn)在哪個參考點。將具有最大概率的參考點r*作為u的位置,如式(3)所示:
(3)
DLCS算法通過DNN的softmax層輸出概率,進(jìn)而估計用戶位置。注意了,相比于傳統(tǒng)的概率技術(shù)[7-9], DLCS算法并沒假定信號塔間的相互獨(dú)立,而是通過DNN模型捕獲不同信號塔間的相關(guān)性。
令P=[P1,P2,…,Pn]表示監(jiān)測區(qū)域內(nèi)n個參考點作為用戶位置的概率。即Pi(1≤i≤n)表示來自第i個參考點的信號強(qiáng)度s的概率,如式(4)所示:
Pi=P(ri|s)
(4)
將具有最高概率的參考點作為用戶的估計位置。然而,使用該策略,估計的位置只是離散參考點的某一個。因此,為了能夠在連續(xù)空間里跟蹤用戶,引用空間權(quán)值平均(Spatial Weighted Average, SWA)策略。將最可能的k個參考點的中心位置作為用戶估計位置,再依據(jù)softmax函數(shù)[14]估計各參考點的權(quán)值系數(shù):
(5)
式(5)僅通過單一抽樣值(一個RSS矢量)估計用戶位置。然而,通常,蜂窩數(shù)據(jù)的掃描率遠(yuǎn)大于用戶的移動率。因此,DLCS算法利用多個連續(xù)抽樣值進(jìn)一步估計位置,進(jìn)而提高位置估計的精度。DLCS算法引用兩個位置修正策略:抽樣丟棄(Sample Rejection, SR)策略和質(zhì)心(Centroid)策略。
2.5.1SR策略
SR策略通過丟棄異常位置估計值,提高位置估計精度。為此,先計算每個估計位置值與剩余所報告的位置?間的距離,將其稱為間距di:
(6)
其中d(i,j)表示i與j間的歐式距離。
然后,再計算平均間距davg,再排除不滿足di≤davg的樣值[15]。最后,將剩余的樣值的均值作為用戶位置的估計值。
2.5.2Centroid策略
Centroid策略的思想:每個估計位置的權(quán)值正比于該估計位置的最大softmax可能性:
(7)
為了更好地分析DLCS算法在室內(nèi)環(huán)境的性能,選擇典型的室內(nèi)環(huán)境進(jìn)行實驗。具體而言,考慮11 m×12 m校園辦公室,如圖4所示,其包含會議室,走廊。
圖4 實驗環(huán)境
考慮17個信號塔。并在實驗室內(nèi)部署=51個參考點,網(wǎng)格邊長dr=1。采用不同安卓手機(jī)收集信號塔信號,如HTC X9、HTC E9、Motorola Moto G5、ZTE Blade 7。并利用2天時間收集信號塔信號。手機(jī)利用安卓的軟件開發(fā)工具包(Software Development Kit, SDK)掃描信號塔信號,掃描率為3 Hz。
考慮DR對定位精度的影響,并通過實驗數(shù)據(jù)獲取最佳的丟棄百分比。從圖5可知,丟棄百分比為10%時,定位精度最低。DR策略非常重要。隨著網(wǎng)絡(luò)尺寸的增加,適合地丟棄一些神經(jīng)元,能夠有效地避免過似合。然而,從圖5可知,當(dāng)丟棄百分比過大時,定位誤差迅速增加。
圖5 定位精度隨丟棄百分比的變化情況
本次實驗考慮手機(jī)所接收的信號塔數(shù)對定位精度的影響。即信號塔密度數(shù)對定位精度的影響。選擇三個用戶(A、B、C),它們所接收的信號塔數(shù)分別17、16、9,如圖6所示。從圖6可知,手機(jī)監(jiān)聽到信號塔數(shù)越多,定位精度越高。
圖6 定位誤差(實驗二)
本次實驗分析SR和Centroid策略以及它們的混合策略對定位精度的影響。從圖7可知,相比于SR和Centroid策略,混合策略的定位誤差最低,且分別下降了13%和22%。
圖7 定位誤差(實驗三)
本次實驗分析DLCS算法的定位精度,并選擇同類的基于蜂窩信號的定位算法進(jìn)行比較。為此,選擇SkyLoc和SVM作為參照。SkyLoc選擇KNN分類器,并依據(jù)RSS矢量估計用戶位置。
圖8 定位誤差的CDF
圖8顯示了DLCS、SkyLoc和SVM算法的定位誤差的累積分布函數(shù)(Cumulative Distribution Function,CDF)。從圖8可知,相比于SkyLoc和SVM,DLCS算法的定位精度得到有效提高。這說明DLCS算法通過DNN模型有效地處理噪聲,提高定位精度。
本文提出基于深度學(xué)習(xí)的室內(nèi)定位算法DLCS。DLCS算法通過增廣訓(xùn)練數(shù)據(jù),增加算法的魯棒性。同時,采用丟棄正規(guī)化策略,避免過似合。最后,通過安卓手機(jī)測試DLCS算法。仿真結(jié)果表明,DLCS算法能夠?qū)⒍ㄎ徽`差控制在0.78 m。