1. 程式人生 > >機器學習實戰——條件隨機場(CRF)

機器學習實戰——條件隨機場(CRF)

CRF由來

條件隨機場(CRF)這種用來解決序列標註問題的機器學習方法是由John Lafferty於2001年發表在國際機器學習大會ICML上的一篇經典文章所引入,對後人的研究起到了非常大的引領作用。特別是標註問題在很多自然科學領域有廣泛應用,在自然語言處理領域對於自動分詞、命名實體標註等問題都以這篇文章作為開山之作。

CRF的特性

1.判別式模型

CRF是一種概率無向圖判別式模型,解決了HMM(隱馬爾科夫)和MEMM(最大熵馬爾科夫)模型在序列標註中的標註偏差(bias)問題。

2. 實用性高

CRF使用一個單獨的指數模型來表示在給定觀測序列條件下整個序列的標籤的聯合概率,不同狀態下的不同特徵能夠相互進行平衡。同時,可以把CRF當做一個具有非規範化的轉移概率的有限狀態模型,使用MLE或者MAP進行學習之後可以得到一個定義良好的可能標註的概率分佈。同時,訓練的損失函式是凸函式,保證了全域性收斂性,是無約束凸優化問題,具有非常好的實用性

模型詳解

模型定義

隨機變數X表示待標註的序列資料,隨機變數Y表示序列資料對應的標籤,其中Y的每一個分量Yi取值於一個有限個標籤的集合Y
定義:給定圖G=(V,E)表示概率分佈P(Y),即在圖中頂點確定的隨機變數Y=(Yv)vV屬於圖G,圖中的邊eE表示隨機變數之間的依賴性。當隨機變數Yv在給定條件X滿足馬爾科夫性質時,那麼(X,Y)構成了一個條件隨機場(CRF)。其中馬爾科夫性質是指:

P(Yv|X,Yw,wv)=P(Yv|X,Yw,wv)其中的wv表示圖中與節點v相連的節點 。
在序列標註問題中,所有元素連線成為一條鏈式結構,因此定義中的圖結構在處理序列標註問題時預設為線性鏈式結構,也就是G
=(V={1,2,...m})
E={(i,i+1),i=1,2...m1},定義中沒有規定XY有同樣的結構,但是現實中一般假定XY具有同樣的結構,常使用的是X=(X1,X2,...Xm)Y=(Y1,Y2,...Ym)
根據上述假設,可以得出如下的線性鏈條件隨機場:
X=(X1,X2,...Xn)Y=(Y1,Y2,...Yn)為線性連結串列示的隨機變數序列,若在給定隨機變數序列X的條件下,隨機變數序列Y的條件概率分佈P(Y|X)滿足馬爾科夫性
P(Yi|X,Y1,...Yi1,Yi+1,....Yn)=P(Yi|X,Yi1,Yi+1)那麼P(Y|X)成為線性鏈條件隨機場,標註問題中X
表示觀測序列,Y表示對應的狀態標記序列。

概率表示

根據Hammersley 和 Clifford於1971提出的隨機場基本理論,可以得出上述條件概率分佈由如下的形式

P(y|x)=1Z(x)(eE,kλktk(e,y|e,x)+μksk(v,y|v,x))
其中x為標記序列,y為標籤序列,Z(x)是歸一化因子,使得上式可以表示為一個概率分佈。tk

相關推薦

機器學習實戰——條件機場CRF

CRF由來 條件隨機場(CRF)這種用來解決序列標註問題的機器學習方法是由John Lafferty於2001年發表在國際機器學習大會ICML上的一篇經典文章所引入,對後人的研究起到了非常大的引領作用。特別是標註問題在很多自然科學領域有廣泛應用,在自然語言

條件機場CRF-基礎

condition xmlns tro 介紹 第二篇 依賴 算法 時間 element   條件隨機場(conditional random fields,簡稱 CRF,或CRFs)下文簡稱CRF,是一種典型的判別模型,相比隱馬爾可夫模型可以沒有很強的假設存在,在分詞、詞性

轉載 】如何輕鬆愉快地理解條件機場CRF

理解條件隨機場最好的辦法就是用一個現實的例子來說明它。但是目前中文的條件隨機場文章鮮有這樣乾的,可能寫文章的人都是大牛,不屑於舉例子吧。於是乎,我翻譯了這篇文章。希望對其他夥伴有所幫助。 原文在這裡http://blog.echen.me/2012/01/03/introduction-to

馬爾科夫機場MRF條件機場CRF

看《統計學習方法》中的條件隨機場一章,覺得應該把馬爾科夫隨機場和條件隨機場一起總結一下。 1.馬爾科夫隨機場 1.1無向圖 假設有一組隨機變數Y={Y1,Y2,...,Yn}, 具有聯合概率分佈P(Y)。此聯合概率分佈可以由一個無向圖G=(V,E)來表示。

機器學習實戰 第二章KNN1python程式碼及註釋

#coding=utf8 #KNN.py from numpy import * import operator def createDataSet(): group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) #我覺

Python《機器學習實戰》讀書筆記——樸素貝葉斯

第四章 基於概率論的分類方法:樸素貝葉斯 4-1 基於貝葉斯決策理論的分類方法 優點:在資料較小的情況下仍然有效,可以處理多類別問題 缺點:對於輸入資料的準備方式較為敏感。 適用資料型別:標稱型資料。 假設現在我們有一個數據集,它由兩類資

【 專欄 】- 基於時空條件機場STCRF的鐳射雷達地面點估計與分割

基於時空條件隨機場(STCRF)的鐳射雷達地面點估計與分割 本專欄為論文《Ground Estimation and Point Cloud Segmentation using SpatioTemporal Conditiona

機器學習實戰——繪製決策樹程式碼

最近在學習Peter Harrington的《機器學習實戰》,程式碼與書中的略有不同,但可以順利執行。import matplotlib.pyplot as plt # 定義文字框和箭頭格式 decisionNode = dict(boxstyle='sawtooth',

NLP —— 圖模型條件機場Conditional random field,CRF

而在 mar 依賴 alt strong $$ href 否則 block 本文簡單整理了以下內容: (一)馬爾可夫隨機場(Markov random field,無向圖模型)簡單回顧 (二)條件隨機場(Conditional rand

條件機場Conditional random field,CRF

轉:https://www.cnblogs.com/Determined22/p/6915730.html 本文簡單整理了以下內容:       (一)馬爾可夫隨機場(Markov random field,無向圖模型)簡單回顧    

機器學習演算法總結之XGBoost 實戰與調參

寫在前面 當時想學習XGBoost這個演算法就是因為研究生課題需要,現在終於可以試一試啦,希望真的像大家說的那麼強(據說是很多資料科學家的ultimate weapon)。XGBoost原理已在前一篇有過說明:機器學習演算法總結之XGBoost(上) 1.

機器學習實戰-第六章支援向量機

1 拉格朗日乘子法(等式約束): 目標函式:f(x)=b+wTxi+∑(αihi),s.t.hi=0 最優解條件:∂h∂xi=0 2 kkt(不等式約束): 目標函式:f(x)=b+wTxi+∑(αigi)+∑(βihi),s.t.hi=0,gi≤0

機器學習實戰【5】SVM-支援向量機

本部落格記錄《機器學習實戰》(MachineLearningInAction)的學習過程,包括演算法介紹和python實現。 SVM(支援向量機) SVM是一種分類演算法,通過對訓練集資料的分析找到最好的分隔平面,然後用該平面對新資料進行分類。本

條件機場(4)——CRF++分詞訓練和預測

這是CRF的最後一篇總結。這篇總結是訓練分詞模型和預測。CRF、最大熵、隱馬爾科夫模型貌似都可以做分詞、詞性標註、命名實體識別,以前只是在hanLP裡面用這些工具,實際上是不明所以的。現在要開始弄明白其中原理,並自己訓練模型了。好吧,又囉嗦了。 先說一說CRF

條件機場CRF++源碼詳解-開篇

ref 公式 研究 linu 做到 整體介紹 下載源碼 git 開篇 介紹   最近在用條件隨機場做切分標註相關的工作,系統學習了下條件隨機場模型。能夠理解推導過程,但還是比較抽象。因此想研究下模型實現的具體過程,比如:1) 狀態特征和轉移特征具體是什麽以及如何構造 2)前

條件機場CRF++原始碼詳解-開篇

介紹   最近在用條件隨機場做切分標註相關的工作,系統學習了下條件隨機場模型。能夠理解推導過程,但還是比較抽象。因此想研究下模型實現的具體過程,比如:1) 狀態特徵和轉移特徵具體是什麼以及如何構造 2)前向後向演算法具體怎麼實現 等等。那麼,想要深入瞭解一個演算法比較好的方式就是閱讀現有的開源專案。閱讀好的

條件機場Conditional random fields

2. C++版的gco-v3.0:http://vision.csd.uwo.ca/code/,用於求解crf,作者Olga Veksler,專門研究Graph cut演算法。 3. Oxford Brookes的ALE: http://cms.brookes.ac.uk/staff/Philip

機器學習演算法原理與實踐、卡爾曼濾波器演算法淺析及matlab實戰

卡爾曼濾波器是一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。而且由於觀測包含系統的噪聲和干擾的影響,所以最優估計也可看做是濾波過程。 卡爾曼濾波器的核心

條件機場CRF++源碼詳解-訓練

hellip 轉移 實的 all form sig 除了 info mod   上篇的CRF++源碼閱讀中, 我們看到CRF++如何處理樣本以及如何構造特征。本篇文章將繼續探討CRF++的源碼,並且本篇文章將是整個系列的重點,會介紹條件隨機場中如何構造無向圖、前向後向算法、

條件機場CRF++源碼詳解-預測

歧義 計算 標記 研究 自己 forward 而是 con 價值   這篇文章主要講解CRF++實現預測的過程,預測的算法以及代碼實現相對來說比較簡單,所以這篇文章理解起來也會比上一篇條件隨機場訓練的內容要容易。 預測   上一篇條件隨機場訓練的源碼詳解中,有一個地方並