隱馬爾科夫模型是一種時序的概率模型,描述由一個隱的馬爾科夫鏈隨機生成的不可觀察的隱狀態序列,在每一個隱狀態下隨機產生觀察值構成一個可觀測的隨機序列。其中關鍵是狀態序列是滿足馬爾科夫性質的,且可觀測序列是由隱藏的狀態序列以一定的概率隨機生成。
在自然語言中文分詞中,由於自然語言是有明顯的上下文關係的,即當前字與其前後出現的字都是有關係的。為了表示前一個字對當前字的影響,我們用一個隱狀態來表示前的語義狀態,用在前一個狀態下轉移到發射出當前字的隱狀態的概率表示前一個字對當前字的影響。整個來說就是把上下文字對字的影響轉化成狀態對狀態的影響。而用發射概率來表示狀態到字的關係。值得注意的是隱馬爾可夫模型中:
即
隱馬爾科夫模型由狀態集,觀測集,初始狀態轉移概率,狀態轉移概率,以及發射概率確定。
形式化定義為:
所有可能的隱藏狀態集Q,所有可能的觀察值集V,其中
假設
其中
其中:
表示在狀態
其中
由此,馬爾科夫模型定義完成。至於為何這樣定義,隱狀態的意義是什麼,就是模型的價值所在,如何理解隱狀態也是一種個人體會。
有了隱馬爾科夫模型,接下來看隱馬爾科夫模型能做什麼?
1、給定一個確定的隱馬爾科夫模型(參數
概率計算,由於觀測序列的產生於隱狀態是相關的,所以需要從隱狀態的轉移概率入手,通過發射概率間接的轉化到觀察序列。一般情況下該觀測序列對應的隱狀態序列有多個,把所有隱狀態可能的序列結合觀察序列求概率,再求和。
2、學習問題,已知觀察序列
學習問題,假設在不知道模型參數的情況下,而我們有大量的觀察序列,那麼這些大量的觀察序列一定不是偶然是這樣,而不是那樣的。從概率的角度來講,是這樣,而不是那樣的原因就是,是這樣的概率大於是那樣的概率。如果有大量的觀察序列,那麼其中必然隱藏了模型的信息。
3、預測問題,已知模型的參數
好了,對應上面的三個問題,分別有三個算法求解對應的問題。
參數學習-最大似然估計(有監督),Baum-Walch(無監督)
B、概率計算(觀察序列的概率)
給定一個確定的隱馬爾科夫模型(參數
其中
由於
而在參數和隱狀態都確定的條件下,產生觀察序列
即整個
因此在給定參數的條件下,產生觀察序列
算法的複雜度為
下面介紹隱馬爾可夫概率計算問題中的前向-後向算法
前向概率:在給定模型的參數和觀察序列
由前向遞推關係
因此前向算法計算如下:
後向概率:在給定模型的參數和觀察序列
值得注意的是,後向概率表示序列從
由後向遞推關係
因此後向算法計算如下:
1)初值:
2)反向遞推:
3)求和:
前向後向算法:
由上面的前向後向算法,固定
一般來講,隱馬爾可夫的參數估計問題分為兩種,一種是有監督,一種是無監督的。有監督意味著給定的訓練集中觀測序列
有監督(最大似然估計):
轉移概率
其中分子表示從
發射概率
其中分子表示在狀態
初始狀態轉移概率
其中分子表示初始狀態是
無監督(Baum-Welch):
隱馬爾可夫模型中隱狀態其實是一個隱變量,EM算法這類含有隱變量模型的通用求解算法,思路是初始化一個隱變量的概率分布,E步:期望最大化來更新樣本的隱變量(值,概率),M步:在隱變量確定的條件下更新隱變量的概率。
已知模型的參數
維特比算法:維特比算法是一種動態規划算法來求解概率最大路徑,也是一種求解最優路徑問題。而最優路徑中總存在這樣一個特性:如果最優路徑
因此,我們需要引入兩個變量,從
同時為了記住到達該路徑的上一節點的狀態,定義如下變量:
有了上面的兩個變量,我們就可以獲得隱狀態的最優路徑:
1)初始化
2)遞推,對
3)終止
4)最優路徑回溯,
求得最優路徑
其中值得注意的是,