隱馬爾可夫模型(Hidden Markov Model,HMM)是統(tǒng)計(jì)模型,它用來(lái)描述一個(gè)含有隱含未知參數(shù)的馬爾可夫過(guò)程。其難點(diǎn)是從可觀察的參數(shù)中確定該過(guò)程的隱含參數(shù),然后利用這些參數(shù)來(lái)作進(jìn)一步的數(shù)據(jù)分析,例如模式識(shí)別。
HMM在建模的系統(tǒng)被認(rèn)為是一個(gè)馬爾可夫過(guò)程與未觀測(cè)(隱藏的)到狀態(tài)的統(tǒng)計(jì)馬爾可夫模型。一般來(lái)說(shuō),HMM中說(shuō)到的馬爾可夫鏈其實(shí)是指隱含狀態(tài)鏈,因?yàn)殡[含狀態(tài)之間存在轉(zhuǎn)換概率。
可見狀態(tài)之間沒(méi)有轉(zhuǎn)換概率,但是隱含狀態(tài)和可見狀態(tài)之間有一個(gè)做輸出概率。如果提前知道所有隱含狀態(tài)之間的轉(zhuǎn)換概率和所有隱含狀態(tài)到所有可見狀態(tài)之間的輸出概率,做模擬是相當(dāng)容易的。
通過(guò)下圖骰子例子說(shuō)明:第一個(gè)骰子是我們平常見的骰子(稱骰子為D6),6個(gè)面,每個(gè)面(1,2,3,4,5,6)出現(xiàn)的概率是1/6。第二個(gè)骰子是個(gè)四面體(稱骰子為D4),每個(gè)面(1,2,3,4)出現(xiàn)的概率是1/4。第三個(gè)骰子有八個(gè)面(稱骰子為D8),每個(gè)面(1,2,3,4,5,6,7,8)出現(xiàn)的概率是1/8。
HMM模型相關(guān)的算法主要分為三類:
1、知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率),根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道每次擲出來(lái)的都是哪種骰子(隱含狀態(tài)鏈)。這個(gè)問(wèn)題有兩種解法,給出兩個(gè)不同的答案。
第一種解法求最大似然狀態(tài)路徑,說(shuō)通俗點(diǎn)呢,就是求一串骰子序列,這串骰子序列產(chǎn)生觀測(cè)結(jié)果的概率最大。第二種解法,就不是求一組骰子序列了,而是求每次擲出的骰子分別是某種骰子的概率。
2、知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率),根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道擲出這個(gè)結(jié)果的概率。看似這個(gè)問(wèn)題意義不大,因?yàn)閿S出來(lái)的結(jié)果很多時(shí)候都對(duì)應(yīng)了一個(gè)比較大的概率。
問(wèn)這個(gè)問(wèn)題的目的呢,其實(shí)是檢測(cè)觀察到的結(jié)果和已知的模型是否吻合。如果很多次結(jié)果都對(duì)應(yīng)了比較小的概率,那么就說(shuō)明我們已知的模型很有可能是錯(cuò)的,有人偷偷把我們的骰子給換了。
3、知道骰子有幾種(隱含狀態(tài)數(shù)量),不知道每種骰子是什么(轉(zhuǎn)換概率),觀測(cè)到很多次擲骰子的結(jié)果(可見狀態(tài)鏈),我想反推出每種骰子是什么(轉(zhuǎn)換概率)。
這是最常見的情況,很多時(shí)候我們只有可見結(jié)果,不知道HMM模型里的參數(shù),我們需要從可見結(jié)果估計(jì)出這些參數(shù),這是建模的一個(gè)必要步驟。
比如說(shuō)懷疑自己的六面骰被賭場(chǎng)動(dòng)過(guò)手腳了,有可能被換成另一種六面骰,這種六面骰擲出來(lái)是1的概率更大,是1/2,擲出來(lái)是2,3,4,5,6的概率是1/10。怎么辦么?答案很簡(jiǎn)單,算一算正常的三個(gè)骰子擲出一段序列的概率,再算一算不正常的六面骰和另外兩個(gè)正常骰子擲出這段序列的概率。如果前者比后者小,就要小心了。比如說(shuō)擲骰子的結(jié)果是:
要算用正常的三個(gè)骰子擲出這個(gè)結(jié)果的概率,其實(shí)就是將所有可能情況的概率進(jìn)行加和計(jì)算。同樣,簡(jiǎn)單而暴力的方法就是把窮舉所有的骰子序列,還是計(jì)算每個(gè)骰子序列對(duì)應(yīng)的概率,把所有算出來(lái)的概率相加,得到的總概率就是我們要求的結(jié)果。解決這個(gè)問(wèn)題的算法叫做前向算法,如果我們只擲一次骰子:
看到結(jié)果為1,產(chǎn)生這個(gè)結(jié)果的總概率可以按照如下計(jì)算,總概率為0.18:
把這個(gè)情況拓展,我們擲兩次骰子:
看到結(jié)果為1,6.產(chǎn)生這個(gè)結(jié)果的總概率可以按照如下計(jì)算,總概率為0.05:
繼續(xù)拓展,我們擲三次骰子:
看到結(jié)果為1,6,3,產(chǎn)生這個(gè)結(jié)果的總概率可以按照如下計(jì)算,總概率為0.03:
同樣的,我們一步一步的算,有多長(zhǎng)算多長(zhǎng),再長(zhǎng)的馬爾可夫鏈總能算出來(lái)的。用同樣的方法,也可以算出不正常的六面骰和另外兩個(gè)正常骰子擲出這段序列的概率,然后我們比較一下這兩個(gè)概率大小,就能知道你的骰子是不是被人換了。
-
建模
+關(guān)注
關(guān)注
1文章
313瀏覽量
60811 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1460瀏覽量
34110 -
隱馬爾可夫
+關(guān)注
關(guān)注
0文章
7瀏覽量
6551
原文標(biāo)題:隱馬爾可夫模型
文章出處:【微信號(hào):NeXt8060,微信公眾號(hào):HALCON圖像處理與機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論