天天看點

CRF介紹(轉自知乎)

  首先什麼是随機場呢,一組随機變量,他們樣本空間一樣,那麼就是随機場。當這些随機變量之間有依賴關系的時候,對我們來說才是有意義的。

  

  那麼為了簡化某些問題來說,也為了這個圖畫出來能用,我們會在畫圖的時候要遵循一些假設和規則,比如馬爾科夫獨立性假設。按照這個假設和規則來畫圖,畫出來的圖會滿足一系列友善的性質便于使用。

  

  馬爾可夫獨立性假設:對一個節點,在給定他所連接配接的所有節點的前提下,他與外界是獨立的。

  

  就是說如果你觀測到了這個節點直接連接配接的那些節點的值的話,那他跟那些不直接連接配接他的點就是獨立的。

  

  形式上,我們是想把他設計成這個樣子的,邊可以傳遞資訊,點與點之間通過邊互相影響,如果觀測到一個節點的取值或者這個節點的取值是常量,那麼别的節點就無法通過這個節點來影響其他節點。是以對一個節點來說,如果用來連接配接外界的所有節點都被鎖住了,那他跟外界就無法傳遞資訊,就獨立了。這比貝葉斯網絡就直覺多了,貝葉斯網絡要判斷兩點之間獨立還要看有沒有v-structure,還要看邊的指向。呐,滿足馬爾可夫獨立性的随機場,就叫馬爾可夫随機場。它不僅具有我剛才說的那些性質,除此之外,還等價于吉布斯分布。

  

  這些邊具體是如何模組化的呢,以什麼形式記錄這些機率資訊的?

  

  貝葉斯網絡每一條邊是一個條件機率分布,P(X|Y),條件是父節點、結果是子節點。他有一個問題,就是當我知道A、B、C三個變量之間有相關關系,但是不知道具體是誰依賴誰,或者我不想先假設誰依賴誰,這個時候貝葉斯就畫不出來圖了。因為貝葉斯網絡是通過變量之間的條件分布來模組化整個網絡的,相關關系是通過依賴關系(條件分布)來表達的。而馬爾可夫随機場是這樣,我不想知道這三個變量間到底是誰依賴誰、誰是條件誰是結果,我隻想用聯合分布直接表達這三個變量之間的關系。比如說兩個變量A、B,這兩個變量的聯合分布是:

  

               

CRF介紹(轉自知乎)

  這個分布表示,這條邊的功能是使它連接配接的兩點(A和B)趨同,當A = 0的時候B更可能等于0不太可能等于1,當A = 1的時候B更可能等于1不太可能等于0。這樣一來你知道了三個變量之間的聯合分布,那他們兩兩之間的條件分布自然而然就在裡面。這樣出來的圖是等價于吉布斯分布的,就是說,你可以隻在每個最大子團上定義一個聯合分布(而不需要對每個邊定義一個聯合分布),整個圖的聯合機率分布就是這些最大子團的聯合機率分布的乘積。當然這裡最大子團的聯合機率并不是标準的聯合機率形式,是沒歸一化的聯合機率,叫factor(因子),整個圖的聯合機率乘完之後下面再除一個歸一化因子和就歸一化了,最終是一個聯合機率,每個子團記載的都是因子,是沒歸一化的機率,嚴格大于零,可以大于一。但關鍵是依賴關系、這些相關關系已經encode在裡面了。這是馬爾科夫随機場。

  

  條件随機場是指這個圖裡面一些點我已經觀測到了,求,在我觀測到這些點的前提下,整張圖的分布是怎樣的。就是given觀測點,你去map inference也好你去做之類的事情,你可能不求具體的分布式什麼。這裡還要注意的是,馬爾科夫随機場跟貝葉斯網絡一樣都是産生式模型,條件随機場才是判别式模型。

  

  線性鍊條件随機場的形式是這樣的,觀測點是你要标注的這些詞本身和他們對應的特征,例如說詞性是不是專有名詞、語義角色是不是主語之類的。隐節點,是這些詞的标簽,比如說是不是人名結尾,是不是地名的開頭這樣。這些隐節點(就是這些标簽),依次排開,相鄰的節點中間有條邊,跨節點沒有邊(線性鍊、二階)。然後所有觀測節點(特征)同時作用于所有這些隐節點(标簽)。至于觀測節點之間有沒有依賴關系,這些已經不重要了,因為他們已經被觀測到了,是固定的。

  

  線性鍊的條件随機場跟線性鍊的隐馬爾科夫模型一樣,一般推斷用的都是維特比算法。這個算法是一個最簡單的動态規劃。

  

  首先我們推斷的目标是給定一個X,找到使P(Y|X)最大的那個Y嘛。然後這個Z(X),一個X就對應一個Z,是以X固定的話這個項是常量,優化跟他沒關系(Y的取值不影響Z)。然後exp也是單調遞增的,也不帶他,直接優化exp裡面。是以最後優化目标就變成了裡面那個線性和的形式,就是對每個位置的每個特征權重求和。比如說兩個狀态的話,它對應的機率就是從開始轉移到第一個狀态的機率加上從第一個轉移到第二個狀态的機率,這裡機率是隻exp裡面的權重和。那麼這種關系下就可以用維特比了,首先你算出第一個狀态取每個标簽的機率,然後你再計算到第二個狀态取每個标簽得機率的最大值,這個最大值是指從狀态一哪個标簽轉移到這個标簽的機率最大,值是多少,并且記住這個轉移(也就是上一個标簽是啥)。然後你再計算第三個取哪個标簽機率最大,取最大的話上一個标簽應該是哪個。以此類推。整條鍊計算完之後,你就知道最後一個詞去哪個标簽最可能,以及去這個标簽的話上一個狀态的标簽是什麼、取上一個标簽的話上上個狀态的标簽是什麼,醬。這裡我說的機率都是exp裡面的權重和,因為兩個機率相乘其實就對應着兩個權重和相加,其他部分都沒有變。

作者:趙孽

連結:https://www.zhihu.com/question/35866596/answer/74187736

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

繼續閱讀