一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于稀疏自动编码器的WIFI指纹库更新方法与流程

2022-02-25 18:42:06 来源:中国专利 TAG:

一种基于稀疏自动编码器的wifi指纹库更新方法
技术领域
1.本发明属于wifi指纹库更新方法,具体涉及一种基于稀疏自动编码器的wifi指纹库更新方法。


背景技术:

2.随着物联网技术的不断发展,室内定位技术逐渐成为研究热点,其中,基于wifi的指纹定位算法得到了广泛关注。由于wifi设备需在室内进行长期部署,wifi指纹库的自适应更新问题还没有得到充分研究。当一些无线热点(access point,ap)的部署位置发生变化时,原始的wifi指纹库将不再适用,定位精度也将受到大幅影响。此外,随着人们室内活动场景的日益复杂,wifi指纹库的规模也日趋扩大,指纹库的重建过程既费时也费力,不利于自动化定位的开展。因此,实时准确判断ap变动并进行wifi指纹库自动更新,是提高基于wifi指纹定位算法精度的重要前提之一。
3.为了能够实现wifi指纹库的自动更新,研究人员提出了一些自动更新的方法:(1)通过在特定位置部署固定的锚节点来获取一定的标签数据,用于wifi指纹库的更新;(2)通过设置额外的探测器更新wifi指纹数据;(3)基于众包的指纹更新方法,众包方法利用收集到的指纹数据来充分挖掘数据的隐藏信息,实现了指纹库的准确更新,通过将众包数据和原始指纹数据映射到一个高维空间进行数据的重新整合,在保留原有特征的情况下,使原始指纹数据呈现一个新的分布。但是,额外部署的参考锚节点和探测器的成本较高,影响了其对应方法的可应用性。众包方法虽然可以减少离线阶段人为勘测的开销,但是,仍需要人工收集大量的标记数据,对指纹库进行更新,且对于ap移动所带来的定位误差问题提升效果不明显。


技术实现要素:

4.本发明为解决目前能够实现wifi指纹库自动更新的方法中,在特定位置部署固定的锚节点获取一定的标签数据和设置探测器更新wifi指纹数据的方法,需要额外部署锚节点和探测器,成本较高,影响其可应用性,另外,众包方法需要人工收集大量的标记数据,且对于ap移动所带来的定位误差问题提升效果不明显的技术问题,提供一种基于稀疏自动编码器的wifi指纹库更新方法。
5.为实现上述目的,本发明提供如下技术方案:
6.一种基于稀疏自动编码器的wifi指纹库更新方法,其特殊之处在于,包括以下步骤:
7.s1,采用稀疏自动编码器对多个众包数据进行自编码,获取各众包数据中隐藏的数据特征;
8.s2,利用完成步骤s1的稀疏自动编码器对原始wifi指纹库进行重构,得到重构wifi指纹库;
9.s3,比较原始wifi指纹库和所述重构wifi指纹库中各ap的rss值变化关系,确定移
动的ap;
10.s4,利用重构wifi指纹库中移动ap的rss值替换原始指纹库中相应ap下的rss值,完成wifi指纹库的更新。
11.进一步地,步骤s1中,所述稀疏自动编码器为包括输入层、隐含层和输出层的三层神经网络结构。
12.进一步地,所述步骤s1具体为:
13.采用稀疏自动编码器,将重构误差函数j
sparse
从输出层反向传播:
[0014][0015]
其中,
[0016]
j为稀疏自动编码器对应自动编码器的重构误差函数:
[0017][0018]
其中,β为稀疏约束项的权重;ρ为稀疏性参数;为平均激活程度;p为输入样本个数;λ为l2正则化系数;x(i)为第i个众包数据ap对应rss数据,y(i)为第i个众包数据ap对应rss数据经稀疏自动编码器输出层的输出,w为权值矩阵,hj(x(i))为第i个众包数据ap对应rss数据对应的第j个隐含层神经元的输出,j为隐含层神经元序号,m为隐含层的神经元个数;
[0019]
采用梯度下降法持续更新权值矩阵w和偏置向量b:
[0020][0021][0022]
其中,α为学习速率;
[0023]
每进行一次更新,计算各众包数据自编码的输出,直至重构误差函数j
sparse
收敛,完成对多个众包数据自编码,获取各众包数据中隐藏的数据特征。
[0024]
进一步地,所述步骤s3具体为,
[0025]
通过下式计算原始wifi指纹库和所述重构wifi指纹库的均方误差mse1:
[0026][0027]
其中,n为ap样本数量,x(i)为重构wifi指纹库中数据接收到的第i个ap对应的rss数据,y(i)为原始wifi指纹库中数据接收到的第i个ap对应的rss数据;
[0028]
通过下式计算重构wifi指纹库与ap移动后重构wifi指纹库的均方误差mse2:
[0029][0030]
其中,z(i)为ap移动后重构wifi指纹库中数据接收到的第i个ap对应的rss数据;
[0031]
若mse2小于mse1的10倍以上,则判断为移动的ap。
[0032]
进一步地,还包括步骤s5,更新后定位准确性验证:
[0033]
根据经步骤s4更新后的wifi指纹库,通过加权k近邻算法进行定位,得到多个目标点的预测坐标(xi,yi);
[0034]
通过下式计算误差函数error是否在预设误差范围内,若在,则更新符合预期要求,否则,重新执行步骤s1至步骤s4,直至误差函数error在预设误差范围内:
[0035][0036]
其中,t为进行误差验证时选择的目标点个数,(x
t
,y
t
)为目标点的真实坐标。
[0037]
与现有技术相比,本发明的有益效果是:
[0038]
1.本发明针对ap移动所带来的定位误差过大问题,提出了一种基于稀疏自动编码器的wifi指纹库更新方法,通过少量众包数据,对原始wifi指纹库进行更新,解决了由于ap移动所带来的定位误差过大的问题。
[0039]
2.本发明的更新方法,通过输入多个众包数据进行自编码,再对原始wifi指纹库进行重构,经比对原始wifi指纹库和重构wifi指纹库,以及ap移动前后的wifi指纹库,通过均方误差,判定重构后的数据分布是否接近于ap移动后的指纹数据分布,由此确定移动的ap,并根据重构wifi指纹库对原始wifi指纹库进行更新,有效降低了由于ap移动所带来的定位误差,与现有相关方法相比,指纹库更新后的定位精度得到了显著提升。
[0040]
3.本发明基于稀疏自动编码器,在自动编码器网络的训练过程中加入了一个稀疏性惩罚项,能够有效提高对众包数据特征提取的效率。
附图说明
[0041]
图1为本发明实施例中稀疏自动编码器对应自动编码器的神经网络结构图。
具体实施方式
[0042]
下面将结合本发明的实施例和附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例并非对本发明的限制。
[0043]
本发明提出了一种基于稀疏自动编码器的wifi指纹库更新方法,采用稀疏自动编码器对一定量的众包数据进行自编码,获取众包数据中所隐藏的数据特征,用于原始wifi指纹库的重构,利用自编码完成的稀疏自动编码器对原始wifi指纹库进行重构,比较重构完成后的wifi指纹库与原始wifi指纹库中各ap的rss值的变化关系,进而确定移动的ap。利用重构完成后wifi指纹库中移动ap的rss值替换原始wifi指纹库中相应ap下的rss值,完成指纹库的更新。
[0044]
如图1所示,自动编码器(auto-encoder,ae),是基于神经网络的特征表达网络,为3层神经网络结构,包括编码器和解码器两部分,其中,编码器完成输入信号到输出特征的映射转换,解码器实现输出表征逆向映射回输入空间,获取重构输入。
[0045]
其中,[x1,x2,

,xn]、[h1,h2,

,hn]和[y1,y2,

,yn]分别为ae的输入层、隐含层和输出层神经元,n和m分别为输入层神经元的个数和输出层神经元的个数;wm×n和bm×1分别为编码过程的权值矩阵和偏置向量;w
/m
×n和b
/m
×1分别为解码过程的权重矩阵和偏置向量。
[0046]
对于p个输入样本x=[x
(1)
,x
(2)
,

,x
(p)
],所对应的编码器输出h=[h
(1)
,h
(2)
,

,h
(p)
],以及解码重构输出y=[y
(1)
,y
(2)
,

,y
(p)
]分别为:
[0047]
h=f
θ
(x)=s(wx b)
ꢀꢀ
(1)
[0048]
y=g
θ
(h)=s(w
/
h b
/
)
ꢀꢀ
(2)
[0049]
式(1)-(2):θ={w,b}和θ
/
={w
/
,b
/
}均为模型参数;s为sigmoid激活函数,其表达式为
[0050][0051]
一般情况下,重构输出y不是输入样本x的精确重构,只是满足一定分布的条件概率下最大程度的接近x,即为y≈x,故ae的训练过程就是最小化重构误差函数j的过程,其表达式为
[0052][0053]
式(4)中:p为输入样本的个数;λ为l2正则化系数,用于减少权重的大小来防止过拟合;第1项为误差项平方和均值,第2项为正则化项或权重衰减项。
[0054]
为了得到输入样本更有效的特征表达,稀疏自动编码器在ae网络的训练过程中加入一个稀疏性惩罚项,使隐含层满足一定的稀疏性,提高了特征提取的效率,此时,重构误差函数j
sparse
可表示为:
[0055][0056][0057][0058]
式(5)-(7)中:β为稀疏约束项的权重;ρ为稀疏性参数;为平均激活程度;hj(x(i))为第i个输入样本对应的第j个隐含层神经元的输出。
[0059]
式(5)中的第2项为稀疏性惩罚项,称为kl散度,用于抑制隐含层的显然,sae通过稀疏性惩罚项使隐含层平均激活程度向设定的稀疏性参数靠近,达到稀疏编码的效果。
[0060]
在前向传播得到网络的整体重构误差函数后,将此重构误差从输出层反向传播,采用梯度下降法更新权值矩阵w和偏置向量b,表示为:
[0061][0062][0063]
式(8)-(9)中,α为学习速率。
[0064]
为加速模型的收敛速度,同时,防止网络出现梯度消失或梯度爆炸现象,学习速率会随着迭代次数的增加而减小,其更新方式为:
[0065][0066]
式(10)中,γ是需要提前设置的标量;n是总迭代次数;a1为学习速率的初值;an是第n次迭代时的学习速率。
[0067]
为了得到众包数据中更有效的特征表达,在ae网络的训练过程中加入了一个稀疏性惩罚项,从而构成了一个稀疏自编码网络,以此提高对众包数据特征提取的效率。针对式(4)、(8)-(9)中的相关参数,根据实际要求将其分别设置为:λ=0.05,α1=0.1,γ=0.1,其余网络结构参数通过实验逐步分析选取。
[0068]
1、采用稀疏自动编码器对一定量的众包数据进行自编码,过程中获取各众包数据中隐藏的数据特征,定位目标在不同位置,数据特征不同。
[0069]
众包数据的自编码过程同图1所示,其中[x1,x2,

,xn]为众包数据中每个ap所对应的rss数据;[y1,y2,

,yn]为众包数据自编码的输出;[h1,h2,

,hn]为隐藏的神经元,用于众包数据特征的提取;n为输入层神经元的个数,每个神经元对应一个ap数据的输入;m为隐含层的神经元个数。
[0070]
众包数据自编码的过程就是对公式(5)中的重构误差函数j
sparse
进行最小化的过程,在前向传播得到网络的整体重构误差函数后,将此重构误差从输出层反向传播,采用梯度下降法更新公式(8)和公式(9)中的权值矩阵w和偏置向量b,继续最小化重构误差函数,通过计算众包数据自编码的输出判断误差函数是否收敛,当误差函数收敛时,则此sae网络训练完成,否则继续上述步骤,直到误差函数收敛为止。
[0071]
2、原始指纹库重构
[0072]
稀疏自编码网络训练完成之后,利用训练好的网络对原始指纹库进行自编码,即原始指纹库的重构。原始指纹库的重构过程仍同图1所示,其中,[x1,x2,

,xn]为原始指纹库中每个ap所对应的rss数据;[y1,y2,

,yn]为原始指纹库重构的输出,即重构完成的原始指纹库中每个ap所对应的rss数据;[h1,h2,

,hn]为众包数据自编码保留下来的含有特征表达的隐藏神经元。
[0073]
3、移动ap的识别
[0074]
原始指纹库经过sae网络重构之后会呈现一个新的数据分布。为体现数据分布变化,引入均方误差(mean square error,mse)作为量化指标,mse越小表明数据库之间数据分布越接近。
[0075][0076]
式(11)中,x(i)为重构wifi指纹库中数据接收到的第i个ap对应的rss数据,y(i)为原始wifi指纹库中数据接收到的第i个ap对应的rss数据n为ap样本总数,mse1为原始指纹库重构前后的均方误差。
[0077][0078]
式(12)中,z(i)为ap移动后重构wifi指纹库中数据接收到的第i个ap对应的rss数据,mse2为重构后原始指纹库与ap移动后指纹库的均方误差。
[0079]
通过计算得到mse1和mse2,若mse2<<mse1(一般指相差10倍以上),说明了原始指
纹库经过sae网络重构之后数据分布更加接近于ap移动后的指纹数据分布,与原始指纹库的数据分布差异明显。由此可知,这种差异是由移动的ap所带来的,ap随定位目标位置改变而改变,凭借这种关系来寻找移动的ap。
[0080]
4、更新原始指纹库
[0081]
在确定移动ap之后,将重构之后的原始指纹库中移动ap下的rss值提取出来用以替换原始指纹库中相应ap下的rss值,最终完成原始指纹库的更新。
[0082]
5、wknn的定位
[0083]
在基于wifi指纹的室内定位算法中,本文采用一种常用的加权k近邻算法(wknn)来进行定位。wknn将采集到的指纹数据与指纹库中的参考数据进行相似度比较,找到相似度最高的s个参考点,给予这s个参考点的位置坐标不同的权值,从而实现目标位置的估计。在本发明的一个实施例中,将wknn中的s设置为4。
[0084]
为了对最终的定位结果进行直观的量化评判,这里我们引入了评判误差函数:
[0085][0086]
其中,(x
t
,y
t
)为目标点的真实坐标;(xi,yi)为wknn计算得到的预测坐标。根据均方误差求得误差函数为error。
[0087]
以上所述仅为本发明的实施例,并非对本发明保护范围的限制,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献