最近一段時間堕汞,終于從紛繁的文獻中走出來了,大致能縷清楚卡爾曼濾波晃琳,粒子濾波臼朗,動態(tài)貝葉斯網(wǎng)絡(luò)之間的關(guān)系了邻寿。寫一篇學(xué)習(xí)日志,mark一下视哑,用通俗易懂的話幫助自己理解那些莫名其妙的公式绣否。簡書不能輸入公式,真是蛋疼挡毅,蒜撮,,只好用圖片湊活了跪呈,確實有點丑段磨。
1.知識預(yù)熱——條件概率與貝葉斯公式
條件概率的定義: 設(shè)A,B為隨機試驗的二個3事件耗绿,且P(A)>0苹支,則稱P(B|A)為在事件A發(fā)生的條件下事件B發(fā)生的條件概率。
這條定義很簡單误阻,就不做過多解釋债蜜,需要關(guān)注它的乘法定理,
由乘法定理就很容易推出全概率公式究反,
寻定,
全概率公式也叫貝葉斯公式。
式中P(A)精耐,P(B)稱為先驗概率狼速,之所以稱為先驗概率,是因為它們根據(jù)以往經(jīng)驗和分析得到的概率卦停,不考慮與其他事件的聯(lián)系向胡。P(A|B)則稱為B發(fā)生后A的后驗概率,它通常是‘’因果‘’中的“果”惊完,所以被稱為后驗概率捷枯。注意式中事件B往往被認(rèn)為是“因”,是給定的专执,也就是說P(B)往往是一個常數(shù)淮捆,分母P(B)可以被扔掉,貝葉斯公式又可以被表示為本股,
上式中的α表示歸一化處理攀痊,保證概率和是1。
由于
所以貝葉斯公式也可以被表示為拄显,
痛苦的經(jīng)歷告訴我苟径,牢牢掌握條件概率和貝葉斯公式十分重要!它是后邊一切推論呢基礎(chǔ)躬审!
2.一般時序模型
在去理解卡爾曼濾波棘街,粒子濾波這些方法之前蟆盐,一定要搞清楚我們要解決的問題是什么。根據(jù)《人工智能遭殉,一種現(xiàn)代方法》石挂,我們可以建立起一個一般時間序列模型(簡稱時序模型),它規(guī)范了我們要解決的所有問題险污,如下圖所示痹愚。
這個模型包含兩個序列,一個是狀態(tài)序列蛔糯,用X表示拯腮,一個是觀測序列(又叫測量序列、證據(jù)序列蚁飒、觀察序列动壤,不同的書籍有不同的叫法,在這里統(tǒng)一叫觀測序列淮逻。)用Y表示木蹬。狀態(tài)序列反應(yīng)了系統(tǒng)的真實狀態(tài)冠蒋,一般不能被直接觀測唬复,即使被直接觀測也會引進噪聲弧哎;觀測序列是通過測量得到的數(shù)據(jù)罐旗,它與狀態(tài)序列之間有規(guī)律性的聯(lián)系腿准。舉個例子肠槽,假設(shè)有一個人待在屋子里不知道外邊有沒有下雨饰抒,他于是觀察進屋子里的人是否帶傘翅溺,這里有沒有下雨就是狀態(tài)脑漫,有沒有帶傘就是觀測。
上邊這個模型有兩個基本假設(shè):
一是馬爾可夫假設(shè)咙崎。假設(shè)當(dāng)前狀態(tài)只與上一個狀態(tài)有關(guān)优幸,而與上一個狀態(tài)之前的所有狀態(tài)無關(guān)。用公式來表示(式中1:t表示時刻1到時刻t的所有采樣時刻)褪猛,
上面的P被稱為狀態(tài)轉(zhuǎn)移概率网杆。例如上面那個雨傘的例子,我們會認(rèn)為今天下不下雨只與昨天下不下雨有關(guān)伊滋,與以前沒有關(guān)系碳却。
二是觀測假設(shè)(又叫證據(jù)假設(shè),觀察者假設(shè))笑旺。假設(shè)當(dāng)前觀測值只依賴于當(dāng)前狀態(tài)昼浦,與其他時刻的狀態(tài)無關(guān)。用公式來表示筒主,
上面的P被稱為觀測概率(也有其他叫法)关噪。例如上面那個雨傘的例子鸟蟹,進來的人帶不帶傘只與今天下不下雨有關(guān)系,與之前或未來下不下雨沒關(guān)系使兔。
由此建钥,一個模型(記為λ)可以被狀態(tài)轉(zhuǎn)移概率矩陣和觀測概率矩陣唯一確定。
這兩個假設(shè)可以極大地將問題簡化火诸,而且很多實際情況符合這兩個假設(shè)锦针,即使有些偏差,我們也可以對模型進行拓展置蜀。例如雨傘的例子奈搜,我們認(rèn)為今天下不下雨不僅與昨天有關(guān),還與前天甚至更早的時間有關(guān)盯荤,那么就可以對馬爾可夫假設(shè)進行拓展馋吗,拓展成二階甚至更高階的馬爾可夫模型,例如二階
那么這個模型需要完成的任務(wù)有哪些呢秋秤?主要有以下幾個方面:
(1)濾波宏粤,計算
(2)預(yù)測,計算
(3)平滑蚯斯,計算
(4)最可能解釋,計算
(5)評估(這是我自己加的卸耘,我覺得有必要加上這一點),計算
這里面的λ是指模型粘咖,這個公式意味著在該模型下蚣抗,給定到目前為止的狀態(tài)序列,計算輸出特定觀測序列的可能性瓮下。這其實是個評估問題翰铡,可以評估模型的好壞,概率越高讽坏,意味著模型越能反映觀測序列與狀態(tài)序列之間的聯(lián)系锭魔,模型就越好。
(6)學(xué)習(xí)路呜。計算λ迷捧,也即狀態(tài)轉(zhuǎn)移概率和觀測概率
學(xué)習(xí)的目的是根據(jù)歷史數(shù)據(jù)得到合理的模型,一般是根據(jù)一個目標(biāo)函數(shù)拣宰,對模型進行迭代更新党涕,例如使(5)中要計算的值最大便可以作為一個目標(biāo)烦感。
上邊列出了一般時序模型要解決的所有問題巡社,囊括的內(nèi)容非常豐富,占了人工智能很大一塊手趣。盡管濾波只是其中一項晌该,但理解模型的總體會對理解濾波有所幫助。下面把目光聚焦到濾波上來绿渣。
3.濾波問題
根據(jù)目前為止過去所有的測量數(shù)據(jù)朝群,估計當(dāng)前的狀態(tài),這便是濾波中符,但直接計算會有一個很明顯的問題姜胖。注意到,計算值的條件是過去所有的測量數(shù)據(jù)淀散,意味著計算每一個時刻的概率都要回顧整個歷史測量數(shù)據(jù)右莱,那么隨著時間的推移蚜锨,更新的代價會越來越大。所以需要找到一種辦法慢蜓,根據(jù)時刻t的濾波結(jié)果亚再,和時刻t+1時刻的測量數(shù)據(jù),就能計算出t+1時刻的濾波結(jié)果晨抡,這個計算過程叫做遞歸估計氛悬。用公式來表示,存在某個函數(shù)f耘柱,滿足:
為了得到上面那個函數(shù)如捅,對要求的概率作以下變換
第一步到第二步根據(jù)貝葉斯方程,第二步到第三步根據(jù)觀測假設(shè)帆谍。第三步的的前一項是狀態(tài)轉(zhuǎn)移概率伪朽,模型已知,后面一項是一個單步預(yù)測汛蝙,對單步預(yù)測做進一步的轉(zhuǎn)換:
式中第一步應(yīng)該比較好理解烈涮,t+1時刻某個狀態(tài)可能由t時刻任何一個狀態(tài)轉(zhuǎn)移而來,所以t+1時刻某個狀態(tài)的概率就等于t時刻所有可能狀態(tài)的概率乘以相應(yīng)的轉(zhuǎn)移概率求和窖剑,第一步到第二步根據(jù)貝葉斯方程坚洽,第二步到第三步根據(jù)馬爾科夫假設(shè)。注意到第三步第一項是狀態(tài)轉(zhuǎn)移概率西土,模型已知讶舰,第二項即t時刻的濾波結(jié)果,這樣我們就可以利用t時刻的濾波結(jié)果遞推t+1時刻的濾波結(jié)果了需了。遞推公式可以表示為跳昼,
這種方法被稱為前向遞歸。這里表示的狀態(tài)是離散的肋乍,如果是連續(xù)的求和符號改為積分符號即可鹅颊。
但這種方法有個最大的問題就是有確切的模型,也就是說狀態(tài)轉(zhuǎn)移概率和觀測概率必須是已知的墓造,但大多數(shù)情況它們并不是已知的堪伍,當(dāng)然可以通過學(xué)習(xí)得到,但學(xué)習(xí)本身并不是那么容易的觅闽,那么如何才能在模型未知的情況下帝雇,實現(xiàn)上述遞推呢?接下來就要看看卡爾曼濾波怎么巧妙地解決這個問題了蛉拙!
今天先寫到這尸闸,敲公式真心耗時間!!吮廉!