粒子滤波解决非线性、非高斯状态空间模型的滤波问题,通过序列重要性采样(SIS)和重采样近似求解后验分布。
背景
Kalman 滤波对线性高斯模型可解析求解,但非线性、非高斯情况需采样方法。
重要性采样
$$\mathbb{E}[f(z)]=\int_zf(z)p(z)dz=\sum_{i=1}^Nf(z_i)\frac{p(z_i)}{q(z_i)}$$
通过提议分布 $q(z)$ 采样,对每个样本应用权重。
序列重要性采样 (SIS)
求解 $p(z_{1:t}|x_{1:t})$,权重递推:
$$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$$
算法流程:
- $t-1$ 时刻采样完成并计算权重
- $t$ 时刻根据 $q(z_t|z_{1:t-1},x_{1:t})$ 采样 $z_t^i$
- 计算并归一化权重
权值退化问题
SIS 算法会出现大部分权重逼近 0 的情况。
解决方案:
| 方法 | 说明 |
|---|---|
| 重采样 | 以权重为概率分布重新采样,所有样本权重相同 |
| 选择提议分布 | $q(z_t |
SIR 算法
采用重采样的 SIS 算法即为基本粒子滤波。若提议分布取 $p(z_t|z_{t-1})$,称为 SIR(Sampling-Importance-Resampling)算法。
张芷铭的个人博客
Comments