什么是 粒子滤波(Particle Filter)?

粒子滤波(Particle Filter)是一类序贯蒙特卡洛算法,它随观测到达不断更新带权粒子,以近似状态空间模型当前时刻的滤波分布。

快速了解

规范文档官方规范

工作原理

按状态空间模型传播与加权

给定转移密度 p(x_t | x_t-1) 和观测密度 p(y_t | x_t),Bootstrap Particle Filter 从转移分布抽取新粒子,再把旧权重乘以观测似然。若使用更一般的 Proposal,就必须加入校正 p(y_t | x_t) p(x_t | x_t-1) / q(x_t | x_t-1, y_t);遗漏该项会改变目标分布。

Gordon、Salmond 与 Smith 的 Bootstrap Filter 论文确立了面向非线性、非高斯跟踪的重采样形式。初始状态、转移、观测与提议分布都必须和被评估模型一致。

归一化权重坍缩时执行重采样

先用 Log-Sum-Exp 归一化对数权重,再监控 ESS_w = 1 / sum(w_i^2)。Multinomial、Stratified、Residual 与 Systematic Resampling 都是无偏方案,但方差和实现细节不同。每步重采样最简单;仅在 ESS 低于声明阈值时执行,可在权重仍均衡时保留更多多样性。

重采样不会创造信息。它复制高权重粒子并删除低权重粒子,反复执行会让祖先路径合并。Roughening、更好的 Proposal、Auxiliary Filter、Rejuvenation Move 或增加粒子可能改善问题,但都会改变成本,有些还会改变算法结构。

区分滤波精度与平滑结论

Filtering Distribution 只以截至当前时刻的观测为条件;Smoothing 还利用未来观测,需要保存祖先或使用专门的后向方法。一条视觉上合理的轨迹,不能证明任一分布近似准确。

应报告粒子数、Proposal、重采样方法与阈值、随时间变化的权重 ESS、不同祖先数、重复随机种子波动、运行时间与预测校准。在线性高斯模型上,应将滤波均值和方差与 Kalman Filter 对照。若用于似然估计,还要监控估计 Log Likelihood 的方差,因为它会直接影响 Particle MCMC 效率。

主要特点

  • 用带权粒子表示随时间变化的滤波分布
  • 通过状态转移或经校正的 Proposal 传播粒子
  • 利用每个新观测的似然贡献更新权重
  • 用重采样控制即时权重退化
  • 支持非线性与非高斯状态空间模型
  • 存在祖先坍缩与高维粒子需求快速增长问题

常见用途

  1. 非线性动态系统的在线跟踪
  2. 传感器融合管线中的贝叶斯滤波
  3. 非高斯时间序列的潜状态推断
  4. Particle MCMC 内部的似然估计
  5. 流式观测下的序贯预测

示例

loading...
Loading code...

常见问题

粒子滤波解决什么问题?

它近似给定截至当前时刻观测后的隐状态分布。这个在线 Filtering 问题不同于预测未来状态,也不同于用未来观测重新估计历史状态的 Smoothing。

粒子滤波应该何时重采样?

常见策略是在归一化权重 ESS 低于粒子数某个已声明比例时重采样。每步都重采样更简单,但权重本来均衡时会更快损失祖先多样性。

粒子滤波需要多少粒子?

不存在通用数量。需求取决于状态维度、观测信息量、Proposal 质量、时间跨度与误差容忍度。应在多个随机种子下逐步增加粒子,并检查业务相关估计是否稳定。

粒子滤波与卡尔曼滤波相同吗?

不同。Kalman Filter 对指定线性高斯状态空间模型给出精确递推,而 Particle Filter 使用蒙特卡洛样本处理更广模型。两者共有的特殊情形适合用来验证实现。

重采样会彻底消除粒子退化吗?

它缓解即时权重退化,却引入复制和祖先退化。长时域 Smoothing 仍可能只剩极少不同祖先,需要专门平滑器、Rejuvenation 或不同 Proposal。

相关术语

相关文章