3.1 离散时间的批量估计问题
3.1.1 问题定义
在离散时间线性时变系统中,定义运动和观测模型如下:其中k为时间下标,最大值为K。各变量的含义如下:其中除了vk为确定性变量之外,其他的变量都是随机变量。噪声和初始状态一般假设互不相关的,并且在各个时刻与自己也互不相关。矩阵称为转移矩阵,称为观测矩阵。
一般情况只知道以下几个变量,并根据它们来估计状态 :
- 初始状态,以及相应的初始协方差矩阵。
- 输入量vk,通常来自控制器,是已知的;它的噪声协方差矩阵是Qk。
- 观测数据yk,meas是观测变量yk的一次实现,它的协方差为Rk。
状态估计问题是指:在k个(一个或多个)时间点上,基于初始的状态信息、一系列观测数据y0:K,meas、一系列输入v1:K,以及系统的运动模型和观测模型,来计算系统的真实状态的估计值
为了显示各个方法之间的联系,从两个不同的途径着手解决批量LG系统的估计问题:
- 贝叶斯推断。从状态的先验概率密度函数出发,通过初始状态、输入、运动方程和观测数据,计算状态的后验概率密度函数。
- 最大后验估计。采用优化理论,来寻找给定信息下(初始状态、输入、观测)的最大后验估计。
以上两种方法本质上是不同的,但在LG系统中,它们将给出同样的结论。主要原因在于,在LG系统中,贝叶斯后验概率正好是高斯的。所以优化方法会找到高斯分布的最大值(也就是它的模),这也正是高斯的均值。但在非线性非高斯系统中,一个分布的均值和模将不再重合,使得这两类方法给出不同的答案。
3.1.2 最大后验估计
在批量估计中,MAP的目标是求解这样一个问题:也就是说,我们希望在给定先验信息和所有时刻的运动 、观测 的情况下,推测出所有时刻的最优状态。为此定义几个宏观变量: 首先,用贝叶斯公式重写MAP估计:由于分母与x无关,将其略去。同时省略p(y|x,v)中的v,因为如果x已知,v不会影响观测数据。
接下来要做出一个重要的假设:对于所有时刻k=0,…,K,所有的噪声项和之间是无关的。这使得我们可以用贝叶斯公式对p(y|x)进行因子分解:另一方面,贝叶斯定理又允许我们将p(y|v)分解为:在线性系统中,高斯密度函数可展开为:
3.1.3 贝叶斯推断
在线性高斯系统中,全贝叶斯后验概率的计算并不是简单地最大化它。需要从先验的概率密度函数出发,然后再用测量的数据来更新它。
在这个情况下,可以用初始状态和输入来建立状态的先验估计:。用运动方法来建立先验:在提升形式中,可以写成:这里也是初始状态和运动噪声的提升形式,同时,
它仍是个下三角矩阵,但形式非常稀疏(仅有主对角线和下方的一块非零)。如果定义:
3.1.4 存在性、唯一性与能观性
从基本的线性代数可以看出,当且仅当可逆时,存在且唯一。那么:于是,问题就变为,何时可逆?再从基本的线性代数来看,因为,所以可逆的充要条件是:又因为是实对称且正定的,所以可以仅检测:即要求有N(K+1)个线性无关的行/列向量。
接下来,分为情况两种进行讨论:
1.初始状态有先验信息:;
2.初始状态没有先验信心。
情况1:有先验
将展开,我们需要检测秩的矩阵为:
这是一个阶梯形矩阵。显然它每一行都是线性无关的,这意味着该矩阵是满秩的。所以,我们能够得到一个唯一解 ,只须:这里>0意味着矩阵是正定的(因此也是可逆的)。直观上说,因为先验已经给出了系统的一个解,我们只是用观测来修正它。这只是充分但不是必要的条件。
情况2:没有先验知识
中每一列中的块都表示了一部分有关系统的信息,而第一列的块表达了我们对初始状态信息的了解程度。因此,去掉第一列之后,变为:
解释
仍然回到弹簧-质点模型,来理解能观性方面的问题。如下图展现了一些例子。当我们有初始状态时(顶上的图例),系统总是能观的,因为你没法在不改变(至少一个)弹簧长度的条件下,移动任意一个(或多个)重物。也就是说,这样一个系统有一个唯一的最小能量状态。对于中间的例子,结论也是一样,即使我们不知道初始状态。最下面的例子则是不能观的,因为我们可以把所有重物任意左移或右移,同时不改变弹簧储存的能量。这样一个系统的最小能量就是不唯一的。
3.1.5 MAP的协方差
回到式,表示了状态真值x最可能的估计。那么另一个重要的问题是说,我们对的置信度如何?也就是说,我们可以用高斯形式对最小二乘解作另一种解释:等式右侧称为信息向量。为了说明它的含义,用贝叶斯法则重写式子为:这里 是归一化因子。然后把式子代入并作一些简化,易得:这里也是一个归一化因子。从该式可以看出,是最小二乘算法对x的高斯估计,其中均值即最优解,而协方差。
另一种处理方式是直接对最优解取期望。注意:其中那么就有:仍能得到上述的结论。
小结
总的来说,离散时间批量估计的方法主要有最大后验估计和贝叶斯推断两种方法。由于线性高斯系统中贝叶斯后验概率仍是高斯的,所以高斯函数的均值和模都是一样,因此,该两种方法最终得到的解是一致的,都为。
3.2 离散时间的递归平滑算法
本小节主要是介绍了两种递归平滑算法,分别是Cholesky平滑算法和Rauch-Tung-Striebel平滑算法。该两种方法都利用了上一节批量优化结论中国的稀疏结构(三对角块)来加速方程的求解。采用前向-后向的递归操作来完成。
在Cholesky平滑算法中,利用上一节的核心等式,然后主要分为三个步骤:
- 令,先求解出L;
- 令,求解出d;
- 最后根据,求解 。
以上前两个步骤为前向迭代过程,第三步为后向迭代过程。最终得到如下的递归方程:
3.3 离散时间的递归滤波算法
为了解决上文介绍的批量优化和平滑算法无法在线运行的问题,因为它需要用到未来时刻的信息估计过去的状态,因此为了在实时场合使用,当前的状态只能由之前时间的信息决定,而卡尔曼滤波就是对这样的问题的传统解决方案。在上一节的RTS平滑算法的前向迭代过程中已经引出了卡尔曼滤波。本节将介绍其他几种推导卡尔曼滤波的方法。
文章出处登录后可见!