【状态估计】线性高斯系统的状态估计——离散时间的批量估计

ops/2024/9/24 11:21:58/

本章将介绍含有高斯随机变量的线性系统状态估计问题中的一些经典结论,包括重要的卡尔曼滤波器。我们将从离散时间批量(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=Ak1xk1+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 xkRN
  • 初始状态: x 0 ∈ R N ∼ N ( x ˇ 0 , P ˇ 0 ) x_0\in R^N\sim N(\check x_0,\check P_0) x0RNN(xˇ0,Pˇ0)
  • 输入: v k ∈ R N v_k\in R^N vkRN
  • 过程噪声: w k ∈ R N ∈ N ( 0 , Q k ) w_k\in R^N\in N(0,Q_k) wkRNN(0,Qk)
  • 测量: y k ∈ R M y_k\in R^M ykRM
  • 测量噪声: n k ∈ R M ∼ N ( 0 , R k ) n_k\in R^M\sim N(0,R_k) nkRMN(0,Rk)

这些变量中,除了 v k v_k vk为确定性变量之外,其他的都是随机变量。噪声和初始状态一般假设为互不相关的,并且在各个时刻与自己也互不相关。矩阵 A k ∈ R N ∗ N A_k\in R^{N*N} AkRNN称为转移矩阵, C k ∈ R M ∗ N C_k\in R^{M*N} CkRMN称为观测矩阵

尽管想知道整个系统在所有时刻的状态,然而仅仅知道以下的几个变量,并且要根据它们来估计状态 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(xv,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(xv,y))=argmax(p(yv)p(yv,x)p(xv))=argmax(p(yx)p(xv))

这里将分母去掉,因为它和 x x x无关。同时省略 p ( y ∣ v , x ) p(y|v,x) p(yv,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(yx)进行因子分解:

p ( y ∣ x ) = ∏ k = 0 K p ( y k ∣ x k ) p(y|x)=\prod_{k=0}^Kp(y_k|x_k) p(yx)=k=0Kp(ykxk)

原因: y k y_k yk只与 x k x_k xk有关

同时,也可以用贝叶斯公式对 p ( x ∣ v ) p(x|v) p(xv)进行因子分解:

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(xv)=p(x0xˇ0)k=1Kp(xkxk1,vk)

原因: x k x_k xk只与 x k − 1 x_{k-1} xk1 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(x0xˇ0)=(2π)N detPˇ01exp(21(x0xˇ0)TPˇ01(x0xˇ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(xkxk1,vk)=(2π)N detQk1exp(21(xkAk1xk1vk)TQk1(xkAk1xk1vk))

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(ykxk)=(2π)N detRk1exp(21(ykCkxk)TRk1(ykCkxk)))

需要注意:必须保证 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(yx)p(xv))=ln(p(x0xˇ0))+k=1Kln(p(xkxk1,vk))+k=0Kln(p(yxxk))

去掉与 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(yx)p(xv))21(x0xˇ0)TPˇ01(x0xˇ0)+k=1K(21(xkAk1xk1vk)TQk1(xkAk1xk1vk))+k=0K(21(ykCkxk)TRk1(ykCkxk))

定义下面这些变量:

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(x0xˇ0)TPˇ01(x0xˇ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(xkAk1xk1vk)TQk1(xkAk1xk1vk)

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(ykCkxk)TRk1(ykCkxk)

这些都是平方马氏距离,据此可以定义整体的目标函数 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=0K(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ˇ0v1v2vKy0y1yK

x = [ x 0 x 1 ⋮ x K ] x=\begin{bmatrix}x_0\\x_1\\\vdots\\x_K\end{bmatrix} x= x0x1xK

然后定义以下的块矩阵:

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= 1A0C01C1AK11CK

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ˇ0Q1QKR0R1RK

根据这些定义,可以将目标函数写成:

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(zHx)TW1(zHx)

这正是 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(zx)=ηexp(21(zHx)TW1(zHx))

其中, η \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 xTJ(x)=HTW1(zHx^)=0

( H T W − 1 H ) x ^ = H T W − 1 z (H^TW^{-1}H)\hat x=H^TW^{-1}z (HTW1H)x^=HTW1z

该方程的解 x ^ \hat x x^是经典的批量最小二乘法的解,同时也等价于传统估计理论中的固定区间平滑算法

批量最小二乘法的求解利用了矩阵求伪逆的方法。从计算角度上说,并不会真的去计算 H T W − 1 H H^TW^{-1}H HTW1H的逆,它是一种特殊的对角块结构,可以利用稀疏的求解算法来更高效地求解


贝叶斯推断

现在看一看如何计算全贝叶斯后验概率 p ( x ∣ v , y ) p(x|v,y) p(xv,y),而不是简单的最大化它

在这种情况下,可以用初始状态和输入来建立状态的先验估计: p ( x ∣ v ) p(x|v) p(xv)用运动方程来建立先验

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=Ak1xk1+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= 1A0A1A0AK2...A0AK1...A01A1AK2...A1AK1...A11AK2...A2AK1...A21AK11

v = [ x ˇ 0 v 1 v 2 ⋮ v K ] v=\begin{bmatrix}\check x_0\\v1\\v2\\\vdots\\v_K\end{bmatrix} v= xˇ0v1v2vK

w = [ w 0 w 1 ⋮ w K ] w=\begin{bmatrix}w_0\\w1\\\vdots\\w_K\end{bmatrix} w= w0w1wK

于是,提升之后的均值为:

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[(xE[x])(xe[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(xv)=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= C0C1CK

n = [ n 0 n 1 ⋮ n K ] n=\begin{bmatrix}n_0\\n_1\\\vdots\\n_K\end{bmatrix} n= n0n1nK

于是,提升之后的状态、观测联合概率密度函数可写成

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,yv)=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,yv)=p(xv,y)p(yv)

第一个因子表示的就是全贝叶斯后验概率,根据高斯推断,可以得到:

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(xv,y)=N(xˇ+PˇCT(CPˇCT+R)1(yCxˇ),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(xv,y)=N((Pˇ1+CTR1C)1(Pˇ1xˇ+CTR1y),(Pˇ1+CTR1C)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+CTR1C)1(Pˇ1xˇ+CTR1y)=(Pˇ1+CTR1C)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+CTR1C)x^=Pˇ1xˇ+CTR1y

带入 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 (ATQ1A1+CTR1C)x^=ATQ1v+CTR1y

这里需要计算 A − 1 A^{-1} A1,不过它有一个很好看的形式:

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} A1= 1A01A11AK11

如果定义:

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=[A1C]

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 (HTW1H)x^=HTW1z

这和之前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 (HTW1H)x^=HTW1z。那么,什么时候该式有唯一解呢?

线性代数理论中可知,当且仅当 H T W − 1 H H^TW^{-1}H HTW1H可逆时, 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^=(HTW1H)1HTW1z

那么, H T W − 1 H H^TW^{-1}H HTW1H什么时候可逆呢?

线性代数理论中可知,由于 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(HTW1H)=N(K+1)

又因为,一般情况下,假设 W − 1 W^{-1} W1实对称且正定,因此可以得到:

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(HTW1H)=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 1A0T1AK1T1C0TCK1TCKT

这是一个阶梯型的矩阵。很显然,它的每一行都是线性无关的,因而它是满秩的,因此,对初始状态 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 A0T1A1T1AK1T1C0TC1CK1TCKT

该矩阵有 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 1A0TA1T1AK1T1C0TC1CK1TCKT

除了最后一行,矩阵的剩下部分是阶梯型矩阵,因此,通过初等行变换,对最后一行进行化简操作:

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 1A1T1AK1T1C0TC1A0TC1TCK1TA0TA1T...AK2TCK1TCKTA0TA1T...AK1TCKT

可以看出,对 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[C0TA0TC1TA0TA1T...AK2TCK1TA0TA1T...AK1TCKT]=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 KN,定义能观性矩阵 O O O为:

O = [ C C A ⋮ C A N − 1 ] O=\begin{bmatrix}C\\CA\\\vdots\\CA^{N-1}\end{bmatrix} O= CCACAN1

秩条件就可以转换为:

r a n k ( O ) = N rank(O)=N rank(O)=N

注:这边的证明过程略。

也就是说,对初始状态 x ˇ 0 \check x_0 xˇ0有先验知识,当 K ≫ N K\gg N KN时,才可以得到一个唯一解 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 (HTW1H)x^=HTW1z

其中, x ^ \hat x x^为均值, H T W − 1 H H^TW^{-1}H HTW1H为协方差的逆, H T W − 1 z H^TW^{-1}z HTW1z称为信息向量。


http://www.ppmy.cn/ops/54885.html

相关文章

SmartEDA革新来袭:融合Multisim与Proteus精髓,引领电子设计新纪元!

在电子设计领域,每一次技术的革新都如同春风化雨,滋润着设计师们的心田。今天,我们迎来了一个划时代的电子设计自动化(EDA)工具——SmartEDA,它不仅融合了业界知名的Multisim和Proteus的精华,更…

Victor CMS v1.0 SQL 注入漏洞(CVE-2022-28060)

前言 CVE-2022-28060 是 Victor CMS v1.0 中的一个SQL注入漏洞。该漏洞存在于 /includes/login.php 文件中的 user_name 参数。攻击者可以通过发送特制的 SQL 语句,利用这个漏洞执行未授权的数据库操作,从而访问或修改数据库中的敏感信息。 漏洞详细信…

真的假不了,假的真不了

大家好,我是瑶琴呀,拥有一头黑长直秀发的女程序员。 最近,17岁的中专生姜萍参加阿里巴巴 2024 年的全球数学竞赛,取得了 12 名的好成绩,一时间在网上沸腾不止。 从最开始的“数学天才”,到被质疑&#xff…

嵌入式UI开发-lvgl+wsl2+vscode系列:8、控件(Widgets)(一)

一、前言 这里将介绍一系列控件,了解后就可以开始基础的开发了。 二、示例 1、Base Obj(基础对象) 1.1、示例1 #include "../../lv_examples.h" #if LV_BUILD_EXAMPLESvoid lv_example_obj_1(void) {lv_obj_t * obj1;obj1 lv…

我对ChatGPT-5的期待

在科技飞速发展的今天,人工智能(AI)已经成为我们生活中不可或缺的一部分。尤其是近年来,随着ChatGPT等先进AI模型的推出,我们见证了AI技术在智能水平上的巨大飞跃。作为这一领域的最新成果,GPT-5的即将发布…

深入理解分布式搜索引擎 ElasticSearch,并能基于 ELK+Kafka 搭建分布式⽇志收集系统

Elasticsearch是一个基于Lucene的分布式、多租户能力的全文搜索引擎。它提供了RESTful web接口和分布式多用户能力的全文搜索引擎,基于Apache许可证发行。以下是对Elasticsearch的深入理解以及如何基于ELK(Elasticsearch、Logstash、Kibana)加…

算法基础--------【图论】

图论(待完善) DFS:和回溯差不多 BFS:进while进行层序遍历 定义: 图论(Graph Theory)是研究图及其相关问题的数学理论。图由节点(顶点)和连接这些节点的边组成。图论的研究范围广泛,涉及路径、…

Vue 全局状态管理新宠:Pinia实战指南

文章目录 前言全局状态管理基本步骤:pinia 前言 随着Vue.js项目的日益复杂,高效的状态管理变得至关重要。Pinia作为Vue.js官方推荐的新一代状态管理库,以其简洁的API和强大的功能脱颖而出。本文将带您快速上手Pinia,从安装到应用&…