機器學習之條件隨機場

  CRF是一種靈活的框架,它包含了用於視覺識別的各類各樣的特徵,特別的,CRF被用於學習低級(顏色和邊緣)線索的最佳組合和預學習高級模塊(基於部件檢測器,bag-of-words分類器)對特定視覺識別問題(eg.圖像分割)中圖像模型提供推理功能。算法

  學習條件隨機場以前,須要瞭解機率圖模型的相關知識。框架

  機率圖模型

  機率圖模型是一類用結構表達各屬性之間相關關係的機率模型,通常的,圖中的一個結點表示一個或一組隨機變量,結點之間的邊則表示變量間的相關關係,從而造成了一張‘變量關係圖’。若使用有向的邊來表達變量之間的依賴關係,這樣的關係圖稱爲貝葉斯網或有向圖模型,若使用無向邊,則稱爲馬爾科夫網或無向圖模型機器學習

  1.隱馬爾可夫模型(HMM)

  隱馬爾可夫模型(hidden Markov Model,HMM)是結構最簡單的一種貝葉斯網,主要用於時序數據建模,在語音識別和天然語言處理上有着普遍的應用。在HMM中變量分爲兩組,觀測變量和狀態變量(隱變量),狀態變量通常未知,好比在高斯模型中,某一種樣本的分佈是參數爲多少的高斯模型,這個參數就是隱變量。觀測變量是能夠觀測到的值,通常爲已知的輸出值。在隱馬爾可夫模型中,變量之間的依賴關係遵循如下規則:函數

  1)在任一時刻,觀測變量的取值僅依賴於狀態變量,即xt由yt肯定,與其餘狀態變量及觀測變量的取值無關。學習

     2)t時刻的yt僅依賴於t-1時刻的狀態yt-1,與前t-2個個狀態無關,這就是馬爾可夫鏈,即:系統下一時刻的狀態僅由當前狀態決定,不依賴於以往的任何狀態。spa

                                                                              y1,y2...yn表示狀態變量,x1,x2..xn表示觀測變量3d

  基於上述的依賴關係,隱馬爾可夫模型中全部變量的聯合機率以下:blog

  狀態變量與它的前一個變量有直接的關係。狀態變量的取值存在一個機率值,在此狀態變量的條件下觀測變量的取值也存在一個機率值事件

  容易看出,想要肯定一個HMM模型須要如下參數:it

  1)狀態轉移機率矩陣:從當前狀態轉移到下一個狀態的機率矩陣,一般記爲A=[aij]N*N

               

    表示在任意時刻t,若狀態爲si,則在下一時刻爲sj的機率

  2)根據狀態輸出觀測值機率矩陣,一般記爲B=[bij]N*M

    

   bij表示在任意時刻t,若狀態爲si,則觀測值oj被獲取的機率

  3)初始狀態機率,模型在初始時刻各狀態出現的機率,一般記爲π=(π1,π2,...,πN):

         πi = p(y1=si

    表示模型的初始狀態爲si的機率。

當肯定了一個HMM模型的狀態空間,觀測空間,初始狀態機率後,便按照下面的規則生成觀測值序列:

  (1)設置t=1,並根據初始狀態機率π選擇初始狀態y1,(根據初始狀態機率向量)

  (2)根據狀態yt和輸出觀測機率B選擇觀測變量取值xt,(由狀態產生觀測值)

  (3)根據狀態yt和狀態轉移矩陣A轉移模型狀態,即肯定yt+1,(狀態轉移機率矩陣)

  (4)若t<n,(n表示狀態數或者觀測變量的數目),設置t=t+1,並轉到第(2)步,不然中止

其中 yt∈{s1,s2,..,sN} 和 xt∈{o1,o2,...,oM}分別爲第t時刻的狀態和觀測值

  在實際應用中,HMM模型常被關注的三個問題:

  (1)給定模型 λ=[A,B,π],如何有效計算其產生觀測序列x={x1,x2,...,xn}的機率P(x|λ),或者說,如何評價模型與觀測序列之間的匹配程度?

  (2)給定模型 λ=[A,B,π]和觀測序列 x={x1,x2,...,xn},如何找到與此觀測序列最匹配的狀態序列 y={y1,y2,...,yn},或者說,如何根據觀測序列推斷出隱藏的模型狀態。

  (3)給定觀測序列 x={x1,x2,...,xn},如何調整模型參數 λ=[A,B,π]使得該序列出現的機率p(x|λ)最大,或者說,如何訓練模型是其最好的描述觀測數據(EM算法:指望值最大算法,使用最大似然估計)

  1.1 HMM評估

  HMM評估問題指的是:給定了模型的三個參數與觀測值序列,求該觀測值序列出現的機率。例如:對於賭場問題能夠根據骰子擲出的結果序列來計算該結果序列出現的可能性,若小几率事件發生了,則可認爲賭場的骰子有做弊的可能。解決該問題使用的前向算法(步步爲營,自底向上的方式逐步增長序列的長度,直到得到目標機率值),在前向算法中,定義了一個前向變量,即給定觀察者序列且t時刻的狀態爲si的機率:

 

 

   遞推關係和終止條件以下:

  (我的理解)在遞推關係中,a爲狀態轉移矩陣,a(i,j):從si這個狀態到sj這個狀態,表示給定的觀察者序列且t時刻的狀態爲si的機率,是一個聯合機率,表示t時刻爲si的機率乘上轉移到下一個狀態的機率,可是在前向變量裏面還包含着一個觀察者序列。求和表示把前j個狀態的機率值加起來,最後乘上觀測值機率(在第j個狀態下,觀測值的機率),最終結做爲第t+1個時刻的前向變量。 

  終止條件:到達最後的一個狀態變量或者觀測變量。

  根據以上思路,可使用動態規劃法,從最小的子問題開始,經過填表格的形式一步步的計算目標結果。

  1.2 HMM解碼問題

  HMM解碼問題指的是:給定模型的三個參數與觀測值序列,求可能性最大的狀態序列。如,在語音識別問題中,人說話造成的數字信號對應着觀測值序列,對應的具體文字則是狀態序列,從數字信號轉化爲文字正是對應着根據觀測值序列推斷最有可能的狀態序列。(解決該問題使用的是Viterbi算法,與前向算法十分相似,Viterbi算法定義了一個Viterbi變量,也是採用動態規劃的方法,自底向上逐步求解。)

  Viterbi算法公式:

 

   1.3 HMM學習問題

  HMM學習問題指的是:給定觀測值序列,如何調整模型的參數使得該序列出現的機率最大。這便轉化爲機器學習問題,即從給定的序列中學習出一個HMM模型,這也正是EM算法的經典案例之一(在EM算法中採用的是最大似然估計)。其思想爲:對於給定的觀測值序列,若是咱們可以按照序列潛在的規律來調整模型的三個參數,則可使得該序列出現的可能性最大。假設狀態序列已知,則很容易計算出該序列最契合的模型參數:

   公式的我的理解:

    (1):狀態1到其餘狀態的值,根據x=y,等於1,不然等於0,這種規則肯定的

                                                            

    (2):aij表示狀態轉移機率矩陣,而仍表示狀態轉移矩陣

 

 

 

    (3):Q中由狀態qj輸出vk的次數/Q到qj的次數

 

  但通常狀態值序列都是不可觀測的,且即便給定觀測值序列與模型參數,狀態序列仍熱遭遇組合爆炸。,所以上面的統計方法行不通,狀態值序列看做爲隱變量,這時即可以考慮使用EM算法來對該問題進行求解:(將序列拆分爲兩段)

  (1)首先對HMM模型的三個參數進行隨機初始化

  (2)根據模型的參數與觀測值序列,計算t時刻狀態爲i且t+1時刻狀態爲j的機率以及t時刻狀態爲i的機率。

 

 

 

 

   (3)接着即可以對模型的三個參數進行從新估計:

 

 

   (4) 重複步驟2-3,直至三個參數值收斂,使獲得了最終的HMM模型

   2 馬爾可夫隨機場(MRF)

  馬爾可夫隨機場是是典型的馬爾可夫網,是一種著名的無向圖模型,圖中的每一個結點都表示一個或一組變量,結點之間的邊表示兩個向量之間的依賴關係。馬爾可夫隨機場有一組勢函數,也稱因子,這是定義在變量子集上的非負實函數,主要用於定義機率分佈函數

  馬爾可夫隨機場:對於圖中結點一個子集,若其中任意兩結點間都有邊鏈接,則稱該結點子集爲一個團,若在一個團中,加入另外任何一個結點都再也不造成團,則稱該團爲極大團,換言之,極大團就是不能被其餘團所包含的團。

  在馬爾可夫隨機場中,多個變量之間的聯合機率分佈能基於團分解爲多個因子的乘積,每一個因子僅與一個團相關。具體來講,對於n個變量x={x1,x2,...,xn},全部團構成的集合爲C,與團Q∈C對應的變量集合記爲xQ,則聯合機率P(x)定義爲

  

  x(Q)爲變量的集合,φ(Q)爲與團Q對應的勢函數,用於對團Q中的變量關係進行建模,是定義機率分佈的函數,Z表示規範化因子,以確保P(x)是被正肯定義的機率,在實際中,計算Z比較困難,但許多任務中不需得到Z的精確值。

  例如,如下圖是一個簡單的馬爾可夫隨機場:

 

 

   極大團:{x1,x2},{x2,x5,x6},{x2,x4},{x1,x3},{x3,x5},聯合機率P(x)定義爲:

 note:勢函數φ256(x2,x5,x6)定義在極大團{x2,x5,x6}上,因爲它的存在,使咱們不需再爲團{x2,x5},{x2,x6},{x5,x6}構建勢函數。

  在馬爾可夫隨機場中,如何獲得條件獨立性呢,藉助分離的概念,以下圖,若從結點集A的結點到結點集B的結點,則必須通過結點集C中的結點,則稱結點集A和B被結點集C分離,C稱爲分離集,對馬爾可夫隨機場,有:

   全局馬爾可夫性:給定兩個變量子集的分離集,則這兩個變量子集條件獨立。

 

 

   局部馬爾可夫性:給定某變量的鄰接變量,則該變量與其餘變量條件獨立。

  形式化表示:令V爲圖的結點集,n(v)爲結點v在圖上的鄰接點,n*(v)=n(v)∪{v},有xv⊥xV\n*(v)|xn(v),  xv\n*(v)表示結點中除去n*(v),這個結點。eg,在圖14.4中:xa的鄰接變量爲xc,則xa與xb在xc的條件下獨立

   成對馬爾可夫性:給定全部其餘變量,兩個非鄰接變量條件獨立

  形式化表示:令圖中的結點集和邊集分別爲V和E,對圖中的兩個結點u和v,若<u,v>∉E,則xu⊥xv|xV\<u,v>,xV\<u,v>表示除去u和v以外的其餘頂點

   3 條件隨機場(CRF)

   隱馬爾可夫模型和馬爾可夫隨機場都屬於生成式模型(對聯合機率進行建模),條件隨機場則是對條件分佈進行建模。CRF試圖對多個變量在給定觀測值序列後的條件機率進行建模,若x={x1,x2,...,xn}爲觀測序列,y ={y1,y2,...,yn}爲與之相應的標記序列,則條件隨機場的目標是構建條件機率模型即 P(y|x),標記變量y能夠上結構型變量,即份量之間具備某種相關性。eg 在天然語言處理的詞性標註任務中,觀測序列爲語句(即單詞序列),標記爲相應的詞性序列,具備線性序列結構,以下圖(a),在語法分析任務中,輸出標記則是語法樹,具備樹形結構,以下圖(b)。

 

  令圖 G=<V,E>表示結點與標記變量y中元素一一對應的無向圖,yv表示與結點V對應的標記變量,n(v)表示結點v的鄰接結點。若圖中的每一個結點yv都知足馬爾可夫性,即

 

 則(y,x)構成一個條件隨機場。

  圖G可具備任意結構,在實際應用中,尤爲對標記序列建模時,最經常使用的還是以下圖的鏈式結構,即鏈式條件隨機場(chain-structured CRF),下圖是咱們經常使用的鏈式條件隨機場,其主要包含兩種關於標記變量的團,即單個標記變量{yi}以及相鄰的標記變量{yi-1,yi},與馬爾可夫隨機場定義聯合機率相似,CRF也經過團以及勢函數的概念來定義條件機率P(y|x)

   經過引入兩類特徵函數即可以定義出目標條件機率:

 公式解讀:

   表示定義在觀測序列的兩個相鄰標記位置上的轉移特徵函數,用於刻畫相鄰標記變量之間的相關關係以及觀測序列對他們的影響,

   表示在觀測序列的標記位置i上的狀態特徵函數,用於刻畫觀測序列對標記變量的影響,λj和uk爲參數,z爲規範因子。

  例如,詞性標註:如何判斷給出的標註序列靠譜不靠譜,轉移特徵函數主要斷定兩個相鄰的標註是否合理,例如,動詞+動詞語法不通,狀態特徵函數斷定觀測值與對應的標註是否合理,例如:ly結尾的詞-->副詞較合理。所以咱們能夠定義一個特徵函數集合,用這個特徵函數集合來爲一個標準序列打分,根據此選出靠譜的標註序列。每個特徵函數均可以用來爲一個標準序列評分,把集合中全部特徵函數對同一個標註序列的評分綜合起來,就是這個標註序列最終的評分值。特徵函數是一些經驗的特性。

相關文章
相關標籤/搜索