文章快速检索  
  高级检索
基于BP神经网络的粒子滤波算法
王尔申 , 李兴凯 , 庞涛
沈阳航空航天大学 电子信息工程学院, 辽宁 沈阳 110136
基金项目: 国家自然科学基金资助项目(61101161);航空科学基金资助项目(2011ZC54010);辽宁省自然科学基金(联合基金)资助项目(2013024003).    
摘要: 针对粒子滤波算法中的粒子退化问题,提出了一种基于BP神经网络的提高粒子滤波多样性的算法。利用BP神经网络的非线性映射功能,通过对权值进行分裂、选择,将粒子中的小权值粒子状态作为神经网络的输入,粒子的权值作为神经网络的权值,以观测值作为神经网络的目标信号,通过多次训练增大小权值粒子的权值,从而提高粒子滤波算法粒子的多样性,改善算法的滤波性能。仿真结果表明:基于BP神经网络的粒子滤波算法的性能在有效粒子数和均方根误差参数方面优于基本粒子滤波算法,在改善滤波精度方面得到了较好的效果,验证了BP神经网络在改进粒子滤波算法中的有效性。
关键词: 粒子滤波     粒子退化     重采样     BP神经网络    
A particle filtering algorithm based on the BP neural network
WANG Ershen , LI Xingkai , PANG Tao
School of Electronic and Information Engineering, Shenyang Aerospace University, Shenyang 110136, China
Abstract: Aiming at the particle degeneracy phenomena in particle filtering algorithms, a particle filtering algorithm based on the BP neural network is presented for improving the diversity of particles. This algorithm utilizes the nonlinear mapping function of the BP neural network. First of all, to sample particles from the importance density function of particle weight division, the weighted particle is split into two small weight particles. Next, the weight of very small particles is abandoned and the particles with smaller weight are adjusted using the neural network. The state of the remaining small weight particles is used as the input of neural network. The weights of particles are treated as the weights of neural network by using the observed value as the target signal of the neural network. The weights of many small particles can be increased through many times' trainings, thereby increasing the diversity of particle samples in the particle filter algorithm. Simulation results showed that the particle filter algorithm based on BP neural network can increase the number of effective particles, reduce the mean square error, and the filtering precision performance is improved. It is proven that this particle filter algorithm based on BP neural network is reliable and effective.
Key words: particle filter     particle degeneracy     resampling     BP neural network    

粒子滤波(particle filter,PF)算法是一种基于蒙特卡罗模拟和递推贝叶斯估计的滤波方法,随着采样粒子数的增大,逐渐趋向状态的后验概率密度,在处理非高斯、非线性系统的参数估计和状态滤波问题方面有着明显的优势。近年来,在目标跟踪、卫星姿态估计、金融领域数据分析、图像处理、卫星导航动态定位等方面得到广泛的应用[1-5]。对于粒子滤波而言,其主要的缺陷是存在粒子退化现象。采用重采样技术能抑制粒子退化现象,但同时也带来了粒子的多样性丧失、样本枯竭等问题。 文献[6]将卡尔曼滤波与粒子滤波结合提高估计精度。文献[7]将粒子滤波与神经网络结合,可克服神经网络算法易陷于局部极小的缺陷。文献[8]将粒子滤波与自组织模糊神经网络训练算法相结合,利用粒子滤波对参数进行学习,其在结构紧凑性和泛化性能上有所提高。上述这些算法是将粒子滤波用于神经网络算法的改善。

1 基本粒子滤波算法

Gordon提出基于蒙特卡罗方法的序贯重要性重采样粒子滤波算法以来,粒子滤波成为非线性非高斯系统状态估计问题的一个研究热点[9]

假设描述动态系统的状态方程和观测方程为

${{X}_{k}}={{f}_{k}}\left( {{X}_{k}}_{-1},{{v}_{k-i}} \right)Zk={{h}_{k}}\left( {{X}_{k}},{{n}_{k}} \right)$

式中:Xk为状态向量,Zk为测量向量,fk为状态转移函数,hk为状态向量和观测向量之间的传递函数,vk-1为系统噪声,nk为观测噪声。基本粒子滤波算法的步骤如下所示。

设k-1时刻有一组后验粒子集:

$\left\{ {{x_{k - 1}}\left( i \right),{\omega _{k - 1}}\left( i \right);i = 1,2, \ldots ,N} \right\}$

式中:N为粒子数目,xk-1(i)为k-1时刻的第i个粒子,ωk-1(i)为k-1时刻第i个粒子的权重。

1) 粒子集初始化,k=0。

根据先验概率密度p(X0)抽取随机样本,X0(1),X0(2),…,X0(N)(N为随机样本数)。

2) 当k=1,2,…时,执行以下步骤:

① 状态预测。根据系统的状态方程抽取k时刻的先验粒子:

$\left\{ {{X}_{k|k-1}}\left( i \right);i=1,2,\ldots ,N \right\}\sim p\left( {{X}_{k}}|{{X}_{k-1}} \right)$

② 更新。首先,进行权值更新。在获得测量值之后,根据系统的观测方程计算粒子的权值ωk(j)

${\omega _k}^{(j)}:{\omega _k}^{(i)} = {\omega _{k - 1}}^{(i)}p\left( {{Z_k}|{X_k}^{(i)}} \right),i = 1,2, \ldots ,N$

归一化权值为

${\tilde \omega _k}^{\left( i \right)} = {{{\omega _k}^{\left( i \right)}} \over {\sum\nolimits_{i = 1}^N {{w_k}^{\left( i \right)}} }},\sum\limits_{i = 1}^N {{{\tilde \omega }_k}^{\left( i \right)}} = 1$

然后,计算有效粒子数${{\hat N}_{{\rm{eff}}}}$,并与设定的阈值Nthres进行比较;如果${{\hat N}_{{\rm{eff}}}}$<Nthres,则对先验粒子集$\left( {{X_k}{|_k}{{_{ - 1}}^{\left( i \right)}},{{\tilde \omega }_k}^{\left( i \right)}} \right)$进行重采样,得到N个等权值的粒子$\left( {{X_k}{|_k}{{_{ - 1}}^{\left( i \right)}},\frac{1}{N}} \right)$。否则,执行③。

③ 估计。计算当前时刻系统的状态估计值:

${{\hat X}_k}{\rm{ = }}\sum\limits_{i = 1}^N {{X_k}{|_k}{{_{ - 1}}^{\left( {\rm{i}} \right)}}} {{\tilde \omega }_k}^{\left( i \right)}$

基本粒子滤波算法在k时刻抽样时保持了过去的样本不变,而且重要性权是迭代计算的。但重要性权的方差经过若干次迭代,某个权可能趋于1,其余的权趋于0,造成了权值退化现象。粒子滤波的重采样可以抑制权值的退化,但重采样后也带来粒子不再独立。

2 BP神经网络辅助的粒子滤波算法

BP神经网络是一种有教师信号的按误差逆传播算法训练的多层前馈网络。它的学习规则使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层、隐层和输出层,如图 1所示。

图 1 BP神经网络结构示意图 Fig. 1 Diagram of BP neural network

设输入样本为p个:x1,x2,…,xp,与之对应的教师信号为d1,d2,...,dp,实际输出为y1,y2,…,yp,输出误差为

$E = \frac{1}{2}\mathop \sum \limits_{k = 1}^p {\left( {{d_k} - {y_k}} \right)^2}$

采用梯度法对各个层之间的权值进行调整,以使总误差减小,即

$\Delta {w_{jk}} = - |\eta \frac{{\partial E}}{{\partial {w_{jk}}}}$

式中:η为学习步长,wjk为各层之间的权值,Δwjk为权值修改量,通过总误差对权值进行相应地调整。

将BP神经网络与粒子滤波算法结合,改进的粒子滤波在基本粒子滤波的基础上增加了权值分裂和权值调整2个步骤,BP神经网络辅助的重要性权值调整粒子滤波(NNWA-PF)算法详细步骤如下。

1) 粒子集初始化,k=0。

根据先验概率密度p(X0)产生随机样本,X0(1),X0(2),…,X0(N)(N为随机样本数)。

2) 当k=1,2,…时,执行以下步骤:

① 状态预测。根据系统的状态方程抽取k时刻的先验粒子:

$\left\{ {{X}_{k|k-1}}\left( i \right);i=1,2,\ldots ,N \right\}\sim p\left( {{X}_{k}}|{{X}_{k-1}} \right)$

② 进行权值更新。在获得测量值之后,根据系统的观测方程并计算粒子的权值ωk(j)

${\omega _k}^{(j)}:{\rm{ }}{\omega _k}^{(i)} = {\omega _{k - 1}}^{(i)}p\left( {{Z_k}|{X_k}^{(i)}} \right),i = 1,2, \ldots ,N$

归一化权值为

${{{\tilde{\omega }}}_{k}}^{\left( i \right)}=\frac{{{\omega }_{k}}^{\left( i \right)}}{\mathop{\sum }^{}\overset{N}{\mathop{_{i=1}}}\,{{\omega }_{k}}^{\left( i \right)}},\underset{i=1}{\overset{N}{\mathop{\mathop{\sum }^{}}}}\,{{{\tilde{\omega }}}_{k}}^{\left( i \right)}=1$

③ 粒子分裂。将粒子矩阵按权值大小排序,分为高权值矩阵和低权值矩阵,将高权值矩阵中q个权值大的粒子分裂为2个小的、权值减半的粒子,同时将低权值矩阵中的q个权值最小的粒子舍弃。

④ 权值调整。将③的粒子权值矩阵进行降序排列,取其中最小的q个粒子,利用BP神经网络调整粒子的权值。

设误差能量定义为

$\varepsilon = \frac{1}{2}\mathop \sum \limits_{i = 1}^q {\left( {{z_k} - {y_k}} \right)^2}\frac{1}{2}\mathop \sum \limits_{k = 1}^q e\mathop {_k}\limits^2 $

式中:q为输入/输出层神经元的数量,zk为教师信号,即系统在该时刻的量测值,yk为神经网络的输出。输入数据为具有较小权值的粒子,其状态值作为BP神经网络的输入,粒子权值作为神经网络的初始权值,样本的学习函数为系统量测方程。

对更新后的粒子的权值进行归一化,

${{{\tilde{\omega }}}_{k}}^{\left( i \right)}=\frac{{{\omega }_{k}}^{\left( i \right)}}{\mathop{\sum }^{}\overset{N}{\mathop{_{i=1}}}\,{{\omega }_{k}}^{\left( i \right)}},\underset{i=1}{\overset{N}{\mathop{\mathop{\sum }^{}}}}\,{{{\tilde{\omega }}}_{k}}^{\left( i \right)}=1$

⑤ 重采样。计算有效粒子数N^eff,并与设定的有效粒子数阈值Nthresthres进行比较;如果N^effNthres,则进行重采样。将原来的带权样本{x(i)0:k,w(i)k}Ni=1映射为等权样本{x(i)0:k,N-1}Ni=1。否则,执行⑥。

⑥ 估计。计算当前时刻系统的状态估计值:

${{{\hat{X}}}_{k}}=\underset{i=1}{\overset{N}{\mathop{\mathop{\sum }^{}}}}\,{{X}_{k|k}}{{_{-1}}^{\left( i \right)}}{{{\tilde{\omega }}}_{k}}^{\left( i \right)}$

⑦ 时刻k=k+1,继续计算。

3 实验仿真与结果分析 31 实验模型

为了进一步验证算法的有效性,本文引用如下的模型[10],该模型在大量文献中均可看到,是研究比较各种粒子滤波算法性能的典型验证模型之一。

状态模型和观测模型分别为

${x_{k + 1}} = 0.5x + \frac{{25x}}{{1 + {x^2}}} + 8\cos 1.2\left( {k - 1} \right) + {w_k}$
${y_k} = \frac{{{x_k}^2}}{{20}} + {v_k}$

式中:k表示状态时刻,xk表示状态量,yk表示观测量,状态初始值为x0=0.1 ,wk 、vk均服从零均值高斯分布,方差分别为Ó2m和Ó2n,状态变量xk为一维变量,初始状态x0服从高斯分布。

3.2 实验结果性能分析

依据上述模型中的系统方程与测量方程,设定初始时刻状态值x0和粒子总数,神经网络的学习步长为0.05,神经元个数为6,过程噪声方差Q=1、量测噪声方差R=1时。运行环境为MATLAB R2009a,Intel Core(TM) 2 Duo CPU T6500,2.1 GHz,2 G 内存。为了对比不同粒子数目的实验结果,选取50、100、150个粒子,结果如图 2~7所示。

图 2 粒子数为50时算法结果对比情况 Fig. 2 Comparison of the algorithms under the condition of 50 particles
图 3 粒子数为50时误差对比情况 Fig. 3 Error comparison under the condition of 50 particles
图 4 粒子数为100时算法结果对比情况 Fig. 4 Comparison of the algorithms under the condition of 100 particles
图 5 粒子数为100时误差对比情况 Fig. 5 Error comparison under the condition of 100 particles
图 6 粒子数为150时算法结果对比情况 Fig. 6 Comparison of the algorithms under the condition of 150 particles
图 7 粒子数为150时误差对比情况 Fig. 7 Error comparison under the condition of 150 particles

从图中可以看出,BP神经网络辅助的粒子滤波算法比基本粒子滤波算法对状态的估计性能更好。2种算法处理后的不同参数如表 1所示。

表 1 采用不同算法处理后的参数比较 Table 1 Parameter comparison of particle filter algorithms
算法 粒子数 平均有效样本 RMSE
PF 50 22.865 0 3.816 3
NNWA-PF 50 30.415 5 3.539 9
PF 100 41.841 4 3.517 8
NNWA-PF 100 48.120 9 3.175 0
PF 150 64.551 9 3.332 1
NNWA-PF 150 71.265 0 3.111 8

表 1不难看出,粒子数目为N=50,NNWA-PF滤波算法的RMSE=3.539 9,基本粒子滤波算法的RMSE=3.816 3。此时,NNWA-PF滤波算法的有效样本为30.415 5。粒子数目为N=100时,NNWA-PF滤波算法的RMSE=3.175,基本粒子滤波算法的RMSE=3.517 8。此时,NNWA-PF滤波算法的有效样本为48.1209。粒子数目为N=150时,NNWA-PF滤波算法的RMSE=3.111 8。此时,NNWA-PF滤波的有效样本为71.265 0。从中可以看出引入神经网络后的重要性权值调整粒子滤波算法能有效地抑制样本退化,而且,在同等条件下,有效样本数目增多,方差越小,估计精度越高。

为了验证不同算法复杂度与粒子滤波中粒子个数N的关系,分别选取50,100,…,350个粒子,仿真其运行时间(单位:s),得到的结果如图 89所示。

图 8 粒子滤波算法运行时间与粒子数目的关系 Fig. 8 Relation of PF running time and number of particle

图 8图 9中可看出,基本粒子滤波算法的运行时间随着粒子数目的增加基本成线性增长。NNWA-PF的运行时间随着粒子数目的增加成非线性增长。

图 9 NNWA-PF算法运行时间与粒子数目的关系 Fig. 9 Relation of NNWA-PF running time and number of particle
4 结束语

将BP神经网络和基本粒子滤波算法有机结合,通过理论分析和数学仿真,比较了相同粒子数样本条件下,BP神经网络辅助的粒子滤波与基本粒子滤波的有效粒子数目和均方根误差参数,分析了不同粒子数目条件下算法的复杂度。结果表明:神经网络辅助的粒子滤波算法有效地改善了滤波性能,降低了估计方差,同时,粒子滤波器运行时间均与粒子数目呈递增关系,BP算法的引入增加了算法的运行时间。

参考文献
[1] 程水英, 张剑云. 粒子滤波评述[J]. 宇航学报,2008, 29 (4) : 1099 –1111.
[2] LI P, KADIRKAMANATHAN V. Particle filtering based likelihood ratio approach to fault diagnosis in nonlinear stochastic systems[J]. IEEE Trans Syst, Man, Cybern C,2001, 31 (3) : 337 –343.
[3] GUSTAFSSON F, FREDRIK G. Particle filters for positioning, navigation, and tracking[J]. IEEE Transactions on Signal Processing,2002, 50 (2) : 425 –437.
[4] QING Ming, JO K H. A novel particle filter implementation for a multiple-vehicle detection and tracking system using tail light segmentation[J]. International Journal of Control, Automation and Systems,2013, 11 (3) : 577 –585.
[5] CHEN Zhimin, BO Yuming, WU Panlong, et al. Novel particle filter algorithm based on adaptive particle swarm optimization and its application to radar target tracking[J]. Control and Decision,2013, 28 (2) : 193 –200.
[6] 夏楠, 邱天爽, 李景春, 等. 一种卡尔曼滤波与粒子滤波相结合的非线性滤波算法[J]. 电子学报,2013, 41 (1) : 148 –152.
[7] 陈养平, 王来雄, 黄士坦. 基于粒子滤波的神经网络学习算法[J]. 武汉大学学报:工学版,2006, 39 (6) : 86 –88.
[8] 程洪炳, 黄国荣, 倪世宏, 等. 基于粒子滤波的自组织模糊神经网络算法研究[J]. 仪器仪表学报,2011, 32 (3) : 634 –639.
[9] ARULAMPALAM M S, MASKELL S, GORDON N, et al. A tutorial on particle filters for online nonlinear/non-Gaussian Bayesian tracking[J]. IEEE Transactions on Signal Processing,2002, 50 (2) : 174 –188.
[10] 冯驰, 赵娜. 有效粒子数MCMC粒子滤波算法研究[J]. 应用科技,2009, 36 (4) : 19 –22.
DOI: 10.3969/j.issn.1673-4785.201310057
中国人工智能学会和哈尔滨工程大学联合主办。
0

文章信息

王尔申, 李兴凯, 庞涛
WANG Ershen, LI Xingkai, PANG Tao
基于BP神经网络的粒子滤波算法
A particle filtering algorithm based on the BP neural network
智能系统学报, 2014, 9(6): 709-713
CAAI Transactions on Intelligent Systems, 2014, 9(6): 709-713
http://dx.doi.org/10.3969/j.issn.1673-4785.201310057

文章历史

收稿日期: 2013-10-22
网络出版日期: 2014-12-25

相关文章

工作空间