APP下载

一种基于稀疏自编码器的WiFi指纹库更新方法

2022-06-10毛永毅王志祥

导航定位学报 2022年3期
关键词:定位精度编码器指纹

毛永毅,王志祥

(西安邮电大学 电子工程学院,西安 710199)

0 引言

随着物联网产业的快速发展以及智能终端设备的大量普及,室内定位的需求日益高涨。如火灾环境中人员位置的确定,地下停车场车位的寻找,工厂中人员及重要物资的快速调取等。包括基于无线保真(wireless fidelity, WiFi)、蓝牙、红外线等无线定位技术已广泛应用到了室内定位中。由于部署方便,获取性强等特点,基于WiFi的室内定位技术受到了研究人员的广泛关注。

国内外学者对基于WiFi的室内定位技术进行了深入研究,如基于WiFi的指纹识别算法作为一种经济高效的定位选择,在现实生活中得到了大量应用。为获得较高的定位精度,除了在线阶段的实时定位算法之外,指纹库的新鲜度对于定位结果也有着举足轻重的影响。随着时间和室内环境的变化,可能会导致原有的 WiFi指纹库失效,而且随着人们室内活动场景的日益复杂,WiFi指纹库的规模也日趋扩大,指纹库的重建过程既费时也费力,不利于室内自动化定位的展开。其中,接入点(access point, AP)移动是造成室内定位精度下降的主要因素,为保证WiFi指纹定位系统具有长期稳定性及较高的定位精度,指纹库的及时更新成为必不可少的前提。

为解决WiFi指纹库自动更新的问题,近些年来,人们开展了一系列针对WiFi指纹库自动更新的研究。文献[6]通过在特定位置部署固定的锚节点,来获取一定的标签数据用于WiFi指纹库的更新;文献[7]通过设置额外的探测器来更新WiFi指纹数据,但是,额外部署的参考锚节点和探测器的成本较高,影响了其应用。此外,人们提出了基于众包数据的WiFi指纹库更新方法,众包方法的核心思想是利用大量普通用户在线收集的指纹数据,完成专业人员所执行的复杂任务,从而实现指纹库的实时更新。

通过众包数据实现指纹库的更新是一种直接有效的方法,如文献[11]通过使用隐式众包数据来对指纹库进行更新,但需要用户提供具体的位置来识别改变的AP。文献[12]提出了一种基于迁移学习(transfer learning,TL)的指纹库更新方法,旨在通过高维空间中数据重新整合的方式对指纹库进行更新,但仍需人工采集部分标签数据且对AP移动所带来的定位误差问题提升效果不明显。文献[13]利用梯度提升决策树(gradient boosting decision tree,GBDT)回归学习算法,学习众包数据中各AP信号强度之间的函数关系,利用学习到的函数关系完成原始指纹库的更新。但是,随着WiFi指纹库规模的扩大,各AP之间信号强度关系的寻找及改变AP的确定,都需要采集大量的众包数据作为支持,更新过程漫长,不利于室内实时定位的展开。

自动编码器(auto-encoder,AE)是一种尽可能对输入信号进行复现的神经网络,常用于高维复杂数据的处理。通过编码器对输入层信息进行编码,降低原始数据的维度,发现数据之间的规律,利用解码器对编码后的信息进行解码,在保留输入层信息最大特征表达的情况下,最大程度地对输入层信息进行复现。它以无监督的方式对输入层信息进行学习,具有良好的稳定性和鲁棒性,如今已在图像处理、故障识别等领域进行了广泛应用。为了有效降低由于AP移动对室内WiFi定位的影响,本文尝试基于稀疏自动编码器(sparse auto-encoder,SAE)的WiFi指纹库更新方法,期望通过适量众包数据,对原始指纹库进行更新,进而解决由于AP移动所带来的定位误差过大和指纹库实时更新的问题。

1 基于稀疏自动编码器的 WiFi指纹库更新方法

基于众包数据稀疏自编码的WiFi指纹库更新方法主要过程如下:1)采用稀疏自动编码器对一定量的众包数据进行自编码,获取众包数据中所隐藏的数据特征,用于原始指纹库的重构;2)利用自编码完成的稀疏自动编码器对原始指纹库进行重构,比较重构完成后的指纹库与原始指纹库中各AP下的接收信号强度指示(received signal strength indicator, RSSI)值的变化关系,进而确定移动的AP;3)利用重构完成后指纹库中移动AP下的RSSI值,替换原始指纹库中相应AP下的RSSI值,完成指纹库的更新。更新流程如图1所示。图1中,WKNN(weighted k-nearest neighbor algorithm)为加权最邻近算法。

图1 WiFi指纹库更新流程

1.1 数据集的构建

本文采用仿真的方式产生实验用数据集。在室内环境下,接收终端接收到的信号强度的损耗和信号传输距离成对数关系的变化,信号的路径损耗可表示为

式中:R(d)为距离发射终端d处接收信号的路径损耗,单位为dB;γ为传播损耗系数;d为参考距离,单位为m。

在室内空间环境下,选取γ=3,d=1。根据信号的路径损耗,针对每个AP在各参考点处生成相应的RSSI数据,以矩阵的形式对这些RSSI数据进行存储,构建了相应的原始指纹库和众包数据集。

1.2 稀疏自编码(SAE)网络

自动编码器是神经网络的一种,该网络具有3层网络结构,分别为输入层、隐藏层和输出层。自编码网络可以看作由两部分组成:编码器和解码器,其中,编码器用于输入层信息的特征提取及转换,解码器用于转换特征的逆向重构,实现输入层信息的最大复原,其网络结构示意图如图2所示。

图2 自动编码器的网络结构示意

对给定的一个含有P个样本的数据集 X=[X,X,…,X] 进行自编码,则对应的编码器输出H=[h,h,…,h]及解码器输出Y=[y,y,… ,y]分别为

式中: θ = {W,b} 和 θ= {W,b} 分别为编码和解码过程中权重和偏置的集合;为激活函数,这里使用最常用的非线性西格莫伊德(Sigmoid)函数,其表达方式为

式中:x为函数的自变量,取值范围为(-∞,+∞);e为自然对数函数的底数。

通常情况下,自动编码器的输出Y并不完全等于输入 X,只是在满足一定条件概率的情况下,尽可能地对X进行复现,所以自动编码器的训练过程可以理解为对损失函数 J,即重构误差进行最小化的计算过程,其表达方式为

式中:第1项为输入输出样本误差的平方和均值;第2项为权重衰减项,用于减少权重的大小以防止过拟合;P为输入的样本个数;λ为L正则项的系数。

为了获取输入样本中更有效的特征表达,通过对隐藏层施加一定的限制,使隐藏层满足一定的稀疏性,使得它能够在恶劣的环境下学习到最好的样本特征,从而提高了特征提取的效率,此时,损失函数可表示为

式中:β为稀疏约束项的权重;ρ为稀疏性参数,通常是一个接近于0的较小值;ρ︿为平均激活度,取决于{W,b};h(x)为第 i个输入样本所对应的第 j个隐藏层神经元的输出;K为库尔贝克-莱布勒(Kullback-Leibler)差异的简称,用于衡量相同事件空间里的两个概率分布的差异情况。

式(6)中的第2项为稀疏约束项,为隐藏层提供了稀疏性约束,使得隐藏层的ρ︿保持在一个较小的范围内。可以看出,SAE通过稀疏性约束项使得ρ︿向设定的稀疏性参数靠近,从而实现稀疏自编码的效果。

稀疏自编码的过程就是对损失函数 J进行最小化的过程,因此,需要对网络模型参数进行实时优化。首先,通过SAE网络的前向传播,可以得到网络的整体重构误差,将得到的重构误差从输出层进行反向传播,采用梯度下降算法对权值矩阵W和偏置向量b进行相应优化更新,其表达方式为

式中,α为学习速率。

为了防止网络出现梯度消失或者梯度爆炸的现象,α会随着迭代次数的增加而逐渐减小,其更新方式为

式中:μ为提前设置的标量;为迭代的总次数;α为学习速率的初始值;α为第次迭代时的学习速率。

为了得到众包数据中更有效的特征表达,在AE网络的训练过程中加入了一个稀疏性约束项,从而构成了一个SAE网络,以此提高对众包数据特征提取的效率。

众包数据稀疏自编码的过程即是对式(6)中的重构误差函数 J进行最小化的过程,通过梯度下降算法对式(9)和式(10)中的权值矩阵和偏置向量进行更新,以最小化重构误差函数。在得到最小化重构误差函数之后,通过计算众包数据自编码的输出判断误差函数是否收敛,当误差函数收敛时,则此SAE网络训练完成,否则继续上述步骤,直到误差函数收敛为止。这里SAE网络训练时的主要参数取值分别为 λ=0.05,α=0.1和μ=0.1,其余网络结构参数通过实验逐步分析选取。

1.3 原始指纹库重构

稀疏自编码网络训练完成之后,利用训练好的网络对原始指纹库进行自编码,即原始指纹库的重构。原始指纹库的重构过程仍同图2所示,其中[X,X,…,X]为原始指纹库中每个 AP所对应的RSSI数据;[y,y,…,y]为原始指纹库重构的输出,即重构完成的原始指纹库中每个 AP所对应的RSSI数据;[h,h,…,h]为众包数据自编码保留下来的含有特征表达的隐藏神经元。

1.4 移动AP的识别

原始指纹库经过SAE网络重构之后会呈现出一个新的数据分布。为体现数据分布变化,引入均方误差(mean square error, MSE)作为数据分布变化的评判指标,越小,表明数据库之间数据分布越接近,的计算方法为

式中:和 X′分别为重构前后的原始指纹库;为AP样本总数;为原始指纹库重构前后的均方误差;为移动后的指纹库的均方误差;为 AP移动后的指纹库。

通过计算得到远小于,这说明原始指纹库经过SAE网络重构之后,数据分布更加接近于AP移动后的指纹数据分布,与原始指纹库的数据分布差异明显。这种差异是由移动的AP所带来的,凭借这种关系来寻找移动的AP。

1.5 更新原始指纹库

在确定移动AP之后,将重构之后的原始指纹库中移动AP下的RSSI值提取出来用以替换原始指纹库中相应AP下的RSSI值,最终完成原始指纹库的更新。

1.6 WKNN的定位

在基于 WiFi指纹的室内定位算法中,本文采用一种常用的WKNN来进行定位。WKNN将采集到的指纹数据与指纹库中的参考数据进行相似度比较,找到相似度最高的个参考点,给予这个参考点的位置坐标不同的权值,从而实现目标位置的估计。本文中,将WKNN中的设置为4。

为了对最终的定位结果进行直观的量化评判,这里引入了评判误差函数为

式中:(X,Y)为目标点的真实坐标;(X,Y)为WKNN计算得到的预测坐标。

2 实验与结果分析

本文仿真实验区域为20 m×50 m的室内空间,如图3所示,每隔1 m设置一个指纹采集节点,共1 000个指纹采集节点,同时在该空间设置AP点18个(AP1至AP18),其中用于移动部署的AP点6个,其余12个AP点均保持不变。

图3 仿真平面示意

离线阶段在指纹采集节点处,对各个AP信号进行采集建立原始指纹库,建库格式为针对每个AP按列整理数据,从而形成一个1 000×18的RSSI数据库矩阵。按照原始指纹库的建库格式,通过移动不同数量的AP,在原空间中的指纹采集节点处采集AP移动后的指纹数据,通过对各个AP信号进行采集建立AP移动后的指纹库,建库格式为针对每个 AP按列整理数据,同样形成了一个1 000×18的RSSI数据库矩阵。在实时定位阶段,在移动相应AP后的指纹数据库中随机选取100条指纹数据作为众包数据集,从而形成一个 100×18的RSSI数据库矩阵。

基于众包数据稀疏自编码的 WiFi指纹库更新系统主要包括以下3个部分,即移动AP的识别、WiFi指纹库的更新、WiFi指纹库更新的影响因素。

1)移动AP的识别。在对WiFi指纹库更新之前,需要找到移动的AP,这里采用稀疏自编码前后的原始指纹库作为对比,比较重构前后所有AP的M值的大小关系,用于快速寻找移动的AP。图6为移动6个AP下不同AP的M值,经过实验比较,将M值大于15作为寻找移动AP的评判标准,该标准在移动不同数量AP的情况下均有效找到了移动AP。

由图4可知,各AP重构前后的M值差异明显,其中AP2、AP3、AP6、AP10、AP13、AP15所对应的M值明显高于其他AP的M值,均达到了15以上,而其他AP的M值均保持在10以下,由此,可以有效判断上述AP即为要寻找的移动AP。

图4 各AP的MSE值对比图

2)WiFi指纹库的更新。在确定移动AP之后,需要将稀疏自编码重构之后指纹库中移动 AP下的RSSI值提取出来,用于替换原指纹库中相应AP下的RSSI值,最终完成指纹库的更新。为体现AP移动后指纹库更新的效果,在实验阶段,选用稀疏自编码重构、GBDT回归预测、附有适量众包标签原始指纹库的稀疏自编码重构的方式与原始指纹库进行了有效对比。

图5为基于不同 WiFi指纹库更新方法下的CDF误差曲线,表1总结了不同定位更新方法下定位误差的平均值、中位数和最大值。

图5 不同更新方法下的定位精度

表1 不同更新方法下的定位精度 单位:m

由图5可知,由于存在移动的 AP,原始指纹库将不再适用于当前的信号空间环境,定位精度也因此最低。通过在原始指纹库中加入适量带有标签的众包数据以及通过GBDT回归预测的方法,可以看到定位精度有了明显提高。为了进一步提升当前环境下的定位精度,采用稀疏自编码的方法对原始指纹库进行更新,可以看出该方法对原指纹库的更新效果明显,定位精度有了明显提升。最终,稀疏自编码的平均定位精度可以达到0.88 m,与原始指纹库相比提升了72.4%,与GBDT回归预测相比提升了20.0%,与附有众包标签的原始指纹库相比提升了8.3%,中值误差和最大误差也得到了相应明显改善。最后,通过对附有众包标签的原始指纹库进行稀疏自编码,可以发现其定位精度有了进一步提升,相较于原始指纹库的稀疏自编码定位精度提升了30.7%,适量的带有标签的众包数据可以对整个稀疏自编码网络起到一定的调节作用,有利于进一步提升稀疏自编码网络的重构效果。

3)WiFi指纹库更新的影响因素。指纹库更新的影响因素主要包括稀疏自编码网络中隐藏层的单元个数m、稀疏约束项权重β、稀疏性参数ρ、最大迭代次数N以及移动AP的数量。

在实验中共布置了18个AP,其中6个AP作为移动的 AP,12个 AP作为未移动的 AP,在观察移动 AP的数量对指纹库更新影响的测试中,12个未移动的 AP保持不变,仅添加不同数量的移动AP。图6给出了移动不同AP数量下,指纹库更新后的CDF误差曲线。

从图6中可以发现,随着移动AP数量的增加,更新后WiFi指纹库的定位精度有所下降。这是因为随着移动AP数量的增加,在一定程度上,稀疏自编码网络对原始指纹库的重构难度也随之上升,但是相较于原始指纹库仍然保持着较高的定位精度。实验表明,在移动2个AP、4个AP、6个AP的情况下,相较于原始指纹库的平均定位精度分别提高了66.1%,75.3%,72.4%。

图6 移动AP的个数对指纹库更新的影响

在稀疏自编码网络中,隐藏层的单元个数对众包数据特征的提取及原始指纹库的重构有着举足轻重的影响。图7给出了设置不同隐藏单元个数,指纹库更新后的CDF误差曲线。

图7 隐藏层单元个数对指纹库更新的影响

从图7中可以看出,随着隐藏单元个数的变化,更新后指纹库的定位精度也会随之发生变化,当隐藏单元个数 m=4 时,指纹库会获得一个比较理想的更新效果。

为了得到众包数据中更有效的特征表达,通过在自编码网络中引入稀疏性约束项的方式,以此提高众包数据特征提取的效率。图8和图9分别给出了不同稀疏性参数和稀疏约束项权重下,指纹库更新后的平均定位误差。

从图8和图9中可以看出,随着稀疏性参数和稀疏约束项权重的变化,WiFi指纹库更新后的定位精度也随之发生变化,当稀疏性参数设置为ρ=0.05,稀疏约束项权重设置为 β=8时,所获得的平均定位误差达到最小。

图8 稀疏性参数对指纹库更新的影响

图9 稀疏约束项权重对指纹库更新的影响

图10给出了不同迭代次数下,WiFi指纹库更新后的平均定位误差;图11给出了不同迭代次数下系统所耗费的时间。

图10 最大迭代次数N对指纹库更新的影响

图11 不同迭代次数下系统所耗费的时间

由图10和图11可以看出,综合考虑平均定位误差及迭代所需时间,将最大迭代次数设置为=500 时,指纹库会得到一个比较高的更新效率。

3 结束语

本文提出了一种基于众包数据稀疏自编码的 WiFi指纹库更新方法,该方法可以借助众包数据对原始指纹库进行重构,进而检测移动的AP并更新原始指纹库。相较于未移动AP的RSSI值,众包数据与原始指纹库中移动 AP的 RSSI值之间的差值明显增大。凭借这种关系,对比稀疏自编码重构前后原始指纹库中各 AP的M值准确识别了移动的AP。确定移动AP之后,利用重构完成的指纹数据替换原始指纹库中相应的指纹数据,进而完成指纹库的更新。仿真实验表明,文中所提的基于众包数据稀疏自编码的WiFi指纹库更新方法相较于其他相关 WiFi指纹库更新方法均取得了较高的定位精度和更新效率,为室内 WiFi指纹库的更新提供了一种切实可行的方案。

猜你喜欢

定位精度编码器指纹
北方海区北斗地基增强系统基站自定位精度研究
小米8手机在城市环境下的单点定位精度研究
基于ResNet18特征编码器的水稻病虫害图像描述生成
为什么每个人的指纹都不一样
GPS定位精度研究
GPS定位精度研究
送餐机器人
基于TMS320F28335的绝对式光电编码器驱动设计
唯一的指纹
可疑的指纹