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