kp(y1:k|x1:k)??p(yi|xi) (2.19)
i?1后验概率密度函数的递归形式可以表示为
p(x0:k|Yk)?p(yk|x0:k,Yk?1)p(x0:k|Yk?1)p(yk|Yk?1)p)x(kx|
?p(yk|x0:kY,?k10?:kY1?,kp1x)Y|?(0kY:?1|k1)
?p(yk|Yk?1)p(yk|xk)px(kx|k?1p)x0k(:?p(yk|Yk?1)1k?1) (2.20)
粒子权值wk(i)的递归形式可以表示为
w??(i)kp(x0:k|Yk)q(x(i)0:k(i)|Yk)(i)
?p(yk|xk)p(xkq(xk(i)(i)(i)|?1xki())p0(:?xk1i()1i()|?kY11|0x:k?1,Y)q(0x?k:k(i)(i)(i)|?Yk)
) ?w(i)k?1p(yk|xk)p(xk|xk?1)q(x(i)k|x(i)0:k?1,Yk) (2.21)
通常,需要对粒子权值进行归一化处理,即
? w(i)k?wkN(i) (2.22)
(i)k?wi?1序贯重要性采样算法从重要性概率密度函数中生成采样粒子,并随着测量值的依次到来递推求得相应的权值,最终以粒子加权和的形式来描述后验滤波概率密度,进而得到状态估计。序贯重要性采样算法的流程可以用如下伪代码描述:
[{xk,wk}i?1]?SIS({xk?1,wk?1}i?1,Yk)
(i)(i)N(i)(i)NFor i=1:N
(i)(i)(i)(1)时间更新,根据重要性参考函数q(xk|x0:k?1,Yk)生成采样粒子xk;
(2)量测更新,根据最新观测值计算粒子权值wk; End For
粒子权值归一化,并计算目标状态。
为了得到正确的状态估计,通常希望粒子权值的方差尽可能趋近于零。然而,序贯蒙特
(i)卡洛模拟方法一般都存在权值退化问题。在实际计算中,经过数次迭代,只有少数粒子的权值较大,其余粒子的权值可忽略不计。粒子权值的方差随着时间增大,状态空间中的有效粒子数较少。随着无效采样粒子数目的增加,使得大量的计算浪费在对估计后验滤波概率分布几乎不起作用的粒子更新上,使得估计性能下降。通常采用有效粒子数Neff来衡量粒子权值的退化程度,即
Neff?N/(1?var(wk)) (2.23)
p(xk|y1:k)q(x(i)k(i)*(i)w*(i)k?|x(i)k?1,y1:k) (2.24)
有效粒子数越小,表明权值退化越严重。在实际计算中,有效粒子数Neff可以近似为
??Neff1N (2.25)
(i)k?(wi?1)2?小于事先设定的某一阈值,则应当采取一些措施加在进行序贯重要性采样时,若Neff以控制。克服序贯重要性采样算法权值退化现象最直接的方法是增加粒子数,而这会造成计
算量的相应增加,影响计算的实时性。因此,一般采用以下两种途径:(1)选择合适的重要性概率密度函数;(2)在序贯重要性采样之后,采用重采样方法。
2.2.3 重要密度函数的选择
重要性概率密度函数的选择对粒子滤波的性能有很大影响,在设计与实现粒子滤波器的过程中十分重要。在工程应用中,通常选取状态变量的转移概率密度函数p(xk|xk?1)作为重要性概率密度函数。此时,粒子的权值为
wk?wk?1p(yk|xk) (2.26)
(i)(i)(i)转移概率的形式简单且易于实现,在观测精度不高的场合,将其作为重要性概率密度函数可以取得较好的滤波效果。然而,采用转移概率密度函数作为重要性概率密度函数没有考虑最新观测数据所提供的信息,从中抽取的样本与真实后验分布产生的样本存在一定的偏差,特别是当观测模型具有较高的精度或预测先验与似然函数之间重叠部分较少时,这种偏差尤为明显。
(i)N选择重要性概率密度函数的一个标准是使得粒子权值{wk}i?1的方差最小。Doucet等给
出的最优重要性概率密度函数为
q(xk|xk?1,yk)?p(xk|xk?1,yk)?(i)(i)(i)(i)p(yk|xk,xk?1)p(xk|xk?1)
(i)(i)(i)(i)p(yk|xk?1)(i)?p(yk|xk)p(xk|xk?1)p(yk|xk?1)(i)(i)(i)(i) (2.27)
此时,粒子的权值为
wk?wk?1p(yk|xk?1) (2.28)
(i)(i)(i)以p(xk(i)|xk(i?)1,yk)作为重要性概率密度函数需要对其直接采样。此外,只有在xk为有限离散状态或p(xk(i)|xk(i?)1,yk)为高斯函数时,p(yk|xk(i?)1)才存在解析解。在实际情况中,构造最优重要性概率密度函数的困难程度与直接从后验概率分布中抽取样本的困难程度等同。从最优重要性概率密度函数的表达形式来看,产生下一个预测粒子依赖于已有的粒子和最新的观测数据,这对于设计重要性概率密度函数具有重要的指导作用,即应该有效利用最新的观测信息,在易于采样实现的基础上,将更多的粒子移动到似然函数值较高的区域,如图2.4所示。
图2.4 移动粒子至高似然区域
Fig. 2.4 Move the samples in the prior to regions of high likelihood
辅助粒子滤波算法利用k时刻的信息,将k?1时刻最有前途(预测似然度大)的粒子扩展到k时刻[137],从而生成采样粒子。与SIR滤波器相比,当粒子的似然函数位于先验分布的尾部或似然函数形状比较狭窄时,辅助粒子滤波能够得到更精确的估计结果。辅助粒子滤波引入辅助变量m来表示k?1时刻的粒子列表,应用贝叶斯定理,联合概率密度函数
p(xk,m|y1:k)可以描述为
p(xk,m|y1:k)?p(yk|xk)p(xk,m|y1:k?1)?p(yk|xk)p(xt|m,y1:k?1)p(m|y1:k?1)mmm
?p(yk|xk)p(xk|xk?1)wk?1 (2.29)
生成{xk,m(i)(i)}i?1的重要性概率密度函数q(xk,m|x0:k?1,y1:k)为
q(xk,m|x0:k?1,y1:k)?p(yk|?k)p(xk|xk?1)wk?1 (2.30)
(i)NmmmNm其中?k为由{xk?1}i?1预测出的与xk相关的特征,可以是采样值?k?p(xk|xk?1)或预测均
mm值?km?E{xk|xkm?1}。
定义q(xk|m,y1:k)?p(xk|xkm?1),由于
q(xk,m|y1:k)?q(xk|m,y1:k)q(m|y1:k) (2.31)
则有
q(m|y1:k)?p(yk|?k)wk?1 (2.32)
mm此时,粒子权值wk(i)为
(i)im(i)w?w(i)kmk(i)?p(yk|xk)p(xk|xkm)q(xk,m|x0:k?1,yk)?p(yk|xk)p(yk|?mk(i)(i)) (2.33)
采用局部线性化的方法来逼近p(xk|xk?1,yk)是另一种提高粒子采样效率的有效方法。扩展Kalman粒子滤波与Uncented粒子滤波算法在滤波的每一步迭代过程中,首先利用最新观测值,采用UKF或者EKF对各个粒子进行更新,得到随机变量经非线性变换后的均值和方差,并将它作为重要性概率密度函数。另外,利用似然函数的梯度信息,采用牛顿迭代或均值漂移[140]等方法移动粒子至高似然区域,也是一种可行的方案,如图2.5所示。以上这些方法的共同特点是将最新的观测数据融入到系统状态的转移过程中,引导粒子到高似然区域,由此产生的预测粒子可较好地服从状态的后验概率分布,从而有效地减少描述后验概率密度函数所需的粒子数。
[138]
[139]
(i)?1{xk,N}?1(i)?k{x,N?1}(i)(i)?k{x,wk}(i)(i)?k?k{x,w}(i){xk,N?1}
图2.5 结合均值漂移的粒子滤波算法 Fig. 2.5 Particle filter combined with mean shift
2.2.4 重采样方法
针对序贯重要性采样算法存在的权值退化现象,Gordon等提出了一种名为Bootstrap的粒子滤波算法。该算法在每步迭代过程中,根据粒子权值对离散粒子进行重采样,在一定程度上克服了这个问题。重采样方法舍弃权值较小的粒子,代之以权值较大的粒子。重采样过
(i)(i)(i)(i)N?k?k(i)条件下,将粒子集合{x?k?k(i)}1N更新为{xk程在满足p(x?xk)?w,w,1/N}1。重采样
策略包括固定时间间隔重采样与根据粒子权值进行的动态重采样。动态重采样通常根据当前的有效粒子数或最大与最小权值比来判断是否需要进行重采样。常用的重采样方法包括多项式(Multinomial resampling)重采样、残差重采样(Residual resampling)、分层重采样(Stratified
resampling)与系统重采样(Systematic resampling)等。残余重采样法具有效率高、实现方便的
(i)特点。设Ni???k?,其中?Nw????为取整操作。残余重采样采用新的权值???w*i(k)?N?k?1?w?Ni(k)N?选择余下的Nk?N??Ni个粒子,如图2.6所示。残余重采样
ii?1N的主要过程为
(1) 计算剩余粒子的权值累计量?j,j?1,?,Nk 。 (2) 生成Nk在个[0,1]区间均匀分布的随机数{?l}l?k1 ;
ii(3) 对于每个?,寻找归一化权值累计量大于或等于?的最小标号m,即
?N?m?1????m。当?落在区间[?m?1,?m]时,xk被复制一次,如图2.6所示。
lim这样,每个粒子xk经重采样后的个数为步骤(3)中被选择的若干粒子数目与N之和。
i(i)
图2.6 残差重采样 Fig. 2.6 Residual Resampling
重采样并没有从根本上解决权值退化问题。重采样后的粒子之间不再是统计独立关系,
给估计结果带来额外的方差。重采样破坏了序贯重要性采样算法的并行性,不利于VLSI硬