1 隱馬爾可夫模型 - 定義
- 隱馬爾可夫模型(hidden markov model, HMM)是可用于標(biāo)注問題 [自動(dòng)分詞、詞性標(biāo)注、命名實(shí)體識(shí)別等] 的統(tǒng)計(jì)學(xué)習(xí)模型,描述由隱藏的馬爾可夫鏈隨機(jī)生成觀測序列的過程,屬于生成模型;
- 隱馬爾可夫模型定義如下:隱馬爾可夫模型是一種有向概率圖模型。描述由一個(gè)隱藏的馬爾科夫鏈生成不可觀測的狀態(tài)隨機(jī)序列(狀態(tài)序列,state sequence),再由各個(gè)狀態(tài)序列生成一個(gè)觀測從而產(chǎn)生觀測隨機(jī)序列(觀測序列,observation sequence)的過程。
2 隱馬爾可夫模型 - 用于中文分詞
2.1 中文分詞例子
- 輸入:
我想去烏魯木齊 - 輸出:
我/S 想/S 去/S 烏/B 魯/M 木/M 齊/E
注意: B表示一個(gè)詞的開始;M表示一個(gè)詞的中間;E表示一個(gè)詞的結(jié)尾;S表示單獨(dú)成詞;
2.2 中文分詞 - 問題建模
-
表示輸入的將要分詞的句子(觀測序列);
-
表示輸出的句子分詞結(jié)果(狀態(tài)序列);
- 中文分詞問題就是:給定
的情況下,找到一個(gè)
使得條件概率
最大化;
隱馬爾可夫模型,使用貝葉斯公式將條件概率
的求解問題,轉(zhuǎn)換成對聯(lián)合概率
的求解:
注意:是給定的,因此對于任意的
而言
都是一樣的;
2.3 隱馬爾可夫模型三要素
- 觀測序列(待分詞的句子):
;
- 狀態(tài)序列(分詞結(jié)果):
;
- 觀測空間
,表示所有可能的觀測集合;即中文中所有可能的詞,大小為
;
- 狀態(tài)空間
,表示所有可能的狀態(tài)集合;即分詞標(biāo)簽
,大小為
;
- 初始概率分布
:
;
- 發(fā)射概率分布
:
;
- 轉(zhuǎn)移概率分布
:
;包含一個(gè)結(jié)束符
;
-
隱馬爾可夫模型:

隱馬爾可夫模型.png
3 隱馬爾可夫模型 - 兩個(gè)基本假設(shè)
- 齊次馬爾科夫假設(shè): 即假設(shè)隱藏的馬爾可夫鏈在任意時(shí)刻
的狀態(tài)只依賴于其前一時(shí)刻的狀態(tài),與其他時(shí)刻的狀態(tài)及觀測無關(guān);
![]()
- 觀測獨(dú)立性假設(shè): 即假設(shè)任意時(shí)刻的觀測只依賴于該時(shí)刻的馬爾可夫鏈的狀態(tài),與其他觀測及狀態(tài)無關(guān);
![]()
4 隱馬爾可夫模型 - 3個(gè)基本問題
- 概率計(jì)算問題: 給定模型
和觀測序列
,計(jì)算在模型
下觀測序列
出現(xiàn)的概率
;
- 學(xué)習(xí)問題: 已知觀測序列
,估計(jì)模型
參數(shù),使得在該模型下序列概率
最大;
- 預(yù)測問題: 也稱為解碼問題。已知模型
和觀測序列
,求對給定觀測序列條件概率
最大的狀態(tài)序列
。即給定觀測序列,求最有可能對應(yīng)的狀態(tài)序列;
4.1 概率計(jì)算問題
- 可使用前向(forward)、后向(backward)算法計(jì)算
;為后續(xù)學(xué)習(xí)問題做鋪墊;
4.2 學(xué)習(xí)問題
- 隱馬爾可夫模型的學(xué)習(xí),根據(jù)訓(xùn)練數(shù)據(jù)是包括 觀測序列 和對應(yīng)的 狀態(tài)序列 還是只有觀測序列,可以分別由 監(jiān)督學(xué)習(xí) 與 無監(jiān)督學(xué)習(xí) 實(shí)現(xiàn);
4.2.1 監(jiān)督學(xué)習(xí)方法
- 使用極大似然估計(jì)法來估計(jì)隱馬爾可夫模型的參數(shù)。
- 轉(zhuǎn)移概率
的估計(jì):
![]()
- 發(fā)射概率
的估計(jì):
![]()
- 初始概率
的估計(jì):
Count(start),訓(xùn)練語料總數(shù);
![]()
4.2.2 無監(jiān)督方法 [Baum-Welch 算法]
- 由于監(jiān)督學(xué)習(xí)需要使用標(biāo)注的訓(xùn)練數(shù)據(jù),而人工標(biāo)注訓(xùn)練數(shù)據(jù)往往代價(jià)很高,有時(shí)就會(huì)利用無監(jiān)督學(xué)習(xí)方法;
- 隱馬爾可夫模型實(shí)際上是一個(gè)含有隱變量的概率模型:
它的參數(shù)學(xué)習(xí)可以由 EM算法 實(shí)現(xiàn)。
4.3 預(yù)測問題
-
HMM模型問題定義如下,找出
使得聯(lián)合概率
最大化; 最直觀的思路是窮舉所有可能的
,但是時(shí)間復(fù)雜度為
;一般使用viterbi算法求解,其時(shí)間復(fù)雜度為
;
- 隱馬爾可夫的預(yù)測問題,一般使用維特比算法求解。維特比算法實(shí)際是動(dòng)態(tài)規(guī)劃(Dynamic Programming)解隱馬爾可夫模型預(yù)測問題,即用動(dòng)態(tài)規(guī)劃求概率最大路徑(最優(yōu)路徑)。這時(shí)一條路徑對應(yīng)著一個(gè)狀態(tài)序列。
- 維特比算法解HMM預(yù)測問題:
輸入:模型
和觀測
;
輸出:最優(yōu)路徑;
(1)初始化
(2)開始遞推,對;注意:
表示轉(zhuǎn)移概率,
表示發(fā)射概率;
(3)終止
(4)最優(yōu)路徑回溯,對
求得最優(yōu)路徑:
4.3.1 HMM預(yù)測過程例子
-
隱馬爾可夫模型的三個(gè)概率矩陣如下:
HMM三個(gè)概率矩陣.png
- Viterbi算法解碼過程:維特比算法時(shí)間復(fù)雜度為:
維特比算法.png
5. HMM算法總結(jié)
- HMM算法總結(jié)如下:
(1)HMM對聯(lián)合概率進(jìn)行建模:;
(2)HMM inference目標(biāo)為:;
(3)HMM參數(shù)估計(jì):可以采用簡單的統(tǒng)計(jì)方法,或者采用無監(jiān)督式的方式使用EM算法學(xué)習(xí)網(wǎng)絡(luò)參數(shù);
- HMM的缺點(diǎn):HMM算法并不一定能夠保證
;
HMM算法缺點(diǎn).png
參考資料
- 《統(tǒng)計(jì)學(xué)習(xí)方法》- 李航
- 結(jié)構(gòu)化預(yù)測 - 序列標(biāo)注,[李宏毅,機(jī)器學(xué)習(xí)2016] https://www.bilibili.com/video/BV1Ux411S7Yk?p=24
- 李宏毅,機(jī)器學(xué)習(xí)2016 - 課程主頁 http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html
- 如何通俗地講解 viterbi 算法?https://www.zhihu.com/question/20136144


