一种基于三元组自编码器的室内位置指纹定位方法

文档序号:34599915发布日期:2023-06-28 22:56阅读:71来源:国知局
一种基于三元组自编码器的室内位置指纹定位方法

本发明属于定位,涉及一种基于三元组自编码器的室内位置指纹定位方法。


背景技术:

1、室内位置指纹定位是基于模式匹配、机器学习和深度学习等技术,借助于计算机处理技术,对数据库中位置指纹进行实时匹配的技术。目前,室内位置指纹定位技术主要是使用神经网络和机器学习的方式来实现的,使用bp神经网络的方式来捕捉位置指纹深层的特征,再使用机器学习的方式,对比特征之间的欧氏距离,实现最终的位置定位。但使用bp神经网络作为室内定位系统的特征提取层难以捕捉样本之间的关系,使得最后系统定位精度很不理想。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种基于三元组自编码器的室内位置指纹定位方法。

2、为达到上述目的,本发明提供如下技术方案:

3、一种基于三元组自编码器的室内位置指纹定位方法,该方法包括以下步骤:

4、s1:利用wifi接收器在每个位置获得一组wifi信号强度数据,得到每个位置点的wifi信号强弱;

5、s2:使用高斯滤波的方式对已经采集到的数据进行预处理;

6、s3:构造基于自编码器的三元组神经网络及损失函数和用于最后定位的bp神经网络;

7、s4:经过预处理的室内位置指纹数据集训练构造好的三元组自编码器,对训练后的模型剪枝得到特征提取网络,并保留网络模型的结构和参数;

8、s5:使用特征提取网络提取预处理后的数据集,得到降维后的数据集,并训练bp神经网络,将特征提取网络和训练后的bp神经网络保存为tri-sae模型。

9、s6:使用tri-sae模型和距离度量的方式联合投票定位,最后评价室内定位系统的精度。

10、可选的,所述s2中,对采集到的数据采取高斯滤波的处理,去除样本中的坏数据,从rssi值的高概率区域中选择有效值,并计算输出值的平均值,以提高测距精度,它的过程是:

11、设n个rssi值的总数服从高斯分布,rssi值的平均值为μ,rssi值的方差为σ2,rssi值的概率密度函数为f(x),因此rssi值的均值μ的计算公式为σ2的计算公式为如果rssi值在[μ-σ,μ+σ]的范围内,则为高概率置信区间。通过高斯滤波器计算出的平均rssi值减少环境干扰的影响。

12、可选的,所述s3中,三元组网络构造分为设计子网络,添加损失函数loss构造完整网络的过程:

13、s31:三元组网络的子网络是堆叠自编码器,设计使用[输入层+[256,128,64,128,256]+输出层]的网络结构,自编码器分为上中下层结构,其中上下两层结构共享权重,每层的激活函数设置为

14、s32:定义新的神经网络模型的损失函数loss,如图1展示了损失函数loss的计算思路和三元组神经网络架构,它们用来完成了神经网络模型的构建,神经网络模型的损失函数loss的过程如下:

15、将位置指纹数据输入堆叠自编码器,提取到每个样本数据的特征向量,而且每一条样本数据的特征维度都是相同的。每次训练选取三条样本作为训练数据,分别是每个类别的代表特征anchor(通过简单的计算平均值得到),anchor的正样本positive(与anchor来自同一位置),anchor的负样本negative(与anchor来自于不同的位置),将他们输入到堆叠自编码器(三元组网络的子网络),得到所对应的特征向量。

16、本发明想要的是让anchor和positive得到的向量的欧氏距离越小越好;让anchor和negative得到的向量的欧氏距离越大越好;可使得公式

17、成立,;同时positive和negative的样本来自原始数据集本身,经过了堆叠自编码器后,还原到了与输入数据相同的维度,想让输入结果和输出结果尽量保持一致,就需要满足β为任意大于零的实数,模型就具有了较好的效果,所以loss用公式表达为

18、

19、s33:设计了一种bp神经网络模型,用于最后的定位功能,此神经网络是简单的多层结构,其网络结构是[输入层+[128,128]+输出层],输出层使用sigmoid激活函数,其余层使用relu激活函数,并且添加dropout层,丢弃率为0.1,以防止过拟合;

20、可选的,所述s4包括训练过程和剪枝过程:

21、s41,在训练模型阶段,设共有n个位置可供定位,每个位置点有t个样本,经过数据处理,为位置ri生成了训练数据集和验证数据集其中训练数据集中含有n个张量样本,用式表达为则训练数据集其中验证数据集中含有t-n个张量样本,用式表达为则训练数据集然后要构建训练数据集,本方案中首先利用每个位置的训练数据集构造该位置的anchor指纹张量,构造anchor指纹张量的过程为:将ri的训练数据集中的rssi指纹张量求均值,得到fi,并作为模型输入之一的anchor,其计算公式为上式中的fi即为ri的anchor张量,所有n个位置的anchor即构成了指纹集合f,用式表达为f={f1,f2,…,fi,…,fn},然后为了保证训练的充分性,选择将训练集中的指纹张量与指纹集合f中的指纹张量两两配对得到训练数据集k1和验证数据集k2,k1表达式为k1={t1,1,1,ti,j,k,tn,n,n},其中元素ti,j,k表示由训练集中i个位置ri的第j个指纹张量与第k个位置rk的anchor指纹张量fk构造的样本对,可以用式表达为k2表达式为k2={v1,1,1,vi,j,k,vn,t-n,n},其中元素vi,j,k表示由验证集中ri的第j个指纹张量与rk的anchor指纹张量fk构造的样本对,可以用式表达为进而,使用新数据集训练三元组网络模型;

22、s42:训练好三元组网络后,剪去三元组的主体网络,只保留堆叠自编码器的前半部分,这部分保存为室内定位系统的特征提取网络。

23、可选的,所述s5中,构建完整的神经网络模型就是将保存下来的特征提取网络连接到已经训练好的bp神经网络,最后保存模型及其参数。

24、可选的,所述s6中,测试阶段,在待测位置li获取y1组指纹张量后,使用s2中相同的高斯滤波方法,预处理新数据得到y2个样本。首先将得到的数据依次输入到tri-sae模型中,最后将y2个定位结果;然后将计算出的anchor指纹集合f={f1,f2,…,fi,…,fn}与y2个样本构成测试样本对集d={d1,…,dj,…,dy2},其中dj={k1,k2,…,ki,…,kn},其中ki=(t,fi),t为y2个样本中的某一条数据,然后将此测试对输入到两个已经训练好的堆叠式编码其中,对比两个测试对的欧式距离,最小的即为此测试对的定位结果,然后采取投票的方式得到样本t的最终结果,迭代y2次,将会得到y2个结构;综合上述,每个待测位置li将会得到2×y2个结果,采用投票的方式,得到待测位置li的最终预测标签。

25、本发明的有益效果在于:

26、1、提出一种基于三元组网络的自动编码器训练方式,为提取室内位置指纹特征向量提供了一种新的技术,不再通过简单的训练自编码器来提取样本特征,解决了训练集少、特征提取难度大、定位精度低等问题。

27、2、位置指纹数据库不再利用位置指纹的原始数据来存储位置信息,转换成位置所对应的特征向量来存储,不光保护了室内空间隐私,减小了存储空间,同时在定位过程中。

28、3、随着后续数据的持续更新,可以继续训练完善特征提取模型,只需要将训练数据通过特征提取网络,就可以保存到用于训练定位模型的数据库里面。

29、4、在定位的离线阶段,使用了投票的方式,提高了室内定位系统的整体精度,避免了个别没被去除的坏数据对最后的定位结果造成影响。

30、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1