鄧素,薛峰,余敏
(江西師范大學 計算機信息工程學院,江西 南昌 330022)
隨著移動計算、無線定位等技術的迅速發(fā)展和普及,基于“位置的服務”(LBS)正向我們展現(xiàn)出廣闊的市場應用前景.自美國在1996年通過著名的E911法案,美國聯(lián)邦通信委員會強制要求各電信運營商開發(fā)出能夠在緊急救援事件中為社會安全機構提供用戶的位置信息,定位技術越來越被人們所關注.定位按照使用場景的不同可劃分為室內定位和室外定位兩大類.在室外,人們主要依靠全球定位系統(tǒng)(GPS)、格洛納斯定位系統(tǒng)(GLONASS)、北斗衛(wèi)星導航系統(tǒng)(BDS)來獲取可靠、實時的位置信息.而進入室內,由于建筑物對衛(wèi)星信號的遮蔽,全球衛(wèi)星導航系統(tǒng)(GNSS)終端在室內或者建筑物密集的室外便很難獲取到衛(wèi)星信號,難以滿足室內服務應用對定位精度的要求,因此GPS等定位系統(tǒng)并不適用于室內.所以為解決這個問題,科研人員將注意力轉移到了無線傳感網(wǎng).相比于射頻識別技術(RFID)、超聲波、紅外、超寬帶(UWB)等需要依賴部署專用的硬件設施應用范圍有限且成本昂貴的定位技術,無線WiFi定位技術憑借著其覆蓋范圍廣、實現(xiàn)簡單、部署難度低、無需額外成本等優(yōu)點而被廣泛運用.
無線室內定位算法主要可分為兩大類:基于測距的定位和基于非測距的定位.基于測距的定位方法主要有到達時間(TOA)、到達時間差(TDOA)、到達角(AOA)等.基于非測距的定位方法主要是基于接收信號強度值,該方法可分為指紋匹配法和距離路徑衰減模型法.室內指紋匹配定位技術因其非視距、定位精度高、受室內環(huán)境影響小、實現(xiàn)靈活等優(yōu)點備受人們的關注.
近年來,關于WiFi無線定位方式的研究,張會清[1]提出了一種用BP神經(jīng)網(wǎng)絡來擬合室內無線信號的傳播模型.鄧胡濱[2]提出一種利用廣義回歸神經(jīng)網(wǎng)絡(GRNN)擬合室內信號強度指示(RSSI)值與距離值的映射關系,得到相應的定位模型方法.黃豐勝[3]通過分析在不同場景下基于RSSI指紋匹配法和位置估計法,驗證了指紋匹配法具有更高的定位精度.李瑛等[4]提出了一種基于反向傳播(BP)神經(jīng)網(wǎng)絡的室內定位模型,與基于信號衰減模型的定位算法測試對比后,結果表明利用BP神經(jīng)網(wǎng)絡進行室內定位能獲得更好的定位精度,但此方法在進行BP神經(jīng)網(wǎng)絡的初始化訓練時,由于神經(jīng)網(wǎng)絡參數(shù)值的隨機選取,導致節(jié)點表現(xiàn)出個體差異,部分節(jié)點的定位精度始終較低.閆思銳[5]通過分析無線通信模型,針對室內無線信號傳播模型中路徑損耗指數(shù)和參數(shù)依據(jù)經(jīng)驗判斷導致的定位誤差太大問題,提出利用BP神經(jīng)網(wǎng)絡擬合RSSI-d非線性函數(shù)關系,大大降低了定位誤差.但由于室內環(huán)境的復雜多樣性,存在多徑效應,會導致信號強度波動較大,傳播模型距離估算不準確,進而定位精度受到了極大的影響[6].針對以上問題,為提高無線網(wǎng)絡室內定位的效果,本文將改進的人工魚群優(yōu)化算法和BP神經(jīng)網(wǎng)絡[7]WiFi指紋室內定位算法相結合,首先利用改進的人工魚群優(yōu)化算法對神經(jīng)網(wǎng)絡的權值和閾值參數(shù)進行優(yōu)化[8-9],改善了人工神經(jīng)網(wǎng)絡的預測值易陷入局部最低等缺點.然后再將優(yōu)化后的BP神經(jīng)網(wǎng)絡學習RSSI和兩維位置信息間的非線性映射關系,可有效提高定位精度以及算法的收斂速度和可靠性.
自由空間傳播模型是指在發(fā)送端與接收端之間不存在障礙物的干擾且是在視距(LOS)狀態(tài)下的接收信號模型[10].是一種簡單的無線電傳播模型.依據(jù)無線通信原理,信號的接收功率與發(fā)射功率的關系可表示為:
(1)
式中:Pt為信號源的發(fā)射功率;Gt、Gr分別為天線在發(fā)送和接收信號時的增益;λ為無線電信號波長;Pr(d)為接收端距發(fā)射端d處時的接收功率.一般情況下,用RSSI來推算距離時,可由經(jīng)驗路徑模型得出,即:
RSSI(d)=A-10nlg(d),
(2)
式中:d為待測定位點的距離;A為距離信號發(fā)射源1 m處接收到的信號強度平均值的絕對值;n為路徑損耗系數(shù).
WiFi信號除了以接收信號強度(RSS)傳播模型為主的測距定位方法外,現(xiàn)運用更多的方法是通過指紋方式實現(xiàn)定位.指紋定位包括兩個階段:訓練階段(offline)和服務階段(online).訓練階段對數(shù)據(jù)進行采樣,將收集的無線信號特征存入數(shù)據(jù)庫.在服務階段,使用數(shù)據(jù)庫中的RSSI和當前的RSSI值進行對比和定位.確定性算法、概率性算法和人工神經(jīng)網(wǎng)絡算法是目前常用的待測定位點的估計方法.
在設計BP神經(jīng)網(wǎng)絡時,考慮到RSSI值易受環(huán)境影響,波動較大,若采用基于信號強度的測距模型來進行定位,由于其中距離是由RSSI推算出來的,在計算過程中將會丟失一些原始信息,而且一般情況下,室內通常存在噪聲,所以本文將把RSSI平均值作為BP神經(jīng)網(wǎng)絡的輸入,為減少數(shù)據(jù)采集過程中的誤差,在采集RSSI數(shù)據(jù)值時采用高斯濾波進行處理,將待定位節(jié)點的坐標作為輸出來進行BP神經(jīng)網(wǎng)絡訓練,并建立如下函數(shù)關系:
φ(RSSI1,RSSI2,…,RSSIn)=(x,y),
(3)
其中,RSSIi,i∈(1,n)為目標定位節(jié)點接收來自各信標定位節(jié)點的的RSSI.
BP神經(jīng)網(wǎng)絡[11-12]是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡,也是一種監(jiān)督學習型人工神經(jīng)網(wǎng)絡,具有很強的非線性映射能力.常用于函數(shù)逼近、模式識別等預測學習領域.BP神經(jīng)網(wǎng)絡學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成.典型的BP神經(jīng)網(wǎng)絡通常包括三層結構:輸入層,隱含層,輸出層.輸入層神經(jīng)元負責接收外界輸入信息,并傳遞給隱含層,隱含層(可分為單隱層或多隱層)負責當完成信息加權聚合變換和正向傳播處理后,通過輸出層向外界輸出處理結果.當實際輸出值與期望輸出值不符時,進入誤差反向傳播階段.通過三層BP神經(jīng)網(wǎng)絡可以擬合任意的連續(xù)非線性曲線,但本文中坐標值與RSSI值之間的對應關系并不連續(xù),屬非線性關系.根據(jù)實驗條件和相關定理及經(jīng)驗得知,本文選擇使用四層神經(jīng)網(wǎng)絡.其中包括2個隱含層,1個輸入層和1個輸出層.第一層傳遞函數(shù)為sigmod函數(shù),第二層傳遞函數(shù)為線性函數(shù).模型如圖1所示.
僅僅使用BP神經(jīng)網(wǎng)絡進行網(wǎng)絡訓練容易陷入局部極小化,且該網(wǎng)絡的收斂速度慢,對初值和網(wǎng)絡權重十分敏感.人工魚群算法具備全局的尋優(yōu)能力,能快速跳出局部極值點,另外還具有較快的收斂速度,對初始值要求不高的特點,本文將利用改進的人工魚群算法來優(yōu)化神經(jīng)網(wǎng)絡別的初始權值和閾值.完成神經(jīng)網(wǎng)絡的訓練并改進其性能.
圖1 BP神經(jīng)網(wǎng)絡模型結構
人工魚群算法是一種采用自上而下的新型的群智能尋優(yōu)策略算法,是一種動物自治體優(yōu)化方法.該算法通過單個個體的局部尋優(yōu),從而達到全局最優(yōu).其核心思想主要是通過初始化構造單條人工魚模擬自然界中魚群的覓食、聚群、追尾、隨機、移動等行為,不斷地進行自我迭代位置更新,先從局部進行搜索尋優(yōu),然后再在各自組織中進行消息傳遞,從而實現(xiàn)全局尋優(yōu).
在一片水域中,魚總是能自行或者尾隨其他魚找到食物最多的地方.通過模擬魚群的這種行為,可將人工魚群算法分為四個行為:覓食行為、聚群行為、追尾行為、隨機行為.假設當前人工魚l的狀態(tài)用狀態(tài)向量表示為Xl=(x1,x2,x3,…,xn),Yi=φ(Xl)為人工魚當前所在位置的食物濃度,Xl為待優(yōu)化變量,即是Xl的適應度函數(shù);δ為擁擠度因子,S為人工魚移動步長,V為人工魚的視野范圍,n為視野內人工魚數(shù)目.trynum為最大嘗試次數(shù),R為最大迭代次數(shù).算法實現(xiàn)描述如下.
3.1.1 覓食行為
假設人工魚當前狀態(tài)為Xh,在其視野范圍V內隨機選擇一個狀態(tài)Xl,則有:
Xl=Xh+V·Rand(),
(4)
式中,Rand()為一個產(chǎn)生介于0~1之間的隨機函數(shù),V是視野范圍,若Yl>Yh,則人工魚按式(5)向前移動一步,否則,再重新選擇隨機狀態(tài)Xl,判斷是否滿足前進條件,如此重復嘗試達到trynum次后,若仍不符合條件,則按照式(6)隨機移動一步.
(5)
(6)
3.1.2 聚群行為
自然界中,魚在游動過程中,為保證群體生存,躲避危害,會自然聚集成群.假設人工魚當前狀態(tài)為Xh,探索領域內伙伴數(shù)為n,中心位置為Xc,若Yc/n>δYh,表明中心位置食物較多且不擁擠,這時則向中心位置前進一步,否則執(zhí)行覓食行為.
(7)
3.1.3 追尾行為
假設人工魚m當前狀態(tài)為Xm,Xz是視野范圍內能找到的最好的位置,若Yz/n>δYm,表明伙伴Xz周圍食物濃度高且不太擁擠.則按式(8)向前移動一步.
(8)
3.1.4 隨機行為
人工魚在視野中隨機選擇一個狀態(tài),然后朝該方向運動,它是覓食行為的一個缺省行為.
基本的人工魚群算法是存在缺陷的,算法的精度與人工魚的步長S和視野范圍V關系較大.常規(guī)的算法中,步長S是個定值,但是當步數(shù)逐漸增加時,算法收斂速度將會加速,當超過一個范圍后,收斂速度又將會減慢,當S較小時,振幅較小,精度相對較高,當S較大時,振幅較大,精度較差.這將造成算法在前期收斂速度快,后期收斂速度緩慢,且會伴有震蕩現(xiàn)象產(chǎn)生.因此,本文對該算法的步長S和視野V按照式(9)做了相應的改進.為盡量避免上述現(xiàn)象的發(fā)生,本文采用一種自適應步長的策略.
(9)
式中:b為誤差迭代函數(shù),表征迭代速度;Tmax為最大迭代次數(shù);t'為當前迭代次數(shù);s'為[1…60]的整數(shù);S為步長;V為視野范圍.
3.2.1 IAFSA優(yōu)化的BP神經(jīng)網(wǎng)絡
改進的人工魚群優(yōu)化BP神經(jīng)網(wǎng)絡算法(IAFSA-BP)的主要核心思想是通過IAFSA找到BP神經(jīng)網(wǎng)絡的最優(yōu)參數(shù).人工魚的位置Xl=(1,2,3,…,q)對應了BP神經(jīng)網(wǎng)絡的一組參數(shù),q為搜索空間維數(shù),對應BP神經(jīng)網(wǎng)絡的權值和閾值.筆者在本文中主要采用了雙隱層神經(jīng)網(wǎng)絡,設輸入層神經(jīng)元個數(shù)為m,第一隱層神經(jīng)元個數(shù)為g,第二隱層神經(jīng)元個數(shù)為e,輸出層神經(jīng)元個數(shù)為f,則有:
q=m(g+1)+ge+(e+1)f.
(10)
人工魚的一個狀態(tài)值Xl表示一個神經(jīng)網(wǎng)絡的閾值和權值.使用IAFSA反復優(yōu)化BP網(wǎng)絡模型的參數(shù)組合,直到解的適應度不再發(fā)生改變.BP神經(jīng)網(wǎng)絡均方差誤差函數(shù)為
(11)
式中:n為訓練樣本集維數(shù);yi為網(wǎng)絡實際輸出;ξ為輸出節(jié)點數(shù)量;hk為目標輸出;F的倒數(shù)為人工魚所處環(huán)境的食物濃度.從上述模型中,本文設置V=2.0,S=0.2,擁擠度因子δ=0.618,N=10,trynum=50,R=300,Vmin=0.01,Smin=0.002,Tmax=500,根據(jù)經(jīng)驗參考公式設置BP神經(jīng)網(wǎng)絡第一隱層神經(jīng)元數(shù)為N2=8,第二隱層神經(jīng)元數(shù)為N3=4,輸入層節(jié)點數(shù)為5,輸出層節(jié)點數(shù)為2,網(wǎng)絡模型結構為4-8-4-2.流程圖如圖2所示.
圖2 IAFSA-BP室內定位算法流程圖
本文的實驗環(huán)境在江西師范大學先骕樓七樓3705工作室,試驗區(qū)域面積為10 m×10 m,并且按照1.0 m×1.0 m的規(guī)格將試驗區(qū)域劃分為100個小網(wǎng)格,無線AP型號采用TP-Link TL-WR885N,現(xiàn)場共布設4個AP終端設備,AP距離地面高度為1.5 m.定位區(qū)域平面示意圖如圖3所示,移動采集終端設備為華為mate10pro,共采集80個采樣點,在每個采樣點采集20次RSSI值.并用高斯濾波處理去噪后再利用加權均值的方法求出RSSI平均值,與采樣點的地理位置坐標一同構成集合{x,y,RSSI1,RSSI2,…,RSSIn}.
圖3 定位實驗平面區(qū)域圖
為驗證本文定位算法的穩(wěn)定性和有效性,本文運用基于粒子群優(yōu)化的BP神經(jīng)網(wǎng)絡算法(PSO-BPNN),BP神經(jīng)網(wǎng)絡算法(BPNN),以及本文提出的IAFSA-BPNN無線WiFi指紋定位算法進行訓練和實驗,模型訓練的數(shù)據(jù)均為在工作室實驗區(qū)域統(tǒng)一采集的數(shù)據(jù).本文采用留出法將數(shù)據(jù)集劃分為兩部分,一部分作為訓練集,另一部分作為測試集.并將神經(jīng)網(wǎng)絡的輸出位置值與原參考點進行比較,統(tǒng)計其定位誤差,表1為使用各算法得到的定位性能統(tǒng)計表.
圖4 三種方法定位性能對比
通過圖4可看出,本文提出的人工魚群優(yōu)化的雙隱層BP神經(jīng)網(wǎng)絡WiFi指紋室內定位算法在0~1 m,1~2 m的定位誤差比PSO-BPNN,BPNN的誤差概率均要高,分別為70%和9%,在2 m內的誤差累積概率可達79%,充分說明了IAFSA-BPNN無線WiFi室內定位算法定位性能要優(yōu)于其他兩種定位算法,定位效果較好.表1示出了三種算法定位誤差比較.
表1 三種算法定位誤差比較
由表1誤差對比可知,本文算法的平均定位誤差為1.58 m,各定位誤差結果均低于BPNN和PSO-BPNN算法,其中,平均定位誤差的定位精度相比PSO-BPNN算法提高了19.4%,比BPNN算法提高了32.2%,這是由于本文通過改進的人工魚群算法優(yōu)化了BP神經(jīng)網(wǎng)絡的參數(shù),建立了更優(yōu)的定位模型.在室內定位領域中,基本能夠滿足對誤差的要求.
本文在室內無線定位技術的基礎上,針對傳統(tǒng)的基于BP神經(jīng)網(wǎng)絡室內定位算法存在著定位精度低和收斂速度慢的問題,利用改進的人工魚群算法優(yōu)化BP神經(jīng)網(wǎng)絡模型的權值和閾值參數(shù),有效避免了傳統(tǒng)BP神經(jīng)網(wǎng)絡的預測值易陷入局部最優(yōu)的缺點,同時BP神經(jīng)網(wǎng)絡的學習能力也得到一定的提高,最后,將其與室內定位應用場景相結合,實驗分析結果也表明,本文提出的定位算法在2 m內的誤差概率為79%,平均誤差為1.58 m,相對于PSO-BPNN,BPNN算法,性能均較優(yōu),定位結果較穩(wěn)定.室內定位性能得到了有效的改善.