高斯滤波知识点总结——KF、EKF、UKF以及IF、EIF等

1 引言

本文是我在学习《Probabilistic Robotics 》这本书中第三章——高斯滤波过程中的一些知识总结。本文主要是整理高斯滤波算法的知识点和一些讨论,具体算法推导步骤请查阅上面所提到的这本书《Probabilistic Robotics 》,里面有非常详细的推导过程。
本章内容主要描述了一个重要的递归状态估计器家族,统称为高斯滤波(Gaussian filter)。所有的高斯技术共享了基本思想,即置信度用多元正态分布表示。因为高斯函数是单峰的,有单一的极大值,这样的后验概率是机器人学中很多跟踪问题的特点,后验以小的不确定性狙聚集在真实状态周围。对很多全局估计问题,由于许多很不同的假设存在,每一个假设都形成其自己的后验模式,因此高斯后验匹配性并不好。
下文主要总结两种最基本的高斯滤波算法,即卡尔曼滤波(KF)和信息滤波(IF)。KF和IF都是针对线性高斯系统的,在此基础上,将KF扩展到非线性问题中,从而得到扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)等;后者则得到扩展信息滤波(EIF)等。

2 线性高斯系统

这里首先介绍一下线性高斯系统。KF是由Swerling(1958)和Kalman(1960)作为线性高斯系统(linear Gaussian system)中预测和滤波技术而发明的,是用矩来定义的。KF实现了对连续状态的置信度计算,它不适用于离散或者混合状态空间。
KF 用矩参数表示置信度(置信度反映了机器人有关环境状态的内部信息。因为状态是不能直接测量的。概率机器人通过条件概率分布表示置信度):在时刻t, 置信度用均值μ, 和方差Σ_t表达。如果除了贝叶斯滤波的马尔可夫假设以外,还具有如下三个特性,则后验就是高斯(Gaussian) 的:

  • 状态转移概率P(x_t | u_t,x_t-1)必须是带有随机高斯噪声的参数的线性函数,可由下式表示:
  • 测量概率P(Z_t | x_t)也与带有高斯噪声的自变量呈线性关系:
  • 最后,初始置信度bel(x_0)必须是正态分布的。这里用μ_0表示置信度的均值,用Σ_0表示方差:

    这三个假设足以确保后验bel(x_t) 在任何时刻t 总符合高斯分布.

3 卡尔曼滤波

3.1 卡尔曼滤波算法

卡尔曼滤波主要分为两部分:第一部分——预测;第二部分:量测更新

高斯滤波后再平滑滤波的代码 高斯滤波系数_滤波算法

3.2 卡尔曼滤波算法的讨论

  • 卡尔曼滤波算法的输入为t-1时刻的置信度,其均值和协方差用μ_t-1 和Σ_t-1 表示。首先由2和3式通过运动方程计算t时刻的预测的置信度;然后通过综合观测方程,用4、5、6式将置信度顺序地转换成t时刻期望的置信度;最后输出t时刻的置信度,其均值和协方差用μ_t和Σ_t表示。
  • 对于高斯噪声的线性系统,卡尔曼滤波器是最优线性无偏估计(best linear unbiased estimate,BLUE)。这意味着它给出的解的协方差矩阵正位于克拉美罗下界(CRLB)(克拉美罗下界是衡量一个无偏估计器是否有效的重要工具,也就是说,给定一个无偏估计器,我们可以利用克拉美-罗下界去判断这个估计器是否是最优的)处。
  • 卡尔曼滤波必须要有初始状态。
  • 卡尔曼滤波计算是相当高效的。

最后给出KF算法的图例是一个简单的一维定位案例。

高斯滤波后再平滑滤波的代码 高斯滤波系数_卡尔曼滤波_02

4 扩展卡尔曼滤波

4.1 扩展卡尔曼滤波算法

扩展卡尔曼滤波(Extended Kalman Filter, EKF)利用**(一阶)泰勒展开(Taylor expansion) 实现线性化方法**。泰勒展开根据g和h 的值和斜率构造一个函数g 和h的线性近似函数。

高斯滤波后再平滑滤波的代码 高斯滤波系数_卡尔曼滤波_03

4.2 扩展卡尔曼滤波算法的讨论

  • EKF放宽了一个假设:线性化假设。这里假设状态转移概率和测量概率均为非线性函数。线性化的主要优点在于于既简单又有较高的计算效率。
  • EKF 计算真实置信度的高斯近似值。EKF 从KF 继承了基本的置信度表示,但是它又不同,因为这个置信度只是一个近似值,而不如KF 情况下的精确。因此, EKF 的目标就从计算精确的后验概率转变为有效地估计其均值和方差。
  • EKF适用于各种传感器形式,易于做多传感器融合。
  • EKF的缺点也较为明显:(1)一阶马尔可夫假设过于简单(2)要求数据不能有外点,否则可能会发散;(3)对于非线性较强的情况,线性化误差较大。
    下图给出了这个通过泰勒展开的线性化基本概念。(线性化通过一个在高斯函数的均值处与非线性函数g 相切的线性函数去近似g (右上图虚线所示)。将高斯通过这个线性近似映射成一个高斯密度,如左上图虚线所示。左上图的实线表示蒙特卡罗近似的均值和方差。这两个高斯函数之间的不匹配是由g 的线性近似而引起的误差。)

5 无迹卡尔曼滤波

5.1 无迹卡尔曼滤波算法

无迹卡尔曼滤波(Unscented Kalman Filter, UKF) , 它通过使用加权统计线性回归过程实现随机线性化

高斯滤波后再平滑滤波的代码 高斯滤波系数_高斯滤波后再平滑滤波的代码_04

5.2 无迹卡尔曼滤波算法的讨论

  • UKF 算法的渐近复杂性与EKF 的相同。实际上, EKF 往往比UKF 稍快一些。即使被常数因子减缓, UKF 仍然是非常高效的。并且, UKF 继承了线性无迹变换的优点。对于纯线性系统,由UKF 产生的估计与由卡尔曼滤波产生的估计是相同的。对于非线性系统, UKF 的结果与EKF 的结果相同或者比后者要好,EKF 的改进依赖非线性和先验状态不确定性的范围。在许多实际应用中, EKF和UKF 之间的差异不大。
  • UKF 的另一个优点是,它不需要计算雅可比矩阵,而雅可比矩阵在某些领域是很难确定的。因此UKF 也经常被认为是免求导滤波器(derivative-free filter) 。

下图给出了UKF的线性化示例。

高斯滤波后再平滑滤波的代码 高斯滤波系数_高斯滤波_05


下图给出了UKF 和EKF 近似之间的对比,依据的是函数g 的非线性特性。正如这里看到的,无迹变换比由EKF 采用的泰勒级数一阶展开要精确。事实上,可以证明无迹变换与泰勒级数展开的前两项精度相同,但EKF 只取了前一项。但是,应该注意, EKF 和UKF 都可以通过采用更高阶项进行修正。

高斯滤波后再平滑滤波的代码 高斯滤波系数_滤波算法_06

6 信息滤波

6.1 信息滤波算法

高斯滤波后再平滑滤波的代码 高斯滤波系数_卡尔曼滤波_07

6.2 信息滤波算法的讨论

  • 卡尔曼滤波(KF) 的对偶滤波算法就是信息滤波(Information Filter, IF)。标 准的IF 具有和KF 相同的假设。KF 和IF 之间的主要不同源于高斯置信度表示的方式。对于一系列KF 算法,高斯分布都由它们的矩(均值、协方差)表示, IF以正则参数表示高斯分布,该正则参数由一个信息矩阵和信息向量组成。参数的不同导致了不同的更新等式。具体来说,对一个参数计算是复杂的,而对另一个参数的计算可能是简单的(反之亦然)。正则参数和矩参数经常被认为是对偶的, IF 和KF 也是如此。

7 扩展信息滤波

7.1 扩展信息滤波算法

高斯滤波后再平滑滤波的代码 高斯滤波系数_卡尔曼滤波_08

7.2 扩展信息滤波算法的讨论

  • 扩展信息滤波(Extended Information Filter, EIF) 将信息滤波扩展到非线性情况。与EKF 一样,它也是信息滤波的非线性扩展。

总结

高斯滤波后再平滑滤波的代码 高斯滤波系数_滤波算法_09


高斯滤波后再平滑滤波的代码 高斯滤波系数_滤波算法_10

KF与IF的对比讨论

  • 在IF 中表示全局不确定性是很简单的:简单地设置n =0。当使用矩参数时,这样的全局不确定性意味着无限大的方差。当传感器测量携带的信息是有关所有状态变量的一个严格子集时,这就很成间题,而这种情况在机器人学中是要经常面对的。各种EKF 是做了特殊规定来处理此类情况。IF 往往比KF 更稳定。
  • IF 及其几种扩展方法使机器人能够进行信息整合,而不是立即将信息转化成概率。这在涉及成百甚至更多变量的复杂估计问题时具有很大的优势。对这样的大间题, KF 的整合引出几个计算问题,因为任何新的信息流都需要通过大系统的变最来传播。对IF 进行适当的修改,通过简单地将新的信息局部地添加到系统可避开这个问题。
  • IF 相对KF 的另一个优点源于它对多机器人间题的自然适应性。多机器人问题经常涉及将分散采集的传感器数据进行融合。这样的融合通常由贝叶斯准则完成。当用对数形式表示时,贝叶斯准则变成了加法。如上文所述, IF 的正则参数将概率以对数形式表示。因此,信息融合通过将多机器人的信息相加来获得。因此, IF 经常能以完全分散的形式,以任意时延、任意顺序进行信息融合。虽然利用矩参数也可能做到-毕竟它们表示同样的信息,但这样做必要的开销要高得多。尽管有这样的优势,但IF 在多机器人系统的应用仍有很多未开发的部分。
  • IF 的优势被某些重要的局限性所抵消。EIF 的主要缺点就是应用于非线性系统时,在更新这一步骤中需要重新获得状态估计。如果如此实现的话,需要信息 矩阵的逆。在IF 的预测步骤需要更多的矩阵求逆。在许多机器入问题中, EKF不涉及同等规模的矩阵求逆。对高维状态空间,一般认为在计算上IF 逊色于KF 。这就是为什么EKF 比EIF 更受欢迎的原因之一。