张芷铭的个人博客

粒子滤波解决非线性、非高斯状态空间模型的滤波问题,通过序列重要性采样(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$$

算法流程:

  1. $t-1$ 时刻采样完成并计算权重
  2. $t$ 时刻根据 $q(z_t|z_{1:t-1},x_{1:t})$ 采样 $z_t^i$
  3. 计算并归一化权重

权值退化问题

SIS 算法会出现大部分权重逼近 0 的情况。

解决方案:

方法说明
重采样以权重为概率分布重新采样,所有样本权重相同
选择提议分布$q(z_t

SIR 算法

采用重采样的 SIS 算法即为基本粒子滤波。若提议分布取 $p(z_t|z_{t-1})$,称为 SIR(Sampling-Importance-Resampling)算法。

Comments