首頁(yè) 現(xiàn)實(shí)

數(shù)學(xué)心

第五百七十五章 卡爾曼濾波器(濾波)

數(shù)學(xué)心 蔡澤禹 2565 2021-06-12 08:35:46

  簡(jiǎn)單來(lái)說(shuō),卡爾曼濾波器是一個(gè)“optimal recursive data processing algorithm(最優(yōu)化自回歸數(shù)據(jù)處理算法)”。

  對(duì)于解決很大部分的問(wèn)題,他是最優(yōu),效率最高甚至是最有用的。

  他的廣泛應(yīng)用已經(jīng)超過(guò)30年,包括機(jī)器人導(dǎo)航,控制,傳感器數(shù)據(jù)融合甚至在軍事方面的雷達(dá)系統(tǒng)以及導(dǎo)彈追蹤等等。

  近來(lái)更被應(yīng)用于計(jì)算機(jī)圖像處理,例如頭臉識(shí)別,圖像分割,圖像邊緣檢測(cè)等等。

  卡爾曼濾波器的介紹:

  假設(shè)我們要研究的對(duì)象是一個(gè)房間的溫度。

  根據(jù)你的經(jīng)驗(yàn)判斷,這個(gè)房間的溫度是恒定的,也就是下一分鐘的溫度等于現(xiàn)在這一分鐘的溫度(假設(shè)我們用一分鐘來(lái)做時(shí)間單位)。

  假設(shè)你對(duì)你的經(jīng)驗(yàn)不是100%的相信,可能會(huì)有上下偏差幾度。

  我們把這些偏差看成是高斯白噪聲(White Gaussian Noise),也就是這些偏差跟前后時(shí)間是沒(méi)有關(guān)系的而且符合高斯分布(Gaussian Distribution)。

  另外,我們?cè)诜块g里放一個(gè)溫度計(jì),但是這個(gè)溫度計(jì)也不準(zhǔn)確的,測(cè)量值會(huì)比實(shí)際值偏差。

  我們也把這些偏差看成是高斯白噪聲。

  好了,現(xiàn)在對(duì)于某一分鐘我們有兩個(gè)有關(guān)于該房間的溫度值:你根據(jù)經(jīng)驗(yàn)的預(yù)測(cè)值(系統(tǒng)的預(yù)測(cè)值)和溫度計(jì)的值(測(cè)量值)。

  下面我們要用這兩個(gè)值結(jié)合他們各自的噪聲來(lái)估算出房間的實(shí)際溫度值。

  假如我們要估算k時(shí)刻的實(shí)際溫度值。首先你要根據(jù)k-1時(shí)刻的溫度值,來(lái)預(yù)測(cè)k時(shí)刻的溫度。因?yàn)槟阆嘈艤囟仁呛愣ǖ?,所以你?huì)得到k時(shí)刻的溫度預(yù)測(cè)值是跟k-1時(shí)刻一樣的,假設(shè)是23度,同時(shí)該值的高斯噪聲的偏差是5度(5是這樣得到的:如果k-1時(shí)刻估算出的最優(yōu)溫度值的偏差是3,你對(duì)自己預(yù)測(cè)的不確定度是4度,他們平方相加再開(kāi)方,就是5)。然后,你從溫度計(jì)那里得到了k時(shí)刻的溫度值,假設(shè)是25度,同時(shí)該值的偏差是4度。

  由于我們用于估算k時(shí)刻的實(shí)際溫度有兩個(gè)溫度值,分別是23度和25度。究竟實(shí)際溫度是多少呢?相信自己還是相信溫度計(jì)呢?究竟相信誰(shuí)多一點(diǎn),我們可以用他們的協(xié)方差(covariance)來(lái)判斷。因?yàn)镵g=5^2/(5^2+4^2),所以Kg=0.61,我們可以估算出k時(shí)刻的實(shí)際溫度值是:23+0.61*(25-23)=24.22度??梢钥闯?,因?yàn)闇囟扔?jì)的協(xié)方差(covariance)比較?。ū容^相信溫度計(jì)),所以估算出的最優(yōu)溫度值偏向溫度計(jì)的值。

  現(xiàn)在我們已經(jīng)得到k時(shí)刻的最優(yōu)溫度值了,下一步就是要進(jìn)入k+1時(shí)刻,進(jìn)行新的最優(yōu)估算。到現(xiàn)在為止,好像還沒(méi)看到什么自回歸的東西出現(xiàn)。

  對(duì)了,在進(jìn)入k+1時(shí)刻之前,我們還要算出k時(shí)刻那個(gè)最優(yōu)值(24.22度)的偏差。

  算法如下:((1-Kg)*5^2)^0.5=3.12。這里的5就是上面的k時(shí)刻你預(yù)測(cè)的那個(gè)23度溫度值的偏差,得出的3.12就是進(jìn)入k+1時(shí)刻以后k時(shí)刻估算出的最優(yōu)溫度值的偏差(對(duì)應(yīng)于上面的3)。

  就是這樣,卡爾曼濾波器就不斷的把協(xié)方差(covariance)遞歸,從而估算出最優(yōu)的溫度值。

  他運(yùn)行的很快,而且它只保留了上一時(shí)刻的協(xié)方差(covariance)。

  上面的Kg,就是卡爾曼增益(Kalman Gain)。他可以隨不同的時(shí)刻而改變他自己的值,是不是很神奇!

  在航天領(lǐng)域,卡爾曼濾波是一種殿堂級(jí)的理論,應(yīng)用的到處都是!

  好吧,假設(shè)你在去一個(gè)風(fēng)景區(qū)旅游的時(shí)候,種下了一棵果樹(shù),但顯然從果樹(shù)幼苗到果實(shí)不是一天兩天能完成的啊,需要慢慢長(zhǎng)高。而你又不可能經(jīng)常去看,但又想知道果樹(shù)的高度,那怎么辦?

  所以要解決的問(wèn)題是:如何正確估計(jì)一棵果樹(shù)的高度?

  我們把想要知道的果樹(shù)高度叫做待估的狀態(tài)變量。我們想一年知道一次,這就叫做步長(zhǎng)。

  你需要知道種下果樹(shù)的時(shí)候大概高度啊,于是你想了想,大概1米吧,但我也不確定,有可能90公分也有可能110公分。于是這個(gè)1米,叫做你的初始狀態(tài)估計(jì),這個(gè)10公分的不確定性,叫做狀態(tài)估計(jì)的誤差協(xié)方差矩陣,后續(xù)它會(huì)隨著你的下一步估計(jì)而變化。

  怎么辦呢?

  你在網(wǎng)上查了查,這種果樹(shù)差不多每年都比前一年生長(zhǎng)10%的高度(純假設(shè)而已哈),這個(gè)生長(zhǎng)的規(guī)律/模型就叫做狀態(tài)轉(zhuǎn)移矩陣。于是根據(jù)模型,假如2017年有1米,2018年就大概有1.1米。

  但顯然這個(gè)模型不適用于任意一棵果樹(shù)和你種植當(dāng)?shù)氐膶?shí)際日照風(fēng)土情況,而且你明明知道果樹(shù)不可能無(wú)限增長(zhǎng)。所以咱們的模型不可能是100%準(zhǔn)確的,我們用一個(gè)叫做過(guò)程噪聲的東西來(lái)衡量它??梢岳斫鉃槟P瓦f推下去的不準(zhǔn)確度。比如假設(shè)這個(gè)估計(jì)模型誤差在0.3米,這叫做白噪聲。過(guò)程噪聲越小就意味著你相信生長(zhǎng)模型很準(zhǔn)確,越大就表示模型越垃圾。

  但盡管如此還是不靠譜啊,閉門(mén)猜果樹(shù)高度肯定不可能一直準(zhǔn),這個(gè)時(shí)候我們需要找一下本地的朋友們定期去看一眼。由于是拜托他們幫忙,也不想真要求他們爬上去拿尺子量,大概給個(gè)數(shù)就行,這個(gè)朋友幫忙看到的高度就是我們的測(cè)量值。

  假設(shè)有朋友A和B,朋友A很認(rèn)真,每次都拿尺子大概比一比,告訴你都用大概多少分米來(lái)說(shuō),比如大概1米8到1米9吧;而朋友B不認(rèn)真,只瞄一眼說(shuō)大概1.5-2米吧。但是A有一個(gè)壞處,比較懶,兩年才給你發(fā)個(gè)短信;B比較勤快,每年就有。這個(gè)2年或者1年就叫做測(cè)量更新頻率。我們需要他們盡可能提供數(shù)據(jù),所以?xún)蓚€(gè)都要采納。而且這兩個(gè)測(cè)量一個(gè)來(lái)自尺子一個(gè)來(lái)自視力,不同的測(cè)量類(lèi)型我們都能同時(shí)使用,太好了!

  你明顯覺(jué)得A比B要靠譜一些,于是認(rèn)為A的精度在分米級(jí),B的精度在半米級(jí),這個(gè)分米和半米叫做他倆的測(cè)量噪聲?;谶@個(gè)測(cè)量噪聲你可以建立一個(gè)測(cè)量噪聲矩陣,衡量在參考時(shí)對(duì)A和B觀測(cè)值的權(quán)重。

  那么你現(xiàn)在明白了,既需要果樹(shù)生長(zhǎng)模型,這樣即便A和B不給我數(shù)據(jù),我也大概能估計(jì)出明年這個(gè)樹(shù)的高度。但也不能只依靠模型,比如果樹(shù)進(jìn)入成熟期慢慢就不長(zhǎng)了,我們也需要A和B的觀測(cè)值去校正估計(jì),那么就需要把他們?nèi)诤显谝黄稹?p>  于是,從模型這里,有一個(gè)衡量初始估計(jì)是否準(zhǔn)確的矩陣叫做狀態(tài)估計(jì)協(xié)方差矩陣,有一個(gè)衡量生長(zhǎng)模型準(zhǔn)確度的過(guò)程噪聲矩陣;從觀測(cè)那里有一個(gè)衡量觀測(cè)是否準(zhǔn)確的矩陣叫做觀測(cè)噪聲協(xié)方差矩陣。

  我們把它和模型融合在一起,就變成了一個(gè)叫做增益矩陣的東西。糊涂了?別著急,其實(shí)增益矩陣就是一件事情:我到底是應(yīng)該相信我推的模型多,還是應(yīng)該相信來(lái)自A和B的測(cè)量多呢?

  于是通過(guò)增益矩陣和這一系列矩陣,你建立了一套系統(tǒng):當(dāng)模型比較準(zhǔn)確時(shí),我相信模型多一點(diǎn),當(dāng)它不準(zhǔn)時(shí)我相信實(shí)際測(cè)量多一些。而且還有一個(gè)優(yōu)勢(shì),測(cè)量幫助我校正模型準(zhǔn)確度;當(dāng)A和B突然不給我測(cè)量時(shí),我也能通過(guò)已經(jīng)建立好的這套體系估計(jì)在下一個(gè)步長(zhǎng)(明年)果樹(shù)的高度。

  卡爾曼濾波就這樣建立起來(lái)了。

  最理想的情況是怎樣?

  最準(zhǔn)確的果樹(shù)初始高度估計(jì),=較小的狀態(tài)估計(jì)誤差

  最準(zhǔn)確的果樹(shù)生長(zhǎng)狀態(tài)模型,=較小的過(guò)程噪聲

  最準(zhǔn)確的果樹(shù)測(cè)量值,=較小的測(cè)量噪聲,而且測(cè)量類(lèi)型越多越好(尺子和視力)

  卡爾曼博士在1960年去了NASA訪(fǎng)問(wèn),把這套理論首次提出,震驚了NASA,于是很快采用。美國(guó)的標(biāo)志性阿波羅登月任務(wù),就是使用這套嶄新的估計(jì)理論,登上月球的!

按 “鍵盤(pán)左鍵←” 返回上一章  按 “鍵盤(pán)右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書(shū)架
加入書(shū)架
書(shū)頁(yè)
返回書(shū)頁(yè)
指南