陈 娟, 单志龙,2, 邓嘉豪, 曾衍华
1(华南师范大学 计算机学院, 广州 510631)
2(华南师范大学 网络教育学院, 广州 510631)
目前常用的室内定位技术包括蓝牙[1]、超宽带(UWB)[2]、射频识别(RFID)[3]、红外[4]、Zigbee[5]、视觉[6]和可见光[7]等, 这些技术需要部署特定的基础设施, 方法复杂且昂贵, 很难大规模推广. 随着智能手机的普及, 手机配备的各种传感器可以采集各种信号, 为室内定位技术的研究提供了方便. WiFi 的普及使得很多的室内定位研究基于WiFi 信号进行, 但WiFi 信号受到多径效应的影响, 衰减会比较快. 在全局空间,WiFi 具有较高的区分度, 但对于距离相近的位置点, 采集的RSSI 数据较为相似, 在局部空间上缺乏唯一性.在室内环境的局部空间, 地磁场具有较高的区分度, 但在定位空间很大时, 多个相距较远的位置可能具有非常相似的地磁特征, 在全局空间上缺乏唯一性. 因此仅使用WiFi 或地磁场等单一定位源进行定位, 都难以达到较高的精度.
针对单一定位源存在较大误差的现象, 多源信息融合定位应运而生. 目前, 国内外对于多源信息融合定位方面有较多的研究. Pham 等[8]将WiFi 信号和视觉信号进行融合进行定位, 文献[9]融合了WiFi、蓝牙以及光学传感器三维坐标和磁传感器旋转属性来定位,Shu 等[10]采用双向粒子滤波过程融合地磁信号和WiFi 信号, 余刘勇等[11]采用地磁和惯性导航的联合定位. 实验数据表明, 多源信息融合都要比单信号方法进行定位的效果好. 基于WiFi 和地磁场信号具有一定互补性的特点, 本文通过指纹匹配的方式来实现WiFi 和地磁场信号的融合定位.
指纹匹配定位的离线阶段主要完成指纹库的构建,在线阶段则是通过KNN[12]、WKNN[13]、机器学习[14]、深度学习[15]等匹配算法将待定位点与指纹库中的指纹进行匹配, 然后估计其位置. 如何解决指纹数据和物理坐标的映射关系是需要考虑的首要问题. BP 神经网络因其有较强的非线性映射能力[16], 能建立指纹数据和物理坐标之间的非线性关系被广泛应用于定位预测.但BP 神经网络因随机产生权值和阈值易出现收敛时间长, 迭代次数多, 精度不高等现象[17,18]. 差分进化算法是一个全局优化算法, 有收敛速度快、控制参数少且设置简单、优化结果稳健等优点[19]. 利用差分进化算法的全局搜索能力, 能够有效改进BP 模型的性能.
在BP 神经网络中, 神经网络层之间的初始权值和偏差是随机初始化的, 这不仅增加了收敛时间, 还有陷入局部最优的可能性. 因此, 为提高BP 神经网络的学习能力, 充分发挥其强大的非线性映射能力, 文献[20]利用DE 差分进化算法(differential evolution, DE)来优化BP 神经网络的参数, 但标准的DE 算法有控制参数、进化策略选择困难[21]等诸多问题. 为了提高差分进化算法的优化能力, 本文提出了一种改进的差分进化算法来优化BP 神经网络, 有助于BP 模型更好地学习WiFi 和地磁指纹数据的特征, 以此来提高定位精度和网络的收敛速度.
DE 算法主要过程包括种群初始化、变异、交叉和选择等步骤, 其中变异操作是生成具有较好适合度值的新向量操作, 以获得更好的搜索能力[22]. 目前最常用的变异策略DE/rand/1[23]操作如式(1)所示:
其中,G为进化代数;xr1,G为当前个体;xr2,G,xr3,G分别为第G代种群中随机选择的两个不同个体;F为变异因子. 如图1 所示, DE/rand/1 在二维参数空间的突变过程中, 种群进化的搜索方向vi与全局最优解(global optimum)方向有较大偏差.
图1 DE/rand/1 的突变策略过程图
集体智能(collective intelligence, CI) 是可以为种群进化提供更好搜索方向的突变算子, 能引导种群走向一个更好的搜索区域, 该算子由混合了部分适应性较好的向量和随机选择的向量的集合信息来生成.vmix_mbest,G是第G代中适应度排名最好的m个向量组成的复合向量, 本文取m=5, 可表示为:
基于CI 的突变策略可以表示为:
如图2 所示, 在二维参数空间上, 基于CI 的突变策略过程在种群进化的搜索方向vmix,G与全局最优解方向比较一致, CI 突变算子将引导种群走向一个更好的搜索区域.
图2 基于CI 的突变策略的过程图
DE 算法的变异因子F和交叉概率因子CR(crossover rate) 在整个种群进化过程中控制着种群多样性和收敛速度.
当进化代数G小时, 较大的F值才能保证个体的多样性, 跳出局部极值找到全局最优值, 但其收敛速度会降低; 当G变大时, 群体的多样性需求降低, 较小的F值更易于保持搜索局部最优值的稳定性. 为此, 本文用改进的Logistic 函数作为自适应变异因子F(G), 随着种群的进化, 变异因子F会慢慢变小, 即:
其中,Fmax和Fmin分别为F的最大值和最小值,a为初始衰减率, 通过改变a的值可以调节F的下降速度.
根据交叉概率因子的特点,CR值越大, 算法局部搜索能力越强, 收敛越快;CR值越小, 全局搜索能力越强, 有利于保持种群多样性. 为保持种群前期的多样性和后期的收敛速度, 利用Sigmoid 函数作为自适应交叉概率因子CR(G), 可以兼顾种群的多样性和收敛速度, 故:
其中,CRmax和CRmin分别为交叉概率因子的最大和最小边界,CRmax,CRmin一般取经验值分别为0.9, 0.1,β为控制CR增长速率的参数, 一般取经验值5.
IDEBP 定位算法主要包括离线阶段和在线定位阶段. 离线阶段需要完成指纹库的构建和IDEBP 模型的训练. 在线定位阶段将测试数据集输入到训练好的模型中, 然后得到最终的定位结果.
3.1.1 指纹库的构建
在离线阶段首先需要对定位区域进行网格划分,然后借助智能手机采集每个网格点的RSSI 值、地磁场强度值以及该点对应的物理坐标值, 并且将数据写入后台数据库中. 每条指纹数据的格式如下:
其中,Di,j表示坐标为(i,j)位置的指纹数据,mx,my和mz分别表示该位置上地磁信号在手机坐标系3 个坐标轴上的分量; {RSSI1,RSSI2,RSSI3,···,RSSIn}表示该位置上扫描到的n个AP (access point)点的RSSI 值.
指纹库D的结构图如表1 所示, 表中t为指纹点的个数.
表1 指纹库D 的结构表
3.1.2 模型训练
模型训练过程如下:
(1)本文以n个AP 在各个参考点的RSSI 值以及三维的地磁场强度值作为BP 神经网络的输入, 以各个参考点位置的坐标(i, j)作为输出, 中间层为隐含层. 确定神经网络的结构之后, 对种群中个体进行编码, 编码长度d=m×l+l×n+l+n, 其中,m、l、n分别是输入层、隐藏层和输出层的节点数量.
(2)训练集样本输入到BP 模型中进行训练, 计算出模型输出与样本输出之间的误差. 通过误差来计算种群个体的适应度, 并用适应度函数判断种群中个体的优劣程度:
其中,x是与BP 神经网络的权重和偏差相对应的种群个体,E(x) 是相应的BP 神经网络输出的均方误差.C是一个常数.
(3)种群中个体进行变异、交叉以及选择操作之后, 判断种群进化次数是否满足种群的最大迭代要求.若满足要求, 则得到最优个体; 反之, 则更新BP 神经网络的权值和偏差.
(4)得到最优个体后, 利用最优个体给BP 神经网络的权值和偏差赋值并进行BP 神经网络模型的训练.
将测试集数据归一化后输入到训练好的BP 模型中, 模型根据测试数据, 输出预测结果. 然后将得到的数据进行反归一化, 得到最终的定位结果, 即每个测试数据所对应的(i,j)坐标.
为验证算法的性能, 项目组开发了一套以Android智能手机为终端的室内定位APP, 实验中, 通过智能移动设备上的室内定位APP 采集数据. 实验采集数据所用的智能移动设备为红米K30.
实验环境选在华南师范大学计算机学院3 楼空间信息研究中心实验室, 该实验室是一个长约为23 m, 宽约为8 m 的室内空间. 图3 是实验环境的平面图, 图4是数据采集的实景图, 图5 是实验应用系统图. 实验者在实验场所中划了11×35 个网格点, 每个网格点的边长为0.6 m, 其中长方形的小方块为学生工位, 小圆点为采集数据的网格点, 五角星为WiFi 接入点, 共有16 个. 除去学生工位、会议桌以及墙体等有障碍物的网格点外, 有效的网格点共有283 个. 为保证实验数据的可靠性, 每台设备在每个网格点上, 以1 s 作为时间间隔, 采集120 次数据. 在整个实验过程中, 十几个实验室成员在该区域内正常活动学习.
图3 实验环境平面图
图4 数据采集实景图
图5 实验应用系统图
将训练集数据输入到程序中进行训练, 训练结束得到BP 神经网络和IDEBP 模型的训练误差曲线分别如图6 和图7 所示. 图中横坐标表示训练次数, 纵坐标表示训练误差. 从图6 可以看出, BP 神经网络在100 步时训练误差仍然大于0.1, 且整体的迭代误差下降速度慢. 这是因为BP 神经网络存在迭代次数多, 训练时间长, 误差精度大等问题. 从图7 中可以看出, IDEBP 神经网络在第28 次迭代时就已经到达了所设定的目标误差, 即0.001. 由上可知, 差分进化算法优化BP 神经网络的算法在一定程度上可以改进传统BP 算法收敛时间长, 迭代次数多, 精度不高等缺点.
图6 BP 神经网络训练误差曲线
图7 IDEBP 神经网络训练误差曲线
针对BP 神经网络随机初始化权值和阈值易出现收敛时间长, 迭代次数多等问题, 文献[24] 提出了GABP (genetic algorithm BP)算法, 文献[25] 提出了DEBP (differential evolution BP)算法对BP 神经网络进行优化. 图8 对GABP 算法, DEBP 算法和IDEBP算法中种群适应度曲线随着迭代次数增加的变化情况进行了比较. 图中横坐标表示迭代次数, 纵坐标表示种群适应度. 由图可知, GABP 算法和DEBP 算法分别在第43 次和第33 次迭代中趋于稳定, 而IDEBP 算法在第28 次迭代中就能趋于稳定, 算法加快了种群的收敛速度. 同时GABP 算法和DEBP 算法的适应度水平分别约为0.34 和0.38, IDEBP 约为0.44, 而较高的适应度水平可以找到更好的权重和偏差.
图8 优化的BP 神经网络适应度图
图9 比较了BP 算法[26]、GABP 算法、DEBP 算法和IDEBP 算法的定位误差累积分布曲线. 由图可知,因为IDE 算法较强的全局搜索能力可以优化BP 神经网络的初始权值和偏差, 所以IDEBP 算法具有最优的定位效果, DEBP 算法的定位效果次之, GABP 算法与BP 算法的定位精度依次排在其后面.
图9 定位误差百分比图
考虑上述4 种定位算法的平均定位误差和最大最小误差, 如表2 所示, IDEBP 算法平均误差为1.14 m,相对于其他定位算法的定位精度分别提高了1.88 m,0.92 m, 0.55 m.
表2 不同模型的定位性能比较 (m)
针对标准的DE 算法进化策略、控制参数选择困难等诸多问题, 本文改进了差分进化算法, 并与BP 神经网络相结合, 克服了BP 神经网络迭代次数多, 训练时间长, 误差精度大等缺点, 提出了应用于WiFi 和地磁场的联合指纹定位的IDEBP 算法. 实验结果表明,IDEBP 算法可以有效地提高指纹定位的精度, 加快神经网络的收敛速度.