关于离子滤波小记
粒子滤波(Particle Filter, PF)
粒子滤波是一种基于蒙特卡洛方法的贝叶斯滤波算法,主要用于解决非线性、非高斯的状态估计问题。它广泛应用于机器人定位、目标跟踪、金融建模等领域。
1. 粒子滤波的基本概念
粒子滤波的核心思想是用一组加权的**随机样本(粒子)**来近似后验概率分布,而非采用卡尔曼滤波那样的参数化分布假设(如高斯分布)。
设系统的状态模型如下:
x k = f ( x k − 1 , u k , w k ) x_k = f(x_{k-1}, u_k, w_k) xk=f(xk−1,uk,wk)
z k = h ( x k , v k ) z_k = h(x_k, v_k) zk=h(xk,vk)
其中:
- x k x_k xk 是系统在时间 k k k 时刻的状态,
- u k u_k uk 是控制输入,
- w k w_k wk 是过程噪声,
- z k z_k zk 是观测值,
- v k v_k vk 是观测噪声,
- f ( ⋅ ) f(\cdot) f(⋅) 和 h ( ⋅ ) h(\cdot) h(⋅) 分别是状态转移函数和观测函数。
目标是估计后验分布:
p ( x k ∣ z 1 : k ) p(x_k | z_{1:k}) p(xk∣z1:k)
由于状态转移和观测过程可能是高度非线性的,并且噪声可能是非高斯的,无法用解析方法直接求解,因此粒子滤波采用蒙特卡洛方法进行近似计算。
2. 粒子滤波的算法步骤
(1) 初始化
初始化 N N N 个粒子 { x k i } i = 1 N \{x_k^i\}_{i=1}^{N} {xki}i=1N 及其权重 { w k i } i = 1 N \{w_k^i\}_{i=1}^{N} {wki}i=1N:
x 0 i ∼ p ( x 0 ) x_0^i \sim p(x_0) x0i∼p(x0)
w 0 i = 1 N w_0^i = \frac{1}{N} w0i=N1
(2) 预测(重要性采样)
根据状态转移模型,对每个粒子进行采样:
x k i ∼ p ( x k ∣ x k − 1 i ) x_k^i \sim p(x_k | x_{k-1}^i) xki∼p(xk∣xk−1i)
(3) 更新(计算权重)
利用观测值 z k z_k zk 计算每个粒子的权重:
w k i = w k − 1 i ⋅ p ( z k ∣ x k i ) q ( x k i ∣ x k − 1 i , z k ) w_k^i = w_{k-1}^i \cdot \frac{p(z_k | x_k^i)}{q(x_k^i | x_{k-1}^i, z_k)} wki=wk−1i⋅q(xki∣xk−1i,zk)p(zk∣xki)
如果选择 q ( x k i ∣ x k − 1 i , z k ) = p ( x k ∣ x k − 1 i ) q(x_k^i | x_{k-1}^i, z_k) = p(x_k | x_{k-1}^i) q(xki∣xk−1i,zk)=p(xk∣xk−1i),则简化为:
w k i = w k − 1 i ⋅ p ( z k ∣ x k i ) w_k^i = w_{k-1}^i \cdot p(z_k | x_k^i) wki=wk−1i⋅p(zk∣xki)
归一化权重:
w k i = w k i ∑ j = 1 N w k j w_k^i = \frac{w_k^i}{\sum_{j=1}^{N} w_k^j} wki=∑j=1Nwkjwki
(4) 重采样(Resampling)
根据粒子的权重进行重采样,以避免退化问题。
常见方法包括:
- 系统重采样(Systematic Resampling)
- 多项式重采样(Multinomial Resampling)
新粒子的权重均设为:
w k i = 1 N w_k^i = \frac{1}{N} wki=N1
(5) 估计状态
最终状态估计可通过加权平均计算:
x ^ k = ∑ i = 1 N w k i x k i \hat{x}_k = \sum_{i=1}^{N} w_k^i x_k^i x^k=i=1∑Nwkixki
3. 关键技术与优化方法
(1) 选择合适的粒子数
- 过少:近似误差大
- 过多:计算量高
(2) 重要性分布优化
利用观测信息优化采样,提高效率。
(3) 自适应重采样
根据有效粒子数 N eff N_{\text{eff}} Neff 判断是否重采样:
N eff = 1 ∑ i = 1 N ( w k i ) 2 N_{\text{eff}} = \frac{1}{\sum_{i=1}^{N} (w_k^i)^2} Neff=∑i=1N(wki)21
若 N eff < N thresh N_{\text{eff}} < N_{\text{thresh}} Neff<Nthresh,则执行重采样。
4. 粒子滤波的优缺点
优点
- 适用于非线性、非高斯问题。
- 可逼近任何分布。
- 能够跟踪多模态分布。
缺点
- 计算复杂度较高。
- 可能出现粒子退化。
- 需要大量粒子来逼近真实分布。
5. 应用案例
- 机器人定位
- 视觉目标跟踪
- 金融数据分析
- 信号处理
总结
粒子滤波是一种强大的贝叶斯滤波方法,适用于非线性和非高斯环境。通过合理选择粒子数、优化重要性采样和自适应重采样,可以提高算法的效率和准确性。