粒子滤波算法

1、前言

粒子滤波器是一新类型的非线性滤波器,已成为一个解决非线性滤波问题的重要工具,因为它能应用于很多领域,如信号处理、雷达和声音媒体的目标跟踪、计算机视觉、神经计算。

X n X_n Xn表示所有的目标状态序列 { x i } i = 1 n {\lbrace x_i\rbrace} _{i=1}^n {xi}i=1n
Y n Y_n Yn表示所有观测序列 { y i } i = 1 n {\lbrace y_i\rbrace} _{i=1}^n {yi}i=1n
给定观测序列 Y n Y_n Yn的条件下,所有状态 X n X_n Xn的联合后验分布为 p ( X n ∣ Y n ) p(X_n|Y_n) p(XnYn)
由于 X n X_n Xn表示的状态序列对观测者都是隐藏的,获得直接从后验分布 p ( X n ∣ Y n ) p(X_n|Y_n) p(XnYn)中随机取样通常是不可行的。因此从另外一个分布中取样,这一分布称为工具分布,用 q ( X n ∣ Y n ) q(X_n|Y_n) q(XnYn)来表示。为了使重要分布能够有效代替后验分布, q ( X n ∣ Y n ) q(X_n|Y_n) q(XnYn)必须有一个足够广的支集,以完全包括 p ( X n ∣ Y n ) p(X_n|Y_n) p(XnYn)的支集。

2、 Monte Carlo积分

所谓重要性抽样方法,即从重要性分布 q ( X n ∣ Y n ) q(X_n|Y_n) q(XnYn)中随机抽取N个统计独立且同分布的样本构成一个集合。令n时刻随机取出的样本集记为 X n ( i ) , i = 1 , 2 , . . . , N X_n^{(i)},i=1,2,...,N Xn(i),i=1,2,...,N,从零时刻开始直到n时刻,一步一步的,在状态空间中,根据重要性分布 q ( X n ∣ Y n ) q(X_n|Y_n) q(XnYn),N个样本追踪自己的“轨迹”。它们的轨迹记为 X n ( i ) X_n^{(i)} Xn(i),其中,i=1,2,…,N,称为粒子,因此面名为粒子滤波器

定义重要性函数:
r ( X n ∣ Y n ) = p ( X n ∣ Y n ) q ( X n ∣ Y n ) (式1) r(X_n|Y_n)= \frac{p(X_n|Y_n)}{q(X_n|Y_n)}\tag{式1} r(XnYn)=q(XnYn)p(XnYn)(1)
利用贝叶斯估计量的定义:
h ‾ = E p [ h ( X n ) ] = ∫ h ( X n ) p ( X n ∣ Y n ) d x n \overline h=E_p[h(X_n)]=\int h(X_n)p(X_n|Y_n)dx_n h=Ep[h(Xn)]=h(Xn)p(XnYn)dxn
改写其定义,可以改写贝叶斯估计量的公式:
h ‾ = E p [ h ( X n ) ] = ∫ h ( X n ) p ( X n ∣ Y n ) q ( X n ∣ Y n ) q ( X n ∣ Y n ) d x n = ∫ h ( X n ) r ( X n ∣ Y n ) q ( X n ∣ Y n ) d x n (式2) \overline h=E_p[h(X_n)]=\int h(X_n) \frac {p(X_n|Y_n)}{q(X_n|Y_n)} q(X_n|Y_n)dx_n = \int h(X_n)r(X_n|Y_n)q(X_n|Y_n)dx_n \tag{式2} h=Ep[h(Xn)]=h(Xn)q(XnYn)p(XnYn)q(XnYn)dxn=h(Xn)r(XnYn)q(XnYn)dxn(2)
其中 h ( X n ) h(X_n) h(Xn)作为任意函数,为了使它和粒子滤波的术语保持一致性。
在式2的贝叶斯计量上运用重要性取样方法,得到相应的Monte Carlo估计量:
h ^ n ( N ) ≈ 1 N ∑ i = 1 N w ~ n ( i ) h ( X n ( i ) (式3) \hat h_n(N) \approx \frac{1}{N}\sum _{i=1} ^N \widetilde {w}_n ^{(i)}h(X_n^{(i)} \tag{式3} h^n(N)N1i=1Nw n(i)h(Xn(i)(3)
其中
w n ( i ) = w ~ n ( i ) ∑ j = 1 N w ~ n ( j ) , i = 1 , 2 , . . . , N (式4) w_{n} ^{(i)} = \frac{\widetilde w_n ^{(i)}}{\sum _{j=1} ^N \widetilde w_n ^{(j)}},i=1,2,...,N \tag{式4} wn(i)=j=1Nw n(j)w n(i)i=1,2,...,N(4)
对有限数量的粒子,N个,估计量 h ^ n ( N ) \hat h_n(N) h^n(N)是有偏的,但是,在渐进的意义,满足下述关系:
lim ⁡ N → ∞ h ^ ( N ) → h ‾ (式5) \lim _{N \to \infty} \hat h(N) \to \overline h \tag{式5} Nlimh^(N)h(5)

取样的第二阶段背后的基本原理:
重采样的第二阶段取出的样本 x ~ n ( i ) \widetilde x_n^{(i)} x n(i),它的标准化重要性权值 w n ( i ) w_n ^{(i)} wn(i)很大,很有可能从联合后验分布 p ( X n ∣ Y n ) p(X_n|Y_n) p(XnYn);比起标准化重要性权值小的样本,应该以更大的概率选择这样的样本。
实现SIR的方式,每一次循环中进行以下操作:
(1)、采样。随机地从重要性分布 q ( X ∣ Y ) q(X|Y) q(XY)中抽取一个N个样品 { X ( i ) } \lbrace X ^{(i)}\rbrace {X(i)}_{i=1} ^N的iid集合。
(2)、加权。利用式4,计算相关的标准化权值 { w ( i ) } i = 1 N \lbrace w^{(i)}\rbrace _{i=1} ^N {w(i)}i=1N的集合。
(3)、重采样。
(i)给定中间样本 X ( 1 ) , X ( 2 ) , . . , X ( N ) X^{(1)},X^{(2)},..,X^{(N)} X(1),X(2),..,X(N),条件独立地抽取含L个离散随机变量 { I 1 , I 2 , . . . , I N } \lbrace I^{1},I^{2},...,I^{N} \rbrace {I1,I2,...,IN}的集合,从集合 { 1 , 2 , . . N } \lbrace1,2,..N \rbrace {1,2,..N}中依概率 ( w 1 , w 2 , . . , w N ) (w^{1},w^{2},..,w^{N}) (w1,w2,..,wN)取值,如以下例子所示:
P ( I ( 1 ) = j ) = w ( j ) , j = 1 , 2 , . . . , N P(I^{(1)}=j)=w^{(j)},j=1,2,...,N P(I(1)=j)=w(j),j=1,2,...,N
I ( 2 ) , . . , I ( L ) I^{(2)},..,I^{(L)} I(2),..,I(L)等,典型地,有 L ≤ N L\leq N LN
(i)设 X ~ ( i ) = X ( I j ) \widetilde X ^{(i)}= X^{(I_j)} X (i)=X(Ij),其中 i = 1 , 2 , . . . , L i=1,2,...,L i=1,2,...,L
集合 { I ( 1 ) , I ( 2 ) , . . , I ( L ) } \lbrace I^{(1)}, I^{(2)},.., I^{(L)}\rbrace {I(1),I(2),..,I(L)}被认为是多项式实验过程,因此,根据SIR方法被描述为一种多项式类型。

3、顺序重要性采样

p ( X n ∣ Y n ) = ∫ 1 Z n p ( x n ∣ x n − 1 l ( y n ∣ x n ) p ( X n − 1 ∣ Y n − 1 ) d x n − 1 p(X_n|Y_n)=\int \frac{1}{Z_n}p(x_n|x_{n-1}l(y_n|x_n)p(X_{n-1}|Y_{n-1})dx_{n-1} p(XnYn=Zn1p(xnxn1l(ynxn)p(Xn1Yn1)dxn1
= ∫ 1 Z n p ( x n ∣ x n − 1 l ( y n ∣ x n ) p ( X n − 1 ∣ Y n − 1 ) q ( X n ∣ Y n ) q ( X n ∣ Y n ) d n − 1 =\int \frac{1}{Z_n}p(x_n|x_{n-1}l(y_n|x_n)\frac{p(X_{n-1}|Y_{n-1})}{q(X_n|Y_n)}q(X_n|Y_n)d_{n-1} =Zn1p(xnxn1l(ynxn)q(XnYn)p(Xn1Yn1)q(XnYn)dn1

4、权值退化问题

5、采样重要性重采样粒子滤波器

记法

粒子用 i = 1 , 2 , 3... N i=1,2,3...N i=1,2,3...N来表示,其中N表示粒子总数。

初始化

给定状态分布 p ( x ) p(x) p(x)和初始值 x 0 x_0 x0,随机取消
x 0 ( i ) − p ( x 0 ) x_0 ^{(i)} - p(x_0) x0(i)p(x0)
其中记号 x − p x-p xp是x是分布p的一个观察值,设置初始权值
w 0 ( i ) = 1 N w_0 ^{(i)} = \frac {1}{N} w0(i)=N1
其中 i = 1 , 2 , 3... N i=1,2,3...N i=1,2,3...N

循环

每个时间步骤 n = 1 , 2 , 3... n=1,2,3... n=1,2,3...,按照下标 i = 1 , 2 , 3... N i=1,2,3...N i=1,2,3...N,做如下操作:
(1)重要性分布定义为
q ( x n ∣ x n − 1 ( i ) , y n = p ( x n ∣ x n − 1 ( i ) q(x_n | x_{n-1}^{(i)},y_n=p(x_n|x_{n-1}^{(i)} q(xnxn1(i),yn=p(xnxn1(i)
其中假设已知先验分布 p ( x n ∣ x n − 1 ( i ) p(x_n|x_{n-1}^{(i)} p(xnxn1(i),取样
x n i − p ( x n ∣ x n − 1 i ) x_n^{i} - p(x_n|x_{n -1}^{i}) xnip(xnxn1i)
(2)计算重要性权值
w ^ n ( i ) = l ( y n ∣ x n − 1 ( i ) ) \hat w_n^{(i)} = l(y_n|x_{n-1} ^{(i)}) w^n(i)=l(ynxn1(i))
其中也假设似然函数 l ( y n ∣ x n − 1 ( i ) ) l(y_n|x_{n-1} ^{(i)}) l(ynxn1(i))已知,因此计算标准权值
w n ( i ) = w ^ n ( i ) ∑ j = 1 N w ^ n ( i ) w_{n}^{(i)}= \frac{\hat w_n^{(i)}}{\sum_{j=1} ^{N}{ \hat w_n^{(i)} }} wn(i)=j=1Nw^n(i)w^n(i)
(3)重采样,一个含N个离散随机变量的集合{ I ( 1 ) , I ( 2 ) , . . . , I ( N ) I^{(1)},I^{(2),...,I^{(N)}} I(1),I(2),...,I(N)},在相关集合{ 1 , 2 , 3 , . . N 1,2,3,..N 1,2,3,..N}中依照以下概率取值:
P ( I ( s ) = i ) = w n ( i ) P(I^{(s)}=i)=w_n ^{(i)} P(I(s)=i)=wn(i)
因此集合
x ^ n ( i ) = x n ( i ) \hat x_n ^{(i)} = x_n^{(i)} x^n(i)=xn(i)
并且
w n ( i ) = 1 N w_n ^{(i)} = \frac {1}{N} wn(i)=N1
(4)继续计算直到滤波完成。

6、重要性分布的最佳选择

7、计算机仿真

基于Python实现粒子滤波

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值