淺談卡爾曼濾波
文章以最小二乘法為切入點展開討論卡爾曼濾波。卡爾曼濾波與最小二乘法只有很小的區別。
經典最小二乘法解決的問題: 考慮下面的
每次測量都有自己的誤差.
這產生了一個問題,那就是每次測量誤差都不一樣,不能一概而論,如果每次測量都同樣的權重。會導致結果被某些誤差比較大的數據帶偏。(其實多數情況下誤差分佈也是不知道的),所以更通用的形式是帶權最小二乘法:
其中:
考慮一個有點複雜的問題:
兩架飛機
而往往我們自身的狀態也在改變。我們對自身狀態的改變也是一個帶有雜訊的測量。
這一過程可以表示為:
這裡,如果我們單看
卡爾曼濾波將會以下面的方式來估計狀態:
上圖中,假設
黃色箭頭表示我們對
如果沒有
注意:此時可以假設
最小二乘法
其中,
其中:
你也可以認為
為什麼權重要是
這裡其實假設了我們已經知道了測量誤差的方差,但現實中我們往往是不知道的。把它假設出來,只是為了便於數學上的說明。如果不知道,那麼大可認為方差都是一樣。此時第一直覺是設置一個常數。其實大可認為是
那麼一般最小二乘法中,
經典的求導,令:
則:
一般會記:
正如標題曲線擬合那樣,最小二乘法曲線擬合是不會隨時間變化的。而
下面你會看到卡爾曼濾波如何將最小二乘法應用到上面
協方差矩陣
注意:
證明:
其中:
解釋一下:
當我們知道誤差
則:
這裡,
注意:到這裡我們只需要知道了協方差矩陣即可立即有:
進一步令
得到一組遞推關係。將協方差轉為在線計算。
協方差傳遞
注意,之所以要傳遞協方差很容易理解。上一時刻與當前時刻的狀態是不同。比如參考系
由於
對於:
解釋一下,對於前面的式子中,都是在最小二乘法的背景下來討論的。那個時候,
那麼:
協方差傳遞矩陣為:
其中:
這樣就方便我們將最小二乘法擴展到
卡爾曼濾波
這裡,為了區分矩陣的逆。用上標
但,此時
所以修改最小二乘法。使它只需要使用
最小二乘法與卡爾曼濾波
在最小二乘法中:
因為:
得到:
整理一下:
這樣,我們不需要維護
在卡爾曼濾波中的形式為:
結合
到這裡,唯一與我們看到的卡爾曼濾波那幾個公式形式不同的是
有時候,為了方便計算,會定義:
出現了 經典的五個公式的影子。
遞推計算
一個精巧的矩陣反演:
任意給定兩個可逆矩陣
令:
這也就是說,只要矩陣
那麼遞推計算
根據
令:
則:
卡爾曼濾波更新公式總結
如此,卡爾曼濾波的基本形式也已經走通。本質上還是最小二乘法。只是在狀態轉移時傳遞了協方差。那麼最小二乘法的幾種形式均可以引用在卡爾曼濾波。例如設置遺忘。
關於這5個公式:
回到最初
然後通過
如麼沒有
設置初始值
根據最小二乘法:
得到:
其中,
即:
這是不是就在說明,當我們沒有任何觀測數據時,
推薦閱讀: