復(fù)習(xí)筆記Day121:卡爾曼濾波的推導(dǎo)
這篇專欄只涉及到卡爾曼濾波的一個(gè)比較原始的推導(dǎo),比較現(xiàn)代的推導(dǎo)見
https://zhuanlan.zhihu.com/p/166342719
首先來介紹一下卡爾曼濾波要解決的問題:對(duì)于給定的系統(tǒng)
其中為實(shí)際值,
為觀測(cè)值,而現(xiàn)實(shí)中測(cè)量以及系統(tǒng)本身都是存在誤差的,也就是說,在這個(gè)系統(tǒng)中,初值不再是一個(gè)數(shù),而是服從某個(gè)分布的隨機(jī)變量;觀測(cè)和迭代也不可能是絕對(duì)準(zhǔn)確的,要加上一個(gè)噪聲。在這樣的假設(shè)下,模型就變成了
其中假設(shè)了初值以及噪聲都是服從正態(tài)分布的。
因?yàn)榧尤肓嗽肼?,所以要絕對(duì)精確的得知的值是不可能的,所以只能去求在已知信息下,關(guān)于
的最優(yōu)估計(jì)
,其中后一個(gè)k代表前k步的信息作為已知信息
首先需要明確的是何為最優(yōu),在我參考的教材中,對(duì)最優(yōu)的定義見復(fù)習(xí)筆記Day119,同樣在那篇文章里說明了,此時(shí)有,也就是說:在已知觀測(cè)值
的情況下,對(duì)
的最優(yōu)估計(jì)正是限制在這些觀測(cè)值下迭代條件期望。下面分幾步來給出計(jì)算這個(gè)值的遞推公式
注意這里的迭代關(guān)系都是線性的,故都是服從某個(gè)多維正態(tài)分布的(注意它們是向量而不是一個(gè)數(shù))
首先先來研究一下如果隨機(jī)變量的概率密度函數(shù)為
,隨機(jī)變量
的概率密度函數(shù)為
,它們的聯(lián)合分布的概率密度函數(shù)為
。那么
在
的限制下的條件概率密度函數(shù)如何?,也就是去計(jì)算
下面來做一些假設(shè),設(shè),
之間的協(xié)方差矩陣為
,那么隨機(jī)變量
的協(xié)方差矩陣就是
,于是就有下面的計(jì)算過程,計(jì)算過程其實(shí)不是很復(fù)雜,不過寫的比較詳細(xì),所以看起來很長(zhǎng)。
記,則
,進(jìn)而
,從后面的結(jié)果來看,這樣做是為了把
單獨(dú)分離出來。
從而
其中最后一個(gè)等號(hào)的計(jì)算過程如下
也就是說
注意到這個(gè)式子中,同樣可以視為某個(gè)服從正態(tài)分布的隨機(jī)變量的概率密度函數(shù)
接下來來計(jì)算
記
,注意這樣假設(shè)把y視為了常量,那么
注意這里把視為了一個(gè)數(shù),而
是
的縮寫,所以如果把
視為一個(gè)隨機(jī)變量,那么
也是一個(gè)隨機(jī)變量,所以干脆記成
(這塊不太能講清楚,湊合著看吧)。總之,這樣就得到了
接下來,為了獲得遞推式,來計(jì)算,其中
都是服從正態(tài)分布的。先考慮簡(jiǎn)單的情況,即
是相互獨(dú)立的情況
和上面一樣,也有
接下來討論相關(guān)的情況,實(shí)際上有結(jié)論
,這里的
指的是
減去了Z在Y條件下的最優(yōu)預(yù)測(cè)值,即
。這個(gè)結(jié)論的證明如下
其中第三個(gè)等號(hào)和之前條件概率密度函數(shù)的推導(dǎo)思路是一樣的,第五個(gè)等號(hào)開始把視為了隨機(jī)變量,不過是隨機(jī)變量還是常量其實(shí)無所謂了吧···反正這里只是一個(gè)簡(jiǎn)化計(jì)算的符號(hào)
為了得到結(jié)論,只需要注意到
所以總而言之,上面的式子確實(shí)說明了
因?yàn)橥瑫r(shí)也有,而
之間是相互獨(dú)立的,所以上面的過程也可以看成把
與
無關(guān)的部分提取了出來再做利用先去的結(jié)論
有了這些結(jié)論,接下來就可以計(jì)算了
其中第三個(gè)等號(hào)是因?yàn)?img type="latex" class="latex" src="http://api.bilibili.com/x/web-frontend/mathjax/tex?formula=%5Ceta(k-1)" alt="%5Ceta(k-1)">與都是無關(guān)的,下面就來計(jì)算一下第三個(gè)等號(hào)的第二項(xiàng)的各個(gè)系數(shù),首先有
那么
其中第三個(gè)等號(hào)是因?yàn)?/p>
現(xiàn)在記,則
同理
現(xiàn)在尚且需要得到的遞推關(guān)系式,因?yàn)?/p>
所以
這樣一來,就得到了一個(gè)遞推關(guān)系:在已知的情況下,可以計(jì)算出
,進(jìn)而可以計(jì)算出
,據(jù)此又可以算出
,此外根據(jù)
還可以計(jì)算出
,進(jìn)而算出
,有了這些,就可以求出
了,這樣就完成了一次迭代
寫到這里其實(shí)已經(jīng)推導(dǎo)完了,不過和課本上的格式不太一樣,為了規(guī)范還是按課本上的來吧
記,那么之前的遞推式就可以寫成
其中第二個(gè)等號(hào)由之前的推導(dǎo)的第三個(gè)等號(hào)可以得到
而
因?yàn)?/p>
故
所以
進(jìn)一步化簡(jiǎn)可得
(這兩個(gè)公式我直接抄書了,實(shí)在太復(fù)雜了)
總之這樣一來就可以得到計(jì)算的方法了,如下圖所示

這和我之前講的方法應(yīng)該是一樣的(大概吧),為了方便觀看再把相關(guān)的公式貼出來一下吧,其實(shí)相關(guān)的推導(dǎo)都在上面了

這個(gè)推導(dǎo)可以說是又臭又長(zhǎng)了,所以再次建議大家看看我在一開始發(fā)的那個(gè)鏈接上的推導(dǎo),那個(gè)推導(dǎo)更接近本質(zhì)。不過不管怎么說,這個(gè)推導(dǎo)我覺得更加直接,沒有那么多彎彎繞繞,對(duì)于一個(gè)初學(xué)的人來說,雖然可能不會(huì)真的去把每一個(gè)公式都驗(yàn)證一遍(除非像我這么閑),但是也能很快的知道一個(gè)大致的思路,只能說各有所長(zhǎng)吧···
接下來如果我還有雅興的話,大概會(huì)試著應(yīng)用一下這個(gè)玩意吧,如果沒有雅興就沒了。