线性,高斯 卡尔曼滤波 存在解析解
非线性(高斯或非高斯) 粒子滤波 不存在解析解,只能通过采样(蒙特卡罗)的方式加以估计
观测方程 z t = g ( z t − 1 , μ , ε ) z_t=g(z_{t-1}, \mu, \varepsilon ) zt=g(zt−1,μ,ε)
状态方程 x t = g ( z t , μ , δ ) x_t=g(z_{t}, \mu, \delta ) xt=g(zt,μ,δ)
滤波问题,求解 P ( z t ∣ x 1 , ⋯ , x t ) P(z_t|x_1,\cdots,x_t) P(zt∣x1,⋯,xt)
预测( z t z_t zt先验): P ( z t ∣ x 1 , ⋯ , x t − 1 ) = ∫ z t − 1 P ( z t ∣ z t − 1 ) P ( z t − 1 ∣ x 1 , ⋯ , x t − 1 ) d z t − 1 P(z_t|x_1,\cdots,x_{t-1})=\int_{z_{t-1}}P(z_t|z_{t-1})P(z_{t-1}|x_1,\cdots,x_{t-1})d_{z_{t-1}} P(zt∣x1,⋯,xt−1)=∫zt−1P(zt∣zt−1)P(zt−1∣x1,⋯,xt−1)dzt−1
更新( z t z_t zt后验): P ( z t ∣ x 1 , ⋯ , x t ) ∝ P ( x t ∣ z t ) P ( z t ∣ x 1 , ⋯ , x t − 1 ) P(z_t|x_1,\cdots,x_{t}) \propto P(x_t|z_t)P(z_t|x_1,\cdots,x_{t-1}) P(zt∣x1,⋯,xt)∝P(xt∣zt)P(zt∣x1,⋯,xt−1)
状态参数符合马尔科夫模型:仅相连时刻的状态参数 z t − 1 z_{t-1} zt−1和 z t z_t zt间存在关联
观测独立假设:观测值间独立
首先来看预测问题,
P
(
z
t
∣
x
1
,
⋯
,
x
t
−
1
)
=
∫
z
t
−
1
P
(
z
t
,
z
t
−
1
∣
x
1
,
⋯
,
x
t
−
1
)
d
z
t
−
1
P(z_t|x_1,\cdots,x_{t-1}) = \int_{z_{t-1}}P(z_t,z_{t-1}|x_1,\cdots,x_{t-1})d_{z_{t-1}}
P(zt∣x1,⋯,xt−1)=∫zt−1P(zt,zt−1∣x1,⋯,xt−1)dzt−1
=
∫
z
t
−
1
P
(
z
t
∣
z
t
−
1
,
x
1
,
⋯
,
x
t
−
1
)
P
(
z
t
−
1
∣
x
1
,
⋯
,
x
t
−
1
)
d
z
t
−
1
= \int_{z_{t-1}}P(z_t|z_{t-1},x_1,\cdots,x_{t-1})P(z_{t-1}|x_1,\cdots,x_{t-1})d_{z_{t-1}}
=∫zt−1P(zt∣zt−1,x1,⋯,xt−1)P(zt−1∣x1,⋯,xt−1)dzt−1
=
∫
z
t
−
1
P
(
z
t
∣
z
t
−
1
)
P
(
z
t
−
1
∣
x
1
,
⋯
,
x
t
−
1
)
d
z
t
−
1
= \int_{z_{t-1}}P(z_t|z_{t-1})P(z_{t-1}|x_1,\cdots,x_{t-1})d_{z_{t-1}}
=∫zt−1P(zt∣zt−1)P(zt−1∣x1,⋯,xt−1)dzt−1
第一行:首先通过 z t − 1 z_{t-1} zt−1架起 z t z_t zt和 x t − 1 x_{t-1} xt−1的桥梁;
第二行:提出 z t − 1 z_{t-1} zt−1和 z t z_t zt间的关系;
第三行:马尔科夫及 t − 1 t-1 t−1时刻更新;
接下来看更新问题,主要是寻找
P
(
z
t
∣
x
1
,
⋯
,
x
t
)
P(z_t|x_1,\cdots,x_{t})
P(zt∣x1,⋯,xt)与前边预测的关系:
P
(
z
t
∣
x
1
,
⋯
,
x
t
)
=
P
(
x
1
,
⋯
,
x
t
,
z
t
)
P
(
x
1
,
⋯
,
x
t
)
P(z_t|x_1,\cdots,x_{t}) = \frac{P(x_1, \cdots, x_t, z_t)}{P(x_1, \cdots, x_t)}
P(zt∣x1,⋯,xt)=P(x1,⋯,xt)P(x1,⋯,xt,zt)
=
1
C
P
(
x
1
,
⋯
,
x
t
,
z
t
)
= \frac{1}{C}P(x_1, \cdots, x_t, z_t)
=C1P(x1,⋯,xt,zt)
=
1
C
P
(
x
t
∣
x
1
,
⋯
,
x
t
−
1
,
z
t
)
P
(
x
1
,
⋯
,
x
t
−
1
,
z
t
)
= \frac{1}{C}P(x_t|x_1, \cdots, x_{t-1}, z_t)P(x_1, \cdots, x_{t-1}, z_t)
=C1P(xt∣x1,⋯,xt−1,zt)P(x1,⋯,xt−1,zt)
=
1
C
P
(
x
t
∣
x
1
,
⋯
,
x
t
,
z
t
)
P
(
z
t
∣
x
1
,
⋯
,
x
t
−
1
)
P
(
x
1
,
⋯
,
x
t
−
1
)
= \frac{1}{C}P(x_t|x_1, \cdots, x_t, z_t)P(z_t|x_1, \cdots, x_{t-1})P(x_1, \cdots, x_{t-1})
=C1P(xt∣x1,⋯,xt,zt)P(zt∣x1,⋯,xt−1)P(x1,⋯,xt−1)
=
D
C
P
(
x
t
∣
x
1
,
⋯
,
x
t
,
z
t
)
P
(
z
t
∣
x
1
,
⋯
,
x
t
−
1
)
= \frac{D}{C}P(x_t|x_1, \cdots, x_t, z_t)P(z_t|x_1, \cdots, x_{t-1})
=CDP(xt∣x1,⋯,xt,zt)P(zt∣x1,⋯,xt−1)
第一行:提出 z t z_t zt和 x t x_t xt间的关系;
第二行: P ( x 1 , ⋯ , x t ) P(x_1, \cdots, x_t) P(x1,⋯,xt)是已知的观测值,与 z t z_t zt没有关系,当做一个确定的常量,记作C;
第三行: P ( z t ∣ x 1 , ⋯ , x t − 1 ) P(z_t|x_1, \cdots, x_{t-1}) P(zt∣x1,⋯,xt−1)是预测量, P ( x 1 , ⋯ , x t − 1 ) P(x_1, \cdots, x_{t-1}) P(x1,⋯,xt−1)是一个确定的常量,记作D;
重要性采样
非线性问题没有办法得到解析解,必须借助采样的方式估计,通常使用蒙特卡罗采样。
蒙卡特罗法:用抽样的方式来近似估计后验 P ( z ∣ x ) P(z|x) P(z∣x)
首先来看他的期望
E
z
∣
x
[
f
(
z
)
]
=
∫
f
(
z
)
P
(
z
)
d
x
≈
1
N
∑
i
=
1
N
f
(
z
(
i
)
)
E_{z|x}[f(z)] = \int f(z)P(z)dx\approx \frac{1}{N}\sum_{i=1}^{N} f(z^{(i)})
Ez∣x[f(z)]=∫f(z)P(z)dx≈N1∑i=1Nf(z(i))
第二行:分布 P ( z ) P(z) P(z)采样N个样本 z ( i ) : z ( 1 ) , ⋯ , z ( N ) z^{(i)}:z^{(1)}, \cdots, z^{(N)} z(i):z(1),⋯,z(N)
即可通过抽样的方式估计出分布的期望。
重要性采样
E
z
∣
x
[
f
(
z
)
]
=
∫
f
(
z
)
P
(
z
)
d
z
E_{z|x}[f(z)] = \int f(z)P(z)dz
Ez∣x[f(z)]=∫f(z)P(z)dz
=
∫
f
(
z
)
P
(
z
)
Q
(
z
)
Q
(
z
)
d
z
= \int f(z)\frac{P(z)}{Q(z)}Q(z)dz
=∫f(z)Q(z)P(z)Q(z)dz
=
∑
i
=
1
N
f
(
z
(
i
)
)
P
(
z
(
i
)
)
Q
(
z
(
i
)
)
= \sum_{i=1}^{N} f(z^{(i)})\frac{P(z^{(i)})}{Q(z^{(i)})}
=∑i=1Nf(z(i))Q(z(i))P(z(i))
由于
P
(
x
)
P(x)
P(x)通常是一个非常复杂的分布,无法通过上式求得分布的期望,这个时候引入提议分布
Q
(
z
)
Q(z)
Q(z),此时我们根据分布
Q
(
z
)
Q(z)
Q(z)来
抽样
z
(
i
)
∼
Q
(
z
)
,
i
=
1
,
2
⋯
,
N
z^{(i)}\sim Q(z),i=1,2\cdots, N
z(i)∼Q(z),i=1,2⋯,N,从而避开了复杂的分布
P
(
x
)
P(x)
P(x)。令式中
P
(
z
(
i
)
)
Q
(
z
(
i
)
)
=
w
i
\frac{P(z^{(i)})}{Q(z^{(i)})}=w_{i}
Q(z(i))P(z(i))=wi,
为权重。
再来观察滤波问题的后验 P ( z t ∣ x 1 : t ) P(z_t|x_{1:t}) P(zt∣x1:t)。设 w t ( i ) = P ( z t ( i ) ∣ x 1 : t ) Q ( z t ( i ) ∣ x 1 : t ) w_t^{(i)}=\frac{P(z_t^{(i)}|x_{1:t})}{Q(z_t^{(i)}|x_{1:t})} wt(i)=Q(zt(i)∣x1:t)P(zt(i)∣x1:t)
时刻 t = 1 : w 1 ( i ) , i = 1 , ⋯ , N t=1:w_1^{(i)}, i=1,\cdots, N t=1:w1(i),i=1,⋯,N
时刻 t = t : w t ( i ) , i = 1 , ⋯ , N t=t:w_t^{(i)}, i=1,\cdots, N t=t:wt(i),i=1,⋯,N
上式计算
w
t
(
i
)
w_t^{(i)}
wt(i)都要计算
P
(
z
t
(
i
)
∣
x
1
:
t
)
P(z_t^{(i)}|x_{1:t})
P(zt(i)∣x1:t),而这个量是很难计算的,那么能不能通过前一个时刻
w
t
−
1
(
i
)
w_{t-1}^{(i)}
wt−1(i)
稍作计算就可以求得下一时刻的
w
t
(
i
)
w_t^{(i)}
wt(i)。
序贯重要性采样 squential important sampling:寻找
w
t
−
1
(
i
)
w_{t-1}^{(i)}
wt−1(i)和
w
t
(
i
)
w_t^{(i)}
wt(i)的递推关系
P
(
z
1
:
t
∣
x
1
:
t
)
=
P
(
z
1
:
t
,
x
1
:
t
)
P
(
x
1
:
t
)
=
1
C
P
(
z
1
:
t
,
x
1
:
t
)
P(z_{1:t}|x_{1:t}) = \frac{P(z_{1:t},x_{1:t})}{P(x_{1:t}) }=\frac{1}{C}P(z_{1:t},x_{1:t})
P(z1:t∣x1:t)=P(x1:t)P(z1:t,x1:t)=C1P(z1:t,x1:t)
=
1
C
P
(
x
t
∣
z
1
:
t
,
x
1
:
t
−
1
)
P
(
z
1
:
t
,
x
1
:
t
−
1
)
= \frac{1}{C}P(x_{t}|z_{1:t},x_{1:t-1})P(z_{1:t},x_{1:t-1})
=C1P(xt∣z1:t,x1:t−1)P(z1:t,x1:t−1)
=
1
C
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
−
1
)
P
(
z
1
:
t
−
1
,
x
1
:
t
−
1
)
= \frac{1}{C}P(x_{t}|z_{t})P(z_t|z_{1:t-1},x_{1:t-1})P(z_{1:t-1},x_{1:t-1})
=C1P(xt∣zt)P(zt∣z1:t−1,x1:t−1)P(z1:t−1,x1:t−1)
=
1
C
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
P
(
z
1
:
t
−
1
∣
x
1
:
t
−
1
)
P
(
x
1
:
t
−
1
)
= \frac{1}{C}P(x_{t}|z_{t})P(z_t|z_{t-1})P(z_{1:t-1}|x_{1:t-1})P(x_{1:t-1})
=C1P(xt∣zt)P(zt∣zt−1)P(z1:t−1∣x1:t−1)P(x1:t−1)
=
D
C
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
P
(
z
1
:
t
−
1
∣
x
1
:
t
−
1
)
= \frac{D}{C}P(x_{t}|z_{t})P(z_t|z_{t-1})P(z_{1:t-1}|x_{1:t-1})
=CDP(xt∣zt)P(zt∣zt−1)P(z1:t−1∣x1:t−1)
令 D = P ( x 1 : t − 1 ) D=P(x_{1:t-1}) D=P(x1:t−1).
Q
(
z
1
:
t
∣
x
1
:
t
)
=
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
Q
(
z
1
:
t
−
1
∣
x
1
:
t
)
Q
(
x
1
:
t
)
Q(z_{1:t}|x_{1:t}) = Q(z_{t}|z_{1:t-1},x_{1:t})Q(z_{1:t-1}|x_{1:t})Q(x_{1:t})
Q(z1:t∣x1:t)=Q(zt∣z1:t−1,x1:t)Q(z1:t−1∣x1:t)Q(x1:t)
=
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
Q
(
z
1
:
t
−
1
∣
x
1
:
t
−
1
)
= Q(z_{t}|z_{1:t-1},x_{1:t})Q(z_{1:t-1}|x_{1:t-1})
=Q(zt∣z1:t−1,x1:t)Q(z1:t−1∣x1:t−1)
Q ( x 1 : t ) Q(x_{1:t}) Q(x1:t)为已知常量,记为E。
因此
w
t
i
∝
P
(
z
1
:
t
∣
x
1
:
t
)
Q
(
z
1
:
t
∣
x
1
:
t
)
∝
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
P
(
z
1
:
t
−
1
∣
x
1
:
t
−
1
)
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
Q
(
z
1
:
t
−
1
∣
x
1
:
t
−
1
)
w_{t}^{i} \propto \frac{P(z_{1:t}|x_{1:t})}{Q(z_{1:t}|x_{1:t})} \propto \frac{P(x_{t}|z_{t})P(z_t|z_{t-1})P(z_{1:t-1}|x_{1:t-1})} {Q(z_{t}|z_{1:t-1},x_{1:t})Q(z_{1:t-1}|x_{1:t-1})}
wti∝Q(z1:t∣x1:t)P(z1:t∣x1:t)∝Q(zt∣z1:t−1,x1:t)Q(z1:t−1∣x1:t−1)P(xt∣zt)P(zt∣zt−1)P(z1:t−1∣x1:t−1)
=
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
w
t
−
1
i
=\frac{P(x_{t}|z_{t})P(z_t|z_{t-1})} {Q(z_{t}|z_{1:t-1},x_{1:t})}w_{t-1}^{i}
=Q(zt∣z1:t−1,x1:t)P(xt∣zt)P(zt∣zt−1)wt−1i
ParticleFilter
w
t
i
∝
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
w
t
−
1
i
w_{t}^{i} \propto \frac{P(x_{t}|z_{t})P(z_t|z_{t-1})} {Q(z_{t}|z_{1:t-1},x_{1:t})}w_{t-1}^{i}
wti∝Q(zt∣z1:t−1,x1:t)P(xt∣zt)P(zt∣zt−1)wt−1i
P ( x t ∣ z t ) P(x_{t}|z_{t}) P(xt∣zt)是观测概率, P ( z t ∣ z t − 1 ) P(z_t|z_{t-1}) P(zt∣zt−1)是预测概率。
算法描述
t-1时刻:采样已完成, w t ( i ) w_{t}^{(i)} wt(i)已知
t时刻:通过
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
Q(z_{t}|z_{1:t-1},x_{1:t})
Q(zt∣z1:t−1,x1:t)分布对
z
t
(
i
)
z_{t}^{(i)}
zt(i)采样;
w
t
i
∝
P
(
x
t
∣
z
t
)
P
(
z
t
∣
z
t
−
1
)
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
w
t
−
1
i
w_{t}^{i} \propto \frac{P(x_{t}|z_{t})P(z_t|z_{t-1})}{Q(z_{t}|z_{1:t-1},x_{1:t})}w_{t-1}^{i}
wti∝Q(zt∣z1:t−1,x1:t)P(xt∣zt)P(zt∣zt−1)wt−1i
存在问题:权值退化
resampling 或者 选择一个合适的提议分布Q(z)
重采方法很多中,此处选择系统重采样方式
SIS+resampling = basic ParticleFilter
提议分布分布的选择,好的提议分布是什么样的?
选择
Q
(
z
t
∣
z
1
:
t
−
1
,
x
1
:
t
)
=
P
(
z
t
∣
z
t
−
1
)
Q(z_{t}|z_{1:t-1},x_{1:t})=P(z_{t}|z_{t-1})
Q(zt∣z1:t−1,x1:t)=P(zt∣zt−1),则
w
t
i
∝
P
(
x
t
∣
z
t
)
w
t
−
1
i
w_{t}^{i} \propto P(x_{t}|z_{t})w_{t-1}^{i}
wti∝P(xt∣zt)wt−1i,直观上的理解如果预测的权重大,那么他的权重也大,这也是容易理解的