改进的核极限学习机定位方法与流程

文档序号:13915554阅读:504来源:国知局

本发明涉及无线定位,机器学习行和神经网路算法研究领域,具体讲,涉及改进的核极限学习机定位方法。



背景技术:

近年来,随着神经网络的发展越来越成熟,神经网络被广泛应用于人工控制、图像分析、智能预测等各个领域。由于神经网络具有抗干扰能力强、非线性映射能力强、自学习能力强等优点,许多学者将神经网络应用在无线定位领域。例如:rbf神经网络、bp神经网络、svm支持向量机、elm(extremelearningmachine)极限学习机等神经网络都被应用到了无线定位中。神经网络定位主要分为两部分:训练和预测。训练阶段,主要是将样本数据输入到神经网络中进行训练,得到预测模型;预测阶段,主要是将预测数据输入预测模型中得到预测结果。其中,样本数据主要由测量点到各个接收点的信号强度(receivedsignalstrength,rss)和测量点的位置坐标组成。

极限学习机(elm)是由huang等提出的一种新的神经网络算法,相较于其他神经网络算法,elm神经网络具有泛化能力强和学习速度快的优点。因此被广泛应用在室内无线定位领域。基于elm神经网络的定位方法主要分为两类:1)、利用elm的分类特性,针对预测区域建立指纹数据库,通过指纹匹配的方式得到定位结果。然而,这种建立指纹库的方法存在一个严重的缺点,没有充分考虑到信号强度(rss)受噪声的干扰导致指纹与位置坐标不是唯一对应的问题。为此,采用序贯极限学习机对指纹数据库进行不定时的更新,这一做法在一定程度上避免了噪声的干扰,但是仍然对指纹的不唯一性考虑不足,定位精度不高。2)、利用elm的强大的泛化能力,进行非线性拟合,进而估计出位置。在同一位置测得的数据受噪声干扰可能有多组,不是唯一不变的,导致定位误差较大,以及目前神经网络无线定位算法还有参数设置复杂、训练耗时较长等问题。



技术实现要素:

为克服现有技术的不足,本发明旨在针对目前神经网络无线定位耗时较长,且定位结果易受噪声干扰的问题提出了一种改进的核极限学习机的定位算法。既能提高定位精度又能降低样本数据维度,提高定位速度。为了进一步提高定位速度,利用改进的核极限学习机学习降维之后的样本,得到定位预测模型。本发明采用的技术方案是,改进的核极限学习机定位方法,首先,采取在同一位置进行多次测量的方法得到训练数据;然后,再把同一位置测得的数据划分为一个样本子空间并提取样本子空间的特征,以样本子空间的特征代替原来的训练数据;同时,利用矩阵近似及矩阵扩展的相关理论改进核极限学习机算法;最后,将得到的处理过的训练数据利用改进的核极限学习机进行训练,得到定位预测模型,用得到的定位预测模型进行位置估计,达到定位目的。

首先,采取在同一位置进行多次测量的方法得到训练数据;然后,再把同一位置测得的数据划分为一个样本子空间并提取样本子空间的特征,以样本子空间的特征代替原来的训练数据,具体是,采用样本子空间降维算法ssdr(samplesubspacedimensionreduction,)以样本子空间的中心和该子空间的簇的中心与该子空间的中心的余弦相似度来代替原来的训练数据:

在一个周围有m个固定信号接收点的场景中,对n个位置进行训练样本采集,m<<n,且针对同一个位置测量k次,那么得到的样本集用n×k行m列的矩阵表示;

根据位置将这些样本划分为n个不同的样本子空间,在求各个子空间的中心时,利用子空间投影的方法来求高维子空间的聚类中心,先将子空间中的点投影到各个平面上,再用k-means聚类得到平面上的聚类中心,再由各个平面中心坐标得到子空间中心坐标为oi;

同理,求得任意一个样本子空间中划分出的m个簇的中心坐标bj,m<k,利用余弦相似度公式cosθ=oi·bj/|oo|·|bj|度量簇与子空间中心的相似度,并利用子空间中心与余弦相似度的度量值代替原来的样本特征,得到新的样本,以此达到降维目的。

ssdr降维算法具体步骤是:

输入:样本矩阵s=[x1,x2,…,xn]t其中xi=[xi1,xi2,…,xim],其中xi是第i个样本,xi1表示第i个样本里的第一个属性,n为样本总数,m为固定信号接收点数,即样本特征数;

输出:降维之后的样本矩阵s′;

1)将样本按测量位置分为n子矩阵,即n个m维子空间

2)i从1开始记起,循环计算到n

从s中划分出子矩阵ai,i=1,2,…,n

3)j从1开始记起,循环计算到m

①取特征1与特征j构成矩阵将样本投影到平面上得pj←[ai(:,1),ai(:,j)]

②利用k-means求平面上聚类中心oij←kmeans(pj,1)

③同理得到ai子空间的m(m<k)个簇,其中m的值根据网格搜索法搜索{1,2,…,k/10}得到坐标br←[br1,br2,…,brm],r=1,2,…,m

4)结束j循环

5)得到ai聚类中心oi←[oi1,oi2(:,2),…,oim(:,2)]

6)求余弦相似度

7)得到si′←[oi,θi]

8)结束i循环

9)得到降维之后样本s′←[s1′,…,s′n]t

改进的核极限学习机imp-kelm(improvedkernelextremelearningmachine)具体是,由于核极限学习机算法的核矩阵ω的大小与输入样本数n正相关,采用计算ω的近似矩阵h的方法来降低计算复杂度;

根据主向量分析法(pca),以样本为特征,得到样本的贡献度。取贡献度较大的n个样本组成样本矩阵xn×m;

代替求解核矩阵ω公式中的得到ω的子矩阵ωn×n;

依据nystrom扩展技术,核矩阵ωn×n由其部分数据逼近原始数据的特征空间,因此近似矩阵表示为:由此得到分解矩阵其中ωn×n为ωn×n的子矩阵;

最后,将hn×n=ggt,代入公式(8)再根据woodbury公式得到网络输出权重矩阵为:

1)取样本的特征信息组成矩阵s←[x1,x2,…,xn]t

2)调用ssdr降维算法,得s′←[s1′,…,s′n]t

3)为训练样本,另外为测试样本;

4)加载改进的核极限学习机模型,训练得到预测模型,其中,输出权重求解公式为:

5)测试样本输入到预测模型;

6)t′←h·β得到预测位置坐标。

本发明的特点及有益效果是:

在相同数据集下,本发明提出的改进的核极限学习机训练用时短,定位速度快;在相同噪声干扰情况下,此算法定位预测误差小。经验证,该算法不但能提高网络的训练速度,定位速度,还能有效地降低噪声的干扰,提高定位精度。

附图说明:

图1.样本子空间。

图2.定位算法流程图。

图3.室外实际测量某一信号rss变化统计图。

图4.仿真场景图。

图5.某一点仿真得到的rss统计图。

图6.误差累计分布图。

具体实施方式

针对目前神经网络无线定位耗时较长,且定位结果易受噪声干扰的问题提出了一种改进的核极限学习机的定位算法。因为测量rss数据时易受各种噪声的干扰导致定位精度不高,本发明采用以样本子空间特征代替原来样本的方法处理数据,这样既提高了定位精度又降低了样本数据维度,提高了定位速度。为了进一步提高定位速度,我们提出了一种改进的核极限学习机,利用改进的核极限学习机学习降维之后的样本,得到定位预测模型。仿真实验验证了本算法具有定位速度快,定位精度高的优点。

本发明提出了一种改进的核极限学习机无线定位算法。

首先,采取在同一位置进行多次测量的方法得到训练数据;然后,再把同一位置测得的数据划分为一个样本子空间并提取样本子空间的特征,以样本子空间的特征代替原来的训练数据;同时,利用矩阵近似及矩阵扩展的相关理论改进核极限学习机算法;最后,将得到的处理过的训练数据利用改进的核极限学习机进行训练,得到定位预测模型。

1核极限学习机(kelm)

由于核极限学习机算法需要设置的参数较少,训练速度快,泛化能力强,所以选用kelm。

核极限学习机(kelm)是由黄广斌等提出的一种新的单层前馈神经网络算法。极限学习机具有训练速度快,预测精度高的优点。

对于n个任意不同的样本(xi,ti),其中xi=[xi1,xi2,…,xin]t∈rn,坐标ti=[ti1,ti2,…,tim]t∈rm,对于具有l个隐层神经元数的单层前馈神经网络,网络的输出可以用以下公式表示:

其中,xj=[xj1,xj2,…,xjn]t∈rn为输入样本,wi=[wi1,wi2,…win]t∈rn为输入层到隐藏层的权重,wi·xj为wi和xj的内积,βi=[βi1,βi2,…,βim]t为隐层到输出层的权重,bi为第i个隐层神经元的偏置,h(·)为隐层神经元的激励函数,tj为第j个样本的输出。

公式(1)可以写成矩阵相乘的形式:

hβ=t(2)

其中,为隐层输出矩阵,为隐层到输出层的输出权重矩阵,为输出层输出矩阵。

对式(2)求最小二乘法得到下式:

其中,为h的广义逆矩阵。

上述过程可等效于求解的最优化问题,根据karush-kuhn-tucker(kkt)理论可得:

其中,c为惩罚系数,ξj为实际输出与理论输出的差,ξj=[ξj1,…,ξjm],αj为lagrange乘子,αj=[αj1,…,αjm],h(xj)=[h(w1·xj+b1),…h(wl·xj+b1)]为矩阵h的行向量。

公式(4)由kkt条件得:

其中,α=[α1,α2,…,αn]t,ξ=[ξ1,ξ2,…,ξn]t

由公式(5)得:

求解(6)式得:

定义核矩阵表达式如下:ω=hht,k(xi,xj)=h(xi)×h(xj),代入式(5)得:

将式(8)代入式(2)得:

由此得到核极限学习机的输出权值为:

2本发明的算法

2.1样本子空间降维(ssdr)

为了充分考虑噪声对样本的干扰,本发明采取对同一个位置进行多次测量的方法得到样本数据,然后将这些对应同一位置的数据划分为一个样本子空间,之后用该样本子空间的特征代替原来的样本数据,这样不仅充分考虑了噪声对样本数据的干扰,同时也起到了降低样本维度的效果。本发明考虑到不同的干扰源可能引起样本数据聚集出不同的簇,如图1所示,圆ai表示在任意一个位置测得样本数据,圆b1、b2、b3代表受不同干扰影响形成的簇。本发明提出了一种样本子空间降维算法(samplesubspacedimensionreduction,ssdr),算法以样本子空间的中心和该子空间的簇的中心与该子空间的中心的余弦相似度来代替原来的训练数据。

假设在一个周围有m个固定信号接收点的场景中,对n(m<<n)个位置进行训练样本采集,且针对同一个位置测量k次,那么得到的样本集可以用n×k行m列的矩阵表示。

根据位置将这些样本划分为n个不同的样本子空间,在求各个子空间的中心时,考虑到这些子空间属于高维子空间,一般的低维空间求聚类中心的方法不再适用,因此本发明利用子空间投影的方法来求高维子空间的聚类中心,先将子空间中的点投影到各个平面上,再用k-means聚类得到平面上的聚类中心,再由各个平面中心坐标得到子空间中心坐标为oi。

同理,求得任意一个样本子空间中划分出的m(m<k)个簇(通过网格搜索法得m=4)的中心坐标bj。利用余弦相似度公式cosθ=oi·bj/|oi|·|bj|度量簇与子空间中心的相似度,并利用子空间中心与余弦相似度的度量值代替原来的样本特征,得到新的样本,以此达到降维目的。算法具体实现过程如下:

算法1ssdr降维算法。

ssdr降维算法具体步骤是:

输入:样本矩阵s=[x1,x2,…,xn]t其中xi=[xi1,xi2,…,xim],其中xi是第i个样本,xi1表示第i个样本里的第一个属性,n为样本总数,m为固定信号接收点数,即样本特征数;

输出:降维之后的样本矩阵s′;

1)将样本按测量位置分为n子矩阵,即n个m维子空间

2)i从1开始记起,循环计算到n

从s中划分出子矩阵ai,i=1,2,…,n

3)j从1开始记起,循环计算到m

①取特征1与特征j构成矩阵将样本投影到平面上得pj←[ai(:,1),ai(:,j)]

②利用k-means求平面上聚类中心oij←kmeans(pj,1)

③同理得到ai子空间的m(m<k)个簇,其中m的值根据网格搜索法搜索{1,2,…,k/10}得到坐标br←[br1,br2,…,brm],r=1,2,…,m

4)结束j循环

5)得到ai聚类中心oi←[oi1,oi2(:,2),…,oim(:,2)]

6)求余弦相似度

7)得到si′←[oi,θi]

8)结束i循环

9)得到降维之后样本s′←[s1′,…,s′n]t

2.2改进核极限学习机算法

提出一种改进的核极限学习机(improvedkernelextremelearningmachine,imp-kelm)。由于核极限学习机算法的核矩阵ω的大小与输入样本数n正相关。在n较大的情况下,计算核ω会花费较长的时间,为了降低计算复杂度,本发明采用计算ω的近似矩阵h的方法来降低计算复杂度。

考虑到矩阵ωn×n是根据输入样本计算得来的,所以可以通过减少参与计算的样本数量来达到降低计算复杂度的目的。又因为输入的样本对算法的贡献度不同,本发明根据主向量分析法(pca),以样本为特征,得到样本的贡献度。取贡献度较大的n个样本组成样本矩阵xn×m。

为了减少参与计算的样本数,本发明用代替求解核矩阵ω公式中的得到ω的子矩阵ωn×n。

依据nystrom扩展技术,核矩阵ωn×n可由其部分数据逼近原始数据的特征空间,因此近似矩阵可表示为:由此得到分解矩阵其中ωn×n为ωn×n的子矩阵。

最后,将hn×n=ggt,代入公式(8)再根据woodbury公式得到网络输出权重矩阵为:

算法具体实现过程如下:

算法2改进的kelm算法(imp-kelm)。

输入:训练样本(xi,yi),其中xi=[xi1,xi2,…,xim]t∈rm,ti=[ti1,ti2]t∈r2,ti表示第i个样本的位置坐标,n为样本总数,m为固定信号接收点数,即样本特征数。

输出:最终定位预测模型

1)利用主向量分析法(pca),以样本个数为特征,得到样本的贡献度。取前n个贡献度大的样本构成矩阵xn×m。

2)加载kelm训练模型。

3)选择rbf核函数则

求得ωn×n。

4)得到矩阵

5)得到输出权值矩阵

6)得到最终预测模型。

2.3改进的核极限学习机定位算法

本发明以ssdr-imp-kelm表示该定位算法。首先,根据样本子空间降维算法对样本进行降维,得到以子空间特征组成的新的样本;然后,将这些新的样本数据输入到核极限学习机中训练神经网络,得到预测模型;最后,用得到的预测模型进行位置估计,达到定位目的。算法具体实现过程如下:

算法3改进核极限学习机定位算法。

输入:样本(xi,yi),其中xi=[xi1,xi2,…,xim]t∈rm,ti=[ti1,ti2]t∈r2,n为样本总数,m为固定信号接收点数,即样本特征数。

输出:定位预测结果,即预测位置的坐标。

1)取样本的特征信息组成矩阵s←[x1,x2,…,xn]t

2)调用ssdr降维算法,得s′←[s1′,…,s′n]t

3)为训练样本,为测试样本。

4)加载改进的核极限学习机模型,训练得到预测模型。其中,输出权重求解公式为:

5)测试样本输入到预测模型。

6)t′←h·β得到预测位置坐标。

算法流程图如图2所示。

2.4计算复杂度分析

本发明的算法的计算复杂度主要由两部分组成:ssdr降维算法的计算复杂度、改进的kelm算法的计算复杂度。统计加、减、乘、除的运算总次数来度量算法的计算复杂度。遵循以下两个原则:

1)矩阵的加、减、乘和求逆计算的计算统计

若矩阵a∈rm×n,b∈rm×n,c∈rn×l,d∈rn×n则a±b的计算复杂度为mn,ac为2mnl-ml;d-1为n3

2)消减原则

只保留最高次幂项且忽略每一项前的系数。

依据以上原则统计实现ssdr降维算法的运算总次数,得到计算复杂度为o((nk)2nm(m-1)/2)。

同理,改进的kem的计算复杂度为o(nn2+n3)。

改进的核极限学习机定位算法的复杂度主要由ssdr降维算法与改进的kelm算法的复杂度组成则计算复杂度为o((nk)2nm(m-1)/2+nn2+n3)。

同理,未改进的kelm算法计算复杂度为o((nk)3)。其中m,n,k代表含义与2.1节相同,n为2.2节样本经过pca分析,得到的n个贡献度较大的样本。

3实验与仿真

3.1实测数据分析

为了使仿真实验与实际联系起来,本发明首先对实际环境下得到的数据进行分析,并以此为依据进行仿真实验。实测数据来源:于2016年8月29日,在天津市无线电管理委员会频谱资源监控中心,利用位于天津市南开区天津大学西侧的白堤路上的编号为ums300-101487的监测站,对南开大学校园广播的信号强度进行连续3天的检测得到的数据。我们取每一天的上午一分钟和下午一分钟得到的测量统计图如图3。

如图3所示,在实际环境中,针对同一个点进行多次测量,得到的rss值不是固定不变的,rss值是变化的。同时,由于测得的数据是在一分钟内完成的,所以在实际应用中,可以利用较短的时间得到大量的rss值。为了使仿真更符合实际,本发明采用了以下仿真方法。

3.2场景仿真

应用matlabr2013b在cpu型号为intel(r)core(tm)i5-2450m,主频2.50ghz,内存为4gb,windows764位系统的环境下进行仿真实验。仿真一个2000×2000(m)范围的室外环境,且周围有四个接收点,具体仿真场景如图4,利用信号路径损耗模型,根据到参考点距离计算rss值,公式如下:

其中,pl0为路径损耗系数,在本发明中被设为-40dbm,d0是与pl0对应的测量距离,d为到参考点的距离,α为路径损耗指数取2,x为由服从高斯分布、伽马分布和均匀分布的噪声组成。

如图5所示,为对某一点仿真得到的rss统计图。在仿真场景范围内随机取200个点,对每个点进行100次的测量,得到仿真数据,从中随机选取100个点作为训练集,剩余100个点为测试集。

3.3实验涉及参数设置

1)算法1涉及到的参数

在同一位置重复测量次数k,由上一小节的k=100;任意一个样本子空间中划分出m(m<k)个簇,设定m∈{1,2,…,k/10},通过网格搜索,得到m=4。

2)算法2涉及参数

选择贡献度大的前n个样本,n的选取通过多次实验得到,n=82;核极限学习机的核参数设为rbf核,公式如式(13);惩罚参数c,设c∈{2-10,2-9,…,240,250},进行网格搜索得到c=220;rbf核的参数μ,设μ∈{2-10,2-9,…,240,250},网格搜索得到μ=210

k(u,v)=exp[-(||u-v||2/μ)](13)

其中,μ为核参数。

3)遗传算法优化的bp神经网络算法(ga-bp)

ga-bp用于与本发明算法对比,网络参数设置为:隐层数3,隐层节点数取20(经过多次实验得到),迭代次数设为1000次。

4)rbf神经网络参数设置

rbf用于与本发明算法对比,rbf神经网络网络参数设置为:隐层节点数70,迭代次数1000次。

3.4定位仿真实验

衡量性能的指标一般选取均方根误差作为衡量测试性能的标准,如式(14)。

其中,n为样本数,txi与tyi分别实际输出的坐标,分别为预测输出的坐标。

仿真结果如表1所示。表中training-time、train-time、test-rmse分别表示训练耗时(原始数据输入kelm到得出模型参数)、训练误差以及测试所得结果的均方根误差。

如表1所示,kelm与改进后imp-kelm相比,只是在训练时间方面,改进的kelm算法明显耗时较短,其他方面相差不大。因此,改进kelm算法的方法是有效的。kelm与本发明算法ssdr-imp-kelm相比,在时间方面,训练耗时和测试耗时都要比本发明算法用时长,训练耗时是本发明算法ssdr-imp-kelm的十倍左右;在误差方面,本发明算法误差明显小于kelm算法,约为kelm误差的1/4。ga-bp算法和rbf算法与本发明算法相比,训练耗时长,误差较大,误差是本发明算法的四倍左右。

由2.4小节知:kelm算法的时间复杂度为o((n×k)3),改进的kem的计算复杂度为o(nkp2+p3),ssdr-imp-kelm算法复杂度为o((nk)2nm(m-1)/2+nn2+n3)。仿真实验中k=100,n=100,n=82,m=4,p=3000则o((n×k)3)=o(1012),o(nkp2+p3)=o(9.27×1010),o((nk)2nm(m-1)/2+nn2+n3)≈o(6.0×1010)。

为了更直观的比较ssrd-imp-kelm算法与其它算法的误差,我们给出了误差累计分布图,如图6所示。

从图6中可以看出,本发明算法在误差为75m左右累计误差分布率接近100%,而kelm算法在误差为200m时误差累计分布率刚刚达到76%左右。ga-bp与rbf算法在误差为200m时误差累积分布率刚刚达到74%左右。由此可以看出,本发明算法误差更小,且分布较为集中。

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