趙亞軍張 皓左 晉遠(yuǎn)子涵符蓉玥
(1.北京印刷學(xué)院機(jī)電工程學(xué)院,北京 102600; 2.北京印刷學(xué)院智能制造實(shí)驗(yàn)室,北京 102600)
隨著現(xiàn)代科學(xué)信息技術(shù)、互聯(lián)網(wǎng)和通信技術(shù)的快速進(jìn)步和持續(xù)興盛,人們對(duì)于定位精度較高的室內(nèi)定位需求日益增加。室內(nèi)定位與室外不同,室內(nèi)場景復(fù)雜且定位環(huán)境惡劣。此外,因?yàn)槲矬w的阻擋,GPS無法滿足室內(nèi)準(zhǔn)確定位需求。傳統(tǒng)的室內(nèi)定位技術(shù)主要包括:ZigBee、藍(lán)牙、WiFi、紅外線、超聲波、RFID等。由于室內(nèi)定位環(huán)境惡劣,上述技術(shù)與UWB技術(shù)相比工作不穩(wěn)定,無法達(dá)到符合現(xiàn)代需求的定位結(jié)果。UWB無線通信技術(shù),具有信號(hào)傳輸速率高、抗多徑作用效果好、成本低、功耗低等特征,基于 UWB的室內(nèi)定位能夠?qū)崿F(xiàn)精確到厘米數(shù)量級(jí)的定位精度[1]。
近年來,BP神經(jīng)網(wǎng)絡(luò)模型在室內(nèi)定位算法上的研究越來越深入,通過對(duì)神經(jīng)網(wǎng)絡(luò)模型采用不同的優(yōu)化和訓(xùn)練方式,以減小定位誤差[10-12]。陳皓等提出BP神經(jīng)網(wǎng)絡(luò)與卡爾曼濾波相結(jié)合的室內(nèi)定位方法;將初始觀測解集輸入卡爾曼濾波器,利用BP網(wǎng)絡(luò)對(duì)卡爾曼濾波器進(jìn)行補(bǔ)償[2]。梁豐等提出遺傳算法優(yōu)化BP網(wǎng)絡(luò)的定位算法;優(yōu)化BP網(wǎng)絡(luò)的隨機(jī)權(quán)值和閾值,獲得定位模型[3]。李勇等提出一種基于IA-BP神經(jīng)網(wǎng)絡(luò)的定位算法,利用免疫算法得到定位模型的最優(yōu)權(quán)值和閾值[4]。
在上述等研究的基礎(chǔ)上,針對(duì)BP算法的迭代次數(shù)多,易陷入局部極小值,本文提出基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)定位方法。利用自適應(yīng)學(xué)習(xí)率算法優(yōu)化BP算法的訓(xùn)練過程,即以訓(xùn)練過程中的誤差趨勢(shì)作為改變學(xué)習(xí)速率的條件,根據(jù)訓(xùn)練過程的實(shí)際情況,自適應(yīng)改變學(xué)習(xí)速率的大小。實(shí)驗(yàn)結(jié)果表明,基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的定位模型相比于傳統(tǒng)的定位模型,有效提高了定位精度。
與其他無線通信技術(shù)相比,超寬帶(Ultra Wide Band, UWB)技術(shù)使用納秒級(jí)的窄脈沖傳遞信號(hào),具有帶寬大、時(shí)間分辨率高和抗多徑衰落能力強(qiáng)等優(yōu)勢(shì),能夠?qū)崿F(xiàn)高速數(shù)據(jù)傳輸。美國 FCC 對(duì)于UWB 的定義[9]為 :
式中,fH、fL為功率比峰值功率低10dB時(shí)對(duì)應(yīng)的高端頻率和低端頻率,fc為載波頻率。
基于距離的定位算法主要有TOA和TDOA等,考慮到定位性能、模型搭建和算法簡易性等因素,采用TOA算法。TOA測距是指待定位目標(biāo)向基站發(fā)射信號(hào),將發(fā)射信號(hào)與基站接收信號(hào)時(shí)間之差,乘以電磁波傳輸速率,獲得定位基站與標(biāo)簽之間的距離。最后將待定位目標(biāo)與三個(gè)不同的基站的距離作為定位模型的輸入,通過神經(jīng)網(wǎng)絡(luò)的非線性映射得到標(biāo)簽位置完成定位[13-15]。
BP 神經(jīng)網(wǎng)絡(luò)在許多領(lǐng)域被普遍使用,其訓(xùn)練過程由正向與反向傳播組成。正向傳播時(shí),利用TOA測距得到距離信息為網(wǎng)絡(luò)輸入,經(jīng)過各層處理后,結(jié)果由輸出層輸出。若標(biāo)簽的定位坐標(biāo)與期望坐標(biāo)存在誤差,則執(zhí)行反向傳播。誤差的反向傳播是利用梯度下降法通過誤差來修正網(wǎng)絡(luò)的各個(gè)權(quán)值和閾值。重復(fù)正向傳播與反向傳播過程,同時(shí)不斷調(diào)整權(quán)值和閾值,這個(gè)過程一直進(jìn)行到使誤差減小到預(yù)設(shè)值以內(nèi),或進(jìn)行到預(yù)先設(shè)定的訓(xùn)練次數(shù)為止[5-6]。
如圖1為BP神經(jīng)網(wǎng)絡(luò)的基本架構(gòu)[7-8],各神經(jīng)元個(gè)數(shù)分別為:n、m、l,各層之間的連接權(quán)值為vij和ωjk。隱含層和輸出層的傳遞函數(shù)均采用單極性Sigmoid函數(shù),各層信號(hào)的關(guān)系為如下。
圖1 BP神經(jīng)網(wǎng)絡(luò)基本架構(gòu)
對(duì)于輸出層:
對(duì)于隱含層:
本文選用三層BP神經(jīng)網(wǎng)絡(luò)架構(gòu),以標(biāo)簽到3個(gè)基站的距離為輸入,標(biāo)簽在二維空間中的坐標(biāo)為輸出;因此BP網(wǎng)絡(luò)的輸入層神經(jīng)元個(gè)數(shù)為3,輸出層神經(jīng)元個(gè)數(shù)為2。隱含層神經(jīng)元個(gè)數(shù)根據(jù)經(jīng)驗(yàn)公式選取。
經(jīng)過多次實(shí)驗(yàn)對(duì)比,最終取m=7。
學(xué)習(xí)速率是影響B(tài)P網(wǎng)絡(luò)學(xué)習(xí)能力的關(guān)鍵,從誤差變化的角度來看,在誤差變化平緩的區(qū)域,學(xué)習(xí)率過小會(huì)導(dǎo)致收斂速度過慢,容易陷入局部最小值;相反,學(xué)習(xí)速率過大會(huì)導(dǎo)致訓(xùn)練出現(xiàn)振蕩,無法收斂。因此本文在訓(xùn)練定位模型時(shí)采用自適應(yīng)學(xué)習(xí)率算法,其思路為:若當(dāng)前訓(xùn)練的誤差函數(shù)大于上一次,則減小學(xué)習(xí)速率;若當(dāng)前訓(xùn)練誤差函數(shù)小于上一次,則相應(yīng)增加學(xué)習(xí)速率,根據(jù)誤差變化情況自動(dòng)改變學(xué)習(xí)速率的大小。自適應(yīng)學(xué)習(xí)率計(jì)算公式為:
式中,β=ε*tanh(E(t)-E(t-1)),ε為影響權(quán)重系數(shù)。
自適應(yīng)學(xué)習(xí)率算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)定位模型訓(xùn)練過程可分為四個(gè)步驟:
(1)由式1 ~ 式2 計(jì)算輸出層每個(gè)神經(jīng)單元的輸出值;
(2)根據(jù)期望值計(jì)算輸出層每個(gè)神經(jīng)單元的輸出誤差;
(3)根據(jù)誤差函數(shù)改變學(xué)習(xí)速率;
(4)應(yīng)用自適應(yīng)學(xué)習(xí)速率算法更新權(quán)重。
完成上述訓(xùn)練過程后,使用自適應(yīng)學(xué)習(xí)速率算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)定位模型,對(duì)標(biāo)簽進(jìn)行定位。定位流程如圖2所示。
圖2 改進(jìn)BP神經(jīng)網(wǎng)絡(luò)定位流程
在100cm×100cm的二維平面區(qū)域端點(diǎn)處設(shè)置3個(gè)基站,其坐標(biāo)分別是(0,0),(100,0),(0,100)。假設(shè)標(biāo)簽的運(yùn)動(dòng)軌跡是一條有斜率的直線,通過Matlab對(duì)UWB信道模型進(jìn)行仿真[16-17],得到訓(xùn)練定位模型的測距數(shù)據(jù)。訓(xùn)練定位模型之前,對(duì)數(shù)據(jù)進(jìn)行歸一化處理,目的是把所有數(shù)據(jù)都轉(zhuǎn)化到[0,1]之間。
根據(jù)實(shí)驗(yàn)要求將數(shù)據(jù)劃分為訓(xùn)練集trainx,trainy和測試集testx,testy。trainy,testy分別是trainx,testy的期望輸出。利用訓(xùn)練集數(shù)據(jù)對(duì)上述構(gòu)建的定位模型進(jìn)行訓(xùn)練,當(dāng)誤差函數(shù)小于設(shè)定閾值時(shí)代表訓(xùn)練完成。將測試集數(shù)據(jù)輸入訓(xùn)練完成的定位模型,以定位結(jié)果與期望輸出的差值作為評(píng)價(jià)模型的定位精度。
為驗(yàn)證本文所提出的定位方法,實(shí)驗(yàn)中采用相同的網(wǎng)絡(luò)參數(shù)分別構(gòu)建基于BP算法和改進(jìn)BP算法的定位模型。使用訓(xùn)練集trainx,trainy數(shù)據(jù)分別對(duì)兩種神經(jīng)網(wǎng)絡(luò)定位模型進(jìn)行訓(xùn)練。訓(xùn)練完成之后,將測試集testx數(shù)據(jù)輸入兩個(gè)不同的模型,根據(jù)神經(jīng)網(wǎng)絡(luò)定位模型輸出結(jié)果,得到其定位效果如圖3所示。
圖3 定位效果
如圖3所示,標(biāo)簽的真實(shí)運(yùn)動(dòng)軌跡為一條直線,在運(yùn)動(dòng)軌跡上采用相同的間隔,取8個(gè)定位坐標(biāo)作為定位模型的測試點(diǎn)。將測試點(diǎn)與三個(gè)基站的距離輸入定位模型,如圖3所示基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的定位模型得到的軌跡與真實(shí)運(yùn)動(dòng)軌跡基本相符,定位精度高;而由BP神經(jīng)網(wǎng)絡(luò)定位模型得到的運(yùn)動(dòng)曲線波動(dòng)大,誤差高,不符合定位需求。
誤差函數(shù)值與迭代次數(shù)的關(guān)系體現(xiàn)出定位模型的收斂能力,訓(xùn)練改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的定位模型和BP神經(jīng)網(wǎng)絡(luò)的定位模型時(shí),記錄每次迭代的誤差函數(shù)值。兩種定位方法收斂能力比較如圖4所示。
如圖4所示,在訓(xùn)練過程中,基于改進(jìn)BP算法的定位模型的誤差函數(shù)在收斂時(shí)雖有波動(dòng),但很快趨于平緩。當(dāng)誤差函數(shù)收斂到1時(shí),兩種定位方法的迭代次數(shù)分別為49、112,由此可見,基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的定位方法的定位性能更加符合需求。
圖4 兩種定位模型收斂能力比較
對(duì)于定位模型精度的計(jì)算,通常選擇標(biāo)簽的期望坐標(biāo)與模型輸出的坐標(biāo)之間的歐式距離作為度量標(biāo)準(zhǔn)。利用測試集testx對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)定位模型和改進(jìn)BP神經(jīng)網(wǎng)絡(luò)定位模型進(jìn)行測試,輸出結(jié)果與測試集testy對(duì)比得出各個(gè)測試數(shù)據(jù)誤差。
如表1所示,基于自適應(yīng)學(xué)習(xí)率BP算法相比于傳統(tǒng)算法,無論在最大誤差、最小誤差,還是在平均誤差方面都得到了大幅度改善,定位精度提高了約31%。實(shí)驗(yàn)結(jié)果表明,基于自適應(yīng)學(xué)習(xí)率算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)定位模型的定位精度明顯高于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型。
表1 誤差對(duì)比
對(duì)于BP神經(jīng)網(wǎng)絡(luò)在室內(nèi)定位中收斂速度慢、易陷入局部極小值的問題,提出一種基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)定位方法。利用BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)神經(jīng)網(wǎng)絡(luò)進(jìn)行定位仿真對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法相比,該方法的迭代次數(shù)少,收斂能力較強(qiáng),定位精度得到顯著提高。
北京印刷學(xué)院學(xué)報(bào)2021年10期