宗傳林 高作相 賀育茹
摘 要:針對商場、地下室等室內環(huán)境GPS室內信號較弱、定位誤差較大的問題,本文提出了一種基于神經網絡的RSSI定位算法,通過對基本的BP算法加以改進,優(yōu)化其功能,最后進行實驗驗證。
關鍵詞:神經網絡;指紋庫;RSSI;K聚類算法
中圖分類號:TP212.9文獻標識碼:A文章編號:1003-5168(2020)13-0024-03
An RSSI Localization Algorithm Based on Neural Network
ZONG Chuanlin GAO Zuoxiang HE Yuru
(Changchun University of Science and Technology Changchun, Jilin 130022)
Abstract: Aiming at the problem of weak indoor signal and large positioning error of GPS in shopping malls, basements and other indoor environments, this paper put forward a RSSI positioning algorithm based on neural network, improved the basic BP algorithm, optimizes its function, and finally carried out experimental verification.
Keywords: neural network;fingerprint library;RSSI;K clustering algorithm
隨著互聯(lián)網和物聯(lián)網的高速發(fā)展及無線局域網的普及,人們越來越看重信息傳遞的準確性和即時性。在該背景下,產生了一個新型的服務種類,即基于位置服務(Location Based Services,LBS),為人們提供了巨大的便利。LBS在日常生活中主要體現(xiàn)在室外定位的應用上,如利用全球定位系統(tǒng)(Global Positioning System,GPS)、北斗衛(wèi)星的道路導航、輔助定位服務等;但在室內,因障礙物過多、過厚,導致衛(wèi)星信號無法穿透,加上衛(wèi)星的多徑效應等因素,嚴重影響了室內定位的精準性。通常,GPS室外定位精度能達到3~5 m,甚至可以更精確,但在結構較為復雜的室內,誤差能夠達到10 m。目前,室內的定位技術主要有藍牙定位技術、射頻定位技術、無線保真(Wireless Fidelity,WiFi)定位技術、紅外定位技術以及超聲波定位技術等[1]。其中,WiFi定位技術又包括信道定位技術和信號強度(Received Signal Strength Indication,RSSI)定位技術。在我國,通信技術十分發(fā)達,在室內外公共場所,有著極高的WiFi覆蓋率,使得WiFi室內定位具有良好的優(yōu)勢;同時,WiFi定位技術不需要額外的傳感器,與GPS相比,速度提高了10倍以上[2],且通過軟件開發(fā)就能實現(xiàn)定位,因此WiFi定位技術發(fā)展較快。
本文結合梯度下降法原理和神經網絡編寫了一套定位算法,利用無線接入點(Access Point,AP)與用戶之間線性與非線性的關系,解決了在傳統(tǒng)AP定位中用三個AP求解三角形法無法解決的多徑效應,也解決了傳播過程中依賴傳播衰減公式帶來的較大誤差。同時,給出了對模型的獎勵與懲罰方法,并引入了基本K聚類算法,以提高模型精度。在離線階段給出了不同數(shù)據(jù)量情況下選擇不同的查找方法以提高查找效率,最后通過在特定場景下的簡要實驗,得出此場景下的選擇參數(shù),其最小誤差為1.42 m。
1 定位系統(tǒng)流程和相關原理
1.1 定位系統(tǒng)流程
定位系統(tǒng)流程圖如圖1所示。從圖1可以看出,離線階段:初始程序,讀取各點RSSI值并進行迭代,將讀取的值保存到指紋庫中,直至迭代完成;在線階段:通過將讀取的RSSI值與指紋庫中的指紋對比找出對應位置,并再次依次迭代。
1.2 基本原理
通常情況下,人工神經網絡(Artificial Neural Networks,ANNS)主要用來處理非線性問題,例如,在信號傳播過程中涉及多種噪聲、衰減等非線性問題。因此,采用ANNS中的誤差反向傳播算法(Error Back Propagation,BP)具有很大的優(yōu)勢。
在處理數(shù)據(jù)的過程中,研究者采用離差標準化方法對數(shù)據(jù)進行歸一化處理,函數(shù)形式為:
式中,[Xmin]為數(shù)據(jù)中最小值;[Xmax]為數(shù)據(jù)中最大值。
BP算法中隱層節(jié)點數(shù)對定位精度具有很大的影響:隱層節(jié)點數(shù)過少,訓練精度過低,模型欠擬合;隱層節(jié)點數(shù)過多,訓練時間加長,模型過擬合也會導致精度降低。推薦隱層節(jié)點數(shù)可由經驗公式(2)計算得出:
式中,[neth]為隱層節(jié)點數(shù);[in]為輸入層節(jié)點數(shù);[out]為輸出層節(jié)點數(shù);[β]為0~10的常數(shù)。
1.3 指紋庫相關算法原理
指紋庫相關算法包括快速排序、歸并排序和堆排序??焖倥判蚍ǎ合葟男蛄兄腥∫粋€值作為標準值,將小于其的值放在左邊,大于其的值放在右邊,以此進行迭代至全部排序完成。歸并排序法:采用分治法,其方法將序列分成兩個序列,再將得到的兩個子序列繼續(xù)二分下去,直到不能再分,最后再兩兩合并,形成有序序列。堆排序:利用堆這種數(shù)據(jù)結構所涉及的一種排序算法,其原理為堆積是一個近似完全二叉樹的結構,并滿足堆積性質:子節(jié)點的鍵值或索引值總是大于(或者小于)父節(jié)點。此外,采用快速排序法平均只需要[Onlogn]的復雜度。在相同數(shù)據(jù)規(guī)模下(見表1),快速排序法的效率較高。
1.4 K聚類算法
K聚類算法是聚類算法的一種,其步驟為:第一,隨機選取[K]個中心點;第二,計算所有數(shù)據(jù)點距[K]個中心點的距離,然后將數(shù)據(jù)點分到與其最近的中心點,形成[K]個簇;第三,計算每個簇中所有數(shù)據(jù)的均值,重新定義中心點;第四,以此進行迭代,直至中心點位置變化小于閾值,劃分結束。
2 神經網絡訓練技術指標
2.1 傳遞函數(shù)的選擇
本文選取Sigmoid函數(shù)作為傳遞函數(shù),其中:
式中,[fx]為因變量;[x]為自變量;[α]為傾斜參數(shù),常被默認為1。使用Sigmoid函數(shù)(見圖2)作為傳遞函數(shù)的原因為:其輸出范圍有限,Sigmoid函數(shù)的輸出被固定在(0,1),數(shù)據(jù)在傳遞過程中不容易發(fā)散。Sigmoid函數(shù)在(0,1)中存在單調、處處可導等優(yōu)良性質,在(0,0.5)處斜率最大,且中心對稱,兩頭被抑制明顯,因而適合數(shù)據(jù)在多層神經元之間傳遞時使用。同時,神經元中間激活,兩頭克制的表現(xiàn)也與神經科學中的激勵與抑制行為十分相似,能夠更好地體現(xiàn)神經網絡的特性[3]。
2.2 過擬合與欠擬合
在學習過程中模型會出現(xiàn)過擬合與欠擬合的問題。欠擬合指對樣本訓練程度不夠,導致誤差較大。由維度較低的特征或者模型過于簡單引起,通常用增加特征維度與增加訓練樣本來解決;過擬合指訓練程度過高,特征維度較高,模型過于復雜引起,常用正則化的方法來解決。
有監(jiān)督學習算法訓練的目的是最小化損失函數(shù),本文引入均方誤差損失函數(shù),其預測值與樣本真實值的誤差平方和為:
其中,[yi]是樣本標簽值;[fθxi]是預測函數(shù)的輸出值;[θ]是模型參數(shù);[l]為樣本數(shù)。
為了防止過擬合,可以對復雜的模型進行懲罰,加上一個懲罰項,使模型參數(shù)盡可能小。加入懲罰項后的損失函數(shù)為:
式中,[λ]為懲罰項系數(shù);[R(θ)]為懲罰函數(shù),后半部分為正則化項,正則化項可以使用L2范數(shù),L2范數(shù)相對于L1范數(shù),在求解最優(yōu)化問題有著更好的數(shù)學性質。
并且懲罰項中L2范數(shù)正則化項的梯度為:
3 解決的問題與實驗簡要分析
3.1 面臨問題
隨著WiFi的普及以及機器學習的高速發(fā)展,室內定位技術如雨后春筍般層出不窮,如可見光定位技術、無線定位技術等。但是,都面臨著如何解決定位精度的問題,本文只對自己所編寫B(tài)P算法和聚類算法進行闕值的選取。
3.2 樣點的選擇
在一個長10 m、寬8 m的空間內等位置放置6個AP信號(見圖3),在長、寬分別為0.05 m的地方選取32 000個點,將其每點作為輸入層,輸入神經網絡中,并將數(shù)據(jù)保存到指紋庫中;另隨機再選取32 000個點做同樣的處理,對其在線階段測得位置與其最相近的點取均方差,訓練次數(shù)2 000次。采樣方式比較如表2所示。
在取樣方式上,等距取樣隨著點數(shù)的增加誤差逐漸減小,但運算時間相對于非等距取樣時間要長(見表2)。等間距取樣更有利于定位準確性,因此后續(xù)實驗采用等距取樣的方法。
3.3 實驗與分析
再次選取32 000個取樣點做測試,在離線階段測得各個點的RSSI值,將其保存在指紋庫內。在線階段時再對每個點RSSI依次運算做比較,結果為:正確點數(shù)為29 865個,錯誤點數(shù)為2 185個。
依次取不同樣本點數(shù),如30 000、25 000、15 000、5 000、2 000再次進行測量,測得不同誤差下的概率如表3所示。
誤差的大小隨采樣點數(shù)的減少而增大,而較多的采樣點數(shù)會增加計算與查找時間。為此,研究者需要確定一個合適的點數(shù)來滿足工程中一定的條件,而時間大部分用于程序的訓練。當采樣點數(shù)為5 000次時,訓練次數(shù)分別為1 000、2 000、3 000、4 000,比較運行時間與誤差均值的大小可知,在4 000次下有最小的誤差。以4 000次訓練次數(shù)為準,分別取20 000、15 000、10 000、8 000、6 000、4 000、2 000個點數(shù)。經過多次模擬可知,當采樣點數(shù)為6 000時具有最小的誤差,其值為1.42 m。
4 結論
本文對實驗所需的參數(shù),如采樣點數(shù)、采樣方式、學習次數(shù)以及機器參數(shù)等,作出一個合理的選擇,得出良好的定位效果;但因實驗裝備精度、運算能力及環(huán)境等因素的影響,無法推廣到所有的應用場合中。在后續(xù)的研究中,重點放在AP取點位置、K聚類算法的優(yōu)化、對RSSI濾波的最優(yōu)化等問題的研究上。
參考文獻:
[1]王建林.基于WIFI和多用戶組群的室內定位系統(tǒng)[D].西安:西安電子科技大學,2017.
[2]鄭文翰.基于WLAN的室內定位技術研究與實現(xiàn)[D].成都:電子科技大學,2016.
[3]王亞敏.全卷積神經網絡在眼底圖像結構中的應用研究[D].成都:電子科技大學,2019.
收稿日期:2020-04-10
基金項目:吉林省大學生創(chuàng)新創(chuàng)業(yè)訓練大賽“室內導盲機器人”(201910186088)。
作者簡介:高作相(1998—),男,本科在讀,研究方向:單片機控制;賀育茹(1999—),女,本科在讀,研究方向:信號的檢測與處理。
通信作者:宗傳林(1998—),男,本科在讀,研究方向:機器學習在通信系統(tǒng)中的應用。