條件隨機場模型是由Lafferty在2001年提出的一種典型的判別式模型。它在觀測序列的基礎上對目標序列進行建模,重點解決序列化標注的問題條件隨機場模型既具有判別式模型的優點,又具有產生式模型考慮到上下文標記間的轉移概率,以序列化形式進行全局參數優化和解碼的特點,解決了其他判別式模型(如最大熵馬爾科夫模型)難以避免的標記偏置問題。
條件隨機場理論(CRFs)可以用於序列標記、數據分割、組塊分析等自然語言處理任務中。在中文分詞、中文人名識別、歧義消解等漢語自然語言處理任務中都有應用,表現很好。
目前基於 CRFs 的主要系統實現有 CRF,FlexCRF,CRF++
缺點:訓練代價大、復雜度高
—預備知識
—產生式模型和判別式模型(Generative model vs. Discriminative model)
—概率圖模型
—隱馬爾科夫模型
—最大熵模型
機器學習方法的兩種分類:產生式模型和判別式模型
假定輸入x, 類別標簽y
—產生式模型(生成模型)估計聯合概率 P(x, y), 因可以根據聯合概率來生成樣本 —: HMMs
—判別式模型(判別模型)估計條件概率 P(y|x), 因為沒有x的知識,無法生成樣本,只能判斷分類: SVMs,CRF,MEM
一個舉例:
(1,0), (1,0), (2,0), (2, 1)
產生式模型:
p(x, y):
P(1, 0) = 1/2, P(1, 1) = 0, P(2, 0) = 1/4, P(2, 1) = 1/4.
判別式模型:
P(y|x):
P(0|1) = 1, P(1|1) = 0, P(0|2) = 1/2, P(1|2) = 1/2
—o和s分別代表觀察序列和標記序列
—產生式模型
— 構建o和s的聯合分布p(s,o)
—判別式模型
— 構建o和s的條件分布p(s|o)
—產生式模型中,觀察序列作為模型的一部分;
—判別式模型中,觀察序列只作為條件,因此可以針對觀察序列設計靈活的特征。
產生式模型:無窮樣本==》概率密度模型 = 產生模型==》預測
判別式模型:有限樣本==》判別函數 = 預測模型==》預測
一般認為判別型模型要好於生成型模型,因為它是直接根據數據對概率建模,而生成型模型還要先求兩個難度相當的概率
概率圖模型
—用圖的形式表示概率分布
—基於概率論中貝葉斯規則建立起來的,解決不確定性問題,可以用於人工智能、 數據挖掘、 語言處理文本分類等領域
圖模型是表示隨機變量之間的關系的圖,圖中的節點表示隨機變量,缺少邊表示條件獨立假設。因此可以對聯合分布提供一種緊致表示
—根據邊是否有方向,有兩種主要的圖模型
◦無向圖:亦稱馬爾科夫隨機場(Markov Random Fields, MRF’s)或馬爾科夫網絡(Markov Networks)
◦有向圖:亦稱貝葉斯網絡(Bayesian Networks)或信念網絡(Belief Networks, BN’s).
◦還有混合圖模型,有時稱為鏈圖(chain graphs)
—我們不妨拿種地來打個比方。其中有兩個概念:位置(site),相空間(phase space)。“位置”好比是一畝畝農田;“相空間”好比是種的各種庄稼。我們可以給不同的地種上不同的庄稼,這就好比給隨機場的每個“位置”,賦予相空間里不同的值。所以,俗氣點說,隨機場就是在哪塊地里種什么庄稼的事情。
—簡單地講,隨機場可以看成是一組隨機變量的集合(這組隨機變量對應同一個樣本空間)。當給每一個位置中按照某種分布隨機賦予相空間的一個值之后,其全體就叫做隨機場。
—當然,這些隨機變量之間可能有依賴關系,一般來說,也只有當這些變量之間有依賴關系的時候,我們將其單獨拿出來看成一個隨機場才有實際意義。
—具有馬爾科夫性質
—體現了一個思想:離當前因素比較遙遠(這個遙遠要根據具體情況自己定義)的因素對當前因素的性質影響不大。
條件隨機場模型是一種無向圖模型,它是在給定需要標記的觀察序列的條件下,計算整個標記序列的聯合概率分布,而不是在給定當前狀態條件下,定義下一個狀態的狀態分布。即給定觀察序列O,求最佳序列S。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wen718/archive/2010/10/23/5960820.aspx
CRF其實就是一種在生產模型基礎上的判別模型?
條件隨機場模型是由Lafferty在2001年提出的一種典型的判別式模型。它在觀測序列的基礎上對目標序列進行建模,重點解決序列化標注的問題條件隨機場模型既具有判別式模型的優點,又具有產生式模型考慮到上下文標記間的轉移概率,以序列化形式進行全局參數優化和解碼的特點,解決了其他判別式模型(如最大熵馬爾科夫模型)難以避免的標記偏置問題。
條件隨機場理論(CRFs)可以用於序列標記、數據分割、組塊分析等自然語言處理任務中。在中文分詞、中文人名識別、歧義消解等漢語自然語言處理任務中都有應用,表現很好。
目前基於 CRFs 的主要系統實現有 CRF,FlexCRF,CRF++
缺點:訓練代價大、復雜度高
———————————
關於條件隨機場的參考文獻及其他資料,Hanna Wallach在05年整理和維護的這個頁面“conditional random fields”非常不錯,其中涵蓋了自01年CRF提出以來的很多經典論文(不過似乎只到05年,之后並未更新)以及幾個相關的工具包(不過也沒有包括CRF++),但是仍然非常值得入門條件隨機場的讀者參考。
——————————————–
一般序列分類模型常常采用隱馬模型(HMM), 像基於類的中文分詞, 但隱馬模型中存在兩個假設: 輸出獨立性假設和馬爾可夫性假設. 其中, 輸出獨立性假設要求序列數據嚴格相互獨立才能保證推導的正確性, 而事實上大多數序列數據不能 被表示成一系列獨立事件. 而條件隨機場則使用一種概率圖模型, 具有表達長距離依賴性和交疊性特征的能力, 能夠較好地解決標注(分類)偏置等問題的優點, 而且所有特征可以進行全局歸一化, 能夠求得全局的最優解.
條件隨機場是一個無向圖上概率分布的學習框架, 由Lafferty 等首先引入到自然語言處理的串標引學習任務中來. 最常用的一類CRF是線性鏈CRF, 適用於我們的分詞學習. 記觀測串為W=w1w2…wn, 標記串(狀態)序列 Y=y1y2…yn, 線性鏈CRF對一個給定串的標注, 其概率定義為:
。。。 。。。
其中, Y是串的標注序列, W是待標記的字符, fk是特征函數, λk是對應的特征函數的權值, 而t是標記, Z(W)是歸一化因子, 使得上式成為概率分布.
CRF模型的參數估計通常使用L-BFGS算法來完成. CRF的解碼過程, 也就是求解未知串標注的過程, 需要搜索計算該串上的一個最大聯合概率, 即:
Y* = arg max(y)P(Y|W)
在線性鏈CRF上, 這個計算任務可以用一般的Viterbi算法來有效地完成.
目前我發現的關於CRF的實現有:
* CRF++(http://crfpp.sourceforge.net/)
* Pocket CRF(http://sourceforge.net/project/showfiles.php?group_id=201943)
Justin's Graphical Models / Conditional Random Field Toolbox
http://phd.gccis.rit.edu/justindomke/JGMT/#binarydenoising
關於CRF簡介及代碼實現的網址:http://www.inference.phy.cam.ac.uk/hmw26/crf/#software