基于深度学习的蜂窝信号室内定位算法
2019-12-23杨伊璇
杨伊璇
(广东电网有限责任公司,广东广州 510520)
0 引 言
移动电话通过安装WiFi设备,可实现基于WiFi的室内定位,进而估计用户位置[1-2]。然而,并非所有移动电话都安装了WiFi芯片。此外,为了提高WiFi室内定位精度,研究者通过在移动电话上安装其他惯性传感器,如加速计、压力传感器、陀螺仪[3-4]。但是,安装这些传感器加大了移动电话成本,并且这些传感器往往只安装于高端电话。
此外,在很多地方,没有WiFi信号,只有蜂窝信号。因此,利用蜂窝信号估计用户位置受到关注。基于蜂窝信号用户定位过程分为离线阶段和在线阶段。在离线阶段:移动电话从不同信号塔获取接收信号强度(Received Signal Strength, RSS),且这些信号塔位置已知,进而构成“指纹”;然后进入在线阶段,监听移动电话信号,再依据移动电话信号,在指纹中寻找最佳的位置匹配,进而获取用户位置。
然而,当前的基于蜂窝的室内定位方案可分为两类:(1)传统的分类器,如SVM[5]、KNN[6],学习RSS的模型,(2)采用概率技术[7-9]。但是,传统的机器学习并不能有效地处理无线信道的噪声。而概率技术能够有效处理无线信号噪声。然而,这些基于概率技术方案是假定来自信号塔的不同信号是相互独立的,这容易形成粗粒度的精度。
为此,提出基于深度学习的室内定位(Deep Learning-based Cellular Signal Indoor localization, DLCS)算法。DLCS算法先建立深度神经网络(Deep Neural Network, DNN)模型,然后DNN模型学习来自不同信号塔的RSS与移动电话位置间的非线性的关系。具体而言,在离线阶段,将来自不同信号塔的RSS信号用于训练DNN模型;在在线阶段,用户自由移动,获取来自RSS信号,再将这些信号反馈给DNN模型,进而估计用户位置。
为了获取高的定位精度和强健定位,DLCS算法需要应对多项挑战,训练数据的噪声处理、数据开销的控制、避免训练数据的过拟合。为此,DLCS算法引用新的数据增广算法,提升DNN的输入数据容量,同时引用异常检测方案和模型正规化技术避免过似合。
1 系统模型
在二维监测区域内部署m个信号塔,并由m个信号塔监听整个监测区域。为了降低开销,将监测区域进行网格化。每个网格的边长为dr。并在所有网格内部署n个参考点。
在离线阶段,对n个参考点的信号进行抽样,将这些抽样数据构成训练数据。为此,用户利用自己的移动电话扫描周围信号塔,进而获取信号RSS值。对于第i个信号塔,系统记录它的二元信息c=
整个DLCS算法由离线阶段和在线阶段构成,如图1所示。在离线阶段,收集训练数据,形成模型。主要由训练数据收集、预处理、数据增广和模型产生构成。
图1 系统模型
在在线阶段中,依据已训练的模型,根据所接收的RSS值,进行位置匹配,获取用户位置。主要由RSS收集、预处理、在线预测和定位构成。
2 DLCS算法
2.1 预处理
离线阶段和在线阶段均需进行预处理操作。通过预处理操作,将输入的扫描数据进行规范化处理。具体而言,由于无线信道的噪声,用户并不能扫描到所有信号塔。为了构建连续的信号塔输入集,预处理将所扫描的数据进行扩展成一个矢量s:
s=(s1,s2,…,sm)
(1)
若用户没有扫描到某信号塔,则该信号塔所对应的RSS值为零。为了提高模型的收敛时间,将所有RSS值归化为0至1的数。
2.2 数据增广
相比于传统的机器学习,深度学习模型在捕获不同信号塔间的RSS值的非线性关系方面具有明显的优势。然而,为了获取此非线性关系,需要大量训练数据,这可能极大地增加了训练开销。而数据增广对数据进行对称训练抽样,即增加了训练数据尺寸,又控制了数据训练开销。
为此,DLCS算法采用随机增广策略。其先随机产生二值矩阵,然后再将其与RSS矢量相乘,进而丢弃一些信号塔的信号值。这与事实相符:用户可能没有接收到一些信号塔的RSS值。
例如,如图2所示。原始的RSS值为{0.15 0.5 0.8 0.2},并将其与随机产生的矩阵相乘,可得合成的抽样值。
图2 基于RSS的随机增广策略
2.3 训练模型
DNN的一个主要优势就是它能够以层次分布形式表征模型的输入数据[10]。因此,可利用DNN处理蜂窝数据。
引用如图3所示DNN结构。DNN的输入层为长度为m的矢量m=(RSS1,RSS2,…,RSSm)。中间有四个隐藏层,它们属于非线性处理单元。同时,引用校正线性单元(Rectified Linear Units, ReLUs)作为隐藏层的激活函数,进而减少梯度消息问题[11]。
图3 DNN网络结构
输出层由n个单元构成,其对应到在离线阶段所设的参考点数。输出问题属于分类问题。为此,引用softmax函数。
具体而言,假定有t个训练抽样数据,每项记录sj包含了m个特征(si1,si2,…,sim),且1≤j≤t。(si1,si2,…,sim)表示来自m个信号塔的RSS值。将输入sj值进行离散化,即aj=(aj1,aj2,…,ajn)。aj蕴含了n个参考点成为估计点的可能性。为此,softmax函数将此可能性转化为概率:
(2)
此外,为了增加模型强健性,并控制过似合现象,引用丢弃正则化(Dropout Regularization, DR)[12]。通过DR防止在训练阶段,数据间的彼此的相互依赖。DR策略在训练阶段,随机地将神经元从DNN中移除,如图3所示。移除的神经元不再参与前向或反向过程。
2.4 在线预测
假定用户在未知位置u,从周围的信号塔接收了蜂窝信号[13]。在线预测阶段就是通过这些信号的RSS值(矢量s)估计u的位置。即u最可能出现在哪个参考点。将具有最大概率的参考点r*作为u的位置,如式(3)所示:
(3)
DLCS算法通过DNN的softmax层输出概率,进而估计用户位置。注意了,相比于传统的概率技术[7-9], DLCS算法并没假定信号塔间的相互独立,而是通过DNN模型捕获不同信号塔间的相关性。
令P=[P1,P2,…,Pn]表示监测区域内n个参考点作为用户位置的概率。即Pi(1≤i≤n)表示来自第i个参考点的信号强度s的概率,如式(4)所示:
Pi=P(ri|s)
(4)
将具有最高概率的参考点作为用户的估计位置。然而,使用该策略,估计的位置只是离散参考点的某一个。因此,为了能够在连续空间里跟踪用户,引用空间权值平均(Spatial Weighted Average, SWA)策略。将最可能的k个参考点的中心位置作为用户估计位置,再依据softmax函数[14]估计各参考点的权值系数:
(5)
2.5 位置修正
式(5)仅通过单一抽样值(一个RSS矢量)估计用户位置。然而,通常,蜂窝数据的扫描率远大于用户的移动率。因此,DLCS算法利用多个连续抽样值进一步估计位置,进而提高位置估计的精度。DLCS算法引用两个位置修正策略:抽样丢弃(Sample Rejection, SR)策略和质心(Centroid)策略。
2.5.1SR策略
SR策略通过丢弃异常位置估计值,提高位置估计精度。为此,先计算每个估计位置值与剩余所报告的位置ϑ间的距离,将其称为间距di:
(6)
其中d(i,j)表示i与j间的欧式距离。
然后,再计算平均间距davg,再排除不满足di≤davg的样值[15]。最后,将剩余的样值的均值作为用户位置的估计值。
2.5.2Centroid策略
Centroid策略的思想:每个估计位置的权值正比于该估计位置的最大softmax可能性:
(7)
3 性能仿真
3.1 仿真场景
为了更好地分析DLCS算法在室内环境的性能,选择典型的室内环境进行实验。具体而言,考虑11 m×12 m校园办公室,如图4所示,其包含会议室,走廊。
图4 实验环境
考虑17个信号塔。并在实验室内部署=51个参考点,网格边长dr=1。采用不同安卓手机收集信号塔信号,如HTC X9、HTC E9、Motorola Moto G5、ZTE Blade 7。并利用2天时间收集信号塔信号。手机利用安卓的软件开发工具包(Software Development Kit, SDK)扫描信号塔信号,扫描率为3 Hz。
3.2 实验一
考虑DR对定位精度的影响,并通过实验数据获取最佳的丢弃百分比。从图5可知,丢弃百分比为10%时,定位精度最低。DR策略非常重要。随着网络尺寸的增加,适合地丢弃一些神经元,能够有效地避免过似合。然而,从图5可知,当丢弃百分比过大时,定位误差迅速增加。
图5 定位精度随丢弃百分比的变化情况
3.3 实验二
本次实验考虑手机所接收的信号塔数对定位精度的影响。即信号塔密度数对定位精度的影响。选择三个用户(A、B、C),它们所接收的信号塔数分别17、16、9,如图6所示。从图6可知,手机监听到信号塔数越多,定位精度越高。
图6 定位误差(实验二)
3.4 实验三
本次实验分析SR和Centroid策略以及它们的混合策略对定位精度的影响。从图7可知,相比于SR和Centroid策略,混合策略的定位误差最低,且分别下降了13%和22%。
图7 定位误差(实验三)
3.5 实验四
本次实验分析DLCS算法的定位精度,并选择同类的基于蜂窝信号的定位算法进行比较。为此,选择SkyLoc和SVM作为参照。SkyLoc选择KNN分类器,并依据RSS矢量估计用户位置。
图8 定位误差的CDF
图8显示了DLCS、SkyLoc和SVM算法的定位误差的累积分布函数(Cumulative Distribution Function,CDF)。从图8可知,相比于SkyLoc和SVM,DLCS算法的定位精度得到有效提高。这说明DLCS算法通过DNN模型有效地处理噪声,提高定位精度。
4 结 语
本文提出基于深度学习的室内定位算法DLCS。DLCS算法通过增广训练数据,增加算法的鲁棒性。同时,采用丢弃正规化策略,避免过似合。最后,通过安卓手机测试DLCS算法。仿真结果表明,DLCS算法能够将定位误差控制在0.78 m。