本章将介绍含有高斯随机变量的线性系统状态估计问题中的一些经典结论,包括重要的卡尔曼滤波器。我们将从离散时间的批量(batch)优化问题开始讨论,这可以导出随后非线性情况下的一些重要的结论,作为后文的铺垫。从批量式处理过程中,我们将导出递归式(recursive)算法的流程。最后,我们再讨论最重要的卡尔曼滤波器。
当然,全部的这部分内容比较多,这里将会分为三篇文章进行论述。本文主要讨论的是:离散时间的批量估计。
问题定义
定义运动模型:
x k = A k − 1 x k − 1 + v k + w k x_k=A_{k-1}x_{k-1}+v_k+w_k xk=Ak−1xk−1+vk+wk
其中, k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K。
定义观测模型:
y k = C k x k + n k y_k=C_kx_k+n_k yk=Ckxk+nk
其中, k = 0 , 1 , . . . , K k=0,1,...,K k=0,1,...,K。各变量的含义如下:
- 系统状态: x k ∈ R N x_k\in R^N xk∈RN
- 初始状态: x 0 ∈ R N ∼ N ( x ˇ 0 , P ˇ 0 ) x_0\in R^N\sim N(\check x_0,\check P_0) x0∈RN∼N(xˇ0,Pˇ0)
- 输入: v k ∈ R N v_k\in R^N vk∈RN
- 过程噪声: w k ∈ R N ∈ N ( 0 , Q k ) w_k\in R^N\in N(0,Q_k) wk∈RN∈N(0,Qk)
- 测量: y k ∈ R M y_k\in R^M yk∈RM
- 测量噪声: n k ∈ R M ∼ N ( 0 , R k ) n_k\in R^M\sim N(0,R_k) nk∈RM∼N(0,Rk)
这些变量中,除了 v k v_k vk为确定性变量之外,其他的都是随机变量。噪声和初始状态一般假设为互不相关的,并且在各个时刻与自己也互不相关。矩阵 A k ∈ R N ∗ N A_k\in R^{N*N} Ak∈RN∗N称为转移矩阵, C k ∈ R M ∗ N C_k\in R^{M*N} Ck∈RM∗N称为观测矩阵。
尽管想知道整个系统在所有时刻的状态,然而仅仅知道以下的几个变量,并且要根据它们来估计状态 x ^ k \hat x_k x^k:
- 初始状态 x ˇ 0 \check x_0 xˇ0,以及相应的初始协方差矩阵 P ˇ 0 \check P_0 Pˇ0
- 输入量 v 0 : K v_{0:K} v0:K,以及它的噪声协方差 Q k Q_k Qk
- 观测数据 y 0 : K y_{0:K} y0:K,以及它的噪声协方差 R k R_k Rk
状态估计问题是指:在时间点 k k k上,基于初始的状态信息 x ˇ 0 \check x_0 xˇ0、一系列观测数据 y 0 : K y_{0:K} y0:K、一系列输入 v 1 : K v_{1:K} v1:K,以及系统的运动和观测模型,来计算系统的真实状态的估计值 x ^ k \hat x_k x^k。
为了求解更加困难的状态估计问题,先讨论批量的线性高斯系统(linear-Gaussian,LG)状态估计问题。所谓批量,就是可以一次性使用所有的数据,来推算所有时刻的状态。但是这种方式无法在实时场景下使用,因为不可以用未来的信息来估计过去时刻的状态。因此,还需要用到递归式的方法。
为了显示各种方法之间的联系,从两个不同的途径着手解决LG系统的估计问题。
- 贝叶斯推断:从状态的先验概率密度函数出发,通过初始状态、输入、运动方程和观测数据,计算状态的后验概率密度函数
- 最大后验估计:利用优化理论,寻找给定信息下(初始状态、输入、观测)的最大后验估计
尽管两种方法的本质上是不同的,但是对于LG系统,它们将给出相同的结论。
原因是:在LG系统中,贝叶斯后验概率正好也是高斯的,所以优化方法会找到高斯分布的最大值(也就是它的模),这也正好是高斯的均值。细化一点讲:贝叶斯推断计算出该状态的后验概率密度函数,然后计算出其均值和方差来描述它;最大后验估计则是寻找最大后验估计,并且找到达到最大值时的状态。此时,前者为均值,后者为模。两者相等。
这一点非常重要,在步入非线性、非高斯之后,一个分布的均值和模不再重合,这使得两种方法给出不同的答案。
最大后验估计
在批量估计中,最大后验估计MAP的目标是求解这样的一个问题:
x ^ = a r g m a x ( p ( x ∣ v , y ) ) \hat x=argmax(p(x|v,y)) x^=argmax(p(x∣v,y))
即:在给定先验信息和所有时刻的运动 v v v、观测 y y y的情况下,推测出所有时刻的最优状态下的 x ^ \hat x x^。定义几个宏观的变量:
x = x 0 : K = ( x 0 , x 1 , . . . , x K ) v = ( x ˇ 0 , v 1 : K ) = ( x ˇ 0 , v 1 , v 2 , . . . , v K ) y = y 0 : K = ( y 0 , y 1 , . . . , y K ) \begin{aligned}x&=x_{0:K}=(x_0,x_1,...,x_K) \\ v&=(\check x_0,v_{1:K})=(\check x_0,v_1,v_2,...,v_K) \\ y&=y_{0:K}=(y_0,y_1,...,y_K)\end{aligned} xvy=x0:K=(x0,x1,...,xK)=(xˇ0,v1:K)=(xˇ0,v1,v2,...,vK)=y0:K=(y0,y1,...,yK)
这里相当于省略变量的下标,表示所有的时刻。需要注意的是: x ˇ 0 \check x_0 xˇ0表示初值,这里将它和输入量放在一起,表明先验的信息。
利用贝叶斯公式重写MAP公式:
x ^ = a r g m a x ( p ( x ∣ v , y ) ) = a r g m a x ( p ( y ∣ v , x ) p ( x ∣ v ) p ( y ∣ v ) ) = a r g m a x ( p ( y ∣ x ) p ( x ∣ v ) ) \begin{aligned}\hat x&=argmax(p(x|v,y))\\&=argmax(\frac{p(y|v,x)p(x|v)}{p(y|v)})\\&=argmax(p(y|x)p(x|v))\end{aligned} x^=argmax(p(x∣v,y))=argmax(p(y∣v)p(y∣v,x)p(x∣v))=argmax(p(y∣x)p(x∣v))
这里将分母去掉,因为它和 x x x无关。同时省略 p ( y ∣ v , x ) p(y|v,x) p(y∣v,x)中的 v v v,因为 y y y和 x x x相关,和 v v v不相关。
接下来做出一个重要的假设:对于所有时刻 k = 0 , 1 , . . . , K k=0,1,...,K k=0,1,...,K,所有的噪声项 w k w_k wk和 n k n_k nk之间总是无关的。这使得可以用贝叶斯公式对 p ( y ∣ x ) p(y|x) p(y∣x)进行因子分解:
p ( y ∣ x ) = ∏ k = 0 K p ( y k ∣ x k ) p(y|x)=\prod_{k=0}^Kp(y_k|x_k) p(y∣x)=k=0∏Kp(yk∣xk)
原因: y k y_k yk只与 x k x_k xk有关。
同时,也可以用贝叶斯公式对 p ( x ∣ v ) p(x|v) p(x∣v)进行因子分解:
p ( x ∣ v ) = p ( x 0 ∣ x ˇ 0 ) ∏ k = 1 K p ( x k ∣ x k − 1 , v k ) p(x|v)=p(x_0|\check x_0)\prod_{k=1}^Kp(x_k|x_{k-1},v_k) p(x∣v)=p(x0∣xˇ0)k=1∏Kp(xk∣xk−1,vk)
原因: x k x_k xk只与 x k − 1 x_{k-1} xk−1、 v k v_k vk有关。
p ( x 0 ∣ x ˇ 0 ) = 1 ( 2 π ) N d e t P ˇ 0 e x p ( − 1 2 ( x 0 − x ˇ 0 ) T P ˇ 0 − 1 ( x 0 − x ˇ 0 ) ) p(x_0|\check x_0)=\frac{1}{\sqrt{(2\pi)^N}det \check P_0}exp(-\frac{1}{2}(x_0-\check x_0)^T\check P_0^{-1}(x_0-\check x_0)) p(x0∣xˇ0)=(2π)NdetPˇ01exp(−21(x0−xˇ0)TPˇ0−1(x0−xˇ0))
p ( x k ∣ x k − 1 , v k ) = 1 ( 2 π ) N d e t Q k e x p ( − 1 2 ( x k − A k − 1 x k − 1 − v k ) T Q k − 1 ( x k − A k − 1 x k − 1 − v k ) ) p(x_k|x_{k-1},v_k)=\frac{1}{\sqrt{(2\pi)^N}det Q_k}exp(-\frac{1}{2}(x_k- A_{k-1}x_{k-1}-v_k)^TQ_k^{-1}(x_k- A_{k-1}x_{k-1}-v_k)) p(xk∣xk−1,vk)=(2π)NdetQk1exp(−21(xk−Ak−1xk−1−vk)TQk−1(xk−Ak−1xk−1−vk))
p ( y k ∣ x k ) = 1 ( 2 π ) N d e t R k e x p ( − 1 2 ( y k − C k x k ) T R k − 1 ( y k − C k x k ) ) ) p(y_k|x_k)=\frac{1}{\sqrt{(2\pi)^N}det R_k}exp(-\frac{1}{2}(y_k-C_kx_k)^TR_k^{-1}(y_k-C_kx_k))) p(yk∣xk)=(2π)NdetRk1exp(−21(yk−Ckxk)TRk−1(yk−Ckxk)))
需要注意:必须保证 P ˇ 0 \check P_0 Pˇ0、 Q k Q_k Qk、 R k R_k Rk是可逆的。事实上,他们通常是正定的,因而也必然是可逆的。因此:
l n ( p ( y ∣ x ) p ( x ∣ v ) ) = l n ( p ( x 0 ∣ x ˇ 0 ) ) + ∑ k = 1 K l n ( p ( x k ∣ x k − 1 , v k ) ) + ∑ k = 0 K l n ( p ( y x ∣ x k ) ) ln(p(y|x)p(x|v))=ln(p(x_0|\check x_0))+\sum_{k=1}^Kln(p(x_k|x_{k-1},v_k))+\sum_{k=0}^Kln(p(y_x|x_k)) ln(p(y∣x)p(x∣v))=ln(p(x0∣xˇ0))+k=1∑Kln(p(xk∣xk−1,vk))+k=0∑Kln(p(yx∣xk))
去掉与 x x x无关的一些项,即一些常量,整理一下:
l n ( p ( y ∣ x ) p ( x ∣ v ) ) = − 1 2 ( x 0 − x ˇ 0 ) T P ˇ 0 − 1 ( x 0 − x ˇ 0 ) + ∑ k = 1 K ( − 1 2 ( x k − A k − 1 x k − 1 − v k ) T Q k − 1 ( x k − A k − 1 x k − 1 − v k ) ) + ∑ k = 0 K ( − 1 2 ( y k − C k x k ) T R k − 1 ( y k − C k x k ) ) \begin{aligned}&ln(p(y|x)p(x|v))\\=&-\frac{1}{2}(x_0-\check x_0)^T\check P_0^{-1}(x_0-\check x_0)+\\&\sum_{k=1}^K(-\frac{1}{2}(x_k- A_{k-1}x_{k-1}-v_k)^TQ_k^{-1}(x_k- A_{k-1}x_{k-1}-v_k))+\\&\sum_{k=0}^K(-\frac{1}{2}(y_k-C_kx_k)^TR_k^{-1}(y_k-C_kx_k))\end{aligned} =ln(p(y∣x)p(x∣v))−21(x0−xˇ0)TPˇ0−1(x0−xˇ0)+k=1∑K(−21(xk−Ak−1xk−1−vk)TQk−1(xk−Ak−1xk−1−vk))+k=0∑K(−21(yk−Ckxk)TRk−1(yk−Ckxk))
定义下面这些变量:
k = 0 k=0 k=0时:
J v , k = 1 2 ( x 0 − x ˇ 0 ) T P ˇ 0 − 1 ( x 0 − x ˇ 0 ) J_{v,k}=\frac{1}{2}(x_0-\check x_0)^T\check P_0^{-1}(x_0-\check x_0) Jv,k=21(x0−xˇ0)TPˇ0−1(x0−xˇ0)
k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K时:
J v , k = 1 2 ( x k − A k − 1 x k − 1 − v k ) T Q k − 1 ( x k − A k − 1 x k − 1 − v k ) J_{v,k}=\frac{1}{2}(x_k- A_{k-1}x_{k-1}-v_k)^TQ_k^{-1}(x_k- A_{k-1}x_{k-1}-v_k) Jv,k=21(xk−Ak−1xk−1−vk)TQk−1(xk−Ak−1xk−1−vk)
k = 0 , 1 , . . . , K k=0,1,...,K k=0,1,...,K时:
J y , k = 1 2 ( y k − C k x k ) T R k − 1 ( y k − C k x k ) J_{y,k}=\frac{1}{2}(y_k-C_kx_k)^TR_k^{-1}(y_k-C_kx_k) Jy,k=21(yk−Ckxk)TRk−1(yk−Ckxk)
这些都是平方马氏距离,据此可以定义整体的目标函数 J ( x ) J(x) J(x)。
通过最小化这个目标函数,可以求解出自变量 x x x的值:
J ( x ) = ∑ k = 0 K ( J v , k ( x ) + J y , k ( x ) ) J(x)=\sum_{k=0}^K(J_{v,k}(x)+J_{y,k}(x)) J(x)=k=0∑K(Jv,k(x)+Jy,k(x))
x ^ = a r g m i n ( J ( x ) ) \hat x=argmin(J(x)) x^=argmin(J(x))
这是一个无约束的优化问题,对于状态变量 x x x本身并没有任何约束。
由于 J v , k ( x ) J_{v,k}(x) Jv,k(x)和 J y , k ( x ) J_{y,k}(x) Jy,k(x)都是 x k x_k xk的二次形式,因此还可以进一步简化。即:将所有的数据排成一列,提升形式。那么可以把所有时刻的状态组成一个向量 x x x,并把所有时候已知的数据组成一个向量 z z z:
z = [ x ˇ 0 v 1 v 2 ⋮ v K y 0 y 1 ⋮ y K ] z=\begin{bmatrix}\check x_0\\v_1\\v_2\\\vdots\\v_K\\y_0\\y_1\\\vdots\\y_K\end{bmatrix} z= xˇ0v1v2⋮vKy0y1⋮yK
x = [ x 0 x 1 ⋮ x K ] x=\begin{bmatrix}x_0\\x_1\\\vdots\\x_K\end{bmatrix} x= x0x1⋮xK
然后定义以下的块矩阵:
H = [ 1 − A 0 1 ⋱ ⋱ − A K − 1 1 C 0 C 1 ⋱ C K ] H=\begin{bmatrix}1\\-A_0&1\\&\ddots&\ddots\\&&-A_{K-1}&1\\C_0\\&C_1\\&&\ddots\\&&&C_K\end{bmatrix} H= 1−A0C01⋱C1⋱−AK−1⋱1CK
W = [ P ˇ 0 Q 1 ⋱ Q K R 0 R 1 ⋱ R K ] W=\begin{bmatrix}\check P_0\\&Q_1\\&&\ddots\\&&&Q_K\\&&&&R_0\\&&&&&R_1\\&&&&&&\ddots\\&&&&&&&R_K\end{bmatrix} W= Pˇ0Q1⋱QKR0R1⋱RK
根据这些定义,可以将目标函数写成:
J ( x ) = 1 2 ( z − H x ) T W − 1 ( z − H x ) J(x)=\frac{1}{2}(z-Hx)^TW^{-1}(z-Hx) J(x)=21(z−Hx)TW−1(z−Hx)
这正是 x x x的二次形式。同时有:
p ( z ∣ x ) = η e x p ( − 1 2 ( z − H x ) T W − 1 ( z − H x ) ) p(z|x)=\eta exp(-\frac{1}{2}(z-Hx)^TW^{-1}(z-Hx)) p(z∣x)=ηexp(−21(z−Hx)TW−1(z−Hx))
其中, η \eta η是归一化因子。
因为 J ( x ) J(x) J(x)刚好是一个抛物面,可以解析地找到它的最小值,只需要让目标函数相对于自变量的偏导数为零:
∂ J ( x ) ∂ x T = − H T W − 1 ( z − H x ^ ) = 0 \frac{\partial J(x)}{\partial x^T}=-H^TW^{-1}(z-H\hat x)=0 ∂xT∂J(x)=−HTW−1(z−Hx^)=0
( H T W − 1 H ) x ^ = H T W − 1 z (H^TW^{-1}H)\hat x=H^TW^{-1}z (HTW−1H)x^=HTW−1z
该方程的解 x ^ \hat x x^是经典的批量最小二乘法的解,同时也等价于传统估计理论中的固定区间平滑算法。
批量最小二乘法的求解利用了矩阵求伪逆的方法。从计算角度上说,并不会真的去计算 H T W − 1 H H^TW^{-1}H HTW−1H的逆,它是一种特殊的对角块结构,可以利用稀疏的求解算法来更高效地求解。
贝叶斯推断
现在看一看如何计算全贝叶斯后验概率 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y),而不是简单的最大化它。
在这种情况下,可以用初始状态和输入来建立状态的先验估计: p ( x ∣ v ) p(x|v) p(x∣v)。用运动方程来建立先验:
x k = A k − 1 x k − 1 + v k + w k x_k=A_{k-1}x_{k-1}+v_k+w_k xk=Ak−1xk−1+vk+wk
可以得到:
x 0 = x ˇ 0 + w 0 x 1 = A 0 x 0 + v 1 + w 1 = A 0 ( x ˇ 0 + w 0 ) + v 1 + w 1 x 2 = A 1 x 1 + v 2 + w 2 = A 1 ( A 0 ( x ˇ 0 + w 0 ) + v 1 + w 1 ) + v 2 + w 2 x k = . . . \begin{aligned}x_0&=\check x_0+w_0 \\ x_1&=A_0x_0+v_1+w_1=A_0(\check x_0+w_0)+v_1+w_1 \\ x_2&=A_1x_1+v_2+w_2=A_1(A_0(\check x_0+w_0)+v_1+w_1)+v_2+w_2 \\ x_k&= ... \end{aligned} x0x1x2xk=xˇ0+w0=A0x0+v1+w1=A0(xˇ0+w0)+v1+w1=A1x1+v2+w2=A1(A0(xˇ0+w0)+v1+w1)+v2+w2=...
在提升形式中,可以写成:
x = A ( v + w ) x=A(v+w) x=A(v+w)
其中,
A = [ 1 A 0 1 A 1 A 0 A 1 1 ⋮ ⋮ ⋮ ⋱ A K − 2 . . . A 0 A K − 2 . . . A 1 A K − 2 . . . A 2 … 1 A K − 1 . . . A 0 A K − 1 . . . A 1 A K − 1 . . . A 2 … A K − 1 1 ] A=\begin{bmatrix}1\\A_0&1\\A_1A_0&A_1&1\\\vdots&\vdots&\vdots&\ddots\\A_{K-2}...A_0&A_{K-2}...A_1&A_{K-2}...A_2&\dots&1\\A_{K-1}...A_0&A_{K-1}...A_1&A_{K-1}...A_2&\dots&A_{K-1}&1\end{bmatrix} A= 1A0A1A0⋮AK−2...A0AK−1...A01A1⋮AK−2...A1AK−1...A11⋮AK−2...A2AK−1...A2⋱……1AK−11
v = [ x ˇ 0 v 1 v 2 ⋮ v K ] v=\begin{bmatrix}\check x_0\\v1\\v2\\\vdots\\v_K\end{bmatrix} v= xˇ0v1v2⋮vK
w = [ w 0 w 1 ⋮ w K ] w=\begin{bmatrix}w_0\\w1\\\vdots\\w_K\end{bmatrix} w= w0w1⋮wK
于是,提升之后的均值为:
x ˇ = E [ x ] = E [ A ( v + w ) ] = A v \check x=E[x]=E[A(v+w)]=Av xˇ=E[x]=E[A(v+w)]=Av
提升的协方差为:
P ˇ = E [ ( x − E [ x ] ) ( x − e [ x ] ) T ] = E [ ( A w ) ( A w ) T ] = A E [ w w T ] A T = A Q A T \begin{aligned}\check P&=E[(x-E[x])(x-e[x])^T]\\&=E[(Aw)(Aw)^T]\\&=AE[ww^T]A^T\\&=AQA^T\end{aligned} Pˇ=E[(x−E[x])(x−e[x])T]=E[(Aw)(Aw)T]=AE[wwT]AT=AQAT
其中, Q = d i a g ( P ˇ 0 , Q 1 , Q 2 , . . . , Q K ) Q=diag(\check P_0,Q_1,Q_2,...,Q_K) Q=diag(Pˇ0,Q1,Q2,...,QK)。
那么,先验就可以简洁的写成:
p ( x ∣ v ) = N ( x ˇ , P ˇ ) = N ( A v , A Q A T ) p(x|v)=N(\check x,\check P)=N(Av,AQA^T) p(x∣v)=N(xˇ,Pˇ)=N(Av,AQAT)
再看看观测,观测模型为:
y k = C k x k + n k y_k=C_kx_k+n_k yk=Ckxk+nk
写成提升形式:
y = C x + n y=Cx+n y=Cx+n
其中,
C = [ C 0 C 1 ⋱ C K ] C=\begin{bmatrix}C_0\\&C_1\\&&\ddots\\&&&C_K\end{bmatrix} C= C0C1⋱CK
n = [ n 0 n 1 ⋮ n K ] n=\begin{bmatrix}n_0\\n_1\\\vdots\\n_K\end{bmatrix} n= n0n1⋮nK
于是,提升之后的状态、观测联合概率密度函数可写成:
p ( x , y ∣ v ) = N ( [ x ˇ C x ˇ ] , [ P ˇ P ˇ C T C P ˇ C P ˇ C T + R ] ) p(x,y|v)=N(\begin{bmatrix}\check x\\C\check x\end{bmatrix},\begin{bmatrix}\check P&\check PC^T\\C\check P &C\check PC^T+R\end{bmatrix}) p(x,y∣v)=N([xˇCxˇ],[PˇCPˇPˇCTCPˇCT+R])
其中, R = E [ n n T ] = d i a g ( R 0 , R 1 , . . . R K ) R=E[nn^T]=diag(R_0,R_1,...R_K) R=E[nnT]=diag(R0,R1,...RK)。
下面的几个推导过程需要一定的概率论基础知识,不太熟悉的可以参考文章:【状态估计】概率论基础。
由于联合概率密度,总可以将其分解成两个因子的乘积(条件概率乘以边缘概率)。那么:这个式子可以因式分解:
p ( x , y ∣ v ) = p ( x ∣ v , y ) p ( y ∣ v ) p(x,y|v)=p(x|v,y)p(y|v) p(x,y∣v)=p(x∣v,y)p(y∣v)
第一个因子表示的就是全贝叶斯后验概率,根据高斯推断,可以得到:
p ( x ∣ v , y ) = N ( x ˇ + P ˇ C T ( C P ˇ C T + R ) − 1 ( y − C x ˇ ) , P ˇ − P ˇ C T ( C P ˇ C T + R ) − 1 C P ˇ ) p(x|v,y)=N(\check x+\check PC^T(C\check PC^T+R)^{-1}(y-C\check x),\check P-\check PC^T(C\check PC^T+R)^{-1}C\check P) p(x∣v,y)=N(xˇ+PˇCT(CPˇCT+R)−1(y−Cxˇ),Pˇ−PˇCT(CPˇCT+R)−1CPˇ)
根据SMW恒等式,可以转换为:
p ( x ∣ v , y ) = N ( ( P ˇ − 1 + C T R − 1 C ) − 1 ( P ˇ − 1 x ˇ + C T R − 1 y ) , ( P ˇ − 1 + C T R − 1 C ) − 1 ) p(x|v,y)=N((\check P^{-1}+C^TR^{-1}C)^{-1}(\check P^{-1}\check x+C^TR^{-1}y),(\check P^{-1}+C^TR^{-1}C)^{-1}) p(x∣v,y)=N((Pˇ−1+CTR−1C)−1(Pˇ−1xˇ+CTR−1y),(Pˇ−1+CTR−1C)−1)
因而,
x ^ = ( P ˇ − 1 + C T R − 1 C ) − 1 ( P ˇ − 1 x ˇ + C T R − 1 y ) P ^ = ( P ˇ − 1 + C T R − 1 C ) − 1 \begin{aligned}\hat x&=(\check P^{-1}+C^TR^{-1}C)^{-1}(\check P^{-1}\check x+C^TR^{-1}y) \\ \hat P&=(\check P^{-1}+C^TR^{-1}C)^{-1} \end{aligned} x^P^=(Pˇ−1+CTR−1C)−1(Pˇ−1xˇ+CTR−1y)=(Pˇ−1+CTR−1C)−1
为显示此方法与MAP方法的联系,对后验均值项进行整理:
( P ˇ − 1 + C T R − 1 C ) x ^ = P ˇ − 1 x ˇ + C T R − 1 y (\check P^{-1}+C^TR^{-1}C)\hat x=\check P^{-1}\check x+C^TR^{-1}y (Pˇ−1+CTR−1C)x^=Pˇ−1xˇ+CTR−1y
带入 x ˇ = A v \check x=Av xˇ=Av、 P ˇ = A Q A T \check P=AQA^T Pˇ=AQAT,得到:
( A − T Q − 1 A − 1 + C T R − 1 C ) x ^ = A − T Q − 1 v + C T R − 1 y (A^{-T}Q^{-1}A^{-1}+C^TR^{-1}C)\hat x=A^{-T}Q^{-1}v+C^TR^{-1}y (A−TQ−1A−1+CTR−1C)x^=A−TQ−1v+CTR−1y
这里需要计算 A − 1 A^{-1} A−1,不过它有一个很好看的形式:
A − 1 = [ 1 − A 0 1 − A 1 1 ⋱ ⋱ − A K − 1 1 ] A^{-1}=\begin{bmatrix}1\\-A_0&1\\&-A_1&1\\&&\ddots&\ddots\\&&&-A_{K-1}&1\end{bmatrix} A−1= 1−A01−A11⋱⋱−AK−11
如果定义:
z = [ v y ] z=\begin{bmatrix}v\\y\end{bmatrix} z=[vy]
H = [ A − 1 C ] H=\begin{bmatrix}A^{-1}\\C\end{bmatrix} H=[A−1C]
W = [ Q R ] W=\begin{bmatrix}Q&\\&R\end{bmatrix} W=[QR]
就可以将其写成:
( H T W − 1 H ) x ^ = H T W − 1 z (H^TW^{-1}H)\hat x=H^TW^{-1}z (HTW−1H)x^=HTW−1z
这和之前MAP的方法的解完全一致。
重申一遍,在LG系统中,贝叶斯推断给出了和MAP方法一致的解,本质上是因为LG系统的贝叶斯后验概率仍然是高斯的,而高斯函数的均值和模是一样的。
存在性、唯一性与能观性
LG系统中,无论是贝叶斯推断还是MAP方法,最终的解都是 ( H T W − 1 H ) x ^ = H T W − 1 z (H^TW^{-1}H)\hat x=H^TW^{-1}z (HTW−1H)x^=HTW−1z。那么,什么时候该式有唯一解呢?
线性代数理论中可知,当且仅当 H T W − 1 H H^TW^{-1}H HTW−1H可逆时, x ^ \hat x x^存在且唯一。即:
x ^ = ( H T W − 1 H ) − 1 H T W − 1 z \hat x=(H^TW^{-1}H)^{-1}H^TW^{-1}z x^=(HTW−1H)−1HTW−1z
那么, H T W − 1 H H^TW^{-1}H HTW−1H什么时候可逆呢?
线性代数理论中可知,由于 x ^ \hat x x^的维数 d i m x ^ = N ( K + 1 ) dim \hat x=N(K+1) dimx^=N(K+1),因此可逆的充要条件为:
r a n k ( H T W − 1 H ) = N ( K + 1 ) rank(H^TW^{-1}H)=N(K+1) rank(HTW−1H)=N(K+1)
又因为,一般情况下,假设 W − 1 W^{-1} W−1实对称且正定,因此可以得到:
r a n k ( H T W − 1 H ) = r a n k ( H T H ) = r a n k ( H T ) rank(H^TW^{-1}H)=rank(H^TH)=rank(H^T) rank(HTW−1H)=rank(HTH)=rank(HT)
即:要求 H T H^T HT有 N ( K + 1 ) N(K+1) N(K+1)个线性无关的行/列向量。
接下来,情况分为两种,需要分类讨论:
-
对初始状态有先验知识: x ˇ 0 \check x_0 xˇ0
-
对初始状态没有先验知识
有先验知识
将 H T H^T HT展开:
r a n k ( H T ) = r a n k [ 1 − A 0 T C 0 T ⋱ ⋱ ⋱ 1 − A K − 1 T C K − 1 T 1 C K T ] rank(H^T)=rank \begin{bmatrix}1 & -A_0^T&&& C_0^T\\&\ddots&\ddots&&&\ddots\\&&1&-A_{K-1}^T&&&C_{K-1}^T\\&&&1&&&&C_K^T\end{bmatrix} rank(HT)=rank 1−A0T⋱⋱1−AK−1T1C0T⋱CK−1TCKT
这是一个阶梯型的矩阵。很显然,它的每一行都是线性无关的,因而它是满秩的,因此,对初始状态 x ˇ 0 \check x_0 xˇ0有先验知识,总是可以得到一个唯一解 x ^ \hat x x^。
没有先验知识
H T H^T HT中每一列的块都表示了一部分有关系统的信息,而第一列表示对初始状态的信息。因此,没有先验知识的情况下,即去掉第一列:
r a n k ( H T ) = r a n k [ − A 0 T C 0 T 1 − A 1 T C 1 ⋱ ⋱ ⋱ 1 − A K − 1 T C K − 1 T 1 C K T ] rank(H^T)=rank \begin{bmatrix}-A_0^T&&&& C_0^T\\1&-A_1^T&&&&C_1\\&\ddots&\ddots&&&&\ddots\\&&1&-A_{K-1}^T&&&&C_{K-1}^T\\&&&1&&&&&C_K^T\end{bmatrix} rank(HT)=rank −A0T1−A1T⋱⋱1−AK−1T1C0TC1⋱CK−1TCKT
该矩阵有 K + 1 K+1 K+1行,为了判断其秩,将其最上一行移到最下,得:
r a n k ( H T ) = r a n k [ 1 − A 1 T C 1 ⋱ ⋱ ⋱ 1 − A K − 1 T C K − 1 T 1 C K T − A 0 T C 0 T ] rank(H^T)=rank \begin{bmatrix}1&-A_1^T&&&&C_1\\&\ddots&\ddots&&&&\ddots\\&&1&-A_{K-1}^T&&&&C_{K-1}^T\\&&&1&&&&&C_K^T\\-A_0^T&&&& C_0^T\end{bmatrix} rank(HT)=rank 1−A0T−A1T⋱⋱1−AK−1T1C0TC1⋱CK−1TCKT
除了最后一行,矩阵的剩下部分是阶梯型矩阵,因此,通过初等行变换,对最后一行进行化简操作:
r a n k ( H T ) = r a n k [ 1 − A 1 T C 1 ⋱ ⋱ ⋱ 1 − A K − 1 T C K − 1 T 1 C K T C 0 T A 0 T C 1 T … A 0 T A 1 T . . . A K − 2 T C K − 1 T A 0 T A 1 T . . . A K − 1 T C K T ] rank(H^T)=rank \begin{bmatrix}1&-A_1^T&&&&C_1\\&\ddots&\ddots&&&&\ddots\\&&1&-A_{K-1}^T&&&&C_{K-1}^T\\&&&1&&&&&C_K^T\\&&&&C_0^T&A_0^TC_1^T&\dots&A_0^TA_1^T...A_{K-2}^TC_{K-1}^T&A_0^TA_1^T...A_{K-1}^TC_{K}^T\end{bmatrix} rank(HT)=rank 1−A1T⋱⋱1−AK−1T1C0TC1A0TC1T⋱…CK−1TA0TA1T...AK−2TCK−1TCKTA0TA1T...AK−1TCKT
可以看出,对 H T H^T HT的秩的判断,归结于右下角部分的秩是否为 N N N:
r a n k [ C 0 T A 0 T C 1 T … A 0 T A 1 T . . . A K − 2 T C K − 1 T A 0 T A 1 T . . . A K − 1 T C K T ] = N rank\begin{bmatrix}C_0^T&A_0^TC_1^T&\dots&A_0^TA_1^T...A_{K-2}^TC_{K-1}^T&A_0^TA_1^T...A_{K-1}^TC_{K}^T\end{bmatrix}=N rank[C0TA0TC1T…A0TA1T...AK−2TCK−1TA0TA1T...AK−1TCKT]=N
假设系统为时不变系统,即对于所有的 k k k, A k = A A_k=A Ak=A, C k = C C_k=C Ck=C。并且假设 K ≫ N K\gg N K≫N,定义能观性矩阵 O O O为:
O = [ C C A ⋮ C A N − 1 ] O=\begin{bmatrix}C\\CA\\\vdots\\CA^{N-1}\end{bmatrix} O= CCA⋮CAN−1
秩条件就可以转换为:
r a n k ( O ) = N rank(O)=N rank(O)=N
注:这边的证明过程略。
也就是说,对初始状态 x ˇ 0 \check x_0 xˇ0有先验知识,当 K ≫ N K\gg N K≫N时,才可以得到一个唯一解 x ^ \hat x x^。
MAP的协方差
在MAP方法中,只得到了最大的贝叶斯后验概率,并没有得到其协方差。然而,在贝叶斯推断中,得到了贝叶斯后验概率的均值,及其协方差。
( H T W − 1 H ) x ^ = H T W − 1 z (H^TW^{-1}H)\hat x=H^TW^{-1}z (HTW−1H)x^=HTW−1z
其中, x ^ \hat x x^为均值, H T W − 1 H H^TW^{-1}H HTW−1H为协方差的逆, H T W − 1 z H^TW^{-1}z HTW−1z称为信息向量。