前言
在網(wǎng)上看了很多關(guān)于馬爾可夫模型的資料缺猛,有很多文章寫得不錯,在此記錄自己學(xué)習(xí)過程中的筆記
一 HMM隱馬爾可夫模型
隱馬爾可夫模型(Hidden Markov Model, HMM)是關(guān)于時序的概率模型耻姥,描述由一個隱藏的馬爾可夫鏈隨機(jī)生成不可觀測的狀態(tài)隨機(jī)序列琐簇,再由各個狀態(tài)生成一個觀測而產(chǎn)生觀測隨機(jī)序列的過程座享。隱藏的馬爾可夫鏈隨機(jī)生成的狀態(tài)的序列,稱為狀態(tài)序列丈秩;每個狀態(tài)生成一個觀測淳衙,而由此產(chǎn)生的觀測的隨機(jī)序列,稱為觀測序列肠牲。序列的每一個位置又可以看作是一個時刻缀雳。
隱馬爾可夫模型由初始概率分布梢睛、狀態(tài)轉(zhuǎn)移概率分布以及觀測概率分布確定。
一個簡單的例子
假設(shè)我們有3顆不同的骰子竖独。第一個是6面體挤牛、第二個是4面體墓赴、第三個是8面體诫硕,對應(yīng)每一面數(shù)值分別為(1,2,3,4,5,6)刊侯、(1,2,3,4)、(1,2,3,4,5,6,7,8)藕届,出現(xiàn)概率分別為
我們開始擲骰子词顾,我們從這三個骰子里挑選一個骰子的概率為肉盹。我們擲骰子的數(shù)值在1~8之間疹尾。當(dāng)不停的擲骰子我們會得到一串?dāng)?shù)字序列。例如(擲骰10次):1航棱、6、3饮醇、5、2观蓄、7祠墅、3毁嗦、5亲茅、 2、4克锣。
上圖可以看出馬爾可夫模型為節(jié)點為隱含狀態(tài)袭祟,邊為轉(zhuǎn)移概率的有向圖模型捞附,接下來我們通過這個例子介紹幾個概念您没。
可見狀態(tài)鏈(觀測序列):擲骰子得到的這串?dāng)?shù)字對應(yīng)概念中我們可觀察的參數(shù)氨鹏。
隱含狀態(tài)鏈(狀態(tài)序列):在這個擲骰子的例子中隱含狀態(tài)鏈為我們擲的骰子的序列(有多種可能)辑舷。隱含狀態(tài)(骰子)之間存在轉(zhuǎn)換概率,D4的下一個狀態(tài)D4肢础、D6碌廓、D8的概率都是。
轉(zhuǎn)換概率(狀態(tài)轉(zhuǎn)移概率):隱含狀態(tài)轉(zhuǎn)換(骰子改變)的概率
輸出概率(發(fā)射狀態(tài)):盡管可見狀態(tài)之間沒有轉(zhuǎn)換概率慨蛙,但是隱含狀態(tài)和可見狀態(tài)之間有一個概率叫做輸出概率期贫。就我們的例子來說异袄,六面體擲出1的概率為,四面體擲出1的概率為封孙,八面體擲出1的概率為虎忌。
當(dāng)然轉(zhuǎn)換概率和輸出概率我們都是隨意更改的橱鹏,比如輸出概率方面我們對骰子做點手腳可以讓例如六面體擲出1的概率為,其它數(shù)字的概率為狡蝶。轉(zhuǎn)換概率方面我們可以放入比如在2顆D6、4顆D4苏章、4顆D8中選擇篩子奏瞬,然后有放回的選擇篩子硼端,轉(zhuǎn)換概率D6為0.2寓搬, D4為0.4,D8為0.4镣典。
使用維特比算法(Viterbi algorithm)進(jìn)行分詞根據(jù)觀測序列推斷出狀態(tài)序列
觀察值序列:小明碩士畢業(yè)于中國科學(xué)院計算所
隱含狀態(tài)集:隱含狀態(tài)指的是每個字的狀態(tài)兄春。 有詞語的開頭锡溯、詞語的中間字、詞尾芜茵、單個字倡蝙,這里的隱含狀態(tài)集有4個狀態(tài)對應(yīng)的英文字母{B,M,E,S}
輸入:小明碩士畢業(yè)于中國科學(xué)院計算所
輸出:BEBEBMEBEBMEBES(BE/BE/BME/BE/BME/BE/S =小明/碩士/畢業(yè)于/中國/科學(xué)院/計算/所)
1蒸辆、定義V[id][字的狀態(tài)] = 概率析既,注意這里的概率,前幾個的字的狀態(tài)都確定下來了(概率最大)拂玻,這里的概率就是一個累乘的概率了宰译。
2、因為第一個字為‘小’闯第,所以第一個字的概率V[1][B]= 初始概率[B] *發(fā)射概率[B][‘小’]缀拭,同理可得V[1][M]填帽、V[1][E]篡腌、V[1][S]選擇其中概率最大的一個加入到結(jié)果序列勾效。
3、從第二個字開始层宫,對于字的狀態(tài)Y,都有前一個字的狀態(tài)是X的概率* X轉(zhuǎn)移到Y(jié)的概率 * Y狀態(tài)下輸出字為‘明’的概率缀台。因為前一個字的狀態(tài)Y有四種可能哮奇,所以Y的概率有四個,選取其中較大一個作為V[2][字的狀態(tài)]的概率哲身,同時加入到結(jié)果序列中贸伐。
4、比較V[15][B]脯丝、V[15][M]伏伐、V[15][E]、V[15][S]材蹬,找出較大的哪一個對應(yīng)的序列吝镣,就是最終結(jié)果。