学习粒子滤波

本文仅用于个人学习的总结。不保证正确性。

前段时间报名的深蓝学院的激光SLAM的课程基本结束,感觉和之前阅读的《概率机器人》一书内容有很多相通,于是决定再读一遍这本书,希望能够有更深入的了解。看到了之前就搞不懂的“粒子滤波”部分,下定决心认真学习,虽然还是没有完全搞懂,但学习的深入了一些。

0. 参考资料

bilibili的讲解视频,非常系统:https://www.bilibili.com/video/BV1wW411S7mn?p=1

简书:随机模拟-Monte Carlo积分及采样:https://www.jianshu.com/p/3d30070932a8

1. 贝叶斯滤波

贝叶斯滤波是第二章节的内容,后面第三章卡尔曼滤波、第四章的粒子滤波,都属于贝叶斯滤波体系。贝叶斯滤波首先通过上一时刻的状态,预测当前时刻的结果,然后根据观测结果进行更新。
学习粒子滤波_第1张图片在bilibili的视频中,Up主解释了什么叫“滤波filtering”,即求解 p ( x t ∣ z 1 : t ) p(x_t|z_{1:t}) p(xtz1:t)。截图中Up主采用的符号表示与我常见的正好相反,他用 z z z表示状态, x x x表示观测,但为了统一,还是采用 x x x为状态, z z z为观测这种表示。截图由右上角部分,表示如果是一个线性高斯系统,采用卡尔曼滤波;非线性非高斯,可以采用扩展卡尔曼进行线性化,也可以采用粒子滤波这种非参数表示方法。关于卡尔曼滤波可以参考之前总结的博客。
学习粒子滤波_第2张图片

2. 粒子滤波

Up主讲到,基本的粒子滤波是“sequential importance sampling (SIS) + resampling”,即“序列重要性采样+重采样”。所谓SIS是重要性才采样(IS)的一种改进,我没搞懂大概的区别。大概来说,就是我需要得到一个分布的采样结果(称“目标分布”,但这个分布可能未知或者很难求得(我一直没搞懂什么叫“未知”,因为后面计算重要性时还是带入进行了计算,所以不太理解实际应用时是个什么情况),于是我们用一个估计的分布,叫做“建议分布”,来得到目标分布的结果。

学习粒子滤波_第3张图片
首先根据建议分布生成一组采样数据,即一组粒子。之后对每个粒子赋予不同的权重,权重的定义从图上可以看出来就是 p ( z ) / q ( z ) p(z)/q(z) p(z)/q(z) 即目标分布与建议分布的比值,可以理解为,如果这两个分布越接近,比值接近于1,则建议分布的采样结果就是真实目标分布的采样结果;否则,若比值接近于0,意味着建议分布在这个区域的采样没有参考价值(目标分布在这个区域概率密度极低)。经过此操作后,带权重的粒子就能更好的逼近真实分布。下图(b)中 g g g为建议分布, f f f为目标分布,下方的短线段表示根据建议分布采样得到的粒子群;©中根据 f / g f/g f/g 的值给不同的粒子赋予不同的权重,可以看出虽然在 [ 8 − 10 ] [8-10] [810]之间有大量粒子,但权重很低。

学习粒子滤波_第4张图片
在完成重要性采样后,需要再经过一个“重采样”过程,按照当前粒子的重要性加权进行采样,得到相同数量的粒子且权重都一样。之所以采用重采样,是因为若不进行重采样,在之后需不断滤波更新权重时,权重会分布的极其不均匀,出现极少数粒子权重极大,大多数粒子权重接近0的退化情况,本质原因还是粒子数量相比于空间维度不充足。解决方法有:1. 增加粒子数量(不现实,需指数级别增加);2. 寻找更接近目标分布的建议分布(也不现实,真的能很精确就不需要这么搞了);3. 重采样。

完整的 SIR(Sequential Importance - Resampling)算法如下。可以看出,权重在Sampling时进行更新,更新的依据就是目标分布与建议分布的比值(这部分由 sequential importance sampling 推导得出)。

学习粒子滤波_第5张图片

如果将建议分布采用观测模型进行带入,便得到了粒子滤波算法中,采用观测模型进行权重计算的方法。由于之前的权重都是相同的,而且之后权重进行归一化,所以直接计算而不需要迭代。

3. 小结

稀里糊涂,就算自己大概懂了吧。理解了重要性、重采样的由来是有这么多的数学依据,以及不理解什么叫目标分布很难采样,希望以后学习过程中能不断理解。

注:所有图片来自:《概率机器人》、参考资料中bilibili的视频截图、简书的配图。

4. 后记

  1. 粒子滤波是对所有粒子施加运动模型,然后利用观测进行赋权,不需要计算后验;
  2. 采样xt比计算xt的密度要容易:采样是运动模型的前向仿真,而计算位姿的概率意味着重新推测误差参数,这需要计算物理运动模型的逆。

你可能感兴趣的:(数学基础,算法,slam)