(http://blog.csdn.net/xum2008/article/details/38147425)算法
隱馬爾科夫模型(HMM):函數
圖1. 隱馬爾科夫模型spa
隱馬爾科夫模型的缺點:.net
一、HMM只依賴於每個狀態和它對應的觀察對象:對象
序列標註問題不只和單個詞相關,並且和觀察序列的長度,單詞的上下文,等等相關。blog
二、目標函數和預測目標函數不匹配:get
HMM學到的是狀態和觀察序列的聯合分佈P(Y,X),而預測問題中,咱們須要的是條件機率P(Y|X)。it
最大熵隱馬爾科夫模型(MEMM):io
圖2. 最大熵馬爾科夫模型im
MEMM考慮到相鄰狀態之間依賴關係,且考慮整個觀察序列,所以MEMM的表達能力更強;MEMM不考慮P(X)減輕了建模的負擔,同時學到的是目標函數是和預測函數一致。
MEMM的標記偏置問題:
圖3. Viterbi算法解碼MEMM,狀態1傾向於轉換到狀態2,同時狀態2傾向於保留在狀態2;
P(1-> 1-> 1-> 1)= 0.4 x 0.45 x 0.5 = 0.09 ,P(2->2->2->2)= 0.2 X 0.3 X 0.3 = 0.018,
P(1->2->1->2)= 0.6 X 0.2 X 0.5 = 0.06,P(1->1->2->2)= 0.4 X 0.55 X 0.3 = 0.066。
圖3中狀態1傾向於轉換到狀態2,同時狀態2傾向於保留在狀態2;可是獲得的最優的狀態轉換路徑是1->1->1->1,爲何呢?由於狀態2能夠轉換的狀態比狀態1要多,從而使轉移機率下降;即MEMM傾向於選擇擁有更少轉移的狀態。這就是標記偏置問題。而CRF很好地解決了標記偏置問題。
MEMM是局部歸一化,CRF是全局歸一化
另外一方面,MEMMs不可能找到相應的參數知足如下這種分佈:
a b c --> a/A b/B c/C p(A B C | a b c) = 1
a b e --> a/A b/D e/E p(A D E | a b e) = 1
p(A|a)p(B|b,A)p(C|c,B) = 1
p(A|a)p(D|b,A)p(E|e,D) = 1
可是CRFs能夠找到模型知足這種分佈。