对SLAM系统中的协方差矩阵与信息矩阵,以及舒尔补和边缘化的理解

首先关于什么是协方差矩阵与信息矩阵。
在零均值的多元高斯分布中有如下概率形式: p ( x ) = 1 Z e x p ( − 1 2 x ⊤ Σ − 1 x ) p(x)={1\over Z}exp(-{1\over 2}x^⊤Σ^{−1}x) p(x)=Z1exp(21xΣ1x)其中 Σ Σ Σ协方差矩阵,而协方差矩阵的逆 Λ = Σ − 1 Λ = Σ−1 Λ=Σ1则为信息矩阵。比如在 X X X为三维变量时,协方差矩阵 Σ i j = E ( x i x j ) Σ_{ij}=E(x_ix_j) Σij=E(xixj)为对应元素求期望。


样例 v i v_i vi相互独立,且各自服从协方差为 σ i 2 \sigma^2_i σi2的高斯分布。
对SLAM系统中的协方差矩阵与信息矩阵,以及舒尔补和边缘化的理解_第1张图片对SLAM系统中的协方差矩阵与信息矩阵,以及舒尔补和边缘化的理解_第2张图片
根据协方差的计算公式 Σ i j = E ( x i x j ) Σ_{ij}=E(x_ix_j) Σij=E(xixj),可求解得到:
Σ 11 = E ( x 1 x 1 ) = E ( w 1 v 2 + v 1 ) ( w 1 v 2 + v 1 ) = w 1 2 E ( v 2 2 ) + 2 w 1 E ( v 1 v 2 ) + E ( v 1 2 ) = w 1 2 σ 2 2 + σ 1 2 Σ_{11}=E(x_1x_1)=E(w_1v_2+v_1)(w_1v_2+v_1) \\ =w_1^2E(v^2_2)+2w_1E(v_1v_2)+E(v_1^2) \\ =w^2_1 \sigma^2_2+\sigma^2_1 Σ11=E(x1x1)=E(w1v2+v1)(w1v2+v1)=w12E(v22)+2w1E(v1v2)+E(v12)=w12σ22+σ12同理可得到整个协方差矩阵:
Σ = [ w 1 2 σ 2 2 + σ 1 2 w 1 σ 2 2 w 1 w 3 σ 2 2 w 1 σ 2 2 σ 2 2 w 3 σ 2 2 w 1 w 3 σ 2 2 w 3 σ 2 2 w 3 2 σ 2 2 + σ 3 2 ] Σ=\begin{bmatrix} w^2_1 \sigma^2_2+\sigma^2_1 & w_1\sigma^2_2 & w_1w_3\sigma^2_2 \\ w_1\sigma^2_2 & \sigma_2^2 & w_3\sigma^2_2 \\ w_1w_3\sigma^2_2 & w_3\sigma^2_2 & w_3^2\sigma^2_2+\sigma^2_3\\ \end{bmatrix} Σ=w12σ22+σ12w1σ22w1w3σ22w1σ22σ22w3σ22w1w3σ22w3σ22w32σ22+σ32其信息矩阵的求解等于它的逆,直接求解较为困难,这里通过联合高斯分布计算得到协方差的逆。 p ( x 1 , x 2 , x 3 ) = p ( x 2 ) p ( x 1 ∣ x 2 ) p ( x 3 ∣ x 2 ) p(x_1,x_2,x_3)=p(x_2)p(x_1|x_2)p(x_3|x_2) p(x1,x2,x3)=p(x2)p(x1x2)p(x3x2)带入如下形式: p ( x ) = 1 Z e x p ( − 1 2 x ⊤ Σ − 1 x ) p(x)={1\over Z}exp(-{1\over 2}x^⊤Σ^{−1}x) p(x)=Z1exp(21xΣ1x) p ( x 1 , x 2 , x 3 ) = 1 Z 1 e x p ( − x 2 2 2 σ 2 2 ) 1 Z e x p ( − ( x 1 − w 1 x 2 ) 2 2 σ 1 2 ) 1 Z e x p ( − ( x 3 − w 3 x 2 ) 2 σ 3 2 ) = 1 2 e x p ( − 1 2 [ x 1 x 2 x 3 ] [ 1 σ 1 2 − w 1 σ 1 2 0 − w 1 σ 1 2 w 1 2 σ 1 2 + 1 σ 2 2 + w 3 2 σ 1 2 − w 3 σ 3 2 0 w 3 σ 3 2 1 σ 3 2 ] [ x 1 x 2 x 3 ] ) = 1 Z e x p ( − 1 2 x ⊤ Σ − 1 x ) p(x_1,x_2,x_3)={\color{green}{1\over Z_1}exp(-{x_2^2\over 2\sigma^2_2})}{\color{red}{1\over Z}exp(-{(x_1-w_1x_2)^2\over 2\sigma_1^2})}{\color{blue}{1\over Z}exp(-{(x_3-w_3x_2)^2\over \sigma_3^2})} \\ ={1\over 2}exp(-{1\over 2} \begin{bmatrix} x_1 & x_2 & x_3\\ \end{bmatrix} \begin{bmatrix} {\color{red}{1\over \sigma_1^2} }& {\color{red}-{w_1\over \sigma_1^2} }& 0 \\{\color{red} -{w_1\over \sigma_1^2}} & {\color{red}{w^2_1\over \sigma_1^2}}+{\color{green}{1\over \sigma_2^2}}+{\color{blue}{w^2_3\over \sigma_1^2}} &{\color{blue} -{w_3\over \sigma_3^2} }\\ 0 & {\color{blue}{w_3\over \sigma_3^2} }& {\color{blue}{1\over \sigma_3^2}}\\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3\\ \end{bmatrix} ) \\ ={1\over Z}exp(-{1\over 2}x^⊤Σ^{−1}x) p(x1,x2,x3)=Z11exp(2σ22x22)Z1exp(2σ12(x1w1x2)2)Z1exp(σ32(x3w3x2)2)=21exp(21[x1x2x3]σ121σ12w10σ12w1σ12w12+σ221+σ12w32σ32w30σ32w3σ321x1x2x3)=Z1exp(21xΣ1x)由此得到协方差矩阵的逆: Σ − 1 Σ^{−1} Σ1,即信息矩阵。
协方差逆矩阵中如果坐标为 ( i , j ) (i, j) (i,j)的元素为 0,表示元素 i i i j j j在其他变量固定的情况下条件独立。协方差中非对角元素 Σ i j > 0 Σ_{ij}>0 Σij>0表示俩变量正相关,而在信息矩阵 Λ i j < 0 Λ_{ij}<0 Λij<0表示正相关。


如果我们移除变量,信息矩阵或协方差矩阵如何变化。实际操作过程中并不会有这种颜色标记。这时,需要引入marginalization (边缘化)Schur’s complement (舒尔补) 来解决这个问题.

舒尔补的定义:
给定任意矩阵块M,如下:
M = [ A B C D ] M= \begin{bmatrix} A&B \\C&D\\ \end{bmatrix} M=[ACBD]

  • 如果,矩阵快D是可逆的,则 A − B D − 1 C A-BD^{-1}C ABD1C称之为D关于M的舒尔补。
  • 如果,矩阵快A是可逆的,则 D − C A − 1 B D-CA^{-1}B DCA1B称之为A关于M的舒尔补。

舒尔补的由来,将M矩阵变成上三角或者下三角的过程中:
[ I 0 − C A − 1 I ] [ A B C D ] = [ A B 0 Δ A ] \begin{bmatrix} I &0 \\ -CA^{-1}&I\\ \end{bmatrix} \begin{bmatrix} A&B \\C&D\\ \end{bmatrix}= \begin{bmatrix} A&B \\0&\Delta_A\\ \end{bmatrix} [ICA10I][ACBD]=[A0BΔA] [ A B C D ] [ I − A − 1 B 0 I ] = [ A 0 C Δ A ] \begin{bmatrix} A&B \\C&D\\ \end{bmatrix} \begin{bmatrix} I &-A^{-1}B \\0 &I\\ \end{bmatrix} = \begin{bmatrix} A&0 \\C&\Delta_A\\ \end{bmatrix} [ACBD][I0A1BI]=[AC0ΔA]其中, Δ A = D − C A − 1 B \Delta_A=D-CA^{-1}B ΔA=DCA1B,联合上式,可将M矩阵变成对角形矩阵:
[ I 0 − C A − 1 I ] [ A B C D ] [ I − A − 1 B 0 I ] = [ A 0 0 Δ A ] \begin{bmatrix} I &0 \\ -CA^{-1}&I\\ \end{bmatrix} \begin{bmatrix} A&B \\C&D\\ \end{bmatrix} \begin{bmatrix} I &-A^{-1}B \\0 &I\\ \end{bmatrix} = \begin{bmatrix} A&0 \\0&\Delta_A\\ \end{bmatrix} [ICA10I][ACBD][I0A1BI]=[A00ΔA]矩阵M可写成: [ A B C D ] = [ I 0 C A − 1 I ] [ A 0 0 Δ A ] [ I A − 1 B 0 I ] \begin{bmatrix} A&B \\C&D\\ \end{bmatrix} = \begin{bmatrix} I &0 \\ CA^{-1}&I\\ \end{bmatrix}\begin{bmatrix} A&0 \\0&\Delta_A\\ \end{bmatrix}\begin{bmatrix} I &A^{-1}B \\0 &I\\ \end{bmatrix} [ACBD]=[ICA10I][A00ΔA][I0A1BI]因为 [ I − A − 1 B 0 I ] [ I A − 1 B 0 I ] = I \begin{bmatrix} I &-A^{-1}B \\0 &I\\ \end{bmatrix}\begin{bmatrix} I &A^{-1}B \\0 &I\\ \end{bmatrix}=I [I0A1BI][I0A1BI]=I由此可得到矩阵M的逆: [ A B C D ] − 1 = [ I − A − 1 B 0 I ] [ A − 1 0 0 Δ A − 1 ] [ I 0 − C A − 1 I ] \begin{bmatrix} A&B \\C&D\\ \end{bmatrix} ^{-1}=\begin{bmatrix} I &-A^{-1}B \\0 &I\\ \end{bmatrix}\begin{bmatrix} A^{-1}&0 \\0&\Delta^{-1}_A\\ \end{bmatrix} \begin{bmatrix} I &0 \\- CA^{-1}&I\\ \end{bmatrix} [ACBD]1=[I0A1BI][A100ΔA1][ICA10I]

在百度百科中有一段背景很容易理解:
A x + B y = a C x + D y = b Ax+By=a \\ Cx+Dy=b Ax+By=aCx+Dy=b对第二个式子乘上 B D − 1 BD^{-1} BD1便可以得到 B D − 1 C X + B y = B D − 1 b BD^{-1}CX+By=BD^{-1}b BD1CX+By=BD1b然后与第一个式子相减: ( A − B D − 1 C ) x = a − B D − 1 b (A-BD^{-1}C)x=a-BD^{-1}b (ABD1C)x=aBD1b


舒尔补应用于多元高斯分布(例):
假设多元变量 x x x服从高斯分布,且有两部分组成: x = [ a b ] ⊤ x=\begin{bmatrix} a & b\\ \end{bmatrix}^{⊤} x=[ab],变量之间构成的协方差矩阵为: K = [ A C ⊤ C D ] K=\begin{bmatrix} A&C^⊤\\C&D\\ \end{bmatrix} K=[ACCD]其中 A = c o v ( a , a ) , D = c o v ( b , b ) , C = c o v ( a , b ) A=cov(a,a),D=cov(b,b),C=cov(a,b) A=cov(a,a),D=cov(b,b),C=cov(a,b),由此变量 x x x的概率分布为: P ( a , b ) = P ( a ) P ( b ∣ a ) ∝ e x p ( − 1 2 [ a b ] ⊤ [ A C ⊤ C D ] [ a b ] ) ∝ e x p ( − 1 2 [ a b ] ⊤ [ I − A − 1 C ⊤ 0 I ] [ A − 1 0 0 Δ A − 1 ] [ I 0 − C A − 1 I ] [ a b ] ) ∝ e x p ( − 1 2 a ⊤ A − 1 a ) ⏟ p ( a ) e x p ( − 1 2 ( b − A − 1 C ⊤ b ) ⊤ Δ A − 1 ( b − A − 1 C ⊤ b ) ) ⏟ p ( b ∣ a ) P(a,b)=P(a)P(b|a)∝exp\left({-{1\over 2}\begin{bmatrix} a \\ b\\ \end{bmatrix}^{⊤}\begin{bmatrix} A&C^⊤\\C&D\\ \end{bmatrix}\begin{bmatrix} a \\ b\\ \end{bmatrix}}\right) \\ ∝exp\left({-{1\over 2}\begin{bmatrix} a \\ b\\ \end{bmatrix}^{⊤}\begin{bmatrix} I &-A^{-1}C^⊤ \\0 &I\\ \end{bmatrix}\begin{bmatrix} A^{-1}&0 \\0&\Delta^{-1}_A\\ \end{bmatrix} \begin{bmatrix} I &0 \\- CA^{-1}&I\\ \end{bmatrix} \begin{bmatrix} a \\ b\\ \end{bmatrix}}\right) \\ ∝\underbrace{exp \left({-{1\over 2}a^⊤A^{-1}a}\right)}_{p(a)} \underbrace{exp\left({-{1\over 2}(b-A^{-1}C^⊤b)^⊤\Delta^{-1}_A(b-A^{-1}C^⊤b)}\right)}_{p(b|a)} P(a,b)=P(a)P(ba)exp(21[ab][ACCD][ab])exp(21[ab][I0A1CI][A100ΔA1][ICA10I][ab])p(a) exp(21aA1a)p(ba) exp(21(bA1Cb)ΔA1(bA1Cb))使用舒尔补之后,便可以从多元高斯分布 P ( a , b ) P(a,b) P(a,b)中分解得到边际概率 p ( a ) p(a) p(a)和条件概率 p ( b ∣ a ) p(b|a) p(ba)
边际概率 P ( a ) ∼ N ( 0 , A ) P(a) ∼\mathcal N (0,A) P(a)N(0,A)的协方差就是从联合分布中取对应的矩阵块就行了。 P ( b ∣ a ) ∼ N ( A − 1 C ⊤ b , Δ A ) P(b|a) ∼\mathcal N (A^{−1}C^⊤b, \Delta_A) P(ba)N(A1Cb,ΔA),协方差变为 a a a 对应的舒尔补,均值也变了。
在基于优化的 SLAM 问题中,我们往往直接操作的是信息矩阵,而不是协方差矩阵。

因此假设我们已知信息矩阵:
Λ = K − 1 = [ A C ⊤ C D ] − 1 Λ=K^{-1}=\begin{bmatrix} A&C^⊤\\C&D\\ \end{bmatrix}^{-1} Λ=K1=[ACCD]1根据舒尔补公式中的逆运算可得到: [ A C ⊤ C D ] − 1 = [ A − 1 + A − 1 C ⊤ Δ A − 1 C A − 1 − A − 1 C ⊤ Δ A − 1 − Δ A − 1 C A − 1 Δ A − 1 ] = △ [ Λ a a Λ a b Λ b a Λ b b ] \begin{bmatrix} A&C^⊤\\C&D\\ \end{bmatrix}^{-1}=\begin{bmatrix} A^{-1}+A^{-1}C^⊤\Delta_A^{-1}CA^{-1} & -A^{-1}C^⊤\Delta^{-1}_A\\-\Delta^{-1}_ACA^{-1}& \Delta^{-1}_A\\ \end{bmatrix} \overset{△}{=}\begin{bmatrix} Λ_{aa}&Λ_{ab}\\Λ_{ba}&Λ_{bb}\\ \end{bmatrix} [ACCD]1=[A1+A1CΔA1CA1ΔA1CA1A1CΔA1ΔA1]=[ΛaaΛbaΛabΛbb]在上面求解协方差的时候已经知道:
条件概率 P ( b ∣ a ) ∼ N ( A − 1 C ⊤ b , Δ A ) P(b|a) ∼\mathcal N (A^{−1}C^⊤b, \Delta_A) P(ba)N(A1Cb,ΔA),其协方差为 Δ A \Delta_A ΔA,则其信息矩阵 Λ = K − 1 = Δ A − 1 = Λ b b {\color{red}Λ=K^{-1}=\Delta_A^{-1}=Λ_{bb}} Λ=K1=ΔA1=Λbb
边际概率 P ( a ) ∼ N ( 0 , A ) P(a) ∼\mathcal N (0,A) P(a)N(0,A),其协方差为 A A A,可通过消元得到其信息矩阵 Λ = A − 1 = Λ a a − Λ a b Λ b b − 1 Λ b a {\color{red}Λ=A^{-1}=Λ_{aa}-Λ_{ab}Λ_{bb}^{-1}Λ_{ba}} Λ=A1=ΛaaΛabΛbb1Λba

综上,便可以使用舒尔补去除信息矩阵中的变量,例如去除例子中的 x 3 x_3 x3
Σ − 1 = [ 1 σ 1 2 − w 1 σ 1 2 0 − w 1 σ 1 2 w 1 2 σ 1 2 + 1 σ 2 2 + w 3 2 σ 1 2 − w 3 σ 3 2 0 w 3 σ 3 2 1 σ 3 2 ] Σ^{-1} = \left[ \begin{array}{c c|c} {\color{red}{1\over \sigma_1^2} }& {\color{red}-{w_1\over \sigma_1^2} }& 0 \\{\color{red} -{w_1\over \sigma_1^2}} & {\color{red}{w^2_1\over \sigma_1^2}}+{\color{green}{1\over \sigma_2^2}}+{\color{blue}{w^2_3\over \sigma_1^2}} &{\color{blue} -{w_3\over \sigma_3^2} } \\ \hline0 & {\color{blue}{w_3\over \sigma_3^2} }& {\color{blue}{1\over \sigma_3^2}}\\ \end{array}\right] Σ1=σ121σ12w10σ12w1σ12w12+σ221+σ12w32σ32w30σ32w3σ321从联合分布 P ( x 1 , x 2 , x 3 ) P(x1, x2, x3) P(x1,x2,x3) 中 marg 掉变量 x 3 x_3 x3 ,即 P ( x 1 , x 2 ) P(x1, x2) P(x1,x2) 对应的信息矩阵可以用上面红色公式得到:
K 2 − 1 = Λ a a − Λ a b Λ b b − 1 Λ b a = Λ a a − [ 0 − w 3 σ 3 2 ] σ 3 2 [ 0 − w 3 σ 3 2 ] = Λ a a [ 0 0 0 w 3 σ 3 2 ] = [ 1 σ 1 2 − w 1 σ 1 2 − w 1 σ 1 2 w 1 2 σ 1 2 + 1 σ 2 2 ] K_2^{-1}=Λ_{aa}-Λ_{ab}Λ_{bb}^{-1}Λ_{ba}\\=Λ_{aa}-\begin{bmatrix} 0 \\ -{w_3 \over \sigma^2_3}\\ \end{bmatrix}\sigma^2_3\begin{bmatrix} 0&-{w_3 \over \sigma^2_3}\\ \end{bmatrix}\\=Λ_{aa}\begin{bmatrix} 0&0 \\0& {w_3 \over \sigma^2_3}\\ \end{bmatrix}=\begin{bmatrix} {\color{red} {1 \over \sigma^2_1}} & {\color{red} -{w_1\over \sigma^2_1} }\\ {\color{red} -{w_1 \over \sigma^2_1} }& {\color{red}{w^2_1 \over \sigma^2_1}}+ {\color{green}{1 \over \sigma^2_2}}\\ \end{bmatrix} K21=ΛaaΛabΛbb1Λba=Λaa[0σ32w3]σ32[0σ32w3]=Λaa[000σ32w3]=[σ121σ12w1σ12w1σ12w12+σ221]可以发现,和 x 3 x_3 x3有关的蓝色部分已经被消除。

你可能感兴趣的:(SLAM,协方差矩阵,信息矩阵,舒尔补)