1. 引言
无线传感器网络(Wireless Sensor Networks, WSN)是一种由大量小型传感器节点组成的自组织网络,广泛应用于环境监测[1] [2]、智能电网[3] [4]、军事侦察[5]、医疗保健[6]和智能家居[7]等多个领域。在动态和复杂的环境中,传感器节点的通信质量可能受到多种因素的影响,包括多径效应、环境中其他网络的干扰以及硬件噪声等[8]。准确高效地估计链路质量对于提高数据传输效率、延长网络寿命和增强网络可靠性至关重要。
目前关于链路质量的估计方法往往采用采集数据集、离线训练模型、模型部署并预测的方式。然而,如果采集数据集所处的环境与实际部署模型的环境不一致,链路质量的预测精度可能有所下降。此外,传感器节点采集的物理层参数可能因不同生产厂家、计算标准不一导致用数据集离线训练的模型无法适配所有环境。
针对以上问题,本文利用EFDT决策回归树算法,采用在线学习的方法对链路质量进行预测。该方法将SNR和LQI作为模型的输入特征,与离线学习的决策回归树相比,该方法实时性高、泛化性强、能适应不同的环境。实验结果表明,本文提出的模型具有较高的预测精度,可以应用于无线传感器网络链路质量估计。
2. 相关研究
自从决策树算法提出以来,因其能适应复杂数据结构、支持多变量、模型具有较高可解释性等特点,受到学术界的广泛关注和持续研究。随着互联网和物联网技术的快速发展,众多组织面临着高速流入、持续增长的数据流。然而,传统决策树方法(如ID3、C4.5)依赖于在内存中存储所有训练样本,这使得模型无法处理超出内存容量的数据或者大量数据未被利用,最终导致模型过度简单,从而引发欠拟合问题。此外,如果数据到达超过模型处理数据的速度,那么未处理的数据无限累积,存储和管理成本随之剧增。
针对以上挑战,在线学习方法提供了一种有效的解决方案。在此背景下专家学者针对传统决策树模型改进得到在线决策树算法。文献[9]提出了基于Very Fast Decision Tree (VFDT)方法扩展得到的VFDTc算法。该方法使用动态二元树结构来维护连续变量的统计信息,通过遍历二元树结构快速找到最优分割点,从而避免了预先排序或者存储所有值,提高了算法的搜索效率。其次,该方法在叶节点采用朴素贝叶斯分类器使得在处理小样本或者树分裂早期时的准确率优于多数类策略,模型在Waveform数据集上实验误差降低了5%~8%。
文献[10]针对特征候选分割点过多的问题将数值范围划分为等宽区间,减少39%的连续特征处理时间,并降低了内存需求。此外,该文献修改了剪枝策略:基于当前样本估计增益,若某区间增益上限低于当前最佳增益则剪枝,再通过反向检查避免误剪枝。实验显示这种剪枝策略没有显著损失精度。
文献[11]提出了一种基于McDiarmid不等式的决策树算法McDiarmid Tree,以解决传统的Hoeffding Tree (HT)算法的理论缺陷。作者推导出处理信息增益和基尼系数时的边界条件。此外,该文献引入参数τ,当边界ϵ < τ时强制分裂,由此提升了构建决策树模型的效率。
相比之前提出的在线学习决策树算法,HT更加接近离线学习中的决策树[12],并且过去的算法不适合有噪声的数据流或者计算成本过高的场景[13]。文献[9]-[11]都是对HT算法的改进,但是没有对分裂原理进行根本扩展。
文献[14]通过改进VFDT算法提出了CVFDT算法。该文献新增了滑动窗口机制和子树替代机制,维护一个固定大小的窗口。当新样本被输入时,更新相关节点的统计信息并移动滑动窗口,移除旧数据的统计量,根据窗口内的数据更新模型。随着时间或环境变化,当模型检测某节点的分裂属性不再是最优的,就基于最新数据生成新的子树替换原有的子树。滑动窗口机制使得更新每个样本的时间复杂度为O(1),优于重新训练整个窗口的时间复杂度,有效提升了建立决策树的效率。在概念漂移场景下,CVFDT比VFDT的准确率提升了约10%,且节点数更少。
文献[15]改进了传统HT在线学习方法统计效率低以及无法修正分裂错误的问题,提出Hoeffing Anytime Tree (HATT),该方法增加了及时分裂和分裂后修正策略,从而显著增加建树效率。但是HATT仅讨论并实现分类问题的模型建立,而没有谈论回归问题。
针对无线传感器网络的链路质量估计也存在其他在线学习方法。文献[16]提出了LEAS (Link Estimation with Asynchronous Samples)的链路质量估计方法。通过节点周期性地采集噪声强度(INS)和干扰,结合RSSI计算信噪比SINR。使用简化的包成功率(PSR)-SINR线性映射模型,利用SINR计算PSR的瞬时估计值,并借助滑动窗口和EWMA平滑滤波。该方法有效降低了预测误差且无需离线训练模型,但是其依赖于对SINR测量的准确性,在存在Wi-Fi、蓝牙干扰,干扰源不可控的场景下,该方法可能导致测量误差影响预测精度。
文献[17]针对WSN设备提出了一种基于蒙特卡洛模拟与非线性拟合的实时链路质量估计方法。该方法将符号错误率(SER)作为链路质量评价指标,通过传感器采集的物理层参数SNR计算得到芯片错误率(CER)。在离线训练中,通过蒙特卡洛仿真生成实验数据,使用非线性回归拟合建立CER-SER模型。在线预测中,根据离线训练建立的模型实现实时计算。该方法计算复杂度低,并且在典型噪声范围内表现稳定,但是由于其依赖离线训练模拟数据,所以若噪声超出模拟范围,模型可能失效。其次,模型参数可能因不同的硬件芯片差异需要重新校准,泛化性受到限制。
文献[18]提出了一种针对工业无线传感器网络的实时链路质量估计方法。该方法在传感器网络中部署专属LQE节点,通过独立射频模块避免占用传感器节点的通信资源,持续监听接收节点的数据包,获取RSSI和重复包数量。基于接收包的RSSI值,通过离线训练的三次多项式回归模型实时估计前向PRR。根据无数据接收时的RSSI值,判断信道被外部干扰(如Wi-Fi、蓝牙)占用的概率。统计重复包的数量并结合历史数据训练的模型估算后向PRR。最后,将以上三者通过EWMA平滑输出的加权结果作为总体链路质量的指标。该方法相比于Opt-FLQE方法降低了20%的重发数据。根据工业环境实测数据建模,其适用于存在金属反射和多径效应的工业环境。
文献[19]提出了一种通过实时学习多个预测策略的表现,动态调整权重以实现最小化预测误差的链路质量动态预测方法。传感器节点获取实时RSSI和期望传输次数(EXT)并预测下一时刻的链路质量。同时,构建反馈机制,将真实的链路质量反馈给预测器。预测策略分为均值策略和保守策略,前者是利用滑动窗口内链路质量的均值估计链路质量,后者采用加权求和链路质量的均值和最小值以降低突发干扰影响。预测器根据学习率和损失函数调整每个策略的权重。实验结果显示,该方法在动态工业环境中相比于不实时更新模型参数的方法,预测误差降低30%~50%。
文献[20]提出的在线学习方法与文献[19]类似,不同点在于将保守策略改为平滑因子滤波策略。该方法利用平滑因子调节历史数据和当前数据对策略输出结果的影响。此外,该方法直接选择历史累积损失最小的预测策略作为输出结果。该综合策略的方法在数据波动阶段比仅使用滑动窗口平均的MSE降低了约30%,MAE降低了25%。采用直接选取最优策略的方法预测虽然节约了计算资源,但是在动态场景下,策略切换延迟导致的误差比窗口移动平均高15%~20%。
以往的链路质量估计在线学习方法大致分为三类:第一类是采取离线训练映射模型,部署到节点上在线预测,但这会导致部署在非离线训练的特殊环境下模型可能会失效;第二类是额外部署链路质量估计节点,但这增加了成本;第三类是根据在线采集的实际数据和损失函数实时更新不同策略权重并进行预测,但这种方法往往增加了很多计算成本,且在环境动态场景下可能表现不佳。
3. EFDTR决策回归树模型的建立
Figure 1. Scatter plot of PRR and LQI in experimental environment 1
图1. 实验环境1中PRR与LQI的散点图
离线学习的方法利用特定环境下采集的数据集训练机器学习模型,然后部署到节点上完成在线预测。这种方法由于环境变化,物理层参数与PRR的映射关系也可能发生变化从而导致预测误差增大。由图1和图2所示,环境1和环境2中PRR和LQI的散点图分布不同,如果使用实验环境1中采集的数据集训练决策回归树模型并在实验环境2下进行预测,可能导致较大的预测误差。其次,在实际部署的WSN中,传感器节点的型号可能存在差异,各个生产厂家对链路质量指标LQI的评定标准也可能有所不同。因此,使用不同生产厂家的传感器节点采集数据得到的PRR和物理层参数之间的映射关系也可能不同,使模型在不同设备中难以适用。由于传统决策树回归树的各种局限,就需要一种泛化性强、能适应环境变化和不同物理器件且精度较高的机器学习模型,在线学习的决策树模型可以满足以上要求。
Figure 2. Scatter plot of PRR and LQI in experimental environment 2
图2. 实验环境2中PRR与LQI的散点图
4. EFDT算法原理
Domingos和Hulten提出了第一个增量构建决策树的算法——快速决策树(VFDT) [21]。VFDT也被称为Hoeffding Tree (HT)算法,HT的每个叶子节点会记录流入此节点样本的统计信息。其在训练初始时为单叶子节点,也是树的根节点。随着实时数据更新,新的数据流入到根节点并积累足够样本后,根节点根据决策树的启发式度量遍历所有特征中的所有特征值,寻找最优分裂。再根据霍夫丁边界判断是否满足分裂条件。若分裂条件达成,就依据最优分裂将样本分成两个集合,形成左右两个叶子节点,否则继续积累样本。随着样本的持续更新,新流入的每个样本依据分裂节点的分裂标准从根节点向下传递至叶子节点,叶子更新其统计信息。当新形成的两个叶子节点累积到足够样本后,再次启用启发式度量机制。按照以上步骤不断迭代从而形成一个处理数据流的增量决策树模型。
霍夫丁不等式是一种概率不等式,它为独立、有界的随机变量之和偏离其期望值的概率提供了一个上限。根据霍夫丁不等式,如果n个独立的随机变量
,每个变量的
都限制在某个取值范围R内[22]:
(1)
(2)
假定这些变量的均值为:
(3)
这些变量的期望值为:
(4)
其中
为随机变量的和,那么这些变量的均值偏离期望值的概率被限定在一个范围内,其满足双边不等式:
(5)
其中,
是偏差量。经转换后可以得到随机变量的实际均值在
区间的置信度为
,
可以表示为:
(6)
HT的核心策略是:当候选分割属性间的基尼系数之差超过霍夫丁边界时,选择最优属性进行节点分裂,并且一旦完成了分割便不再做修改。这种保守策略虽然提高了计算效率,却导致两个关键缺陷:1) 早期学习阶段需积累大量样本才能达到分割阈值,造成模型收敛延迟。2) 随着新数据到来,原来的最优分割不再是最优时,原始分割无法修正,随着树深度增加,模型与理想批量决策树的偏离逐渐变大。
基于此,EFDT算法,也称HATT,提出了改进思想。在HATT决策树中,也采用霍夫丁不等式作为节点的分裂依据。EFDT算法的核心是动态分割机制,该机制通过两个决策阶段实现了决策树结构的实时校准与渐进优化:在叶节点执行初始分割决策的即时分裂阶段,以及在决策节点实施分割验证的持续优化阶段。在第一阶段,样本数据流到达叶节点,模型更新所有候选属性的统计量。如果累积到
个样本,则计算各属性的基尼系数,其中
是模型的分裂最小样本数。根据霍夫丁不等式,当最优属性
与不分裂
的基尼系数之差满足时,节点立即执行分裂操作,生成以
为分割属性的决策节点及左右两个子叶节点。其中,
,C为样本目标类别数,
为置信度,n为样本数。
(7)
在第二阶段,随着新的样本实时更新流入模型,根据现有树结构流经决策节点到达叶子节点,决策节点每流经
个样本后,系统将重新评估当前分割属性
与新候选最优属性
的基尼系数差:
(8)
若
,则触发子树重建流程:移除当前节点的所有子树,将决策节点退化为叶节点后重新执行分裂阶段,由于统计量得以保留可以加速新分裂计算。
传统的HT算法在节点分裂时比较最优分裂与次优分裂的基尼系数,确定足够大差异才开启分裂。而EFDT比较的是最优属性与不分裂之间存在足够的基尼系数之差时就提前触发分裂。这一策略显著缩短了模型早期学习的收敛时间。采用重新评估分裂机制,EFDT则拥有了动态调整能力,这使得EFDT能够修正因数据分布变化或早期样本不足导致的错误分割。EFDT算法的运行时间通常超过VFDT,其很少需要超过两倍的时间,并且在学习较小的树时,运行算法需要的时间更少[15]。
5. EFDTR算法的实现
EFDT算法用于分类问题,而PRR预测属于回归问题,为此,对EFDT进行修改,提出针对回归问题的EFDTR算法,并利用该算法实现链路质量的在线估计。
由于EFDT算法针对的是分类任务,采用基尼指数最小的特征作为节点的划分依据,所以在EFDT算法中每个节点需要记录样本的特征值、类别、计数,累积样本数并维护类别频次统计。决策回归树的划分依据则是样本MSE,样本MSE的计算公式为:
(9)
其中,n是样本数量,
是样本集合中第i个样本,
是样本均值。如果直接记录每个样本的目标值,并在计算方差时采用如上的计算方法,那么在遍历每个特征的每个分裂点时计算一次样本均值,n次平方运算会产生较大的计算开销,为此,本文按式(10)计算样本方差:
(10)
其中,
表示随机变量X的数学期望。利用这个公式,可以在每个节点中记录样本
以及
的平方。当数据流流入决策树节点时记录并更新,在节点分裂时依次计算分裂点左右两个样本集合中目标值的均值以及目标值平方和的均值就可以得到样本集合的方差,减轻计算负载。在计算霍夫丁边界时,R为随机变量的取值范围,所以决策树每个节点在数据更新的同时需要记录修改目标值的最大、最小值。
由于寻找最优划分时需要遍历每个特征的每个分裂点,这需要消耗大量计算资源,所以在建立EFDTR决策回归树时还需要增加一个超参数
,当输入样本已经足够多,而最优划分和次优划分的启发式度量值的差值还没有达到霍夫丁边界时直接完成分裂决断,此时直接选取最优划分。以下算法展示了新样本流入EFDTR决策回归树每个节点的处理流程,该算法忽略了对样本数据的预处理过程,而是将预处理后的数据输入模型并递归执行。
算法1:EFDTR决策回归树模型生成
输入:一批数据流
,超参数:置信度
,最小分裂样本
,分裂阈值
输出:EFDTR决策回归树模型
步骤1:更新每个节点的统计信息
步骤2:重新评估每个分裂节点
步骤3:如果节点是叶子节点,则进入步骤4,否则进入步骤8
步骤4:如果节点流入的样本
,则进入步骤5,否则等待新数据流入
步骤5:根据置信度和样本范围计算霍夫丁边界
步骤6:如果
或者
,则进入步骤7,否则等待新数据流入。其中,
为不分裂时样本的平方误差,
为最优分裂特征,最优分裂点
分裂后样本的平方误差。
步骤7:执行分裂,等待新数据流入
步骤8:根据决策节点的决策边界,样本进入对应子树,若未遍历完整,则进入步骤1
由于EFDTR算法是针对回归任务的,所以利用该方法预测链路质量可以得到更具体且量化的结果,但样本特征值与目标取值可能较多,所以算法具有一定的时间复杂度和空间复杂度。算法的时间复杂度为
,其中N为输入样本数,h为树模型高度,d为样本特征数,假设特征有m个不同取值。空间复杂度为
,其中L为树模型的节点总数。后续研究中可以采取连续特征离散化、定期剪枝等策略进一步优化算法的时间和空间复杂度。
6. 实验结果与分析
在室内走廊、停车场实验环境下分别进行实验。固定收发节点的距离,以不同功率发送数据,或者以相同功率但收发节点距离不同模拟链路质量不同的场景。分别在良好质量链路、中等质量链路、差链路三种实验场景下采集数据。此外,在同一场景下模拟链路质量发生变化的场景并进行多次实验。
6.1. 数据预处理
PRR是接收成功概率的近似值,增大PRR的统计窗口有利于减小近似误差,避免网络拓扑频繁变化,不过也会降低对干扰的响应速度。为综合考虑预测精度和灵敏度,本文将PRR的统计窗口设为100,以窗口内成功接收的数据包对应的物理层参数的均值作为模型的输入特征。由于SNR反映了信号与噪声的相对强度,而LQI为反映链路质量的参数,因此,本文选择LQI和SNR作为链路质量估计模型的输入参数。由于在线学习需要尽可能高的实时性,因此,将移动滑动窗口步长设定为3。在节点实际运行时,对于一对点对点通信的传感器节点而言,是由接收节点负责链路质量预测,接收节点只能根据接收到的数据包序号确定窗口。而链路可能出现短期波动,如果节点在上一轮窗口统计后没有收到序号加3的数据包,则保持等待直到新数据包的到来,再根据最新的数据包序号向前取100确定此次窗口内的物理层参数和PRR值,由此可以及时地预测链路质量的变化。
6.2. 不同链路质量条件下预测性能对比
Figure 3. Real PRR variations and online prediction errors of high-quality links
图3. 高质量链路的PRR和在线预测误差曲线
Figure 4. Real PRR variation and online prediction error of medium quality links
图4. 中等质量链路的PRR和在线预测误差曲线
Figure 5. Real PRR variations and online prediction errors of low-quality links
图5. 低质量链路的PRR和在线预测误差曲线
本文提出利用EFDTR决策回归树算法结合5.1节中数据预处理预测链路质量的方法LEIL。为了验证采用特定环境数据集训练的离线学习模型在其他实验环境预测可能导致较大误差,进行如下实验。采用平均绝对误差(MAE)作为链路质量的评价标准。为评价本文提出的链路质量估计方法的性能,分别采用三种质量的链路进行了测试,分别为良好链路、中等链路和差链路,且链路质量在短时间内较为平稳。此外,本文将同为增量学习的VFDT算法也修改为针对回归任务并作为对照。图3~5显示了在三种不同质量链路下的真实PRR变化以及LEIL方法与VFDT的预测误差。由图可见,在链路质量较稳定的情况下,LEIL方法与VFDT方法有相近的预测效果。随着数据流流入模型,MAE先增大随后逐渐降低并趋于稳定,预测误差也逐渐接近同一环境下离线训练的决策树模型,表示模型逐渐收敛的过程。在模型逐渐收敛后,MAE始终处于一个较低的水平,且与离线学习的决策回归树相近。表1显示了采用LEIL方法和当前环境训练以及特定环境训练离线学习的决策回归树分别在良好、中等、差链路下的预测精度,不同质量链路下LEIL方法的平均MAE为0.0528。
Table 1. Comparison of online prediction performance between offline and online decision trees under different quality links
表1. 离线与在线训练的决策树模型对不同质量链路的预测误差对比
估计方法 |
良好链路 |
中等链路 |
差链路 |
LEIL |
0.0186 |
0.1060 |
0.0338 |
VFDT |
0.0179 |
0.0962 |
0.0367 |
同一环境离线训练的模型 |
0.0161 |
0.0633 |
0.0337 |
不同环境离线训练的模型 |
0.0261 |
0.2695 |
0.0582 |
6.3. 链路质量变化下预测性能对比
Figure 6. PRR curve over time in link 1
图6. 在链路1中PRR随时间变化的曲线
Figure 7. Online prediction error for link 1
图7. 对链路1的在线预测误差
Figure 8. PRR Time curve in link 2
图8. 在链路2中PRR随时间变化的曲线
当受到邻近频段的Wi-Fi或蓝牙设备干扰或者有人员走动时,链路质量可能发生明显变化。图6显示了短期链路质量波动较小的链路1的实际PRR值变化。图7显示了对于链路1,LEIL方法与VFDT方法预测误差的变化,MAE先增大,在链路质量稳定阶段逐渐减小并趋于稳定,后续随着链路质量发生变化,EFDTR模型重建,决策树中的节点重新划分以适应新流入的样本,MAE增大但始终保持在较低范围内。与VFDT方法相比,在链路质量改变的场景下,LEIL方法比VFDT方法具有更高的预测精度,这是由于LEIL方法可以随着数据流的流入重新修正原来的模型,而VFDT方法一旦分裂后就不再修改。图8显示了短期链路质量波动较大的链路2的实际PRR值变化。图9显示了对于链路2,LEIL方法与VFDT方法预测误差的变化,预测误差随着模型逐渐收敛而减小并趋于稳定。与VFDT方法相比,LEIL方法也具有更高预测精度,且相比VFDT方法更快收敛。由上述实验可知,LEIL方法既可以适应链路质量发生变化的场景,又可以适应链路质量短期波动较大的场景,预测精度始终保持在较高水平且随着数据流更新模型逐渐收敛。表2显示了当前环境训练以及特定环境训练的离线学习决策回归树使用相同的在线训练样本与LEIL方法在线预测精度对比。
Figure 9. Online prediction error for link 2
图9. 对链路2的在线预测误差
Table 2. Comparison of online prediction performance between offline decision tree and LEIL method under different links
表2. 离线训练的方法与LEIL对不同链路的在线预测误差对比
估计方法 |
链路1 |
链路2 |
LEIL |
0.0758 |
0.0740 |
VFDT |
0.1143 |
0.0866 |
同一环境离线训练的模型 |
0.0431 |
0.0593 |
不同环境离线训练的模型 |
0.1221 |
0.1291 |
7. 结论
针对离线训练链路质量估计模型泛化能力较弱的问题,本文提出了基于增量学习的链路质量估计方法LEIL,采用MSE作为EFDT的纯度指标,实现了决策回归树的增量生成。与基于离线学习的方法相比,LEIL在多种链路质量条件下,具有较高的估计精度,同时可以减少建立模型的成本。由于LEIL具有环境自适应能力,并且收敛速度较快,因此可以应用于链路质量不稳定的无线传感器网络。未来将进一步研究降低时间和空间复杂度的方法,以提高模型的收敛速率,减少计算开销。