條件隨機場學習

作者:白寧超
2016年8月2日13:59:46
【摘要】:條件隨機場用於序列標註,數據分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做 ,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最後進行大量研究整理彙總成體系知識。文章佈局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作爲了解內容。(本文原創,轉載請註明出處漫步條件隨機場系列文章。)
目錄

【自然語言處理:漫步條件隨機場系列文章(一)】:前戲:一起走進條件隨機場
【自然語言處理:漫步條件隨機場系列文章(二)】:基於自然語言處理角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(三)】:基於機器學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(四)】:基於統計學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(五)】:條件隨機場知識擴展
1 機器學習中的生產模型與判別模型

生產式模型與判別式模型簡述,條件隨機場是哪種模型?
有監督機器學習方法可以分爲生成方法和判別方法:
1)生產式模型:直接對聯合分佈進行建模,如:混合高斯模型、隱馬爾科夫模型、馬爾科夫隨機場等
2)判別式模型:對條件分佈進行建模,如:條件隨機場、支持向量機、邏輯迴歸等。
生成模型優缺點介紹:
優點:
1)生成給出的是聯合分佈,不僅能夠由聯合分佈計算條件分佈(反之則不行),還可以給出其他信息。如果一個輸入樣本的邊緣分佈很小的話,那麼可以認爲學習出的這個模型可能不太適合對這個樣本進行分類,分類效果可能會不好
2)生成模型收斂速度比較快,即當樣本數量較多時,生成模型能更快地收斂於真實模型。
3)生成模型能夠應付存在隱變量的情況,比如混合高斯模型就是含有隱變量的生成方法。
缺點:
1)天下沒有免費午餐,聯合分佈是能提供更多的信息,但也需要更多的樣本和更多計算,尤其是爲了更準確估計類別條件分佈,需要增加樣本的數目,而且類別條件概率的許多信息是我們做分類用不到,因而如果我們只需要做分類任務,就浪費了計算資源。
2)另外,實踐中多數情況下判別模型效果更好
判別模型優缺點介紹:
優點:
1)與生成模型缺點對應,首先是節省計算資源,另外,需要的樣本數量也少於生成模型。
2)準確率往往較生成模型高。
3)由於直接學習,而不需要求解類別條件概率,所以允許我們對輸入進行抽象(比如降維、構造等),從而能夠簡化學習問題。
缺點:
1)是沒有生成模型的上述優點。
2 簡單易懂的解釋條件隨機場

線性鏈的條件隨機場跟線性鏈的隱馬爾科夫模型一樣,一般推斷用的都是維特比算法。這個算法是一個最簡單的動態規劃。
首先我們推斷的目標是給定一個X,找到使P(Y|X)最大的那個Y嘛。然後這個Z(X),一個X就對應一個Z,所以X固定的話這個項是常量,優化跟他沒關係(Y的取值不影響Z)。然後exp也是單調遞增的,也不帶他,直接優化exp裏面。所以最後優化目標就變成了裏面那個線性和的形式,就是對每個位置的每個特徵加權求和。比如說兩個狀態的話,它對應的概率就是從開始轉移到第一個狀態的概率加上從第一個轉移到第二個狀態的概率,這裏概率是隻exp裏面的加權和。那麼這種關係下就可以用維特比了,首先你算出第一個狀態取每個標籤的概率,然後你再計算到第二個狀態取每個標籤得概率的最大值,這個最大值是指從狀態一哪個標籤轉移到這個標籤的概率最大,值是多 少,並且記住這個轉移(也就是上一個標籤是啥)。然後你再計算第三個取哪個標籤概率最大,取最大的話上一個標籤應該是哪個。以此類推。整條鏈計算完之後, 你就知道最後一個詞去哪個標籤最可能,以及去這個標籤的話上一個狀態的標籤是什麼、取上一個標籤的話上上個狀態的標籤是什麼,醬。這裏我說的概率都是 exp裏面的加權和,因爲兩個概率相乘其實就對應着兩個加權和相加,其他部分都沒有變。
學習
這是一個典型的無條件優化問題,基本上所有我知道的優化方法都是優化似然函數。典型的就是梯度下降及其升級版(牛頓、擬牛頓、BFGS、L-BFGS),這裏版本最高的就是L-BFGS了吧,所以一般都用L-BFGS。除此之外EM算法也可以優化這個問題。
3 概率無向圖與馬爾科夫隨機場前世今生

概率無向圖模型又稱爲馬爾科夫隨機場,是一個可以由無向圖表示的聯合概率分佈。
圖是由結點和連接結點的邊組成的集合,(這部分知識學過數據結構或者算法的同學都比較瞭解,不作爲深入講解。)
注意:無向圖是指邊上沒有方向的圖,既然邊沒有方向,其權值是有方向的,諸如轉移概率中,“我”到“愛”的轉移概率0.5.
概率圖模型是由圖表示的概率分佈,沒有聯合概率分佈P(Y),Y∈{y}是一組隨機變量由無向圖G=<V,E>表示概率分佈P(Y),即在圖G中,結點v∈V表示一個隨機變量 
邊e∈E表示隨機變量之間的概率依賴關係,這點在第一章有詳細介紹。
給定一個聯合概率分佈P(Y)和表示它的無向圖G,無向圖表示的隨機變量之間的成對馬爾科夫性,局部馬爾科夫性,全局馬爾科夫性的如何區別?
1) 成對馬爾科夫性表示
  
2)局部馬爾科夫性表示
 
3)全局馬爾科夫性表示
                
概率無向圖模型的定義
設有聯合概率分佈P(Y),由無向圖G=<V,E>表示,在圖G中,結點表示隨機變量,邊表示隨機變量之間關係(加權概率),如果聯合概率分佈P(Y)滿足成對/局部/全局馬爾科夫性,就稱此聯合爲概率無向圖模型或者馬爾科夫隨機場。
4 計算聯合概率分佈:概率無向圖模型的因子分解

對給定概率無向圖模型下,本質就是要求聯合概率可以將其改變成若干子聯合概率乘積的形式,也就是將聯合概率進行因子分解。首先介紹兩個概念:最大團
 
:無向圖G中任何兩個結點均有邊連接的節點子集成爲團。
最大團:若C是無向圖G的一個團,並且不能再加進任何一個G的節點使其成爲一個更大的團,則稱此C爲最大團。
注意:{y1,y2,y3,y4}不是一個團,因爲y1與y4無邊相連
概率無向圖模型的因子分解
將概率無向圖模型的聯合概率分佈表示,其最大團上的隨機變量的函數的乘積形式的操作,即
的聯合概率是
 這樣不免太複雜,倘若
爲10000個結點以上呢?(每個結點是一個漢字,假設最大團以是篇章,本書假設10章,則是十個最大團之積。)
概率無向圖模型的聯合概率分佈P(Y)的公式化表示:
給定概率無向圖模型,設其無向圖爲G,C爲G上的最大團,YC表示C對應的隨機變量。那麼概率無向圖模型的聯合概率分佈P(Y)可寫作圖中所有最大團C上的函數ΨC(YC)的乘積形式,即:
 其中, 爲勢函數,C爲最大團,Z是規範化因子
規範化因子保證P(Y)構成一個概率分佈
因爲要求勢函數ΨC(YC)是嚴格正的,於是通常定義爲指數函數:
 
5 參考文獻

【1】 數學之美 吳軍 著
【2】 機器學習  周志華 著
【3】 統計自然語言處理 宗成慶 著(第二版)
【4】 統計學習方法(191---208) 李航
【5】 知乎 網絡資源
6 自然語言相關係列文章

聲明:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處前戲:一起走進條件隨機場。 
【摘要】:條件隨機場用於序列標註,數據分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最後進行大量研究整理彙總成體系知識。文章佈局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作爲了解內容。(本文原創,轉載請註明出處基於自然語言處理角度談談CRF。)
目錄

【自然語言處理:漫步條件隨機場系列文章(一)】:前戲:一起走進條件隨機場
【自然語言處理:漫步條件隨機場系列文章(二)】:基於自然語言處理角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(三)】:基於機器學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(四)】:基於統計學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(五)】:條件隨機場知識擴展
1 條件隨機場(Condition Random Fields),簡稱CRFs

條件隨機場概念條件隨機場就是對給定的輸出標識序列Y和觀察序列X,條件隨機場通過定義條件概率P(X|Y),而不是聯合概率分佈P(X,Y)來描述模型。
概念解析:
標註一篇文章中的句子,即語句標註,使用標註方法BIO標註,B代表句子的開始,I代表句子中間,O代表句子結束。則觀察序列X就是一個語料庫(此處假設一篇文章,x代表文章中的每一句,X是x的集合),標識序列Y是BIO,即對應X序列的識別,從而可以根據條件概率P(標註|句子),推測出正確的句子標註,顯然,這裏針對的是序列狀態,即CRF是用來標註或劃分序列結構數據的概率化結構模型,其在自然語言處理和圖像處理領域得到廣泛的應用,CRF可以看作無向圖模型或者馬爾科夫隨機場。
2 條件隨機場的形式化表示

 設G=(V,E)爲一個無向圖,V爲結點的集合,E爲無向邊的集合,
即V中的每個結點對應一個隨機變量Yv,其取值範圍爲可能的標記集合{Y}.如果觀察序列X爲條件,每一個隨機變量 都滿足以下馬爾科夫特性:
,其中,w – v表示兩個結點在圖G中是鄰近結點,那麼,(X,Y)爲條件隨機變量。
以語句識別的案例理解條件隨機場的形式化表示。
 G=(V,E表示識別語句:【我愛中國】的標註是一個無向圖,X我觀察序列,Y爲標註序列,V是每個標註狀態的結點,E的無向邊,邊上的權值爲概率值。
表示每個X的Y的標註,如:X1:我,y1:O,y2:I,y3:B;取值範圍
,而
中w—v表示我與愛是相鄰的結點,這樣的(X,Y)爲一個條件隨機場,真正的標註再採用Viterbi算法,如:
尋求最大概率即
,記錄下我的標註路徑,同理可知:
 
如上便是對條件隨機場與Viterbi算法的綜合運用,其中Viterbi標註問題本質是隱馬爾科夫模型三大問題之解碼問題算法模型,具體參考(揭祕馬爾科夫模型系列文章)
3 深度理解條件隨機場

理論上標記序列描述一定條件的獨立性,G圖結構任意的,對序列進行建模可形成最簡單,最普通的鏈式結構圖,結點對應標記序列X中元素,CRF鏈式圖如下:
 
如上圖兩種表示是一致的,其中圖鏈式句子標註是圖鏈式2的實例化,讀者可能問爲什麼上面圖是這種而不是廣義的圖,這是因爲觀察序列X的元素之間並不存在圖結構,沒有做獨立性假設,這點也非常容易理解,諸如圖中,我愛中國,其中b表示反射概率而t是轉移概率,線上的數值表示權值即概率值。如圖3,我的發射概率0.7,我到愛的轉移概率0.5,通俗講,我和愛兩個字是有關聯的,並非獨立的。
4 公式化表示條件隨機場

在給定的觀察序列X時,某個待定標記序列Y的概率可以定義爲
其中
是轉移概率,
是狀態函數,表示觀察序列X其中i的位置的標記概率,
分別是t和s的權重,需要從訓練樣本中估計出來。
實例解析
我愛中國,其中x2是愛字,
表示在觀察狀態2中,我到愛的轉移概率,其中j∈{B,I,O},可知
的生成概率或者發射概率的特徵函數.觀察序列{0,1}二值特徵b(x,i)來表示訓練樣本中某些分佈特徵,其中採用{0,1}二值特徵即符合條件標爲1,反之爲0;
爲了便於描述,可以將狀態函數書寫以下形式:
 

特徵函數:
 
其中每個局部
特徵表示狀態特徵,
或者專業函數
,由此條件隨機場的定義條件概率如下:
其中分母爲歸一化因子:
 
5 本節總結

條件隨機場模型也需要解決三個基本問題:特徵的選擇,參數訓練和解碼。其中參數訓練過程在訓練數據集上基於對數似然函數最大化進行。
CRF優點:相對於HMM,CRF主要優點是它的條件隨機性,只需要考慮當前出現的觀察狀態的特性,沒有獨立性嚴格要求,CRF具有MEMM一切優點。
CRF與MEMM區別:
MEMM:使用每一個狀態的指數模型來計算給定前一個狀態下當前狀態的條件概率。
CRF:用單個指數模型計算給定觀察序列與整個標記序列聯合概率。
《統計自然語言處理》P128頁有關於隨機場模型的實現工具。
  
6 參考文獻

【1】 數學之美 吳軍 著
【2】 機器學習  周志華 著
【3】 統計自然語言處理 宗成慶 著(第二版)
【4】 統計學習方法(191---208) 李航
【5】 知乎 網絡資源
7 自然語言相關係列文章

聲明:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處基於自然語言處理角度談談CRF。 
1 條件隨機場(可以看作給定觀察值的馬爾科隨機場)

CRF是一種判別式無向圖模型
CRF試圖對多個變量在給定觀測值後的條件概率進行建模,具體來說,若令
爲觀察序列,
爲與之對應的標記序列,則CRF的目標是構建條件概率模型P(Y|X)。
注意標記變量y是結構型變量,如在自然語言處理的句子標註任務中,觀測數據爲句子,標記爲相應的詞性序列,具有線性序列結構,在語法分析中,輸出標記是語法樹,具有樹形結構。

令G=<V,E>表示結點與標記變量y中元素一一對應的無向圖,
表示與結點v對應標記變量,n(v)表示結點v的領結點,若圖G的每一個變量 都滿足馬爾科夫性,即
 
,則(y,x)構成一個CRF。
上面形式化在第二章已經通過實例解析介紹過。
2 鏈式條件隨機場

如上面句子標註,因爲現象應用中,對標記序列建模時,常有鏈式結構(具體鏈式結構前面有介紹
與馬爾科夫隨機場定義聯合概率概率的方式類似,CRF使用勢函數和圖結構上的團來定義條件概率P(y|x)給定觀察序列X,所謂團即單個標記變量{}以及相鄰標記變量
選擇合適的勢函數,即形如:
的條件概率定義,其中
與Q對應的勢函數,
爲規範因子,實際中,往往Z不需要獲得精確值。
在CRF中,通過選用勢函數並引入特徵函數,條件概率定義如下:
如上參數在第二章有詳細講解。
特徵函數
句子標註爲例的轉移特徵函數
表示第i個觀察值爲“愛”時,相對的標記分別是B,I,其狀態特徵函數如下:
 
表示觀察值x爲單字“愛”時,它對應的標註很可能爲I
3 參考文獻

【1】 數學之美 吳軍 著
【2】 機器學習  周志華 著
【3】 統計自然語言處理 宗成慶 著(第二版)
【4】 統計學習方法(191---208) 李航
【5】 知乎 網絡資源
4 自然語言相關係列文章

聲明:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處基於機器學習角度談談CRF。 
http://www.cnblogs.com/baiboy
分類: NLP
【摘要】:條件隨機場用於序列標註,數據分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最後進行大量研究整理彙總成體系知識。文章佈局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作爲了解內容。(本文原創,轉載請註明出處基於統計學習方法角度談談CRF。)
目錄

【自然語言處理:漫步條件隨機場系列文章(一)】:前戲:一起走進條件隨機場
【自然語言處理:漫步條件隨機場系列文章(二)】:基於自然語言處理角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(三)】:基於機器學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(四)】:基於統計學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(五)】:條件隨機場知識擴展
引子

條件隨機場(CRF):是給定一組輸入隨機變量條件下,另一組輸出隨機變量的條件概率分佈模型,其特點是假設輸出隨機變量構成馬爾科夫隨機場,條件隨機場可用於不同預測問題,由輸入序列對輸出序列預測的判別式模型,形式爲對數線性模型,其學習方法通常是極大似然估計。
1 條件隨機場(CRF)的定義與形式

簡單的說,條件隨機場(CRF)類似於MRF,只不過CRF比MRF多了一個觀察集合,或者說,CRF本質上就是給定了觀察值集合的MRF。
條件隨機場設G=(V,E)是一個無向圖,Y={Yv|v∈V}是以G中節點v爲索引的隨機變量Yv構成的集合。在給定X的條件下,如果每個隨機變量Yv服從馬爾可夫性,即
,則條件概率分佈P(Y|X)就是一個條件隨機場。上式中的w ~ v表示在圖G=(V, E)中與節點v有邊連接的所有節點,w≠v表示v以外的所有節點,Yv,Yu, Yw爲w對節點v,u,w對應的隨機變量。
線性鏈條件隨機場:  
設X = (X1, X2,..., Xn), Y = (Y1, Y2, ..., Yn)均爲線性鏈表示的隨機變量序列,若在給定隨機變量序列X的條件下,隨機變量序列Y的條件概率分佈P(Y|X)構成條件隨機場,即滿足馬爾可夫性(見本文最開始的“模型定義”部分): P(Yi| X, Y1, ..., Yi-1, Yi+1, ...., Yn)= P(Yi | X, Yi-1, Yi+1)  i= 1, 2, ..., n (在i=1和n時只考慮單邊),則稱P(Y|X)爲線性鏈條件隨機場。
注意:在標註問題中,X表示輸入觀測序列,Y表示對應的輸出標記序列或狀態序列。
2 條件隨機場的參數化形式

P(Y|X)爲線性鏈條件隨機場,則在隨機變量X取值爲x的條件下,隨機變量Y取值爲y的條件概率具有如下形式:
 
其中,
式中,tk和sl是特徵函數,λk和μl是對應的權值。Z(x)是規範化因子,求和時在所有可能的輸出序列上進行的。
通常:特徵函數t和s取值是1或0,當滿足特徵條件取值1,反之取值0,條件隨機場完全由特徵函數t,s和對應的數值λ,μ確定。
注意:線性CRF也是對數性模型。
實例解析:
設有一個天氣預測問題:輸入觀察序列(連續三天的天氣情況)爲X = (X1, X2, X3),輸出標記序列(每天對應天氣熱冷的預測)爲 Y = (Y1, Y2, Y3), Y1, Y2, Y3 的取值於y= {H, C},其中H表示天熱,C表示天冷。假設特徵tk,sl和對應的權值λk,μl如下:
其中,上式代表着特徵值爲H的條件,即:yi-1= H, yi=C, x, i = 2, 3 時特徵值取1。而特徵值取0的條件被省略了。
PS:如果寫全的話是這樣:
於是對給定的觀測序列x,求標記序列爲y =(y1, y2, y3) = (H, C, C),即第一天熱,第二天第三天連續冷的非規範化條件概率(即沒有除以規範化因子的條件概率)
實例分析:
由以上問題可知,觀察序列是天數的集合,標記序列是對應天氣熱冷的集合,由此分析顯然是隨機條件場的編碼問題,基於隨機條件場,可以將上述情形轉換爲圖形化形式分析,然後進行模型構建,算法實現,算法優化和結果分析即可。本節重點實現分析,圖形表示,模型構建。
天氣預測問題轉化爲圖形表示如下:
如圖所示,橫座標x1,x2,x3分別對應天,是觀察序列具備時序性,縱座標是標記序列即可能隱藏的所有標記情況,start和end表示開始和結束狀態(這點參照筆者Viterbi算法一節的介紹),其中t表示轉移概率,t=0.5有具體權值的,標註轉移概率是50%機會。X對應的s表示發射概率或者生產概率,顯然,如上滿足條件隨機場,回顧下條件隨機場模型,線性鏈條件隨機場模型爲:
於是對給定的觀測序列x,標記序列y=(H,C,C)的非規範化條件概率爲
上式數值計算,參照已知條件和圖形分析,很容易計算,這裏具體計算過程省略。
3 條件隨機場的簡化形式

將局部特徵轉化爲一個全局特徵函數,可將CRF寫成權值向量和特徵向量的內積形式即是條件隨機場的簡化形式,具體參見如下筆記:
① 將轉移特徵和狀態特徵以及其數值用統一符號表示,設有K1個轉移貼紙,K2個狀態特徵,K=K1+K2,記:
② 對轉移狀態各個位置i求和,記作:
③ 用wk表示特徵fk(y,x)的權值,即:
           
④ 於是,條件隨機場可表示爲
                       
⑤ 以w表示權值向量,即
                      
⑥ 以F(y, x)表示全局特徵向量,即
                  
則條件隨機場可以寫成向量w與F(y, x)的內積的形勢:
 
4 條件隨機場預測算法

 形式化描述: 條件隨機場的預測問題是給定義條件隨機場P(Y|X)和輸入序列(觀測序列)x,求條件概率最大的輸出序列(標記序列)y*,即對觀測序列進行標註。 條件隨機場的預測算法是著名的維特比算法
你對維特比算法是什麼就有概念了吧,下面來看看其數學描述。維特比算法不做深入講解,如果讀者還不清楚,參考本人系列文章之揭祕馬爾科夫模型系統文章,有專門章節詳細介紹viterbi算法。
    
這裏,路徑表示標記序列,其中
           
注意,這時只需計算非規範化概率,而不必計算概論,可以大大提高效率。
爲了求解最優路徑,將式寫成如下形式:
            
其中
                
就是局部特徵向量。
下面敘述維特比算法
實例解析
用維特比算法求給定的輸入序列(觀測序列)x對應的輸出序列(標記序列)y* = (y1*, y2*, y3*);
解析
1)第一步初始化:因爲y1=1和y1=2是最初,所以就不用考慮轉移的情況了(實際上也沒有“表達從y0轉移到y1的情況”的t函數(轉移函數)),直接從狀態函數(s函數中找),發現,s1和s2分別對應y1=1和y1=2,說明y1=1和y1=2這個狀態都是存在的,而s1和s2的權值分別是1和0.5,且上面列出的s函數們和t函數們值都爲1,所以y1=1和y2=1的可能性分別是1和0.5。所以,到達y1的非規範化概率最大值爲:δ1(1) = 1,δ1(2) = 0.5。
2)第二步遞推i=2(達第二處目的地集合{y2=1, y2=2}):首先是路線(僅說明到達y2=1的情況):
上圖可知,到達y2=1的路線有如下幾條:
 路線1:從y1=1出發 ----(經過t2)---->到達y2=1;
 路線2:從y1=2出發 ----(經過t4)---->到達y2=1;
 接着是狀態(僅說明到達y2=1的情況):
根據題目可知:i=2時的狀態函數只有s2和s3,而y2=1對應的函數是s3
所以到達y2=1的非規範化概率最大值爲:δ2(1) = max{1+λ2t2 + u3s3,0.5 + λ4t4 + u3s3}= 2.4
非規範化概率最大值的路徑爲: ψ2(1) = 1
δ2(2)同理。
i=3也一樣(只不過對於δ3(1)中的u5s5,我認爲應該是u3s3,先不說s3對應的是y3=1的情況,而且原題中根本沒有s5函數)。
3)第三步終止:這步就簡單了,在δ3(l)中δ3(1) = 4.3最大,所以y3中取1的可能性最大,即y3*=1。
4)第四步返回:然後反着推:
從y2的哪個值到y3可能性最大呢?在第二部已經解出:ψ3(1) = 2,即y2到達y3=1的路線中權值最大的是y2=2,即y2*=2。
同理,從y1=1到y2=2的可能性最大,即y1*=1。
5)就得到標記序列:*= (y1*, y2*, y3*)= (1, 2, 1)
5 參考文獻

【1】 數學之美 吳軍 著
【2】 機器學習  周志華 著
【3】 統計自然語言處理 宗成慶 著(第二版)
【4】 統計學習方法(191---208) 李航
【5】 知乎 網絡資源
6 自然語言相關係列文章

聲明:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處基於統計學習方法角度談談CRF。 
http://www.cnblogs.com/baiboy
好文要頂 關注我 收藏該文 
 
+加關注
0
0
posted @ 2016-08-03 10:35 伏草惟存 閱讀(212) 評論(0) 編輯 收藏
1 隨機場的矩陣形式

矩陣表示形式前提條件:假設P(y|x)是線性鏈條件隨機場,給定觀測序列x,相應的標記序列y的條件概率。引進特殊的起點和終點狀態標記y0 = start,yn+1 = stop,這時Pw(y|x) 可以通過矩陣形式表示。(實際上,特殊點的引用大家都有接觸,諸如學習隱含馬爾科夫模型中向前算法解決了似然度問題,viterbi算法解決解碼問題,向前向後算法解決學習參數。
對觀測序列x的每一個位置i=1, 2,..., n+1,定義一個m階矩陣(m是標記yi取值的個數)
                                 
這樣給定觀測序列x,標記序列y的非規範化概率可以通過n+1個矩陣的乘積
              
表示。於是,條件概率Pw(y|x)是
 
中,Zw(x)爲規範化因子,是n+1個矩陣的乘積的(start,stop)元素:
注意,y0= start,yn+1 = stop表示開始狀態與終止狀態,規範化因子Zw(x)是以start爲起點stop爲重點通過狀態的所有路徑y1y2...yn的非規範化概率
          
之和。
下面通過一個例子來說明“範化因子Zw(x)是以start爲起點stop爲重點通過狀態的所有路徑y1y2...yn的非規範化概率之和”這個事實
實例解析
              
給定一個如上圖所示的線性鏈條件隨機場,觀測序列x,狀態序列y,i=1,2,3,n=3,標記yi∈{1,2},假設y0=start=1,y4=stop=1,各個位置的隨機矩陣M1(x),M2(x),M3(x),M4(x)分別是
              
試求狀態序列y以start爲起點stop爲終點所有路徑的非規範化概率及規範化因子。
實例解答:
從start到stop對應於y=(1,1,1),y=(1,1,2), ..., y=(2,2,2)個路徑的非規範化概率分別是:
                            a01b11c11,a01b11c12,a01b12c21,a01b12c22
                            a02b21c11,a01b21c12,a02b22c21,a02b22c22
然後按式11.12求規範化因子,通過計算矩陣乘積M1(x) M2(x) M3(x) M4(x)可知,其第一行第一列的元素爲a01b11c11+ a01b11c12 + a01b12c21+ a01b12c22+a02b21c11 + a01b21c12+ a02b22c21 + a02b22c22,恰好等於從start到stop的所有路徑的非規範化概率之和,即規範化因子Z(x)。
在之前的介紹中我們已近知道,條件隨機場的概率計算問題是給定條件隨機場P(Y|X),輸入序列x和輸出序列y,計算條件概率P(Yi=yi | x),P(Yi-1 =yi-1, Yi=yi | x)以及相應數學期望的問題。爲了方便起見,像隱馬爾可夫模型那樣,引進前向-後向向量,遞歸的計算以上概率及期望值。這樣的算法稱爲前向-後向算法。
2 前向-後向算法

對每個指標i =0,1,...,n+1,定義前向向量ai(x):
    
遞推公式爲
          
又可表示爲
       
ai(yi|x)表示在位置i的標記是yi並且到位置i的前部分標記序列的非規範化概率,若yi可取的值有m個,那ai(x)就是m維的列向量。同樣,對每個指標i =0,1,...,n+1,定義後向向量βi(x):
            
又可表示爲
               
βi(yi|x)表示在位置i的標記爲yi並且從i+1到n的後部分標記序列的非規範化的概率。
由前向-後向定義不難得到:
           
這裏,若ai(x)是m維的列向量,那1就是元素均爲1的m維列向量。
概率計算
按照前向-後向向量的定義,很容易計算標記序列在位置i是標記yi的條件概率和在位置i-1與i是標記yi-1和yi的條件概率:
其中,   Z(x)= anT(x)·1
 期望值計算
利用前向-後向向量,可以計算特徵函數關於聯合分佈P(X, Y)和條件分佈P(Y | X)的數學期望。特徵函數fk關於條件分佈P(Y |X)的數學期望是
其中,Z(x)= anT(x)·1
則特徵函數fk關於聯合分佈P(X, Y)的數學期望是
    
其中, Z(x)= anT(x)·1
特徵函數數學期望的一般計算公式。對於轉移貼紙tk(yi-1, yi, x, i),k=1,2,...,K1,可以將式中的fk換成tk;對於狀態特徵,可以將式中的fk換成si,表示sl(yi, x, i),k = K1 +1,l = 1,2,...,K2。有了式11.32 ~11.35,對於給定的觀測序列x和標記序列y,可以通過一次前向掃描計算ai及Z(x),通過一次後向掃描計算βi,從而計算所有的概率和特徵的期望。
 3 CRF的學習算法

條件隨機場模型實際上是定義在時序數據上的對數線性模型,其學習方法包括極大似然估計和正則化的極大似然估計。
具體的優化實現算法有改進的迭代尺度法IIS、梯度下降法以及擬牛頓法。
1)進的迭代尺度法(IIS)
已知訓練數據集,由此可知經驗概率分佈
  
可以通過極大化訓練數據的對數似然函數來求模型參數。訓練數據的對數似然函數爲
  
當Pw是一個由
給出的條件隨機場模型時,對數似然函數爲
              
IIS通過迭代的方法不斷優化對數似然函數改變量的下界,達到極大化對數似然函數的目的。
假設模型的當前參數向量爲w=(w1,w2, ..., wK)T,向量的增量爲δ=(δ1,δ2, ..., δK)T,更新參數向量爲w +δ=(w1+δ1, w2 +δ2, ..., wk+δk)T。在每步迭代過程中,IIS通過一次求解下面的11.36和11.37,得到δ=(δ1,δ2, ..., δK)T。關於轉移特徵tk的更新方程爲:
關於狀態特徵sl的更新方程爲:
這裏T(x, y)是在數據(x, y)中出現所有特徵數的綜合:
         
於是算法整理如下。
算法:條件隨機場模型學習的改進的迭代尺度法
輸入:特徵函數t1,t2, ..., tK1,s1, s2, ..., sK2;經驗分佈
輸出:參數估計值  ;模型 。
過程
2)擬牛頓法
對於條件隨機場模型
 
學習的優化目標函數是
其梯度函數是
 
擬牛頓法的BFGS算法如下:算法:條件隨機場模型學習的BFGS算法
4 基於條件隨機場CRF的中文命名實體識別效率如何?

【知乎】北京航空航天大學 計算機專業博士在讀33 人贊同
大致命名實體識別的方法可以可以分爲四個大類型:
有監督學習方法:
當然還有決策樹最大熵等方法。基本每個模型都會在這個問題上試一遍的。
混合方法:多種模型結合 Recognizing named entities in tweets
主要介紹三種主流算法,CRF,字典法和混合方法。
CRF:
用過CRF的都知道,CRF是一個序列標註模型,指的是把一個詞序列的每個詞打上一個標記。一般通過,在詞的左右開一個小窗口,根據窗口裏面的詞,和待標註詞語來實現特徵模板的提取。最後通過特徵的組合決定需要打的tag是什麼。
而在CRF for Chinese NER這個任務中,提取的特徵大多是該詞是否爲中國人名姓氏用字,該詞是否爲中國人名名字用字之類的,True or false的特徵。所以一個可靠的百家姓的表就十分重要啦~在國內學者做的諸多實驗中,效果最好的人名可以F1測度達到90%,最差的機構名達到85%。
字典法:
字典法需要掌握的是一種快速搜索算法trie-tree,我相信很多人應該對這個算法已經有所瞭解。在NER中就是把每個字都當開頭的字放到trie-tree中查一遍,查到了就是NE。中文的trie-tree需要進行哈希,因爲中文字符太多了,不像英文就26個。
混合法:
對六類不同的命名實體採取不一樣的手段進行處理,例如對於人名,進行字級別的條件概率計算。
例如我們需要算
其中Sur代表中國人姓氏,Dgb代表中國人名首字,Dge代表中國人名尾字。
而機構則在詞級別進行此概率計算。
我知道的系統有:
中文
英文:
Stanford NER
BANNER(生物醫學)
Minor Third
5 條件隨機場(crf)是否可以將分類問題都當作序列標註問題解決?

知乎】標註看上去好像就是在序列上做分類。
然而實際上標註跟分類最大的區別就是:標註採的特徵裏面有上下文分類結果,這個結果你是不知道的,他在“分類”的時候是跟上下文一起"分類的"。因爲你要確定這個詞的分類得先知道上一個詞的分類,所以這個得整句話的所有詞一起解,沒法一個詞一個詞解。
而分類是根據當前特徵確定當前類別,分類的時候不需要考慮上下文的分類結果,但可以引入上下文的特徵。
比如說命名實體識別,你採的特徵如果是:{當前詞,當前詞性,當前詞語義角色,上一個詞,上一個詞的詞性}
那這樣跟分類沒有什麼區別。如果你採的特徵是:{當前詞,當前詞性,當前詞語義角色,上一個詞,上一個詞的標籤,上一個詞的詞性}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章