粒子滤波粒子核心思想:
-基于贝叶斯概率,随机采样+重要采样进行估算。
关键:重要性密度函数的选择。
粒子滤波步骤:
根据初始化状态变量 —>生成采样数据(按照一定的生成规则,如随机规则,均匀分布规则)—> 计算预测数据点(根据采样数据,及状态方程计算)—> 计算加权系数(根据实际观测值与根据每个预测点数据估算的输出值进行对比,计算加权系数,加权系数规则根据需求自定义)—>重新采样数据点(根据权重,重对前面采集的数据进行过滤,重新采样,权重小的少取,权重大的多取)—>估算真实数据(对重新采样的数据取均值,或用其他规则来定义估算;重新采样的数据作为下一个时刻的采样数据)
粒子滤波的优缺点
优点:计算量相对于卡尔曼计算小,不能计算协方差。
缺点:严重依赖于对初始状态的估计,可能很快收敛,也可能很快发散;有粒子退化问题,由于根据权重采样,又有粒子匮乏,丢失部分数据等问题。
粒子滤波常用方法
以下具体滤波方法还只作了基础了解,需要进一步理解应用。
1、经典粒子滤波(Sampling Importance Resampling,SIR)
补充:序贯重要性采样(sequential importance sampling,SIS)是重要性采样的扩展。
2、正则粒子滤波(Regularized Particle Filter,RPF)
前面提到可以用重采样的方法来减小退化的影响,但是引入重采样策略同时也引入了新的问题,即粒子匮乏问题,经过若干次迭代之后,所有粒子都趋向于同一个粒子,导致粒子的多样性丧失。这是因为在重采样过程中,粒子是从离散分布中采样取得的,而不是从连续分布中采样得到的。 正则粒子滤波正是为了解决上述问题而提出的。它与SIR粒子滤波的区别在于:在重采样过程中,SIR从离散近似的分布中重采样,而正则粒子滤波则从连续近似的分布中重采样。根据正则化在选择步骤之前还是之后,RPF分为Post-RPF和Pre-RPF。
3、辅助粒子滤波(Auxiliary Particle Filter, APF)
Pitt和Shephard在标准SIR滤波算法的基础上提出了辅助粒子滤波。与标准序列重要性重采样(SIR)算法相比,APF也是以序列重要性采样(SIS)算法为基础,只是选择了不同的重要性密度函数。 与SIR滤波算法相比,辅助粒子滤波算法的优势在于它在k-1时刻的样本集合上随机抽取了一些点,抽取时以当前的观测数据为条件,这样可以更加接近真实的状态。
4、高斯粒子滤波(Gaussian Particle Filter,GPF)
Jayesh和Petar提出的,将高斯滤波和粒子滤波结合,称为高斯粒子滤波。该方法的前提是用高斯分布来近似后验分布,它比其它的高斯滤波方法适用性更强,能处理更多非线性动态系统问题;而与一般的粒子滤波相比,因为GPF用高斯分布近似后验分布,所以只要所用的高斯分布是正确的,就不会产生粒子退化问题,就不需要对粒子进行重采样,从而使算法的计算量降低,复杂度也降低。 高斯粒子滤波比其它高斯滤波有更好的性能,而与一般的粒子滤波相比计算量大大减小,复杂度降低。但是高斯滤波在后验分布不能用高斯分布近似的非线性动态空间模型或者非线性系统非加性高斯噪声模型时,滤波性不能令人满意。
5、边缘化粒子滤波(Marginalized Particle Filter,MPF)
马尔科夫模型
https://blog.csdn.net/qq_27825451/article/details/100117715
马尔科夫过程: 未来状态与过去无关,只与现在有关,即下个时刻的状态只与当前状态有关,与之前的时刻的状态都无关
马尔科夫链: 时间和状态都是离散的马尔科夫过程,成为马尔科夫链
关键概念: 马尔科夫过程与初始状态无关,跟转移矩阵有关。
- 状态空间:马尔可夫链是随机变量X1,X2,X3…Xn所组成的一个数列,每一个变量Xi 都有几种不同的可能取值,即他们所有可能取值的集合,被称为“状态空间”,而Xn的值则是在时间n的状态
- 转移概率:马尔可夫链可以用条件概率模型来描述。我们把在前一时刻某取值下当前时刻取值的条件概率称作转移概率。
- 转移概率矩阵:很明显,由于在每一个不同的时刻状态不止一种,所以由前一个时刻的状态转移到当前的某一个状态有几种情况,那么所有的条件概率会组成一个矩阵,这个矩阵就称之为“转移概率矩阵”。比如每一个时刻的状态有n中,前一时刻的每一种状态都有可能转移到当前时刻的任意一种状态,所以一共有n*n种情况
隐马尔科夫模型
是统计模型,用来描述一个含有隐形未知参数的马尔科夫过程。
常见问题:
- 根据可见状态链,知道有哪些隐形状态链,获取出现可见状态链是的隐含状态链(Viterbi 算法)
- 根据可见状态链,知道有哪些隐形状态链,推算可见状态链出现的概率
- 根据可见状态链,知道有哪些隐形状态链,反推隐形状态到可见状态的概率。
常用算法: