[0064] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0065] 实施例1
[0066] 请参阅图1,本实施例提供了一种基于自编码器的无线传感器网络数据融合方法,该数据融合方法实际上为基于深度自编码器的自适应周期阈值敏感能量有效的算法(SAE‑APTEEN)。该数据融合方法利用适应无线传感器网络的深度自编码器优化APTEEN的数据融合,再考虑节点的剩余能量、与基站之间的距离以及节点密度,针对APTEEN协议簇头分布不均匀的问题,改进APTEEN协议簇头选举阈值公式。其中,该数据融合方法包括以下这些步骤,即步骤(1)‑(8)。
[0067] (1)先确定剩余能量因子、节点与基站的距离因子、节点密度因子,再将剩余能量因子、距离因子、节点密度因子加入至无线传感器网络的簇头选举阈值公式中以改进簇头选举阈值公式。其中,未改进的APTEEN簇头选举阈值公式如下式所示:
[0068]
[0069] 式中,T(n)为预选簇头的选取阈值,p预选簇头的最优概率, 为当前选取轮数之前当选过簇头节点占传感器节点的比例,G为当前选取轮数之前未当选过簇头节点的传感器节点集合,r为选取的轮数。
[0070] 簇头节点需要融合簇成员节点发送来的数据,再将融合后的数据发送到基站,比簇成员节点承担更多的任务。因此,具有剩余能量多的节点当选簇头的概率应该更大,在本实施例中,剩余能量因子的计算公式为:
[0071]
[0072] 式中,Pe为剩余能量因子,Ei为第i个节点的剩余能量,Eavg为无线传感器网络中节点的平均剩余能量且计算公式为:
[0073]
[0074] 其中,n为无线传感器网络中节点数。
[0075] 距离基站越近的簇头节点发送数据到基站的能量消耗越少。同时,距离基站近的簇头节点需要转发远处簇头节点发送来的数据。增加距离基站近的节点当选簇头的概率可以分摊转发数据任务到更多的节点,距离基站近的节点因为承担过多任务过早死亡的问题也能够被避免。其中,距离因子的计算公式为:
[0076]
[0077] 式中,Pd为距离因子,dmax为无线传感器网络中节点与基站之间的最大距离,di为第i个节点与基站之间的距离,dmin为无线传感器网络中节点与基站之间的最小距离。
[0078] 为了确保整个网络簇头节点分布更合理,节点分布稠密的区域节点当选簇头的概率要大于节点分布稀疏的区域。这样大部分簇成员节点和簇头节点之间的距离变小,因此簇成员节点传输数据到簇头节点的能量消耗变少。其中,节点密度因子的计算公式为:
[0079]
[0080] 式中,Pρ为节点密度因子,ni‑neighbor为第i个节点小于一个半径R的节点数量,1/p‑1为理想情况下每个簇的簇成员个数;半径R的计算公式为:
[0081]
[0082] 其中,S为监测区域的面积,π为圆周率,N为监测区域节点总个数。
[0083] 通过考虑剩余能量、节点与基站之间的距离和节点密度三个因素,改进后的簇头选举阈值公式为:
[0084]
[0085] 式中,Pe为剩余能量因子,Pd为距离因子,Pρ为节点密度因子;α、β、γ为值介于0到1的权值参数,且β+γ=1。T(n)new为预选簇头的选取阈值。
[0086] 在无线传感器网络的基站训练堆叠自编码器以获取编码器参数。其中,堆叠自编码器(Stacked Autoencoder,SAE)堆叠自编码器是由多层自编码器组成的层级深度神经网络结构,使网络输出值尽可能与输入值相同,相比其它深度学习算法,它能够更加准确地还原出输入值的特征,常用作数据降维。堆叠自编码器包括编码器和解码器,编码器用于提取原始传感数据的特征并对原始传感数据进行压缩,解码器用于根据提取的特征将融合压缩后的数据重构。堆叠编码器模型的编码器布置在簇头,堆叠编码器模型的解码器布置在基站。布置在簇成员节点的堆叠自编码器的输入层神经元个数等于满足软硬阈值的节点个数,输出层神经元个数等于1,隐藏层层数根据输入数据的复杂性和维数进行设置。
[0087] 运行基于堆叠自编码器的数据融合算法需要权值参数。传感器节点的能量、计算和存储能力有限,在传感器节点训练会消耗大量节点能量,与减少节点能耗的目的相悖,因此在基站对堆栈自编码器模型进行训练。请参阅图2以及图3,堆叠自编码器的训练方法包括以下这些步骤,即步骤(1.1)‑(1.4)。
[0088] (1.1)将训练样本的输入数据表示为X={x(1),x(2),...,x(i),...,x(N)},N是训练样(i)本个数,x 是训练样本的第i个输入数据。
[0089] (1.2)利用min‑max标准化将输入数据x(i)映射到[0,1]区间。
[0090] (1.3)对堆叠自编码器的AE网络进行训练,第一个编码器(即第一个AE的编码器)(1) (i) (1) (1) (1)通过权值矩阵θ 将输入数据x 映射到低维隐藏层表示h ,h =f(θ X),第一个解码器(1)
将隐藏层表示h 映射成重构数据 并通过最小化一个损失函数以获
取第一个编码器的编码器参数,f()表示非线性激活函数。其中,损失函数为:
[0091]
[0092] 通过重复执行Adam算法,原始传感数据和重构传感数据的误差逐渐变小,第一个AE的参数逐渐更新,经过训练,更新第一个堆叠编码器的编码器参数 和隐藏层表(1)示h 。
[0093] (1.4)根据(1.3)利用前一个隐藏层表示h(n‑1)训练当前编码器,并获得当前编码器(n)的编码器参数 和隐藏层表示h ,逐层贪婪训练整个堆叠编码器模型。其中,利(1) (2) (2)
用h 训练第二个AE,获得第二个AE的参数 和隐藏层表示h 。利用h 训练下一个AE。重复执行上面的训练过程,逐层贪婪训练整个SAE模型,获得SAE的参数[0094] 由于训练SAE需要消耗一定的时间,因此在基站根据任务需要,在运行APTEEN之前,选择相应的训练样本数据对SAE进行训练。
[0095] (2)根据改进后的簇头选举阈值公式进行簇头选举,确定无线传感器网络中的至少一个簇头。
[0096] (3)无线传感器网络的簇成员节点将相应的节点数据传输至簇头。
[0097] (4)根据节点数据获取相应的簇节点信息表,并通过簇头将簇节点信息表发送至基站。在APTEEN中,簇头需要周期性的轮换来平衡能量消耗,相应的簇也会随之更新。簇的结构改变会导致簇中SAE模型结构的改变。因此,在所有节点在簇头为它们分配的时隙内将数据传输给簇头后,簇头将簇节点信息表发送给基站。
[0098] (5)基站根据簇节点信息表选择相应的堆叠编码器模型,并将编码器参数发送至相应的簇头。基站根据簇节点信息表选择相应的SAE模型。在SAE‑APTEEN中,SAE模型的编码器部分布置在簇头,解码器部分布置在基站。这里,基站会将训练好的参数发送给相应的簇头。
[0099] (6)簇头根据编码器参数将节点数据进行融合。在簇头节点收到编码器参数之后开始执行数据融合,并获得融合压缩的数据。
[0100] (7)使簇头将融合压缩后的数据传输至基站。簇头节点负责将簇成员节点传输给簇头的数据进行融合后发送给基站,簇中原始传感数据通过编码器前向传播压缩成1*1大小的压缩数据。APTEEN具有满足软硬阈值才传输数据,减少了不必要的能量消耗的优点。结合该优点,SAE‑APTEEN将深度自编码器引入APTEEN数据融合,在簇建立后的数据传输阶段,在簇头节点对数据进行压缩,将压缩后的数据传输到基站。
[0101] (8)基站对融合压缩后的数据进行重构,并判断无线传感器网络中所有节点是否死亡,是则结束数据融合,否则执行步骤(2)。在无线传感器网络所有的节点完成一轮的数据采集,融合和传输之后,开始新一轮的簇头选举和分簇。SAE‑APTEEN使簇头分布的更合理,具有较多剩余能量、距离基站较近以及位于节点稠密区域的节点具体较大当选簇头的概率,可以减少WSN的能量消耗,利用数据融合减少WSN的数据冗余性,减少发送冗余数据造成的能量损耗,从而延长网络生存周期,提高了数据传输效率。
[0102] 本实施例的基于自编码器的无线传感器网络数据融合方法,其先将剩余能量因子、节点与基站的距离因子以及节点密度因子加入到簇头选举阈值公式中以进行改进,同时还在基站训练堆叠自编码器以获得相应的编码器参数,再通过改进后的簇头选举阈值公式进行簇头选举,确定簇头,然后簇成员节点将节点数据传输至簇头,簇头获得簇节点信息表并将该表发送至基站,再然后基站根据该表选择模型并将编码器参数发送给簇头,而后簇头根据参数对节点数据进行融合,并将融合压缩的数据传输至基站,最后基站对数据进行重构并判断所有节点是否死亡,是则结束数据融合,否则返回至簇头选举步骤并再次进行数据融合,这样所有的节点完成一轮的数据采集,融合和传输之后,开始新一轮的簇头选举和分簇使簇头分布的更合理,具有较多剩余能量、距离基站较近以及位于节点稠密区域的节点具体较大当选簇头的概率,可以减少WSN的能量消耗,利用数据融合减少WSN的数据冗余性,减少发送冗余数据造成的能量损耗,从而降低死亡节点数及节点死亡速度,延长网络生存周期,提高了数据传输效率。
[0103] 该方法利用适应无线传感器网络的深度自编码器优化APTEEN数据融合,并对APTEEN的簇头选举阈值公式进行优化,考虑节点的剩余能量、与基站之间的距离以及节点密度,使簇头分布更合理,减少和平衡了网络能量消耗,延长了网络生存周期。而且,该方法改进了簇头选举阈值公式,分摊了簇头承担的任务量,延长了簇头的寿命,解决了簇头分布不合理的问题,使网络生存周期下降速度变缓。
[0104] 实施例2
[0105] 本实施例提供了一种基于自编码器的无线传感器网络数据融合方法,该方法在实施例1的基础上进行仿真验证,提供一种具体的实施方式。其中,在MATLAB仿真平台对SAE‑APTEEN性能进行验证,无线传感器网络的拓扑范围为200m*200m,随机分布200个传感器节点,基站的位置固定,坐标为(100m,100m)。任意节点的初始能量为0.5J,HT为1,ST为0.1,计数时间为100s。APTEEN数据融合率为0.6。数据包大小为4000bit,簇节点信息表大小为200bit。无线传感器网络中节点消耗模型的表达式为:
[0106]
[0107] ERx(k)=ERx‑elec(k)=Eelec*k
[0108] 式中,Eelec为无线传感器网络中节点每接受或者发送1bit消息所消耗的能量,ETx(k,d)为发送节点的消耗能量,ERx(k)接收节点的消耗能量。其中,Eelec=50nJ/bit,εfs=2 4
10pJ/bit/m,εmp=0.0013pJ/bit/m,数据融合能耗EDA=5nJ/bit。
[0109] 本实施例采用IBRL(Intel Berkeley Research lab)数据集的温度数据对基于深度自编码器的数据融合算法重构性能进行验证。首先利用阈值[‑10℃,50℃]剔除明显的异常数据,再利用拉依达准则提出大部分的异常数据。IBRL数据集划分为训练集和测试集:60%训练集,40%测试集。用绝对平均误差(Mean Absolute Deviation,MAE)和信噪比(Signal to Noise,SNR)评价基于深度自编码器的重构性能。不同簇内节点数量的MAE和SNR如表1所示。基于深度自编码的数据融合算法适用于大部分的WSN应用。
[0110] 表1基于深度自编码器的数据融合算法的MAE和SNR表
[0111]
[0112] 将SAE‑APTEEN、BP神经网络数据融合算法和APTEEN的存活节点个数情况进行对比,如图4所示,与APTEEN比较,BP神经网络数据融合算法和SAE‑APTEEN的节点死亡速度较缓慢一些,APTEEN的节点死亡速度较缓快,这是因为BP神经网络数据融合算法和SAE‑APTEEN都在簇头对簇内数据进行融合,,这样能有效地降低传输冗余数据消耗的能量,从而降低死亡节点数,而APTEEN在簇头将数据简单地融合成1个数据包后传输到基站,导致簇头每次传输大量冗余数据而有较大的能耗,较早死亡,增加死亡节点数。与BP神经网络数据融合算法相比,SAE‑APTEEN节点死亡的速度较缓慢,这是因为SAE‑APTEEN即数据融合性能优于BP神经网络数据融合算法,又改进了簇头选举阈值公式,使簇头分布更合理,分摊了簇头承担的任务量,延长了簇头的寿命。
[0113] 将SAE‑APTEEN、BP神经网络数据融合算法和APTEEN的平均剩余能量进行对比,对比结果如图5所示。与APTEEN比较,BP神经网络数据融合算法和APTEEN的平均剩余能量下降速度较慢一些,这是因为APTEEN使簇头传输大量冗余数据产生较大的能耗,降低了平均剩余能量,而BP神经网络数据融合算法和SAE‑APTEEN都对簇内数据进行了融合,这样能有效地降低簇头传输冗余数据消耗的能量,从而使平均剩余能量有较大的值。与BP神经网络数据融合算法相比,SAE‑APTEEN的平均剩余能量更多,这是因为SAE‑APTEEN一方面数据融合性能优于BP神经网络数据融合算法,另一方面改进了簇头选举阈值公式,使簇头分布更合理,分摊了簇头承担的任务量,使平均剩余能量下降速度变缓。
[0114] SAE‑APTEEN、BP神经网络数据融合算法和APTEEN的发送到基站数据包个数对比如图6所示。根据图中数据对比可知,与APTEEN和BP神经网络数据融合算法相比,SAE‑APTEEN发送到基站数据包个数更多,并且在APTEEN节点全部死亡后仍然在发送数据,发送到基站的数据包个数不再改变表示整个网络节点能量全部消耗完,所有节点死亡。SAE‑APTEEN数据传输效率优于BP神经网络数据融合算法和APTEEN,并且延长了网络生存周期。
[0115] 根据上述仿真图对比可得出结论,SAE‑APTEEN推迟了节点起始死亡的时间,降低了节点死亡速度,延长了网络生存周期,提高了数据传输效率。
[0116] 实施例3
[0117] 本实施例提供了一种基于深度自编码器的认知无线传感器网络的数据融合网络系统,该系统应用实施例1或2中的基于自编码器的无线传感器网络数据融合方法,并且包括簇头选举阈值公式改进模块、训练模块、簇头选举模块、数据传输模块、簇节点信息表传输模块、编码器参数传输模块、数据融合模块、融合压缩数据传输模块以及重构判断模块。
[0118] 簇头选举阈值公式改进模块用于先确定剩余能量因子、节点与基站的距离因子、节点密度因子,再将剩余能量因子、距离因子、节点密度因子加入至无线传感器网络的簇头选举阈值公式中以改进簇头选举阈值公式。剩余能量因子、距离因子、节点密度因子可以分别采用实施例1中所提供的计算公式进行确定,也可以采用其他公式对这些因子进行确定,这可以根据实际需要进行选择。改进后的簇头选举阈值公式可以采用实施例1中所提供的公式,也可以是其他公式,只需要将这三个因子融入公式中即可,使得改进后的公式能够考虑剩余能量、节点与基站的距离、节点密度的影响,使簇头分布更合理,减少和平衡了网络能量消耗,延长了网络生存周期即可。
[0119] 训练模块用于在无线传感器网络的基站训练堆叠自编码器以获取编码器参数。训练模块所采用的训练方法可以是实施例1中所举例的方法,也可以是对实施例1中训练方法的改进方法,还可以是在实施例1中的训练方法的基础上增加一些提升训练效果的步骤的方法。
[0120] 簇头选举模块用于根据改进后的簇头选举阈值公式进行簇头选举,确定无线传感器网络中的至少一个簇头。簇头选举模块通过之前的改进公式对簇头进行选举,确定各个簇头节点。
[0121] 数据传输模块用于通过无线传感器网络的簇成员节点将相应的节点数据传输至簇头。数据传输方式可以采用现有的节点之间数据传输方式,这样簇头节点就能够接收到各个簇成员节点的数据。
[0122] 簇节点信息表传输模块用于根据节点数据获取相应的簇节点信息表,并通过簇头将簇节点信息表发送至基站。这里,在APTEEN中,由于簇头需要周期性的轮换来平衡能量消耗,相应的簇也会随之更新,簇的结构改变会导致簇中SAE模型结构的改变,因此需要将该表发送至基站。
[0123] 编码器参数传输模块用于通过基站根据簇节点信息表选择相应的堆叠编码器模型,并将编码器参数发送至相应的簇头。基站根据簇节点信息表选择相应的SAE模型。在SAE‑APTEEN中,SAE模型的编码器部分布置在簇头,解码器部分布置在基站。这里,基站会将训练好的参数发送给相应的簇头。
[0124] 数据融合模块用于通过簇头根据编码器参数将节点数据进行融合。在簇头节点收到编码器参数之后开始执行数据融合,并获得融合压缩的数据。
[0125] 融合压缩数据传输模块用于使簇头将融合压缩后的数据传输至基站。其中,簇头节点负责将簇成员节点传输给簇头的数据进行融合后发送给基站,簇中原始传感数据通过编码器前向传播压缩成1*1大小的压缩数据。
[0126] 重构判断模块用于基站对融合压缩后的数据进行重构,并判断无线传感器网络中所有节点是否死亡,是则结束数据融合,否则执行簇头选举模块。在无线传感器网络所有的节点完成一轮的数据采集,融合和传输之后,开始新一轮的簇头选举和分簇。SAE‑APTEEN使簇头分布的更合理,具有较多剩余能量、距离基站较近以及位于节点稠密区域的节点具体较大当选簇头的概率,可以减少WSN的能量消耗,利用数据融合减少WSN的数据冗余性,减少发送冗余数据造成的能量损耗,从而延长网络生存周期,提高了数据传输效率。
[0127] 实施例4
[0128] 本实施例提供了一种本实施例提供一种计算机终端,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序。处理器执行程序时实现实施例1的基于自编码器的无线传感器网络数据融合方法的步骤。
[0129] 实施例1的方法在应用时,可以软件的形式进行应用,如设计成独立运行的程序,安装在计算机终端上,计算机终端可以是电脑、智能手机、控制系统以及其他物联网设备等。实施例1的方法也可以设计成嵌入式运行的程序,安装在计算机终端上,如安装在单片机上。
[0130] 实施例5
[0131] 本实施例提供一种计算机可读存储介质,其上存储有计算机程序。程序被处理器执行时,实现实施例1的基于自编码器的无线传感器网络数据融合方法的步骤。
[0132] 实施例1的方法在应用时,可以软件的形式进行应用,如设计成计算机可读存储介质可独立运行的程序,计算机可读存储介质可以是U盘,设计成U盾,通过U盘设计成通过外在触发启动整个方法的程序。
[0133] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。