粒子滤波(Particle Filter)

  • Post author:
  • Post category:其他




1.粒子滤波是动态系统




非线性非高斯




的情况



2.粒子滤波无法像卡尔曼滤波求得解析解,需要用蒙特卡洛采样





3.采取




重要性采样




方法近似计算也无法直接求解粒子滤波问题





4.




序列重要性采样




得到t时刻与t-1时刻样本权重的递推公式,可以求解粒子滤波

5.

SIS 算法会出现




权值退化



问题,利用


重采样与生成测试方法


解决,得到


SIR算法

线性动态系统

线性动态系统LDS(别名:卡尔曼滤波)

是在线性高斯情况下可以求得解析解。但如果模型是

非线性非高斯

情况,就无法求得解析解。此时需要用到蒙特卡洛采用方法,我们对这类模型称为

粒子滤波,英文是Particle Filter。

粒子滤波关心的也是滤波问题:

由于是非线性非高斯,所以无法直接求得解析解,我们需要利用蒙特卡洛采样方法进行求解。

粒子滤波的概率图模型依然与HMM表示一致,只不过隐状态是连续的,观测变量不再是线性与服从高斯分布。它也满足齐次马尔科夫假设和观测独立假设。

从重要性采样到SIS


在MCMC系列中,我们介绍过蒙特卡洛采样的方法。对于粒子滤波,采用的是

重要性采样方法

传送门:

MCMC(蒙特卡洛采样)

把滤波问题代入上式,得到

每个时刻样本的权重


可以看到,每一个时刻t都要进行N次采样,且分子也十分难求。天才数学家找到了一个关于

权重的递推公式

,大大提高了计算效率。这个就是

序列重要性采样(SIS)


  • 序列重要性采样(SIS)


序列重要性采样


,英文是Sequential Importance Sampling,简称SIS




它的核心思想是找到相邻时刻权重的递推公式:

该算法并不是直接对滤波问题进行求解,而是

对于分子条件概率:

我们找到了t时刻与t-1时刻的递推关系。

对于分母部分,由于是

提议分布

,我们可以取(假定):

于是样本权重为:

这样,我们就得到了递推公式。算法流程为:

从SIS到SIR


SIS 算法会出现权值退化

的情况,在一定时间后,可能会

出现大部分权重都逼近0

的情况

这是由于空间维度越来越高,需要的样本也越来越多。

要解决这个问题,一般有两种方法:


  • resample,即重采样


  • 选择合适的提议分布q(z)

重采样是以权重作为概率分布,重新在已经采样的样本中采样,然后所有样本的权重相同,这个方法的思路是将权重作为概率分布,然后得到累积密度函数,在累积密度上取点(阶梯函数)。

举一个例子,假设在t时刻采样得到3个样本点x1~x3,它们的权重是0.1,0.1,0.8:

计算它们的累积密度函数(cdf):

然后取均匀分布u~U(0,1),生成N个随机数,每个随机数对应取样本值:

这个就是重采样方法,本质是把重要性采样的样本作为一个离散分布重新进行采样。这种方法的SIS算法就是

基本的粒子滤波算法(Basic Particle Filter)

,每一个样本就是一个粒子。

如果

提议分布选择状态转移概率


那么权重递推公式可以化简为:

这个叫做

生成与测试方法。

我们把SIS、重采样与测试生成方法结合在一起,就是

SIR算法(Sampling-Importance-Resampling),

算法流程为:



版权声明:本文为qq_27388259原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。