閆 馳
(蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州 730070)
?
基于PSO-BP神經(jīng)網(wǎng)絡(luò)的無線傳感器網(wǎng)絡(luò)定位算法
閆馳
(蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州730070)
摘要針對(duì)無線傳感器網(wǎng)絡(luò)定位的基本功能問題。提出一種將PSO算法和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合對(duì)RSSI在測(cè)距階段測(cè)得的距離數(shù)據(jù)進(jìn)行優(yōu)化的算法。該算法將PSO算法作為BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,縮短了BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間,并加快算法的收斂速度。通過仿真,定位精度較其他算法得到了明顯提高,最高可達(dá)27.3%。
關(guān)鍵詞無線傳感器網(wǎng)絡(luò);BP神經(jīng)網(wǎng)絡(luò);粒子群算法;RSSI;定位算法
定位技術(shù)是無線傳感器網(wǎng)絡(luò)[1](Wireless Sensor Networks,WSN)的基本功能之一。而基于測(cè)距的接收信號(hào)強(qiáng)度指示(Received Signal Strength Indication,RSSI)定位方法因其無需額外硬件、實(shí)現(xiàn)簡(jiǎn)單、成本低等特點(diǎn),常被用于WSN的定位。但RSSI定位精度受環(huán)境影響大,故在測(cè)距階段容易產(chǎn)生較大測(cè)距誤差。由于人工神經(jīng)網(wǎng)絡(luò)在函數(shù)逼近等方面的優(yōu)良表現(xiàn)。近年來,不少研究人員將其引入到WSN的定位中來,優(yōu)化在測(cè)距階段測(cè)得的數(shù)據(jù),從而在定位精度上得到了大幅的提升。但神經(jīng)網(wǎng)絡(luò)固有的缺陷,如學(xué)習(xí)時(shí)間長(zhǎng)、收斂速度慢等,也使得節(jié)點(diǎn)定位精度的提高受到嚴(yán)重的挑戰(zhàn)。
因此,本文提出一種基于PSO-BP神經(jīng)網(wǎng)絡(luò)的WSN定位算法。將粒子群算法(Particle Swarm Optimization,PSO)作為BP網(wǎng)絡(luò)的學(xué)習(xí)算法,通過粒子群算法在搜索尋優(yōu)方面的優(yōu)勢(shì),通過訓(xùn)練,縮短了BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)時(shí)間及收斂速度,使BP網(wǎng)絡(luò)得到最優(yōu)的初始化權(quán)值及閾值。通過Matlab軟件的仿真,證明該算法對(duì)定位精度有了一定的改善。
1RSSI定位技術(shù)原理
接收信號(hào)強(qiáng)度指示(Received Signal Strength Indication,RSSI)測(cè)距[2]使用的信號(hào)傳播模型包括經(jīng)驗(yàn)?zāi)P秃屠碚撃P汀@碚撃P鸵话闶菑慕?jīng)驗(yàn)?zāi)P突A(chǔ)上提煉而成的。
無線信號(hào)傳播理論模型中對(duì)數(shù)-常態(tài)分布模型使用比較廣泛。其表達(dá)式如式(1)所示
(1)
式中,n為路徑損耗指數(shù),取值一般在2~6之間;d0為參考距離,一般取1m。式(1)能預(yù)測(cè)出當(dāng)距離為d時(shí)接收到的平均功率。即使距離d相同,不同位置周圍環(huán)境也相差較大,因此引入一個(gè)平均值為0的高斯變量Xσ。
移動(dòng)臺(tái)接收到的RSSI值滿足
RSSI=Pt+Pa-P(d)
(2)
其中,Pt為發(fā)射功率;Pa為天線增益;P(d)為路徑損耗。
2PSO-BP神經(jīng)網(wǎng)絡(luò)優(yōu)化測(cè)距誤差原理
2.1BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)[3-4]是一種具有多層結(jié)構(gòu)的前向網(wǎng)絡(luò),包括輸入層、隱含層、輸出層。各層之間是全連接的,同一層神經(jīng)元之間是互不相連的。圖1是具有一個(gè)隱含層的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。輸入、輸出層神經(jīng)元個(gè)數(shù)根據(jù)實(shí)際問題確定,而隱含層神經(jīng)元個(gè)數(shù)的多少會(huì)影響網(wǎng)絡(luò)的整體性能,一般由以下經(jīng)驗(yàn)公式確定
(3)
其中,Nh為隱含層神經(jīng)元個(gè)數(shù);Ni為輸入層神經(jīng)元個(gè)數(shù);No為輸出層神經(jīng)元個(gè)數(shù);n為一個(gè)1~10之間的常數(shù)。
圖1 3層網(wǎng)絡(luò)結(jié)構(gòu)
對(duì)于神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)功能是其重要特征之一。BP網(wǎng)絡(luò)的學(xué)習(xí)算法屬于δ學(xué)習(xí)律,是一種有教師指導(dǎo)的誤差反傳學(xué)習(xí)算法。輸入學(xué)習(xí)樣本為n個(gè):x1,x2,…,xn,已知與其對(duì)應(yīng)的教師值為t1,t2,…,tn,學(xué)習(xí)算法是根據(jù)實(shí)際的輸出y1,y2,…,yn與t1,t2,…,tn的誤差來調(diào)整網(wǎng)絡(luò)連接權(quán)值和閾值,使yn盡可能地接近要求的tn。一般人工神經(jīng)元功能函數(shù)采用S函數(shù),其輸出層表達(dá)式為
(4)
(5)
其中,bi是輸出層第i個(gè)神經(jīng)元的閾值;bk是隱含層第k個(gè)神經(jīng)元的閾值;Hk是隱含層中第k個(gè)神經(jīng)元的輸出;fS為S函數(shù),其表達(dá)式為
(6)
2.2粒子群優(yōu)化算法
粒子群算法(ParticleSwarmOptimization,PSO)又稱微粒群優(yōu)化算法[5-6]。其是通過模仿鳥類或魚群覓食行為而發(fā)展起來的一種隨機(jī)進(jìn)化算法。設(shè)在N維空間,粒子P在N維空間的位置為L(zhǎng)p=(l1,l2,…,ln),粒子的速度為Vp=(v1,v2,…,vn),目標(biāo)函數(shù)決定了每個(gè)粒子的適應(yīng)值(FitnessValue)。各粒子知道到目前為止歷史發(fā)現(xiàn)的最好位置pbest以及到群體中所有粒子發(fā)現(xiàn)的最好位置gbest。粒子i的速度和位置更新根據(jù)方程(6)和式(7)迭代
(7)
(8)
2.3優(yōu)化BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值
(1)采集訓(xùn)練數(shù)據(jù)。對(duì)基于神經(jīng)網(wǎng)絡(luò)的無線傳感器網(wǎng)絡(luò)定位算法,首先應(yīng)該采集到合適的訓(xùn)練數(shù)據(jù)[7]。本文利用Matlab搭建對(duì)數(shù)-常態(tài)分布模型的仿真環(huán)境,預(yù)先部署相應(yīng)錨節(jié)點(diǎn)去感知環(huán)境,獲取訓(xùn)練數(shù)據(jù)。錨節(jié)點(diǎn)之間通過RSSI模型測(cè)出的距離值D={dij,i≠j},D’={d’ij,i≠j}為信標(biāo)節(jié)點(diǎn)之間的真實(shí)距離。將以上兩組數(shù)據(jù)用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
(2)網(wǎng)絡(luò)權(quán)值和閾值的初始值優(yōu)化。將粒子群算法作為學(xué)習(xí)算法,通過訓(xùn)練樣本訓(xùn)練網(wǎng)絡(luò)。從圖1可知,網(wǎng)絡(luò)共有n×l+l×m+n+m個(gè)權(quán)值和閾值。將所有神經(jīng)元之間的連接權(quán)值映射為粒子群中的粒子的位置,則其維度為n×l+l×m+n+m。初始化種群,按照算法步驟迭代,直到產(chǎn)生使均方差MSE最小的粒子位置。該粒子位置向量各維度的值即就是網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值。當(dāng)訓(xùn)練樣本數(shù)量為P時(shí),網(wǎng)絡(luò)的均方誤差為
(9)
其中,tjl為樣本l在第j個(gè)輸出端的期望輸出值;Xl來自集合D,tjl對(duì)應(yīng)來自集合D’。
3算法流程
根據(jù)以上分析,BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成后,對(duì)未知節(jié)點(diǎn)具體的定位實(shí)現(xiàn),整個(gè)過程按如下流程進(jìn)行:
步驟1各錨節(jié)點(diǎn)每隔一段時(shí)間向周圍環(huán)境廣播定位消息,包括節(jié)點(diǎn)ID、神經(jīng)網(wǎng)絡(luò)參數(shù)、自身位置信息;
步驟2未知節(jié)點(diǎn)收到廣播消息后,計(jì)算錨節(jié)點(diǎn)的RSSI平均值;
步驟3當(dāng)未知節(jié)點(diǎn)收到一定數(shù)量的錨節(jié)點(diǎn)信息后,不在接收其他錨節(jié)點(diǎn)的信息。同時(shí),未知節(jié)點(diǎn)根據(jù)RSSI值從強(qiáng)到弱將錨節(jié)點(diǎn)排序;
步驟4根據(jù)式(1)代入RSSI值得到預(yù)測(cè)距離xi,i=1,2,…,q,q指選擇的錨節(jié)點(diǎn)個(gè)數(shù);
步驟7通過加權(quán)質(zhì)心算法,利用步驟6中的3組距離,可得到3個(gè)定位點(diǎn)及其坐標(biāo);
步驟8步驟7中得到的3點(diǎn)可構(gòu)成一個(gè)三角形,計(jì)算該三角形的質(zhì)心坐標(biāo),將該坐標(biāo)作為未知節(jié)點(diǎn)的坐標(biāo)(x,y);
4仿真結(jié)果
仿真環(huán)境是用Matlab[8]構(gòu)建的一個(gè)10 m×10 m的區(qū)域內(nèi),在該區(qū)域的4個(gè)頂點(diǎn)、4條邊的中點(diǎn)、整個(gè)區(qū)域的中心以及4個(gè)頂點(diǎn)所在正方形對(duì)角線的四等分點(diǎn)的位置共設(shè)有9個(gè)錨節(jié)點(diǎn)。未知節(jié)點(diǎn)隨機(jī)部署在仿真區(qū)域內(nèi),共15個(gè)。考慮到實(shí)際環(huán)境中存在反射、多徑等因素,在利用RSSI計(jì)算距離數(shù)據(jù)時(shí),加入均值為0,方差為5的高斯噪聲。路徑損耗指數(shù)取3.5,將神經(jīng)網(wǎng)絡(luò)中隱層神經(jīng)元個(gè)數(shù)設(shè)為4;PSO算法中,初始化種群數(shù)量設(shè)為M=20,最大迭代數(shù)為Q=1 000,學(xué)習(xí)因子c1=c2=1.8,仿真進(jìn)行500次后,求平均定位誤差,仿真結(jié)果如下。
圖2 加權(quán)質(zhì)心定位算法仿真結(jié)果
圖3 基于BP網(wǎng)絡(luò)的RSSI定位算法結(jié)果
圖4 基于PSO-BP網(wǎng)絡(luò)的RSSI定位算法結(jié)果
根據(jù)以上3幅圖可看出,基于PSO的BP神經(jīng)網(wǎng)絡(luò)的定位算法在相同條件下定位誤差明顯減小,且定位誤差也是優(yōu)于前兩種定位算法。根據(jù)仿真得到的平均定位誤差值,繪制誤差曲線,如圖5所示。
圖5 不同錨節(jié)點(diǎn)數(shù)下3種定位算法的定位誤差
5結(jié)束語
本文針對(duì)傳統(tǒng)基于RSSI無線傳感器網(wǎng)絡(luò)定位算法受環(huán)境影響而導(dǎo)致在測(cè)距階段測(cè)得的距離數(shù)據(jù)存在較大誤差[9],提出一種PSO-BP算法,該算法將PSO算法作為BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,縮短了BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間和加快了算法的收斂速度。與傳統(tǒng)的加權(quán)質(zhì)心算法、BP算法相比,定位精度有了大幅提升,最高提升27.3%,證明了該算法的可行性和有效性。
參考文獻(xiàn)
[1]吳成東.智能無線傳感器網(wǎng)絡(luò)原理與應(yīng)用[M].北京:科學(xué)出版社,2011
[2]ZhangY,FangZ,LiR,etal.ThedesignandimplementationofaRSSI-Basedlocalizationsystem[C].Beijing:InternationalConferenceonWirelessCommunications,NetworkingandMobileComputing,IEEE,2009.
[3]丁士圻,郭麗華.人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)[M].哈爾濱:哈爾濱工程大學(xué)出版社,2008.
[4]AshokKumarGoel,SureshCSaxenax,SurekhaBhanot.Afastlearningalgorithmfortrainingfeedforwardneuralnetworks[J].InternationalJournalofSystemsScience,2006,37(10):709-722.
[5]李博.粒子群優(yōu)化算法及其在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用[D].大連:大連理工大學(xué),2005.
[6]劉建華.粒子群算法的基本理論及其改進(jìn)研究[D].長(zhǎng)沙:中南大學(xué),2009.
[7]石曉偉,張會(huì)清,鄧貴華.基于BP神經(jīng)網(wǎng)絡(luò)的距離損耗模型室內(nèi)定位算法研究[J].計(jì)算機(jī)測(cè)量與控制,2012,20(7):1944-1947.
[8]周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其Matlab仿真程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.
[9]胡華鵬,胡方明,周惇,等.DV-Hop無線網(wǎng)絡(luò)定位算法研究[J].電子科技,2013,26(11):7-9.
Wireless Sensor Network Localization Algorithm Based on PSO-BP Neural Network
YAN Chi
(School of Electronic and Information Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China)
AbstractPositioning is the basic function of Wireless Sensor Network.The paper presents an algorithm that optimizes the distance data measured in ranging stage by combining the PSO algorithm and BP neural network.By taking the PSO algorithm as a learning algorithm of BP neural network,it shortens the training time of BP network and speeds up the convergence rate of the algorithm.The simulation results show that the positioning accuracy is significantly improved by up to 27.3% over those by other algorithms.
KeywordsWSN;BP neural network;particle swarm optimization;RSSI;localization algorithm
中圖分類號(hào)TN926
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1007-7820(2016)04-056-04
doi:10.16180/j.cnki.issn1007-7820.2016.04.015
作者簡(jiǎn)介:閆馳(1989—),男,碩士。研究方向:無線通信。
收稿日期:2015- 08- 25