近年来, 随着移动终端技术的成熟, 无线通信的成本低, 因此无线网络应用范围不断拓宽. 在无线网络的应用中, 位置信息至关重要, 尤其是室内定位[1]. 在室内环境中, 全球定位系统(GPS)无法使用, 同时室内定位易受室内环境的干扰, 无线信号变化十分快, 因此室内定位一直是无线网络研究领域中的重大课题[2,3].
针对无线网络的室内定位问题, 国内外学者进行了大学的研究, 提出了许多有效的室内定位方法[4]. 根据定位原理, 室内定位可以分为: 基于距离和基于信号强度的两类定位方法[5], 基于距离的室内定位方法要求测量节点之间的距离, 定位成本低, 而且定位精度比较, 实际应用价值不高[6]. 基于信号强度室内定位方法采用信号有多, 其中接收信号强度(Received Signal Strength Indication, RSSI)使用最为广泛[7]. 当前基于RSSI的无线网络室内定位方法通常采用一定的算法对节点位置进行估计, 当前主要采用K最近邻算法、支持向量机、神经网络等[8–10], 其中K最近邻算法的计算复杂高, 导致无线网络室内定位方法的定位效果差, 而支持向量机的训练过程耗时比较长, 室内定位效率低, 神经网络的训练速度快, 在无线网络室内定位建模中应用最为广泛. 但是标准神经网络, 如BP神经网络存在收敛速度慢, 参数难以确定等问题[11,12].
为了提升无线网络室内定位的效果, 针对当神经网络存在无线网络室内定位精度的难题, 设计了一种基于改进神经网络的无线网络室内定位方法(ACO-BPNN). 首先提取室内定位的数据, 然后采用神经网络对数据进行学习, 建立无线网络定位模型, 并对神经网络的缺陷进行改进, 最后在Matlab平台上进行了仿真实验.
2 神经网络和人工蜂群算法 2.1 神经网络BP神经网络学习过程由信息的正向传播和误差的反向传播组成, 由输入层、隐含层和输出层构成, 采用最速下降法学习规则, 首先BP神经网络为信息的正向传播; 然后为误差的反向传播, 不断调整网络的权值和阈值, 使误差信号变小, 一直到输出值和期待值的误差减小到规定范围内, 就可以得到相应的输出值.
(1) 输入层、隐层和输出层的节点为N、L和M, 输入为
$f(a) = \frac{1}{{1 + {e^{ - a}}}}$ | (1) |
隐含层节点的输出为:
${h_j} = f({\beta _j}) = f(\sum\limits_{i = 0}^{N - 1} {{V_{ij}}{x_i} - {\phi _j}} )$ | (2) |
输出层节点的输出为:
${y_k} = f({a_k}) = f(\sum\limits_{i = 0}^{L - 1} {{W_{ij}}{h_i} - {\theta _k}} )$ | (3) |
(2) 计算yk和dk之间的输出误差项为:
${\delta _k} = ({d_k} - {y_k}){y_k}(1 - {y_k})$ | (4) |
$\delta _k^* = {h_j}(1 - {h_j})\sum\limits_{k = 0}^{M - 1} {{\delta _k}{W_{jk}}} $ | (5) |
(3) 权重调整量的计算公式为:
$\Delta {W_{jk}}(n) = \eta {\delta _k}{h_j}$ | (6) |
$\Delta {V_{ij}}(n) = \eta \delta _j^*{x_i}$ | (7) |
式中, η表示学习速率.
(4) 网络权重调整方式为
${W_{jk}}(n + 1) = {W_{jk}}(n) + \Delta {W_{jk}}(n) + \mu \Delta {W_{jk}}(n - 1)$ | (8) |
${V_{ij}}(n + 1) = {V_{ij}}(n) + \Delta {V_{ij}}(n) + \mu \Delta {V_{ij}}(n - 1)$ | (9) |
(5) 继续迭代, 直到预测的误差达到预定要求, 得到最优权重Vij和Wjk.
2.2 人工蜂群算法人工蜂群(ABC)算法模拟蜜蜂的采蜜过程, 通过不同角色蜜蜂间的交流, 转换和协作来实现群体智能, 包括引领蜂, 跟随蜂和侦察蜂. 引领蜂和食物源的数量一样, 用于存储食物源信息, 并把食物源信息分享给跟随蜂; 跟随蜂在舞蹈区等待引领蜂来分享食物源信息, 通过观察引领蜂的舞蹈, 选择最优引领蜂进行跟随; 侦察蜂在蜂巢附近搜索食物源, 找到新的食物源. 设有n个食物源
$fi{t_i} = \left\{ \begin{array}{l}\displaystyle\frac{1}{{1 + {f_i}}}\;\;\;\;\;\;\;{f_i} > 0\\1 + \left| {{f_i}} \right|\;\;\;\;\;\;\;{f_i} < 0\end{array} \right.$ | (10) |
式中, f为目标函数值.
首先, 通过式随机初始化n个食物源的位置:
${x_{ij}} = {({x_{ij}})_{\min}} + rand(0,1)({({x_{ij}})_{\max }} - {({x_{ij}})_{\min }})$ | (11) |
式中,
引领蜂首先对相应的食物源进行一次邻域搜索, 用式(12)来表示:
${v_{ij}} = {x_{ij}} + {r_{ij}}({x_{ij}} - {x_{kj}})$ | (12) |
式中, vij为xij附近的食物源位置, k和j是随机值, rij为随机数.
如果新食物源要优于原来的食物源, 那么就用新食物源位置去替代原来位置, 当全部引领蜂完成搜索后, 将食物源信息传达给跟随蜂. 跟随蜂根据相关概率Pi选择一个引领蜂进行跟随, Pi计算公式为:
${P_i} = fi{t_i}/\sum\limits_{i = 1}^n {fi{t_i}} $ | (13) |
当跟随蜂选择食物源后, 需要对食物源进行邻域搜索, 并保留适应度较高的食物源. 若食物源经过引领蜂和跟随蜂limit次循环后, 仍然没有被替换, 那么该位置被放弃, 此时引领蜂转变为侦察蜂, 随机搜索一个食物源替换原食物源.
3 ACO-BPNN的无线网络室内定位方法ACO-BPNN的无线网络室内定位原理为: 首先采集室内定位的数据, 然后采用BP神经网络数据进行学习, 采用ABC算法对神经网络进行优化, 最后建立无线网络室内定位模型, 具体如图1所示.
改进神经网络的无线网络室内定位步骤为:
(1) 采集室内定位的数据, 并进行归一化处理.
(2) 根据采集的数据确定神经网络的结构.
(3) 初始化ABC算法的相关参数.
(4) 随机产生食物源位置
$D = M*H + H*N + H + N$ | (13) |
式中, M、H和N为输入层、隐含层、输出层的节点数.
(5) 将食物源Xi反编码为神经网络的权值和阈值, 对训练样本进行学习, 得到目标函数值为:
$fit = \frac{1}{n}\sum\limits_{i = 1}^n {\sum\limits_{k = 1}^N {{{({d_i} - {t_k})}^2}} } $ | (14) |
式中, di和tk分别为实际和目标输出, n为训练样本数.
(6) 重复上述步骤, 得到所有食物源的适应度值.
(7) 引领蜂在邻域内产生新解Vi, 根据贪婪原则选择Xi和Vi的最优者进入下一代.
(8) 跟随蜂估计Pi, 根据Pi在Xi邻域产生新解Vi, 采同样的方式选Xi和Vi间最优者保留下来.
(9) 若连续limit次搜索后, 一个解没有得到明显改善, 那就就要放弃该解, 此时引领蜂变为侦察蜂, 并产生一个新解Vi.
(10) 选择目前最优的解.
(11) 当寻优终止后, 最优解对应的连接权值和阈值赋给神经网络, 重新对样本进行学习, 建立无线网络室内定位模型.
4 仿真实验 4.1 仿真场景为测试改进神经网络(ABC-BPNN)的无线网络室内定位效果, 选择一个如图2所示的仿真场景进行仿真实验, 采用Matlab 2014工具箱编程实现改进神经网络算法.
4.2 结果与分析
无线网络室内定位误差的计算公式为:
$\delta = \sqrt {{{(x - x')}^2} + {{(y - y')}^2}} $ | (15) |
式中, (x, y)表示实际节点位置;
在相同实验环境下, 采用标准BP神经网络(BPNN)、K最近邻算法(KNN)、遗传算法优化神经网络(GA-BPNN)作为对比方法, 统计它们的定位误差, 结果如图3所示, 从图3可以看出, 在所有方法, KNN的定位误差最大, 其次为BPNN, 定位误差最小者为ABC-BPNN, 这是因为ACO-BPNN通过ACO算法对BP神经网络的参数进行优化, 获得了比遗传算法、梯度下降算法更优的参数, 建立了更优的无线网络室内定位模型, 提高了无线网络室内定位精度, 有效降低了无线网络室内定位误差.
不同方法的训练时间和测试时间对比, 结果如图4所示. 从图4可知, 所有算法的训练时间均要高于测试时间, 这是因为训练过程的计算复杂相对更高, 迭代次数更多, 在相同条件下, ACO-BPNN的训练时间和测试时间均要小于对比方法, 提高了无线网络室内定位的效率, 加快了无线网络室内定位速度, 实际应用范围更加广泛.
5 结束语
针对神经网络在无线网络室内定位中存在的不足, 设计了一种基于ACO-BPNN的无线网络室内定位方法, 引入ABC算法对神经网络参数——连接权值和阈值进行优化, 克服当前方法存在的缺陷, 通过具体对比实验测试其有效性, 结果表明, ACO-BPNN加快了训练和测试速度, 提高了无线网络室内定位精度, 具有十分广泛的应用前景.
[1] |
Gu YY, Lo A, Niemegeers I. A survey of indoor positioning systems for wireless personal networks. IEEE Commu-nications Surveys & Tutorials, 2009, 11(1): 13-32. |
[2] |
Li M, Liu YH. Rendered path: Range-free localization in anisotropic sensor networks with Holes. IEEE/ACM Transactions on Networking, 2010, 18(1): 320-332. DOI:10.1109/TNET.2009.2024940 |
[3] |
Kushki A, Plataniotis KN, Venetsanopoulos AN. Intelligent dynamic radio tracking in indoor wireless local area networks. IEEE Transactions on Mobile Computing, 2010, 9(3): 405-419. DOI:10.1109/TMC.2009.141 |
[4] |
田勇, 唐祯安, 喻言. 室内无线传感器网络信道传输模型及统计分析. 控制与决策, 2014, 29(6): 1135-1138. |
[5] |
倪巍, 王宗欣. 基于接收信号强度测量的室内定位算法. 复旦学报(自然科学版), 2004, 43(1): 72-76. |
[6] |
夏俊, 俞晖, 罗汉文. 基于多传感器数据融合的室内定位算法. 上海师范大学学报(自然科学版), 2015, 44(1): 65-71. |
[7] |
张明华, 张申生, 曹健. 无线局域网中基于信号强度的室内定位. 计算机科学, 2007, 34(6): 68-71, 75. |
[8] |
刘召伟, 徐凤燕, 王宗欣. 基于参数拟合的室内多用户定位算法. 电波科学学报, 2008, 23(6): 1090-1094, 1105. |
[9] |
徐凤燕, 石鹏, 王宗欣. 基于参数拟合的距离-损耗模型室内定位算法. 电路与系统学报, 2007, 12(1): 1-5(请核对本条文献序号). |
[10] |
林以明, 罗海勇, 李锦涛, 等. 基于动态Radio Map的粒子滤波室内无线定位算法. 计算机研究与发展, 2011, 48(1): 139-146. |
[11] |
张勇, 黄杰, 徐科宇. 基于PCA-LSSVR算法的WLAN室内定位方法. 仪器仪表学报, 2015, 36(2): 408-414. |
[12] |
张会清, 石晓伟, 邓贵华, 等. 基于BP神经网络和泰勒级数的室内定位算法研究. 电子学报, 2012, 40(9): 1876-1879. |
[13] |
李瑛, 胡志刚. 一种基于BP神经网络的室内定位模型. 计算机技术与自动化, 2007, 26(2): 77-80. |