什么是 粒子滤波(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 传播粒子
- 利用每个新观测的似然贡献更新权重
- 用重采样控制即时权重退化
- 支持非线性与非高斯状态空间模型
- 存在祖先坍缩与高维粒子需求快速增长问题
常见用途
- 非线性动态系统的在线跟踪
- 传感器融合管线中的贝叶斯滤波
- 非高斯时间序列的潜状态推断
- Particle MCMC 内部的似然估计
- 流式观测下的序贯预测
示例
Loading code...常见问题
粒子滤波解决什么问题?
它近似给定截至当前时刻观测后的隐状态分布。这个在线 Filtering 问题不同于预测未来状态,也不同于用未来观测重新估计历史状态的 Smoothing。
粒子滤波应该何时重采样?
常见策略是在归一化权重 ESS 低于粒子数某个已声明比例时重采样。每步都重采样更简单,但权重本来均衡时会更快损失祖先多样性。
粒子滤波需要多少粒子?
不存在通用数量。需求取决于状态维度、观测信息量、Proposal 质量、时间跨度与误差容忍度。应在多个随机种子下逐步增加粒子,并检查业务相关估计是否稳定。
粒子滤波与卡尔曼滤波相同吗?
不同。Kalman Filter 对指定线性高斯状态空间模型给出精确递推,而 Particle Filter 使用蒙特卡洛样本处理更广模型。两者共有的特殊情形适合用来验证实现。
重采样会彻底消除粒子退化吗?
它缓解即时权重退化,却引入复制和祖先退化。长时域 Smoothing 仍可能只剩极少不同祖先,需要专门平滑器、Rejuvenation 或不同 Proposal。