1、图3. 1 仓库抽象布局图Fig 3.7 Warehouse abstract layout illustration定位系统阅读器以及标签布局完成后,需要对定位算法模块进行改进,利用深度置信网络算法,其网络结构如图3.9所示,具体实现过程如下: (1)采集信号数据:如图3.7所示,为了使阅读器接收到标签返回的信号强度更加精准,需在室内空间上方的四个顶点安放4个阅读器,4个阅读器依次安放在三维室内空间的4个顶点。依次计算每个参考标签到4个阅读器之间的距离。4个阅读器向室内发射信号,阅读器接收参考标签的返回信号强度值并记录,连续采集多次,求平均值后作为采集的信号强度数据。随后,将采集的含噪数据利
2、用dB4小波基进行4层小波去噪,得到最终的去噪数据。将最终的去噪数据从深度置信网络的输入层输入,将信号强度值向量矩阵作为网络输入,上述步骤(1)中的三维坐标向量矩阵,作为目标输出。采集的RSSI数据经由小波去燥前后对比如图所示: 图3. 2 小波去燥前后对比图Fig 3.8 The comparison chart of wavelet denoising由图3.8可以看到,由于采集的RSSI信号为非平稳信号,经过dB4小波去燥后,信号显得更加纯净真实,RSSI数据噪声消除明显。(2)数据预处理:将处理后的RSSI数据归一化到0,1内。从图3.8可见,由于采集到的RSSI数据幅值均较大,已经超
3、出深度置信网络所能处理的0,1范围。因此要对数据样本进行归一化处理,将数据通过归一化公式映射到0,1区间内。归一化完成后,将归一化数据作为深度置信网络的输入数据。归一化公式为: (3.14)式中,分别对应为样本数据中的最大值和最小值。(3)初始化网络结构及参数:首先确定深度置信网络的结构,一输入层单元数即输入数据维数,本次采集的参考标签信号强度数据维度为4,故设DBN的输入层单元数为4;二输出层单元数即最终提取的特征维数,根据定位系统的实际需求,需要对应三维坐标,故输出层单元数为3;三隐含层层数,根据实验的内容设置为k =2;四隐含层节点数,第一层隐含层节点数设为100,第二层隐含层节点数设为
4、10。网络设计结构如图3.9所示。 图3. 3 DBN网络设计图Fig3.9 Design diagram of DBN(4)DBN网络预训练:输入参考标签的RSSI数据,学习速率,迭代次数为200次,收敛标准。当重构层误差满足收敛标准,完成DBN网络的预训练。(5)网络全局微调:设置收敛标准为,利用深度置信网络自身的梯度下降法,当损失函数达到收敛标准,完成网络的全局微调。其中,预训练和全局微调是实现测试标签定位的关键环节。预训练是利用对比散度CD算法完成3层深度置信网络参数的训练,得到各层预训练网络权值参数和隐含层偏置参数,并获得自适应深度置信网络的预训练输出坐标矩阵,而各参考标签的实际坐标
5、向量为,预训练后利用梯度下降法进行全局微调,修正深度置信网络参数。(6)输出预测坐标:取10组测试标签,将阅读器接收到的RSSI数据小波去燥处理,归一化后得到,输入已经优化网络参数后的深度置信网络,得到预测的坐标矩阵,。3.3仿真实验与结果分析 3.3.1仿真实验流程实验在Matlab 2014仿真平台上进行,Matlab 2014用于实现对样本数据仿真采集,并对采集后样本数据进行预处理,随后利用深度置信网络完成样本数据的预训练以及测试数据的预测,深度置信网络采用基于Matlab的第三方工具箱DeepLearnToolbox。实验流程如图3.10所示:图3. 4 基于DBN的RFID定位的实验
6、流程图Fig3.10 Experimental flow graph of RFID locating based on DBN本文对误差引用的评价指标为估计误差,下面为估计误差的介绍:估计误差是待测标签实际位置与系统预测位置之间距离的绝对差值,是最常见评价指标。大多数的定位系统都采用估计误差作为评价指标。估计误差即计算实际位置与预测结果的欧式距离,我们假定待定位目标的真实坐标为(x0, y0),经过定位算法得到的估算坐标为(x, y),估计误差EE的计算公式如公式3.15所示: (3.15)3.3.2实验结果分析 (1)迭代次数对网络重构误差的影响由于底层网络参数得到有监督的充分学习,缓解了
7、导数消亡问题。由图3.9可知,多层有监督的DBN与无监督的DBN网络相似,网络收敛速度加快,训练100步内已经处在平稳状态。图3. 5 DBN预训练时误差的收敛情况Fig 3.11 Pre-training results of DBN我们将采用隐含层为100-10的DBN网络结构。 图3.11显示了DBN预训练过程中整体重构误差的收敛情况。 从图3.10可以看出,随着迭代次数的增加,重构误差在迭代次数1040次时迅速下降,经过100次迭代后,下降趋势变得平缓,此时DBN网络学到了重要的信息。因此,本实验将预训练迭代次数设置为200次,既能达到预训练的效果,同时缩短训练时间。(2)隐含层数对定
8、位误差的影响图3. 6 隐含层数对准确率的影响Fig3.12 The effect of hidden layers on accuracy从图3.12可以看出,隐含层设置为2层时重构准确率整体较好;隐含层设置为1层数准确率最差,可能是深度置信网络未能准确学习数据特征,造成准确率偏低的情况;隐含层设置为3层时,在迭代次数较小时准确率较高,随着迭代次数的增加,反而没有明显的优势,可能是网络层数较多出现过拟合的情况,而且随着隐含层数增加,训练用时也大幅度增加。因此,本文将深度置信网络的隐含层数设置为2层。(3)训练分组数对定位误差的影响表 3. 1 样本的不同分组情况对比图Tab 3.1 The
9、comparison figure of different samples group训练方法1训练方法2训练轮数2050每轮分支数5020迭代次数200200重构层误差率1.14%0.97%以结构为100-10的DBN网络结构为例,表3.1给出在DBN预训练时分组数目不同时,误差的收敛过程。由于分组数目不同,一个是每组50个样本数据,共分成20轮训练;一个是每组20个样本数据,共分成50轮训练。从表3.1中可以得出,当迭代次数为200次时,训练轮数较大,即每轮训练样本数量较小时,误差越小。因此,在设置训练样本的训练轮数时,要尽可能的大一些,这样训练效果较好。(4)定位误差分析具体实验为:在
10、图3.7所示的仓库货架中,随机抽取10个货物,在相同的环境下运用传统的BP神经网络算法和深度置信网络算法(DBN)分别对货物进行定位。各种算法运行10次后求均值,对定位结果分别进行定位误差和定位算法性能分析。基于深度置信网络的RFID定位方法误差结果如图3.13所示,图3. 7 DBN与ANN定位误差对比图Fig3.13 Locating error contrast graph between DBN and ANN如图3.13所示为10个测试标签在BP神经网络和深度置信网络两种算法下的定位误差,横坐标表示测试标签的标号,纵坐标表示定位误差的数值。从图中可以看出,BP神经网络算法定位误差在0
11、.41m2.19m之间波动,深度置信网络算法定位误差在0.57m1.66m之间波动。两种算法波动区间不同,虽然深度置信网络定位误差最小值比BP神经网络大,但是深度置信网络的定位误差波动范围比BP神经网络小,但是大多数情况下,定位误差均小于BP神经网络。从实验结果可以看出,深度置信网络算法在定位精度方面有一定优势,定位稳定性也更高。3.4本章小结本章首先介绍了三种主流的深度学习网络结构,其中包括卷积神经网络、堆叠自动编码器、深度置信网络;详细地给出了深度置信网络的结构模型以及训练方法。在此基础之上,构造出基于深度置信网络的RFID定位模型,该模型能够利用阅读器接收到的参考标签返回的信号强度向量,
12、提取特征信息,利用深度置信网络的非线性映射的原理,预测出标签的位置信息。 本章主要工作有以下两点:(1)详细介绍了深度学习技术以及对RFID指纹定位原理进行分析,确立了将深度学习技术应用于RFID标签指纹定位的可行性,提出了一种基于深度置信网络的RFID指纹定位方法。由于RFID指纹定位法是根据阅读器接收来自标签的信号强度来预测坐标,实质是寻找信号强度与位置坐标的一组最优的非线性表达,而深度置信网络通过非线性逐层映射,能够找到特征的非线性表达,得到预测结果。(2)给出该算法的训练步骤和操作设置过程,并通过仿真实验对该算法进行验证。经过仿真实验表明,基于深度置信网络的特征提取技术可成功应用在待测
13、标签位置的预测上,并且通过一系列对比实验表明,该方法在定位误差的效果优于传统的人工神经网络方法,具有很高的特征提取和优秀的分类预测能力。第四章 基于PSO-DBN的RFID指纹定位方法第四章 基于PSO-DBN的RFID指纹定位方法4.1基于PSO-DBN的RFID定位原理传统的DBN网络算法在反向传播时采用传统的梯度下降方法来解决最优的隐含层之间的权值和偏置以及隐含层到输出层的权值和偏置的问题。随着最优化问题的深入研究,使得利用最优化算法优化深度学习网络成为可能。我们可以使用智能优化算法代替传统的梯度下降算法,利用智能优化算法找到DBN网络模型的最优参数,即最优的隐含层之间的权值和偏置,以及
14、最优的隐含层到输出层的权值和偏置。其中,粒子群优化算法是一种理想的智能优化算法,我们可以将粒子群优化算法和深度置信网络算法相融合,提高深度置信网络的精确度,同时也提高了基于PSO-DBN深度网络的RFID定位预测模型的预测性能和准确性。4.1.1 PSO寻优算法概述粒子群优化算法(Particle swarm optimization, PSO)是基于一种新兴的最优化技术,目前有广泛的应用。此算法是根据生物捕食现象的一种模拟66,此算法收敛速度快、精确性高,并且算法步骤流程简单方便,被广泛应用于多种领域,如目标函数优化、神经网络训练以及其他遗传算法等。粒子群优化算法首先是对种群进行初始化,即确
15、定微粒的初始位置和初始速度,并由目标函数确定一个适应值。在多维环境下,飞行的粒子根据速度在调整位置,而速度的调整是跟据自身和周围粒子的经验来定。粒子群优化算法是利用粒子追随粒子群中的最优粒子,再逐步迭代,最后得到一个最优解67。假设在m维的搜索空间中,存在n(n0)个粒子个体的种群X=(X1,X2,Xn), i=1,2,n。则第i个粒子它的位置用向量表示,它的速度用向量表示,描述粒子的运动状态需要两个量:(1)当前位置X,X为当前粒子的位置坐标;(2)当前速度V,V为粒子上一次运动的距离和方向68。粒子位置的调整是取决于速度量,对于粒子i的位置,有以下公式: (4.1)另外每个粒子都有一个适应度函数f(X),用于衡量解的质量。为了控制粒子的飞行速度,更好的发挥粒子群算法的搜索优势,必须对粒子设定最大速度 。但是仅仅靠最大速度的条件来约束还远远不够,还需要在速度公式中加入了惯性权重,从而形成标准的 PSO 算法。标准的 PSO 算法能够对粒子的飞行速度进行调节,对粒子群中的每一个粒子,需要找到个体最优解Pg,Pg表示进过多次进化迭代,该粒子所找到的最优解Pgi,i=1,2,n,的集合;而对于整