郭 鲁,魏 颖
(沈阳工学院 信息与控制学院,辽宁 抚顺 113122)
无线传感器网络(WSN, wireless sensor network)是当今比较重要的高科技技术,其主要思想是通过相应的传感器设备检测相应的环境数据,同时将检测的信息相融合,实现网络连接。目标跟踪是无线传感器网络的基础研究领域之一,同时也是研究的热点,主要应用于交通监控和战争检测等[1-2]。例如,要实现对一个目标进行及时准确跟踪,可以将其放在布置有无线传感器的环境中,通过无线传感器网络实时采集目标运动中的测量数据,再将测量数据返回跟踪系统,跟踪估计目标的位置。应用无线传感器网络进行目标跟踪时,若是监测的准确性不高,系统就可能无法自动集中,导致目标跟踪丢失。粒子滤波(PF,particle filter)通过非参数化的蒙特卡洛模拟实现递推贝叶斯滤波,更新推断系统的下一个状态,精确逼近最优估计值,因此,粒子滤波比较适用于处理目标跟踪等非线性系统的状态估计问题。粒子滤波算法在多次重复迭代后会出现粒子贫化现象,导致目标跟踪的准确性降低。粒子贫化问题一般可以通过改进重要性分布函数或者是改进重新提取粒子来解决,使粒子的多样性得到了保证[3-4]。为了保证粒子群优化过程中的局部多样性,本文运用改进的粒子滤波算法,解决了粒子算法中粒子退化的缺陷。
现代粒子滤波领域有多种发展方向,其中群智能优化粒子滤波算法是一个比较新的发展方向。群集智能粒子滤波方法的主要思想是对粒子分布实行反复迭代优化,对于粒子群中低权重粒子不存在放弃问题,从而增加了粒子迭代过程中的多样性,在根本上解决粒子贫化问题。文献[5]为了优化粒子滤波算法的样本更新过程,采用粒子群算法和蚂蚁群算法相结合的算法,在粒子群体之间实现了信息共享,大大提高了粒子群体全局优化能力。采用文献[6]进行优化的粒子滤波算法应用到自适应粒子群中,对样本粒子数量进行了适应性调整,合理调整了粒子空间分布状态和正确性。
蝙蝠算法(BA, bat algorithm)由剑桥大学的杨教授于2010年提出,它通过模仿蝙蝠的猎物行为来获得最好的寻优解。BA算法作为最新的智能优化算法之一,还处于早期研究和扩展阶段,与PF融合的报道较少。作为最新的智能优化算法之一,蝙蝠算法还处于早期研究和扩展阶段,关于与PF融合的报道较少。文献[7]表明,蝙蝠算法优化的综合能力比蚂蚁算法,粒子群等算法更强,因而蝙蝠算法和粒子滤波相结合时,智能优化的粒子滤波性能进一步提高,具有重要意义。但是蝙蝠算法要比较脉冲频率和脉冲强度来产生两个独立的随机数来确定下一步骤的操作:这种情况下随机性太大而控制太小,从而降低了蝙蝠算法的精确度和稳定性。因此,如果将标准的蝙蝠计算方法加入到粒子滤波算法中,通过两者相结合,就不能满足现代高频精密跟踪雷达精度的需要[7-9]。
本文提供对于粒子滤波跟踪算法粒子退化问题,提出了一种自适应蝙蝠粒子滤波跟踪算法(IBA-PF, individual bat algorithm particle filter)。自适应蝙蝠粒子滤波算法在粒子滤波算法的基础上加入改进的蝙蝠算法,优化了粒子重采样过程,结合最新的观测值定义粒子适应度函数,引导粒子整体上向更高的随机区域移动。同时,引入一个动态自适应惯性权重来设计新的粒子全局搜索位置更新机制,有效协调调整全局探索和局部探索适应能力、改善粒子贫化和陷入局部极值问题,大大提高了目标跟踪性能。结果表明,该算法可以保护群体多样性,节省时间,加速收敛速度。
IBA-PF算法是通过改进的蝙蝠算法优化粒子滤波重采样过程,来实现无线传感器目标跟踪。其主要思想是在传统粒子滤波算法中结合自适应蝙蝠粒子滤波算法,增加了粒子多样性,提高了跟踪准确性,缩短跟踪监测时间,提高了跟踪监测能力。实验结果表明,该算法具有较好的跟踪性能。
粒子滤波主要是使用一类的随机加权随机样本(也称为粒子)来近似表征的后概率密度:
u(xg|z1:g)
(1)
δ是delta 函数。一般通过后验概率密度函数来估计目标状态,按照重要样本的原则,根据重要性分布函数来获得重要性大的即为权值大的粒子。已知的样本分布, 得到粒子对应的重要度(权重)如公式(2),以及随后的后验概率如公式(3):
(2)
(3)
通过上述的公式,代入式(2),可以确定加权粒子集的更新过程:
(4)
通过公式(3)和式(4)形成基于粒子滤波算法的方法,经过粒子重采样有效解决了粒子退化问题。重新采样算法将所有粒子的权重值同样更改为1/N,退化问题得到缓解。
但是为了保持样本粒子的集中分布和合理分布功能,通常采用采样算法复制大值粒子,删除小值的方法,结果导致权重大值粒子出现了重复粒子增多的现象,即粒子贫化的现象,最终会导致粒子样本多样性减少,使整个算法的性能变差,因此在重要的采样过程中,为了要保持其多样性,要对粒子进行适当调整。
现有的重新采样算法中,为了保留粒子集中有代表性的粒子,因此,只选择高权重值的粒子进行更新,导致重复性粒子增加,粒子的多样性丢失,出现粒子贫化现象。在重采样过程中,引入了一种基于粒子滤波的自适应蝙蝠算法,结合最新的观测值定义粒子适应度函数,引导粒子整体上向更高的随机区域移动。同时利用动态自适应惯性权重探索新的粒子位置更新为设计机制,引入动态适应惯性权重值,有效调整全局探索和局部探索适应能力、改善粒子贫化和局部极值问题,增加粒子群多样化从而提高跟踪性能[10-11]。
目前对于粒子滤波重采样方法,通常保留大权重的粒子,而删除小权重粒子,这样多次迭代后,导致粒子缺乏,出现粒子贫化现象。对于上述问题,本文研究运用自适应蝙蝠算法优化了粒子滤波。
标准粒子滤波通常是通过后验概率密度函数对样本进行采样,在此过程中,如果不考虑当前的观测值,结果就会导致发生粒子加权值减小退化。为了克服权重值退化问题,主要通过重采样过程中放弃小权重值粒子来实现。但是这样经过多次重复迭代,最终会导致粒子退化。针对以上问题,本文采用粒子滤波算法结合自适应蝙蝠算法的新方法,为了保持粒子分布的合理性,在样本的粒子集在权值更新前,通过全局最优值逐渐引导大部分粒子向于高似然区域移动,同时高似然区域附近不会是全体粒子集。通过此方法优化重采样过程,最终可以改善粒子的分布,提高跟踪精度算法[ [12-14]。
BA是最新的蝙蝠算法,该种算法是模仿自然界蝙蝠捕获猎物的行为,主要思想是利用回声定位寻找猎物,该方法适用于反复迭代寻忧,同时具有模型简单,收敛速度快,强壮性好等优点。与其他主流群体智能优化算法相比较,蝙蝠算法的优化能力要更好些。这个算法的主要思路是利用蝙蝠不断持续更新相关参数,其参数为声音的强度,脉冲频率、脉冲发射频度,它们共同融合来实现寻找目标的优化能力。其中蝙蝠的飞行速度的快慢由参数中的脉冲频率决定,蝙蝠接收新的位置的概率由参数中的声音的强度和脉冲发射频度共同决定。具体优化原理是:
1)蝙蝠个体i在D维搜索空间中的g时刻的速度vi和位置xi的更新方式定义为:
fi=fmin+(fmax-fmin)·β
(5)
(6)
(7)
2)局部搜索时,每只蝙蝠的新位置为xgnew由随机摄动生成的当前最佳位置,更新位置的方法与公式相同:
(8)
3)在寻找猎物的开始阶段,蝙蝠有较大的脉冲音强Ai和相对较低的脉冲发射频度ri,所以它们可以在大范围内进行搜索,当它们找到食物时,它们会逐渐增加释放脉冲发射频度,而逐渐减小脉冲音强。Ai和ri的更新如下:
(9)
(10)
标准蝙蝠算法通过搜索脉冲的f数来调整蝙蝠的运动,以便可以控制全局和区域搜索功能。重复次数增加,根据式(5)~(7)利用蝙蝠的位置和信息更新时,蝙蝠的速度是越来越小,蝙蝠群体集中在局部极值地,该算法有效的变异机制不足,群体多样性减少影响,收敛精度。本文优化了蝙蝠的位置更新方式,设计了新的全局探索公式,引入了动态自适应惯性加权值控制蝙蝠飞行位置的变化程度。新的位置更新方法是:
(11)
w(g-1)=exp(-λ(g-1)/λ(g-2))
(12)
(13)
在搜索空间中把粒子随机的分布,每一个蝙蝠个体用每一个粒子来表示,整个寻优搜索过程就像蝙蝠种群在寻找食物一样。在初始反复时,首先是实现全局搜索,在此过程中,粒子状态的更新是通过粒子较低的脉冲发射频率结合较大的音强来实现。而在进行局部搜索的时候,粒子状态的更新是通过粒子逐渐减少音强和提高发射频率来实现。粒子群可以调整上面3种参数:频率,声音大小,脉冲发射频率,沿着目前最好的最优的粒子进行适当自适应搜索,增加粒子的多样性,改善粒子退化现象。为了实现更好的滤波性能,在粒子采样过程中,融合最新当前观测值来优化粒子群,其自适应函数定义为:
(14)
式中,ynew是最新当前观测值,ypred是滤波器预测的观测值,Rg为观测噪声方差。从(14)的计算公式可以看出,该算法有效利用了每一时刻最新当前观测值,同时结合该算法相关内部信息,对算法本身具有指导作用。通过与位置有优势的更好的粒子相比较,多次重复之后,在搜索空间的最佳位置周围会聚集大部分粒子。为了实现结束迭代,必须设定迭代终止阈值,满足这个条件后则终止迭代。通过模仿蝙蝠追踪猎物的特性来优化粒子。在算法优化初期,粒子分布在整个空间中,粒子之间具有较大的间隔和较快的飞行速度,从而保证粒子走向最优解,达到较快的收敛速度,而后期为了保证优化末期的精度,粒子逐渐减小的飞行速度,整个过程中粒子实现自适应速度调整。
综上,本文利用IBA-PF算法设计了自适应采样和蝙蝠算法融合进粒子滤波算法中,在粒子滤波的重采样过程,通过改进的蝙蝠算法结合最新的观测值定义粒子的适应度函数来优化重采样过程,引导粒子向整体上较高的随机区域移动。同时利用动态自适应惯性权重探索新的粒子位置更新为设计机制,引入动态适应惯性权重值, 有效调整全局探索和局部探索适应能力、改善粒子贫化和局部极值问题,增加粒子群多样化从而提高跟踪性能。该算法具有更强的适应性和随机性。通过这两种算法在迭代更新中的反复作用,提高了粒子的多样性,有效压缩粒子的规模,同时提高计算效率和精度。自适应蝙蝠粒子滤波算法重采样方法可以防止粒子的退化,增加粒子的多样性,可以稳定控制粒子集规模在较小的范围内,提高粒子滤波的计算精度和效率。可以减少算法的运行时间,实时性能大幅提高。
算法实现程序
自适应蝙蝠粒子滤波算法实现步骤为:
步骤3:自适应蝙蝠粒子滤波算法采样粒子。
1)模拟蝙蝠的全局搜索行为。根据上面公式(5)更新粒子的频率,根据公式(6)更新粒子的速度,根据公式(11)~(13)更新粒子的位置。
4)通过计算比较更新全局最优解的值。
(15)
步骤4:当算法临界值达到设定阈值ε或达到最大值重复迭代次数时,优化中断,否则转入步骤2。
步骤5:在上述过程的优化后,进行粒子权重值计算,并进行归一化处理。
(16)
步骤6:状态输出。
(17)
选择过程模型和测量的非静态增长模型,模型如下:
8cos[1.2(u-1)]+w(u)
(18)
(19)
在这里,w(u)和v(u)是零均值高斯噪声。设系统噪声方差Q=1,量测噪声方差R=1,滤波时间步数为55,最大脉冲音量值A0=0.25,fmin=0,fmax=1.7最大脉冲率R0=0.5。PF、BA-PF和IBA-PF用于非线性系统的状态估算和跟踪。
平方根差公式为:
(20)
3.1.1 精度测试
1)当粒子数为N=20,Q=1时,模拟结果如图1和图2所示。
图1 滤波状态估计
图2 滤波误差绝对值
2)N=100,Q=1,模拟结果如图3和图4所示。
图3 滤波状态估计
图4 滤波误差绝对值
从图1~4可以看出,与标准粒子滤波和蝙蝠粒子滤波、自适应蝙蝠粒子滤波算法相比,自适应蝙蝠粒子滤波算法得到了优化。
由于IBA-PF 在PF 的基础上的原因,其算法具有更高的状态值预测准确度,IBA-PF则模拟以PF为基础的个体或群体寻找蝙蝠的食物与BA-PF相比,IBA-PF可精确控制全局优化能力和局部优化能力,从而优化粒子在状态空间的分布,可以粒子分布更合理,使用更少重复迭代次数,达到寻优,用较少的粒子并进一步提高粒子过滤的精度。从表1可以看出,IBA-PF的运算精度在粒子数为20时,就高于PF算法粒子数为100的运算精度,并且运算时间与BA-PF差不多。IBA-PF同时还可以提高综合性价比的滤波精度和保持较快的计算速度。
从表1还可以看出,如果粒子数为20和50,则PF、BA-PF、IBA-PF三种算法相比较,IBA-PF的精确度有了很大的提高,但当粒子数为100时,IBA-PF的准确度没有太大的提高。这是因为当粒子数量非常少时,各粒子的平均权重较大,各粒子的质量会对预测结果产生很大影响。这就体现了对IBA-PF的全局优化能力和局部优化能力的精确控制优势。但是,当粒子数量较大时,各粒子质量的平均重要度就会降低,因此IBA-PF的自适应探索机制的优势不会很大。这表明IBA-PF非常适合于快速、精确的预测,如果粒子数量少,如雷达、无线传感器目标跟踪等。
表1 实验结果对比
3.1.2 粒子多样性测试
在IBA-PF滤波估算中,为测定样本的多样性,得出了以下结果:
当g=10,g=25,g=95时,PF,BA-PF,IBA-PF的粒子分布如图5~7所示。从图5~7可以看出,PF、BA-PF、IBA-PF算法相比,标准PF算法按重复采样进行的滤波过程中,粒子的多样性明显减少。在这个阶段,大部分粒子只集中在几个状态值上,可能会严重影响滤波器的估计性能。而在BA-PF、IBA-PF的情况中,粒子集大部分一起向高似然区域移动的同时,低相似性区域合理地保存了部分粒子,其中,IBA-PF算法的情况比BA-PF算法的情况更为明显,IBA-PF以粒子群体目前的最佳位置为目标,并调整飞行轨迹,以提高整个群体的重复搜索效率和粒子分布的多样性。IBA-PF算法合理优化了每个阶段的粒子分布,具有粒子相对最集中的优点,利用IBA-PF采样可以有效地清除每个阶段多余的粒子,并稳定地控制粒子的大小。IBA-PF证明了通过减小粒子大小和蝙蝠算法优化稳定性,可以提高计算效率。本文提出的算法大大提高了粒子的多样性,而使用BA-PF算法,粒子的多样性略有增加。结果表明,虽然IBA-PF采样可以减少粒子的数量,但根据动态粒子数,IBA-PF采样可以去除不必要的粒子,蝙蝠算法可以获得更好的优化性能。
图5 g=10时粒子状态分布情况
图6 g=25时粒子状态分布情况
图7 g=95时粒子状态分布情况
本文在进行分析时,只考虑单个目标在有效的检测区域内做匀速直线运动。其中,它的测量方程和运动状态方程如下:
(15)
通常反映目标跟踪算法性能好坏用跟踪精度的大小来表示,通常用平均平方根误差来表示。本文采用3种计算方法:PF粒子滤波算法、BA-PF粒子滤波算法、IBA-PF粒子滤波算法通过它们的平均平方根误差的计算数值和比较曲线分析性能。平均平方根误差跟踪的计算公式为(15)~(16):
(16)
在仿真实验中,取比值为0.72,在本实验中得到了3种算法的跟踪轨迹曲线,如图8所示。
图8 目标运动轨迹比较
如图8所示,PF算法和BA-PF算法远离目标,而IBA-PF算法更接近目标的真实轨迹。如图9~10所示,IBA-PF算法跟踪精度最高,跟踪误差最小,其次为BA-PF算法,PF算法的跟踪精度最低,PF算法与BAPF算法的跟踪误差较大。PF算法和BA-PF算法跟踪性能较差,不能实时准确跟踪,但本文提出的IBA-PF算法更接近目标,跟踪精度略高,实现稳定的准确的跟踪,跟踪性能更好,效果显著。从图9和图10可以看出,PF的滤波速度估计误差最大,BA-PF比PF的滤波效果好些,IBA-PF滤波误差最小,效果最好,最能推算目标运动速度。PF、BA-PF和IBA-PF算法的运行时间分别为50.36 s、38.58 s和29.26 s。全面比较后,通过自适应IBA-PF控制,合理兼顾了全局寻优能力和局部寻优能力,使粒子趋于更合理的分布,提高了滤波的精度,提高了跟踪性能。IBA-PF算法的优点是可以提高实时监控的效率。本文用3种滤波PF算法、BA-PF算法和IBA-PF算法分别进行了110次模拟实验,得到目标位置和速度的平均平方根误差。3种过滤算法的平均平方根误差如表2所示。
图9 目标运动速在x轴的分量比较
图10 目标运动速度在y轴的分量比较
表2 3种滤波算法的均方根误差
在表2中IBA-PF算法和PF算法相比,IBA-PF算法的位置和速度的平均平方根误差,其中最低跟踪精度是PF算法,IBA-PF的跟踪精度最高,可以看出具有较好的跟踪性能。
从图11可以看出,本文所提出的跟踪算法的准确性优于PF和BA-PF算法。由于IBA-PF是根据状态后验的概率分布的粒子集合来推测状态,所以对非高斯的杂音不敏感,曲线也没有大的变化。标准PF的RMSE曲线更弯曲,精度更低。
图11 3种算法的跟踪精度
实验结果表明,本文提出的自适应蝙蝠粒子滤波的WSN目标跟踪方法。通过改进的蝙蝠算法优化粒子滤波的重采样过程,结合最新的观测值定义粒子的适应度函数,引导粒子向整体上较高的随机区域移动,有效调整全局探索和局部探索适应能力、改善粒子贫化和局部极值问题,增加粒子群多样化从而提高跟踪性能。自适应蝙蝠粒子滤波算法重采样方法可以防止粒子的退化,增加粒子的多样性,减少跟踪误差,可以减少算法的运行时间,实时追踪性能大幅提高。IBAPF算法的计算时间最短。与BA-PF算法和PF算法相比,IBA-PF算法的位置和速度的平均平方根误差最小(位置0.031 1、0.020 2、速度0.026 2、0.010 1),PF算法的跟踪精度最低,IBA-PF的跟踪精度最高。证明了IBA-PF算法具有良好的跟踪性能。
针对粒子滤波中的粒子贫化问题和采用群体智能优化算法后的计算效率低下问题,删除不必要的粒子以优化蝙蝠算法的初始粒子集问题,本文提出了一种自适应蝙蝠粒子滤波算法,用于无线传感器网络中的目标跟踪。该算法粒子采样中,使用改进的蝙蝠采样算法结合最新的观测值,定义了粒子匹配度函数来进行优化粒子重采样过程,使整体粒子向更高的随机区域移动。同时,全局探索新的粒子位置更新为设计机制,引入动态适应惯性权重值有效调整全局探索和局部探索适应能力、改善粒子退化和局部极值问题,提高无线传感器网络目标跟着走性能。由于后验概率密度函数会产生新粒子,可以维持优良粒子,同时保证了粒子的多样性,有效缓解样本枯竭问题,从而大大改善了滤波功能。理论分析和实验结果表明,该算法的整体滤波效果优于普通粒子滤波,可很好地实现准确的目标跟踪,具有一定的实用价值。但是,粒子滤波算法具有运算量较大,能耗较大的缺点,需要在有限能量无线传感器网络、高精度测试、跟踪问题、能耗等方面进行深入研究[18-20]。由粒子滤波不断重复迭代更新,蝙蝠算法使粒子的分布更为集中在最优点且分布合理,在重采样中加入自适应采样可以稳定控制粒子集规模在较小的范围内,提高粒子滤波的计算精度和效率。IBA-PF算法可实现粒子间的信息交换可以有效地压缩粒子的规模,与人工智能进一步结合跟踪领域将得到更好的发展和应用。