舒尔补在SLAM中的应用
舒爾補在SLAM中的應用
- 1.舒爾補的定義
- 2.舒爾補的由來
- 3.舒爾補在多元高斯分布中的應用
- 3.1 多元變量的高斯分布
- 3.2 邊緣概率和條件概率的協方差矩陣
- 3.3 邊緣概率和條件概率的信息矩陣
- 3.4總結
- 4. 舒爾補在vslam中的應用
1.舒爾補的定義
對于任意的矩陣MMM,如下所示
(1)M=[ABCD]M = \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right]\tag{1} M=[AC?BD?](1)
如果矩陣塊DDD是可逆的,則 A?BD?1CA-BD^{-1}CA?BD?1C 稱之為 DDD 關于MMM的舒爾補。
如果矩陣塊AAA是可逆的,則 D?CA?1BD-CA^{-1}BD?CA?1B 稱之為 AAA 關于MMM的舒爾補。
2.舒爾補的由來
在將MMM變為上三角和下三角的過程中,都會遇到舒爾補:
(2)[I0?CA?1I][ABCD]=[AB0ΔA]\left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] = \left[ \begin{matrix} A& B\\ 0& \Delta A \\ \end{matrix}\right] \tag{2}[I?CA?1?0I?][AC?BD?]=[A0?BΔA?](2)
(3)[ABCD][I?A?1B0I]=[A0CΔA]\left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \left[ \begin{matrix} I& -A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& 0\\ C& \Delta A \\ \end{matrix}\right] \tag{3} [AC?BD?][I0??A?1BI?]=[AC?0ΔA?](3)
其中:ΔA=D?CA?1B\Delta A =D-CA^{-1}BΔA=D?CA?1B。將兩式聯合起來,將M變形為對角形:
(4)[I0?CA?1I][ABCD][I?A?1B0I]=[A00ΔA]\left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \left[ \begin{matrix} I& -A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& 0\\ 0& \Delta A \\ \end{matrix}\right] \tag{4} [I?CA?1?0I?][AC?BD?][I0??A?1BI?]=[A0?0ΔA?](4)
反過來,可以從對角形恢復MMM:
(5)[I0CA?1I][A00ΔA][IA?1B0I]=[ABCD]\left[ \begin{matrix} I& 0\\ CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& 0\\ 0& \Delta A \\ \end{matrix}\right] \left[ \begin{matrix} I& A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \tag{5} [ICA?1?0I?][A0?0ΔA?][I0?A?1BI?]=[AC?BD?](5)
舒爾補可以快速求解矩陣的逆
因為
(6)M=[ABCD]=[I0CA?1I][A00ΔA][IA?1B0I]M= \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] = \left[ \begin{matrix} I& 0\\ CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& 0\\ 0& \Delta A \\ \end{matrix}\right] \left[ \begin{matrix} I& A^{-1}B\\ 0& I \\ \end{matrix}\right] \tag{6} M=[AC?BD?]=[ICA?1?0I?][A0?0ΔA?][I0?A?1BI?](6)
所以
(7)M?1=[ABCD]=[I?A?1B0I][A?100ΔA?1][I0?CA?1I]M^{-1}= \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] = \left[ \begin{matrix} I& -A^{-1}B\\ 0& I \\ \end{matrix}\right] \left[ \begin{matrix} A^{-1}& 0\\ 0& \Delta A^{-1} \\ \end{matrix}\right] \left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \tag{7}M?1=[AC?BD?]=[I0??A?1BI?][A?10?0ΔA?1?][I?CA?1?0I?](7)
3.舒爾補在多元高斯分布中的應用
3.1 多元變量的高斯分布
假設多元變量 xxx 服從高斯分布,且由兩部分組成:x=[a,b]Tx =[a,b]^Tx=[a,b]T,變量之間構成之間的協方差矩陣為:
(8)K=[ACTCD]K = \left[ \begin{matrix} A& C^T\\ C& D \\ \end{matrix}\right] \tag{8}K=[AC?CTD?](8)
其中A=cov(a,a),D=cov(b,b),C=cov(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)。所以變量xxx的概率分布為
(9)P(a,b)=P(a)P(b∣a)∝exp(?12[ab]T[ACTCD]?1[ab])P(a,b) = P(a)P(b|a)\propto exp\left( -\frac{1}{2}\left[\begin{matrix} a\\ b\\ \end{matrix} \right]^T \left[ \begin{matrix} A& C^T\\ C& D \\ \end{matrix}\right]^{-1} \left[\begin{matrix} a\\ b\\ \end{matrix} \right] \right)\tag{9}P(a,b)=P(a)P(b∣a)∝exp(?21?[ab?]T[AC?CTD?]?1[ab?])(9)
利用舒爾補對上式進行分解,則有
(10)P(a,b)∝exp(?12[ab]T[ACTCD]?1[ab])∝exp(?12[ab]T[I?A?1CT0I][A?100ΔA?1][I0?CA?1I][ab])∝exp(?12[aT(b?CA?1a)T][A?100ΔA?1][ab?CA?1a])∝exp(?12(aTA?1a)+(b?CA?1a)TΔA(b?CA?1a))∝exp(?12(aTA?1a))exp(?12(b?CA?1a)TΔA(b?CA?1a))P(a,b) \propto exp\left( -\frac{1}{2}\left[\begin{matrix} a\\ b\\ \end{matrix} \right]^T \left[ \begin{matrix} A& C^T\\ C& D \\ \end{matrix}\right]^{-1} \left[\begin{matrix} a\\ b\\ \end{matrix} \right] \right) \\ \propto exp\left( -\frac{1}{2}\left[\begin{matrix} a\\ b\\ \end{matrix} \right]^T \left[ \begin{matrix} I& -A^{-1}C^T\\ 0& I \\ \end{matrix}\right] \left[ \begin{matrix} A^{-1}& 0\\ 0& \Delta A^{-1} \\ \end{matrix}\right] \left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \left[\begin{matrix} a\\ b\\ \end{matrix} \right] \right) \\ \propto exp\left( -\frac{1}{2} \left[ \begin{matrix} a^T & (b-CA^{-1}a)^T\\ \end{matrix}\right] \left[ \begin{matrix} A^{-1}& 0\\ 0& \Delta A^{-1} \\ \end{matrix}\right] \left[ \begin{matrix} a\\ b-CA^{-1}a \\ \end{matrix}\right] \right) \\ \propto exp\left( -\frac{1}{2} (a^TA^{-1}a)+ (b-CA^{-1}a)^T\Delta A(b-CA^{-1}a) \right) \\ \propto exp\left( -\frac{1}{2} (a^TA^{-1}a)\right) exp\left(-\frac{1}{2} (b-CA^{-1}a)^T\Delta A(b-CA^{-1}a) \right) \\ \tag{10}P(a,b)∝exp(?21?[ab?]T[AC?CTD?]?1[ab?])∝exp(?21?[ab?]T[I0??A?1CTI?][A?10?0ΔA?1?][I?CA?1?0I?][ab?])∝exp(?21?[aT?(b?CA?1a)T?][A?10?0ΔA?1?][ab?CA?1a?])∝exp(?21?(aTA?1a)+(b?CA?1a)TΔA(b?CA?1a))∝exp(?21?(aTA?1a))exp(?21?(b?CA?1a)TΔA(b?CA?1a))(10)
所以有(11)P(a)=exp(?12(aTA?1a))P(a) =exp\left( -\frac{1}{2}(a^TA^{-1}a)\right)\tag{11} P(a)=exp(?21?(aTA?1a))(11)
(12)P(b∣a)=exp(?12(b?CA?1a)TΔA(b?CA?1a))P(b|a) =exp\left(-\frac{1}{2} (b-CA^{-1}a)^T\Delta A(b-CA^{-1}a) \right) \tag{12}P(b∣a)=exp(?21?(b?CA?1a)TΔA(b?CA?1a))(12)
這意味著我們能從多元高斯分布P(a,b)P(a,b)P(a,b)中分解得到邊界概率P(a)P(a)P(a)和條件概率P(b|a)。
3.2 邊緣概率和條件概率的協方差矩陣
對于邊緣概率P(a)P(a)P(a),有
(13)P(a)=∫P(a,b)dbP(a) = \int P(a,b)db\tag{13}P(a)=∫P(a,b)db(13)
(14)P(a)=exp(?12(aTA?1a))~N(0,A)P(a) =exp\left( -\frac{1}{2}(a^TA^{-1}a)\right) \sim N(0,A)\tag{14}P(a)=exp(?21?(aTA?1a))~N(0,A)(14)
特點:邊緣概率P(a)P(a)P(a)的協方差就是從聯合概率分布的協方差矩陣中取對應的矩陣塊即可
對于條件概率P(b∣a)P(b|a)P(b∣a),有
(15)P(b∣a)=exp(?12(b?CA?1a)TΔA(b?CA?1a))P(b|a) =exp\left(-\frac{1}{2} (b-CA^{-1}a)^T\Delta A(b-CA^{-1}a) \right) \tag{15}P(b∣a)=exp(?21?(b?CA?1a)TΔA(b?CA?1a))(15)
特點:條件概率P(b∣a)~N(CA?1a,ΔA)P(b|a)\sim N(CA^{-1}a,\Delta A)P(b∣a)~N(CA?1a,ΔA),協方差為aaa對應的舒爾補ΔA\Delta AΔA,均值為CA?1aCA^{-1}aCA?1a。
3.3 邊緣概率和條件概率的信息矩陣
信息矩陣是協方差矩陣的逆,所以變量xxx的信息矩陣為
(16)K?1=[ACTCD]?1=[ΛaaΛabΛbaΛbb]K^{-1} = \left[ \begin{matrix} A& C^T\\ C& D \\ \end{matrix}\right] ^{-1} = \left[ \begin{matrix} \Lambda_{aa}& \Lambda_{ab}\\ \Lambda_{ba}& \Lambda_{bb} \\ \end{matrix}\right] \tag{16} K?1=[AC?CTD?]?1=[Λaa?Λba??Λab?Λbb??](16)
由公式(7)可知,信息矩陣與協方差矩陣元素之間的關系為
(17)K?1=[A?1+A?1CTΔA?1CA?1?A?1CTΔA?1?ΔA?1CA?1ΔA?1]=[ΛaaΛabΛbaΛbb]K^{-1} = \left[ \begin{matrix} A^{-1}+A^{-1}C^T\Delta A^{-1}CA^{-1}& -A^{-1}C^T\Delta A^{-1}\\ -\Delta A^{-1}CA^{-1}& \Delta A^{-1}\\ \end{matrix}\right] = \left[ \begin{matrix} \Lambda_{aa}& \Lambda_{ab}\\ \Lambda_{ba}& \Lambda_{bb} \\ \end{matrix}\right] \tag{17} K?1=[A?1+A?1CTΔA?1CA?1?ΔA?1CA?1??A?1CTΔA?1ΔA?1?]=[Λaa?Λba??Λab?Λbb??](17)
由(14)知 邊緣概率的協方差矩陣為AAA,所以其對應的信息矩陣為A?1A^{-1}A?1,根據式(17)可知
(18)A?1=A?1+A?1CTΔA?1CA?1?(?A?1CTΔA?1(ΔA?1)?1?ΔA?1CA?1)=Λaa?ΛabΛbb?1ΛbaA^{-1} = A^{-1}+A^{-1}C^T\Delta A^{-1}CA^{-1}-(-A^{-1}C^T\Delta A^{-1}( \Delta A^{-1})^{-1} -\Delta A^{-1}CA^{-1}) =\Lambda_{aa}-\Lambda_{ab}\Lambda_{bb}^{-1}\Lambda_{ba}\tag{18}A?1=A?1+A?1CTΔA?1CA?1?(?A?1CTΔA?1(ΔA?1)?1?ΔA?1CA?1)=Λaa??Λab?Λbb?1?Λba?(18)
即邊緣概率P(a)P(a)P(a)的信息矩陣為Λaa?ΛabΛbb?1Λba\Lambda_{aa}-\Lambda_{ab}\Lambda_{bb}^{-1}\Lambda_{ba}Λaa??Λab?Λbb?1?Λba?。
由式(15)可知條件概率P(b∣a)P(b|a)P(b∣a)的協方差矩陣為ΔA\Delta AΔA,所以其信息矩陣為ΔA?1=Λbb\Delta A^{-1} =\Lambda_{bb}ΔA?1=Λbb?。
3.4總結
邊際概率對于協方差矩陣的操作是很容易的,但不好操作信息矩陣。條件概率恰好相反,對于信息矩陣容易操作,不好操作協方差矩陣。
表格總結如下
4. 舒爾補在vslam中的應用
隨著 VSLAM 系統不斷往新環境探索,就會有新的相機姿態以及看到新的環境特征,最小二乘殘差就會越來越多,信息矩陣越來越大,計算量將不斷增加。 為了保持優化變量的個數在一定范圍內,需要使用滑動窗口算法動態增加或移除優化變量。
但是該如何移除舊的狀態變量呢?
直接丟棄變量和對應的測量值,會損失信息。正確的做法是使用邊際概率,將丟棄變量所攜帶的信息傳遞給剩余變量。即根據舒爾補的在邊緣概率方面得到的結論,從P(x1,x2,x3,.....,xn)P(x_{1},x_{2},x_{3},.....,x_{n})P(x1?,x2?,x3?,.....,xn?)的協方差矩陣或信息矩陣中求得P(x2,x3,.....,xn)P(x_{2},x_{3},.....,x_{n})P(x2?,x3?,.....,xn?)的協方差矩陣或信息矩陣。該過程稱之為邊緣化。這是滑動窗口算法中非常重要的理論基礎。
該部分內容還有很多細節,以后在繼續補充。
總結
以上是生活随笔為你收集整理的舒尔补在SLAM中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个崩坏3好听的名字
- 下一篇: 一个字的好听名字