粒子滤波方法

粒子滤波

根据B站教程总结

贝叶斯滤波

一些公式

贝叶斯公式, η \eta η可以看做归一化系数
X : 状态 , Y : 观测 离散: P ( X = x ∣ Y = y ) = P ( Y = y ∣ X = x ) P ( X = x ) P ( Y = y ) = η P ( Y = y ∣ X = x ) P ( X = x ) 连续 : f X ∣ Y ( x ∣ y ) = f Y ∣ X ( y ∣ x ) f X ( x ) f Y ( y ) = η f Y ∣ X ( y ∣ x ) f X ( x ) X:状态,Y:观测\\ 离散:P(X=x|Y=y)=\frac{P(Y=y|X=x)P(X=x)}{P(Y=y)}=\eta P(Y=y|X=x)P(X=x)\\ 连续: f_{X|Y}(x|y)=\frac{f_{Y|X}(y|x)f_X(x)}{f_Y(y)}=\eta f_{Y|X}(y|x)f_X(x) X:状态,Y:观测离散:P(X=xY=y)=P(Y=y)P(Y=yX=x)P(X=x)=ηP(Y=yX=x)P(X=x)连续:fXY(xy)=fY(y)fYX(yx)fX(x)=ηfYX(yx)fX(x)
概率公式
P ( X = x ) = lim ⁡ ε → 0 f ( x < X < x + ε ) ε P(X=x)=\lim_{\varepsilon\rightarrow 0}f(x<X<x+\varepsilon)\varepsilon P(X=x)=ε0limf(x<X<x+ε)ε

贝叶斯滤波

预测: X k = f ( X k − 1 ) + Q k 观测: Y k = h ( X k ) + R k Q k , R k 是预测噪声和观测噪声 Q k , R k , X 0 独立 预测:X_k = f(X_{k-1})+Q_k\\ 观测:Y_k = h(X_k)+R_k\\ Q_k,R_k是预测噪声和观测噪声\\ Q_k,R_k,X_{0}独立 预测:Xk=f(Xk1)+Qk观测:Yk=h(Xk)+RkQk,Rk是预测噪声和观测噪声Qk,Rk,X0独立
对于连续变量, X 0 X_0 X0假定其概率密度函数为 f 0 f_0 f0

预测(得到先验概率)

P ( X 1 = u ) = ∑ v = − ∞ v = ∞ P ( X 1 = u ∣ X 0 = v ) P ( X 0 = v ) = ∑ v = − ∞ v = ∞ P [ X 1 − f ( X 0 ) = u − f ( v ) ∣ X 0 = v ] P ( X 0 = v )     X k − 1 与 Q k 独立 = ∑ v = − ∞ v = ∞ P [ Q 1 = u − f ( v ) ] P ( X 0 = v ) = lim ⁡ ε → 0 ∑ v = − ∞ v = ∞ f Q 1 ( u − f ( v ) ) ε f 0 ( v ) ε = lim ⁡ ε → 0 ∫ − ∞ ∞ f Q 1 ( u − f ( v ) ) f 0 ( v )   d v   ε \begin{aligned} P(X_1=u)&=\sum_{v=-\infty}^{v=\infty}P(X_1=u|X_0=v)P(X_0=v)\\ &=\sum_{v=-\infty}^{v=\infty}P[X_1-f(X_{0})=u-f(v)|X_0=v]P(X_0=v)~~~X_{k-1}与Q_k独立\\ &=\sum_{v=-\infty}^{v=\infty}P[Q_1=u-f(v)]P(X_0=v)\\ &=\lim_{\varepsilon\rightarrow 0}\sum_{v=-\infty}^{v=\infty}f_{Q_1}(u-f(v))\varepsilon f_0(v)\varepsilon\\ &=\lim_{\varepsilon\rightarrow 0}\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~\varepsilon \end{aligned} P(X1=u)=v=v=P(X1=uX0=v)P(X0=v)=v=v=P[X1f(X0)=uf(v)X0=v]P(X0=v)   Xk1Qk独立=v=v=P[Q1=uf(v)]P(X0=v)=ε0limv=v=fQ1(uf(v))εf0(v)ε=ε0limfQ1(uf(v))f0(v) dv ε
P ( X 1 < x ) = ∑ u = − ∞ x P ( X 1 = u ) = lim ⁡ ε → 0 ∑ u = − ∞ x ∫ − ∞ ∞ f Q 1 ( u − f ( v ) ) f 0 ( v )   d v   ε = ∫ − ∞ x ∫ − ∞ ∞ f Q 1 ( u − f ( v ) ) f 0 ( v )   d v   d u \begin{aligned} P(X_1<x)&=\sum_{u=-\infty}^xP(X_1=u)\\ &=\lim_{\varepsilon\rightarrow 0}\sum_{u=-\infty}^x\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~\varepsilon\\ &=\int_{-\infty}^x\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~du \end{aligned} P(X1<x)=u=xP(X1=u)=ε0limu=xfQ1(uf(v))f0(v) dv ε=xfQ1(uf(v))f0(v) dv du
预测得到X_1的概率密度函数:
f 1 − ( x ) = d P ( X 1 < x ) d x = ∫ − ∞ ∞ f Q 1 [ x − f ( v ) ) ] f 0 ( v )   d v f_1^{-}(x)=\frac{d P(X_1<x)}{dx}=\int_{-\infty}^{\infty}f_{Q_1}[x-f(v))]f_0(v)~dv f1(x)=dxdP(X1<x)=fQ1[xf(v))]f0(v) dv

更新

观测到 Y 1 = y 1 Y_1=y_1 Y1=y1,似然函数为
f Y 1 ∣ X 1 ( y ∣ x ) = lim ⁡ ε → 0 P Y 1 ∣ X 1 ( y 1 < Y 1 < y 1 + ε ∣ X 1 = x ) ε = lim ⁡ ε → 0 P Y 1 ∣ X 1 ( y 1 − h ( x ) < Y 1 − h ( X 1 ) < y + ε − h ( x ) ∣ X 1 = x ) ε = lim ⁡ ε → 0 P Y 1 ∣ X 1 ( y 1 − h ( x ) < R 1 < y 1 + ε − h ( x ) ∣ X 1 = x ) ε      ( R k 与 X k 独立 ) = f R 1 [ y − h ( x ) ] \begin{aligned} f_{Y_1|X_1}(y|x)&=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1<Y_1<y_1+\varepsilon|X_1=x)}{\varepsilon}\\ &=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1-h(x)<Y_1-h(X_1)<y+\varepsilon-h(x)|X_1=x)}{\varepsilon}\\ &=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1-h(x)<R_1<y_1+\varepsilon-h(x)|X_1=x)}{\varepsilon} ~~~~(R_k与X_k独立)\\ &=f_{R_1}[y-h(x)] \end{aligned} fY1X1(yx)=ε0limεPY1X1(y1<Y1<y1+εX1=x)=ε0limεPY1X1(y1h(x)<Y1h(X1)<y+εh(x)X1=x)=ε0limεPY1X1(y1h(x)<R1<y1+εh(x)X1=x)    (RkXk独立)=fR1[yh(x)]
得到后验概率
f 1 + ( x ) = f X 1 ∣ Y 1 ( x ∣ y 1 ) = η f Y 1 ∣ X 1 ( y 1 ∣ x ) f 1 − ( x ) = η f R 1 [ y 1 − h ( x ) ] ) f 1 − ( x ) f_1^+(x)=f_{X_1|Y_1}(x|y_1)=\eta f_{Y_1|X_1}(y_1|x)f_1^-(x)=\eta f_{R_1}[y_1-h(x)])f_1^-(x) f1+(x)=fX1Y1(xy1)=ηfY1X1(y1x)f1(x)=ηfR1[y1h(x)])f1(x)
那么估计值为
x ^ 1 = ∫ − ∞ ∞ x f 1 + ( x )   d x \hat{x}_1 = \int_{-\infty}^{\infty}xf_1^+(x)~dx x^1=xf1+(x) dx

总结

主要步骤如下:

  • 假设 X 0 X_0 X0及其概率分布函数 f 0 f_0 f0
  • 预测步:由上一步的后验概率得到这一步的先验概率 f k − ( x ) = ∫ − ∞ ∞ f Q k [ x − f ( v ) ) ] f k − 1 ( v )   d v f_k^{-}(x)=\int_{-\infty}^{\infty}f_{Q_k}[x-f(v))]f_{k-1}(v)~dv fk(x)=fQk[xf(v))]fk1(v) dv
  • 更新步:得到本次的后验概率 f k + ( x ) = η f R k [ y k − h ( x ) ] ) f k − ( x ) f_k^+(x)=\eta f_{R_k}[y_k-h(x)])f_k^-(x) fk+(x)=ηfRk[ykh(x)])fk(x)
  • 估值: x ^ k = ∫ − ∞ ∞ x f k + ( x )   d x \hat{x}_k= \int_{-\infty}^{\infty}xf_k^+(x)~dx x^k=xfk+(x) dx

问题在于用到无穷积分,多数情况无解析解。

粒子滤波

一些等式和定理

特征函数:逆傅里叶变换
N ( μ , σ 2 ) → 特征函数 / I F T e x p { j u t + σ 2 2 t 2 } 若 X , Y 的 p d f 为 f , g , 且 X , Y 独立,则 Z = X + Y 的 p d f 为 f ∗ g N(\mu,\sigma^2) \overset{特征函数/IFT}{\rightarrow}exp\{jut+\frac{\sigma^2}{2}t^2\}\\ 若X,Y的pdf为f,g,且X,Y独立,则Z=X+Y的pdf为f*g N(μ,σ2)特征函数/IFTexp{jut+2σ2t2}X,Ypdff,g,X,Y独立,则Z=X+Ypdffg

一些概念

根据大数定理知道,对于随机变量X的大量采样{ x 1 x_1 x1,…, x n x_n xn}的均值依概率收敛于它的期望E[X],即
lim ⁡ n → ∞ P ( ∣ 1 n ∑ i n x i − E [ X ] ∣ < ε ) = 1 , ∀ ε > 0 \lim_{n\rightarrow \infty}P(|\frac{1}{n}\sum_i^n x_i-E[X]|<\varepsilon)=1,\forall \varepsilon> 0 nlimP(n1inxiE[X]<ε)=1,ε>0
那么,足够的采样值可以满足
1 n ∑ x i = ∫ − ∞ ∞ 1 n ∑ i n x i δ ( x − x i ) d x = E [ X ] = ∫ − ∞ ∞ x f ( x ) d x \frac{1}{n}\sum x_i=\int_{-\infty}^{\infty}\frac{1}{n}\sum_i^n x_i\delta(x-x_i)dx=E[X]=\int_{-\infty}^{\infty}xf(x)dx n1xi=n1inxiδ(xxi)dx=E[X]=xf(x)dx

f ( x ) ≈ 1 n ∑ i n δ ( x − x i ) f(x)\approx \frac{1}{n}\sum_i^n \delta(x-x_i) f(x)n1inδ(xxi)
可以看做一个粒子的和,也就是粒子滤波的来源。
当然,由于粒子是从f(x)中采样出来的,可以给予f(x)大的粒子更大的权重以期使用较少的粒子得到较好的效果。

w i = f ( x i ) ∑ k n f ( x k ) w_i = \frac{f(x_i)}{\sum_k^n f(x_k)} wi=knf(xk)f(xi)

过程

给出 X 0 X_0 X0,及其概率密度函数 f 0 f_0 f0,和采样{ x 0 1 x_0^1 x01,…, x 0 n x_0^n x0n}

预测

f 1 − ( x ) = ∫ − ∞ ∞ f Q 1 [ x − f ( v ) ) ] f 0 ( v )   d v = ∑ i n w i f Q 1 [ x − f ( x 0 i ) ) ] \begin{aligned} f_1^-(x)&=\int_{-\infty}^{\infty}f_{Q_1}[x-f(v))]f_{0}(v)~dv\\ &=\sum_i^nw_if_{Q_1}[x-f(x_0^i))] \end{aligned} f1(x)=fQ1[xf(v))]f0(v) dv=inwifQ1[xf(x0i))]
假设 Q k Q_k Qk为正态分布,则
f Q [ x − f ( x 0 i ) ] = 1 2 π Q e x p { − [ x − f ( x 0 i ) ] 2 2 Q } ∼ N ( f ( x 0 i ) , Q ) f_Q[x-f(x_0^i)]=\frac{1}{\sqrt{2\pi Q}}exp\{-\frac{[x-f(x_0^i)]^2}{2Q}\} \sim N(f(x_0^i),Q)\\ fQ[xf(x0i)]=2πQ 1exp{2Q[xf(x0i)]2}N(f(x0i),Q)
其特征函数为
f Q [ x − f ( x 0 i ) ] → 特征函数 / I F T e x p { j f ( x 0 i ) t } ⋅ e x p { − Q 2 t 2 } f_Q[x-f(x_0^i)]\overset{特征函数/IFT}{\rightarrow}exp\{jf(x_0^i)t\}\cdot exp\{-\frac{Q}{2}t^2\} fQ[xf(x0i)]特征函数/IFTexp{jf(x0i)t}exp{2Qt2}
由于
e x p { j f ( x 0 i ) t } → F T δ ( x − f ( x 0 i ) ) e x p { − Q 2 t 2 } → F T N ( 0 , Q ) exp\{jf(x_0^i)t\}\overset{FT}{\rightarrow}\delta(x-f(x_0^i))\\ exp\{-\frac{Q}{2}t^2\}\overset{FT}{\rightarrow}N(0,Q) exp{jf(x0i)t}FTδ(xf(x0i))exp{2Qt2}FTN(0,Q)
所以 f Q [ x − f ( x 0 i ) ] f_Q[x-f(x_0^i)] fQ[xf(x0i)]可以看做两个事件的和事件,必然事件 δ ( x − f ( x 0 i ) ) \delta(x-f(x_0^i)) δ(xf(x0i))和随机事件 N ( 0 , Q ) N(0,Q) N(0,Q)。所以可以得到 f 1 − ( x ) f_1^-(x) f1(x)的采样粒子{ x 1 − 1 x_1^{-1} x11,…, x 1 − n x_1^{-n} x1n}
x 1 − i = f ( x 0 i ) + Q x_1^{-i}=f(x_0^i)+Q x1i=f(x0i)+Q

f 1 − ( x ) = ∑ i n w i f Q 1 [ x − f ( x 0 i ) ) ] = ∑ i n w i δ ( x − x 1 − i ) f_1^-(x)=\sum_i^nw_if_{Q_1}[x-f(x_0^i))]=\sum_i^nw_i\delta(x-x_1^{-i}) f1(x)=inwifQ1[xf(x0i))]=inwiδ(xx1i)

更新

观测数据 Y 1 = y 1 Y_1=y_1 Y1=y1
f 1 + ( x ) = η f R 1 [ y 1 − h ( x ) ] ) f 1 − ( x ) = η ∑ i n w i f R 1 [ y 1 − h ( x 1 − i ) ] δ ( x − x 1 − i ) \begin{aligned} f_1^+(x)&=\eta f_{R_1}[y_1-h(x)])f_1^-(x)\\ &=\eta\sum_i^nw_i f_{R_1}[y_1-h(x_1^{-i})]\delta(x-x_1^{-i}) \end{aligned} f1+(x)=ηfR1[y1h(x)])f1(x)=ηinwifR1[y1h(x1i)]δ(xx1i)
可以更新权重
w i = w i f R 1 [ y 1 − h ( x 1 − i ) ] w i = f ( x i ) ∑ k n f ( x k ) w_i=w_i f_{R_1}[y_1-h(x_1^{-i})]\\ w_i = \frac{f(x_i)}{\sum_k^n f(x_k)} wi=wifR1[y1h(x1i)]wi=knf(xk)f(xi)
得到
f 1 + ( x ) = ∑ i n w i δ ( x − x 1 − i ) f_1^+(x)=\sum_i^n w_i \delta(x-x_1^{-i}) f1+(x)=inwiδ(xx1i)
可以估计得到
x ^ 1 = ∑ i n w i x 1 − i \hat{x}_1=\sum_i^nw_ix_1^{-i} x^1=inwix1i

总结

主要步骤如下:

  • 假设 X 0 X_0 X0及其概率分布函数 f 0 f_0 f0,以及生成的采样{ x 0 i x_0^i x0i,…, x 0 n x_0^n x0n}
  • 预测步:根据上一步的采样生成当前采样 x k − i = f ( x k − 1 i ) + Q x_k^{-i}=f(x_{k-1}^i)+Q xki=f(xk1i)+Q
  • 更新步:更新权重 w i = w i f R k [ y k − h ( x k − i ) ] w_i=w_i f_{R_k}[y_k-h(x_k^{-i})] wi=wifRk[ykh(xki)],并归一化
  • 估值: x ^ k = ∑ i n w i x k − i \hat{x}_k=\sum_i^nw_ix_k^{-i} x^k=inwixki

补充

重采样

在权重更新中,若假设噪声是高斯分布,会有大量粒子的权重趋于0,出现粒子退化,最终导致仅有几个或一个粒子有效,失去粒子更新的作用。
重采样方法和遗传算法类似。主要步骤如下:

  • 根据不同粒子的权重,在(0,1)的区间分配区间
  • 生成随机数
  • 根据随机数,选取区间,并复制相应的粒子
  • 权重重新赋为相同

可以依据 N = 1 ∑ i n w i 2 N=\frac{1}{\sum_i^nw_i^2} N=inwi21进行重采样,N越小退化越严重,越要重采样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值