基于人工神经网络的室内定位算法研究
2021-11-11赵亚军张皓左晋远子涵符蓉玥
赵亚军张 皓左 晋远子涵符蓉玥
(1.北京印刷学院机电工程学院,北京 102600; 2.北京印刷学院智能制造实验室,北京 102600)
随着现代科学信息技术、互联网和通信技术的快速进步和持续兴盛,人们对于定位精度较高的室内定位需求日益增加。室内定位与室外不同,室内场景复杂且定位环境恶劣。此外,因为物体的阻挡,GPS无法满足室内准确定位需求。传统的室内定位技术主要包括:ZigBee、蓝牙、WiFi、红外线、超声波、RFID等。由于室内定位环境恶劣,上述技术与UWB技术相比工作不稳定,无法达到符合现代需求的定位结果。UWB无线通信技术,具有信号传输速率高、抗多径作用效果好、成本低、功耗低等特征,基于 UWB的室内定位能够实现精确到厘米数量级的定位精度[1]。
近年来,BP神经网络模型在室内定位算法上的研究越来越深入,通过对神经网络模型采用不同的优化和训练方式,以减小定位误差[10-12]。陈皓等提出BP神经网络与卡尔曼滤波相结合的室内定位方法;将初始观测解集输入卡尔曼滤波器,利用BP网络对卡尔曼滤波器进行补偿[2]。梁丰等提出遗传算法优化BP网络的定位算法;优化BP网络的随机权值和阈值,获得定位模型[3]。李勇等提出一种基于IA-BP神经网络的定位算法,利用免疫算法得到定位模型的最优权值和阈值[4]。
在上述等研究的基础上,针对BP算法的迭代次数多,易陷入局部极小值,本文提出基于改进BP神经网络的室内定位方法。利用自适应学习率算法优化BP算法的训练过程,即以训练过程中的误差趋势作为改变学习速率的条件,根据训练过程的实际情况,自适应改变学习速率的大小。实验结果表明,基于改进BP神经网络的定位模型相比于传统的定位模型,有效提高了定位精度。
1 UWB相关理论
1.1 UWB的定义
与其他无线通信技术相比,超宽带(Ultra Wide Band, UWB)技术使用纳秒级的窄脉冲传递信号,具有带宽大、时间分辨率高和抗多径衰落能力强等优势,能够实现高速数据传输。美国 FCC 对于UWB 的定义[9]为 :
式中,fH、fL为功率比峰值功率低10dB时对应的高端频率和低端频率,fc为载波频率。
1.2 基于UWB的测距原理
基于距离的定位算法主要有TOA和TDOA等,考虑到定位性能、模型搭建和算法简易性等因素,采用TOA算法。TOA测距是指待定位目标向基站发射信号,将发射信号与基站接收信号时间之差,乘以电磁波传输速率,获得定位基站与标签之间的距离。最后将待定位目标与三个不同的基站的距离作为定位模型的输入,通过神经网络的非线性映射得到标签位置完成定位[13-15]。
2 BP神经网络模型
BP 神经网络在许多领域被普遍使用,其训练过程由正向与反向传播组成。正向传播时,利用TOA测距得到距离信息为网络输入,经过各层处理后,结果由输出层输出。若标签的定位坐标与期望坐标存在误差,则执行反向传播。误差的反向传播是利用梯度下降法通过误差来修正网络的各个权值和阈值。重复正向传播与反向传播过程,同时不断调整权值和阈值,这个过程一直进行到使误差减小到预设值以内,或进行到预先设定的训练次数为止[5-6]。
如图1为BP神经网络的基本架构[7-8],各神经元个数分别为:n、m、l,各层之间的连接权值为vij和ωjk。隐含层和输出层的传递函数均采用单极性Sigmoid函数,各层信号的关系为如下。
图1 BP神经网络基本架构
对于输出层:
对于隐含层:
本文选用三层BP神经网络架构,以标签到3个基站的距离为输入,标签在二维空间中的坐标为输出;因此BP网络的输入层神经元个数为3,输出层神经元个数为2。隐含层神经元个数根据经验公式选取。
经过多次实验对比,最终取m=7。
3 自适应学习率算法优化BP神经网络
学习速率是影响BP网络学习能力的关键,从误差变化的角度来看,在误差变化平缓的区域,学习率过小会导致收敛速度过慢,容易陷入局部最小值;相反,学习速率过大会导致训练出现振荡,无法收敛。因此本文在训练定位模型时采用自适应学习率算法,其思路为:若当前训练的误差函数大于上一次,则减小学习速率;若当前训练误差函数小于上一次,则相应增加学习速率,根据误差变化情况自动改变学习速率的大小。自适应学习率计算公式为:
式中,β=ε*tanh(E(t)-E(t-1)),ε为影响权重系数。
自适应学习率算法优化BP神经网络定位模型训练过程可分为四个步骤:
(1)由式1 ~ 式2 计算输出层每个神经单元的输出值;
(2)根据期望值计算输出层每个神经单元的输出误差;
(3)根据误差函数改变学习速率;
(4)应用自适应学习速率算法更新权重。
完成上述训练过程后,使用自适应学习速率算法优化的BP神经网络定位模型,对标签进行定位。定位流程如图2所示。
图2 改进BP神经网络定位流程
4 仿真实验及结果
4.1 实验环境和数据集
在100cm×100cm的二维平面区域端点处设置3个基站,其坐标分别是(0,0),(100,0),(0,100)。假设标签的运动轨迹是一条有斜率的直线,通过Matlab对UWB信道模型进行仿真[16-17],得到训练定位模型的测距数据。训练定位模型之前,对数据进行归一化处理,目的是把所有数据都转化到[0,1]之间。
根据实验要求将数据划分为训练集trainx,trainy和测试集testx,testy。trainy,testy分别是trainx,testy的期望输出。利用训练集数据对上述构建的定位模型进行训练,当误差函数小于设定阈值时代表训练完成。将测试集数据输入训练完成的定位模型,以定位结果与期望输出的差值作为评价模型的定位精度。
4.2 改进BP神经网络模型与BP神经网络模型的对比
为验证本文所提出的定位方法,实验中采用相同的网络参数分别构建基于BP算法和改进BP算法的定位模型。使用训练集trainx,trainy数据分别对两种神经网络定位模型进行训练。训练完成之后,将测试集testx数据输入两个不同的模型,根据神经网络定位模型输出结果,得到其定位效果如图3所示。
图3 定位效果
如图3所示,标签的真实运动轨迹为一条直线,在运动轨迹上采用相同的间隔,取8个定位坐标作为定位模型的测试点。将测试点与三个基站的距离输入定位模型,如图3所示基于改进BP神经网络的定位模型得到的轨迹与真实运动轨迹基本相符,定位精度高;而由BP神经网络定位模型得到的运动曲线波动大,误差高,不符合定位需求。
误差函数值与迭代次数的关系体现出定位模型的收敛能力,训练改进BP神经网络的定位模型和BP神经网络的定位模型时,记录每次迭代的误差函数值。两种定位方法收敛能力比较如图4所示。
如图4所示,在训练过程中,基于改进BP算法的定位模型的误差函数在收敛时虽有波动,但很快趋于平缓。当误差函数收敛到1时,两种定位方法的迭代次数分别为49、112,由此可见,基于改进BP神经网络的定位方法的定位性能更加符合需求。
图4 两种定位模型收敛能力比较
对于定位模型精度的计算,通常选择标签的期望坐标与模型输出的坐标之间的欧式距离作为度量标准。利用测试集testx对传统BP神经网络定位模型和改进BP神经网络定位模型进行测试,输出结果与测试集testy对比得出各个测试数据误差。
如表1所示,基于自适应学习率BP算法相比于传统算法,无论在最大误差、最小误差,还是在平均误差方面都得到了大幅度改善,定位精度提高了约31%。实验结果表明,基于自适应学习率算法优化的BP神经网络定位模型的定位精度明显高于传统BP神经网络模型。
表1 误差对比
5 结论
对于BP神经网络在室内定位中收敛速度慢、易陷入局部极小值的问题,提出一种基于改进BP神经网络的室内定位方法。利用BP神经网络和改进神经网络进行定位仿真对比实验,实验结果表明,与传统的BP神经网络算法相比,该方法的迭代次数少,收敛能力较强,定位精度得到显著提高。