粒子滤波
粒子滤波的四个误差来源
第一种误差
- 原因分析 使用有限个粒子,对后验估计引入系统偏差。考虑极端情况:只有一个粒子,这时候 重采样就没有意义,观测就不会在更新中起作用。
- 解决思路
- 增加粒子数目,但是同时也增加了计算量。
第二种误差
- 原因分析 重采样时候引入的随机误差。考虑计算情况:机器人不运动。这时候运动模型没变, 但是观测依然会在重采样时候起作用。重采样会导致粒子多样性的损失。重采样的时 候尽管粒子集本身方差在减小,但是粒子作为真实置信度的估计却在增加。因此,在 实际运用中,控制好方差/偏差对PF很重要。也就是不要让方差变得太小,因为方差太 小,粒子的多样性损失就越严重。
- 解决思路
确定什么时候应该重采样:确定是否重采样的标准是重要性权重的变化,如果权重一
样,说明变化为0,不用重采样;如果权重几种在少数粒子上,那说明权重的变化较大,
这时候应该进行重采样(或者说权重偏向少数粒子的时候应该进行重采样)。
- 减少重采样频率,不运动不重采样;
- 分层采样/低方差采样(能将权重拉回平均值的粒子所采样几次)。
第三个误差
- 原因分析
建议分布和目标分布的收敛性产生,PF的效率依赖于建议分布和目标分布的匹配程度。
- 目标分布和建议分布不应该偏差太大,太大之后可能很难收敛,而且效率也不高。
- 传感器太准确反而不适合粒子滤波, p(z|x)只在很少的状态有值,导致其他状态为0, 最终造成退化问题。
- 解决思路
- 最简单的就是在观测的时候人为增加噪声,这样很多时候可以解决PF的准确性;
- 引入观测来修改建议分布。
第四种误差
- 原因分析 粒子退化导致,空间中状态很多,真实状态附近反而没有粒子。
- 解决思路
- 重采样之后再随机撒一定数量的粒子。
粒子数目
粒子数目的确定:根据状态空间的维度大小和分布的不确定性。