隱馬爾可夫模型(Hidden Markov Model,HMM)是統(tǒng)計(jì)模型,它用來描述一個(gè)含有隱含未知參數(shù)的馬爾可夫過程。其難點(diǎn)是從可觀察的參數(shù)中確定該過程的隱含參數(shù),然后利用這些參數(shù)來作進(jìn)一步的數(shù)據(jù)分析,例如模式識(shí)別。

HMM在建模的系統(tǒng)被認(rèn)為是一個(gè)馬爾可夫過程與未觀測(隱藏的)到狀態(tài)的統(tǒng)計(jì)馬爾可夫模型。一般來說,HMM中說到的馬爾可夫鏈其實(shí)是指隱含狀態(tài)鏈,因?yàn)殡[含狀態(tài)之間存在轉(zhuǎn)換概率。

可見狀態(tài)之間沒有轉(zhuǎn)換概率,但是隱含狀態(tài)和可見狀態(tài)之間有一個(gè)做輸出概率。如果提前知道所有隱含狀態(tài)之間的轉(zhuǎn)換概率和所有隱含狀態(tài)到所有可見狀態(tài)之間的輸出概率,做模擬是相當(dāng)容易的。

通過下圖骰子例子說明:第一個(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)鏈),我想知道每次擲出來的都是哪種骰子(隱含狀態(tài)鏈)。這個(gè)問題有兩種解法,給出兩個(gè)不同的答案。

第一種解法求最大似然狀態(tài)路徑,說通俗點(diǎn)呢,就是求一串骰子序列,這串骰子序列產(chǎn)生觀測結(jié)果的概率最大。第二種解法,就不是求一組骰子序列了,而是求每次擲出的骰子分別是某種骰子的概率。

2、知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率),根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道擲出這個(gè)結(jié)果的概率??此七@個(gè)問題意義不大,因?yàn)閿S出來的結(jié)果很多時(shí)候都對應(yīng)了一個(gè)比較大的概率。

問這個(gè)問題的目的呢,其實(shí)是檢測觀察到的結(jié)果和已知的模型是否吻合。如果很多次結(jié)果都對應(yīng)了比較小的概率,那么就說明我們已知的模型很有可能是錯(cuò)的,有人偷偷把我們的骰子給換了。

3、知道骰子有幾種(隱含狀態(tài)數(shù)量),不知道每種骰子是什么(轉(zhuǎn)換概率),觀測到很多次擲骰子的結(jié)果(可見狀態(tài)鏈),我想反推出每種骰子是什么(轉(zhuǎn)換概率)。

這是最常見的情況,很多時(shí)候我們只有可見結(jié)果,不知道HMM模型里的參數(shù),我們需要從可見結(jié)果估計(jì)出這些參數(shù),這是建模的一個(gè)必要步驟。

比如說懷疑自己的六面骰被賭場動(dòng)過手腳了,有可能被換成另一種六面骰,這種六面骰擲出來是1的概率更大,是1/2,擲出來是2,3,4,5,6的概率是1/10。怎么辦么?答案很簡單,算一算正常的三個(gè)骰子擲出一段序列的概率,再算一算不正常的六面骰和另外兩個(gè)正常骰子擲出這段序列的概率。如果前者比后者小,就要小心了。比如說擲骰子的結(jié)果是:

要算用正常的三個(gè)骰子擲出這個(gè)結(jié)果的概率,其實(shí)就是將所有可能情況的概率進(jìn)行加和計(jì)算。同樣,簡單而暴力的方法就是把窮舉所有的骰子序列,還是計(jì)算每個(gè)骰子序列對應(yīng)的概率,把所有算出來的概率相加,得到的總概率就是我們要求的結(jié)果。解決這個(gè)問題的算法叫做前向算法,如果我們只擲一次骰子:

看到結(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:

同樣的,我們一步一步的算,有多長算多長,再長的馬爾可夫鏈總能算出來的。用同樣的方法,也可以算出不正常的六面骰和另外兩個(gè)正常骰子擲出這段序列的概率,然后我們比較一下這兩個(gè)概率大小,就能知道你的骰子是不是被人換了。

-
建模
+關(guān)注
關(guān)注
1文章
319瀏覽量
62385 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1495瀏覽量
35834 -
隱馬爾可夫
+關(guān)注
關(guān)注
0文章
7瀏覽量
6618
原文標(biāo)題:隱馬爾可夫模型
文章出處:【微信號(hào):NeXt8060,微信公眾號(hào):HALCON圖像處理與機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
基于隱馬爾可夫模型的音頻自動(dòng)分類
基于隱馬爾可夫模型的火焰檢測
用隱馬爾可夫模型設(shè)計(jì)人臉表情識(shí)別系統(tǒng)
基于隱馬爾可夫的系統(tǒng)入侵檢測方法
基于隱馬爾可夫模型的短波認(rèn)知頻率選擇方法
基于隱馬爾可夫模型的軟件狀態(tài)評(píng)估預(yù)測方法
基于隱馬爾可夫預(yù)測的功率博弈機(jī)制

隱馬爾可夫模型描述一個(gè)含有隱含未知參數(shù)的馬爾可夫過程
評(píng)論