條件隨機場(conditional random field,CRF)模型初探

0. 引言

0x1:爲何會有條件隨機場?它解決了什麼問題?

在開始學習CRF條件隨機場以前,咱們須要先了解一下這個算法的前因後果,它是在什麼狀況下被提出的,是從哪一個算法演進而來的,它又解決了哪些問題,它有哪些優缺點。html

實際上咱們能夠不太嚴謹地這麼說,HMM -> HEMM -> CRF,它們之間是逐漸演進的結果。node

隱馬爾可夫模型(Hidden Markov Model,HMM)、最大熵馬爾可夫模型(Maximum Entropy Markov Model,MEMM)、以及條件隨機場(Conditional Random Field,CRF)是序列標註中最經常使用也是最基本的三個模型。HMM首先出現,MEMM其次,CRF最後。三個算法主要思想以下:算法

1. HMM模型是對轉移機率和表現機率直接建模,統計共現機率。
2. MEMM模型是對轉移機率和表現機率創建聯合機率,統計時統計的是條件機率,但MEMM容易陷入局部最優,是由於MEMM只在局部作歸一化。
3. CRF模型中,統計了全局機率,同時在作歸一化時,考慮了數據在全局的分佈,而不是僅僅在局部歸一化,這樣就解決了MEMM中的標記偏置(label bias)的問題。

1. 3種不一樣算法在標註問題中的計算要素

用一個例子說明上述區別,對於一個標註任務網絡

H(狀態序列)= 」s s b e b c e」
O(觀測序列)= 「我愛北京天安門「

咱們分別來看三種算法在訓練過程當中須要計算的組成要素:框架

1. 對於HMM的話,其判斷這個標註成立的機率爲 
P = 
    P(初始狀態機率) * 
    P(初始狀態轉移到s)*P(‘我’表現爲s) * 
    P(s轉移到s)*P(‘愛’表現爲s) * 
    P(s轉移到b)*P(‘北’表現爲b) *
    P(b轉移到e)*P(‘京’表現爲b) *
    P(e轉移到b)*P(‘天’表現爲b) *
    P(b轉移到c)*P(‘安’表現爲b) *
    P(c轉移到e)*P(‘門’表現爲b) * 
訓練時,要統計狀態轉移機率矩陣和表現矩陣。

2. 對於MEMM的話,其判斷這個標註成立的機率爲 
P = 
    P(初始狀態機率) *
    P(初始狀態轉移到s|’我’表現爲s)*P(‘我’表現爲s) * 
    P(s轉移到s|’愛’表現爲s)*P(‘愛’表現爲s) * 
    ..
    P(c轉移到e|‘門’表現爲b)*P(‘門’表現爲b)
訓練時,要統計條件狀態轉移機率矩陣和表現矩陣。

3. 對於CRF的話,其判斷這個標註成立的機率爲 
P =  
    F(初始狀態轉移到s,’我’表現爲s) *
    F(s轉移到s, ‘愛’表現爲s) * 
    F(s轉移到b, ‘北’表現爲b) *
    F(b轉移到e, ‘京’表現爲b) *
    F(e轉移到b, ‘天’表現爲b) *
    F(b轉移到c, ‘安’表現爲b) *
    F(c轉移到e, ‘門’表現爲b) * 
F爲一個函數,是在全局範圍統計歸一化的機率而不是像MEMM在局部統計歸一化的機率。

2. CRF算法對HMM和HEMm的主要改進點

1)CRF避免了HMM中的嚴格的獨立性假設條件

咱們知道,要再實際問題中應用HMM算法,隱馬爾可夫模型做了兩個基本假設:dom

1. 齊次馬爾科夫性假設:即假設隱藏的馬爾柯夫鏈(隱狀態序列)在任意時刻 t 的狀態只依賴於前一時刻的狀態,與其餘時刻的狀態及觀測無關,也與當前時刻 t 無關:
2. 觀測獨立性假設:即假設任意時刻的觀測只依賴於該時刻的馬爾柯夫鏈的狀態(觀測與隱狀態一一對應),與其餘觀測及狀態無關。觀測序列彼此之間是獨立同分布的(這點相似於樸素貝葉斯的獨立同分布假設)

輸出獨立性假設(即要求觀測序列之間是獨立同分布的)要求序列數據嚴格相互獨立才能保證推導的正確性,而事實上大多數序列數據不能被表示成一系列獨立事件。而條件隨機場CRF則使用一種機率圖模型,具備表達長距離依賴性交疊性特徵的能力,可以較好地解決標註(分類)偏置等問題的優勢,並且全部特徵能夠進行全局歸一化,可以求得全局的最優解。機器學習

2)CRF避免了HEMM的標記偏置問題(在進行序列標註時由於訓練樣本的分佈不充分致使的過擬合)

咱們用一個例子來講明標記偏置問題函數

用Viterbi算法解碼MEMM,狀態1傾向於轉換到狀態2,同時狀態2傾向於保留在狀態2。學習

可是咱們基於訓練樣本計算獲得的解碼過程,卻不符合Viterbi算法的預期結果:大數據

路徑1-1-1-1的機率: 0.4 * 0.45 * 0.5 = 0.09
路徑2-2-2-2的機率: 0.2 * 0.3 * 0.3 = 0.018
路徑1-2-1-2的機率: 0.6 * 0.2 * 0.5 = 0.06
路徑1-1-2-2的機率: 0.4 * 0.55 * 0.3 = 0.066

單純從訓練樣本計算獲得經驗機率可知,最優路徑爲1-1-1-1。

然而,仔細觀察可發現上圖中stat1 中每一個結點都傾向於轉移到stat2,這明顯是和直覺不相符的,同時還發現start3/4/5在這批訓練樣本的的轉移機率爲零(終止了)。

這是爲何呢?由於狀態2能夠轉換的狀態比狀態1要多,從而使轉移機率下降,即MEMM傾向於選擇擁有更少轉移的狀態。

形成這一現象有很大可能只是由於這批訓練樣本抽樣方式有問題,或者樣本數量太少而致使規律分佈產生了偏置。咱們若是基於這種不完整的規律分佈去進行模型訓練學習,獲得的模型必定也是不能徹底表達真實的規律自己的。

從HEMM的數學公式上來分析產生這一問題的緣由。

直接看MEMM公式:

P(I|O) = \prod_{t=1}^{n}\frac{ exp(\sum_{a})\lambda_{a}f_{a}(o,i) }{Z(o,i_{i-1})} , i = 1,\cdots,n

∑ 求和的做用在機率中是歸一化,可是這裏歸一化放在了指數內部,管這叫local歸一化

HEMM中的viterbi求解過程,是用dp的狀態轉移公式,由於是局部歸一化,因此MEMM的viterbi的轉移公式的第二部分出現了問題,致使dp沒法正確的遞歸到全局的最優。

 \delta_{i+1} = max_{1 \le j \le m}\lbrace \delta_{i}(I) + \sum_{i}^{T}\sum_{k}^{M}\lambda_{k}f_{k}(O,I_{i-1},I_{i},i) \rbrace

這就是所謂的標註偏置問題。實際上,形成這一問題的根本緣由是每一個節點分支數不一樣,因爲MEMM的局部歸一化特性,使得轉出機率的分佈不均衡,最終致使狀態的轉移存在不公平的狀況。

CRF則是利用一種全局的優化思路來定向解決的,即便出現了上圖所示的某個狀態的next轉移機率爲1,在訓練過程當中也不會得出轉移機率爲1的模型參數。

3. 3種算法的比較(簡易圖示)

HMM

HMM模型將標註任務抽象成馬爾可夫鏈,一階馬爾可夫鏈式針對相鄰標註的關係進行建模,其中每一個標記對應一個機率函數。HMM是一種產生式模型,定義了聯合機率分佈p(x,y) ,其中x和y分別表示觀察序列和相對應的標註序列的隨機變量。

爲了可以定義這種聯合機率分佈,產生式模型須要枚舉出全部可能的觀察序列(須要獲取全部完整的機率分佈),這在實際運算過程當中很困難,因此咱們能夠將觀察序列的元素看作是彼此孤立的個體, 即假設每一個元素彼此獨立(和naive bayes相似),任什麼時候刻的觀察結果只依賴於該時刻的狀態。

上圖很好詮釋了HMM模型中存在兩個假設:一是輸出觀察值(藍色)之間嚴格獨立,二是狀態的轉移過程當中當前狀態只與前一狀態有關(一階馬爾可夫模型)。

MEMM

HMM模型在大量真實語料中觀察序列的場景中會遇到表徵力不足的瓶頸。由於觀測序列在大數據集下更多的是以一種多重的交互特徵形式表現的,觀察元素之間普遍存在長程相關性。例如,在命名實體識別任務中,因爲實體自己結構所具備的複雜性,利用簡單的特徵函數每每沒法涵蓋全部特性,這時HMM的假設前提使得它沒法使用複雜特徵(它沒法使用多於一個標記的特徵。),這個時候就須要引入最大熵名。

簡單來講,MEMM把HMM模型和maximum-entropy模型的優勢集合成一個統一的產生式模型,這個模型容許狀態轉移機率依賴於序列中彼此之間非獨立的特徵上,從而將上下文信息引入到模型的學習和識別過程當中,達到了提升識別的準召率的效果。

上圖說明MEMM模型克服了觀察值之間嚴格獨立產生的問題,可是因爲狀態之間的假設理論,使得該模型存在標註偏置問題。

CRF

咱們知道,MEMM並不完美,它存在明顯的標記偏置問題。因而CMU的教授JohnLafferty提出了更先進的CRF模型。

CRF模型具備如下特色:

1)CRF在給定了觀察序列的狀況下,對整個的序列的聯合機率有一個統一的指數模型,它具有一個比較吸引人的特性就是其損失函數的凸面性;
(2)CRF具備很強的推理能力,而且可以使用複雜、有重疊性和非獨立的特徵進行訓練和推理,可以充分地利用上下文信息做爲特徵,還能夠任意地添加其餘外部特徵,使得模型可以獲取的信息很是豐富;
(3)CRF解決了MEMM中的標記偏置問題,這也正是CRF與MEMM的本質區別所在,最大熵模型在每一個狀態都有一個機率模型,在每一個狀態轉移時都要進行歸一化。若是某個狀態只有一個後續狀態,那麼該狀態到後續狀態的跳轉機率即爲1。這樣,無論輸入爲任何內容,它都向該後續狀態跳轉。而CRF是在全部的狀態上創建一個統一的機率模型,這樣在進行歸一化時,即便某個狀態只有一個後續狀態,它到該後續狀態的跳轉機率也不會爲1。

上圖顯示CRF模型解決了標註偏置問題,去除了HMM中兩個不合理的假設。固然,模型相應得也變複雜了

0x2:條件隨機場簡介

條件隨機場(conditional random field CRF)是給定一組輸入隨機變量條件下另外一組輸出隨機變量的條件機率分佈模型,其特色是假設輸出隨機變量構成馬爾科夫隨機場。

條件隨機場能夠用於不一樣的預測問題,咱們本文集中精力討論線性鏈條件隨機場(linear chain conditional random filed),這時,問題變成了由輸入序列對輸出序列預測的判別模型,形式爲對數線性模型,其學習方法一般是極大似然估計或正則化的極大似然估計。

Relevant Link: 

http://www.52ml.net/1709.html

0x3:從一個從例子提及——詞性標註問題

咱們從一個具體的例子開始,來對CRM創建一個感性上的認識。

所謂詞性標註問題,就是給一個句子中的每一個單詞註明詞性。好比這句話:「Bob drank coffee at Starbucks」,註明每一個單詞的詞性後是這樣的:「Bob (名詞) drank(動詞) coffee(名詞) at(介詞) Starbucks(名詞)」。

下面,就用條件隨機場來解決這個問題。

如咱們能夠這樣進行詞性標註:「Bob (名詞) drank(動詞) coffee(名詞) at(介詞) Starbucks(名詞)」:做爲一個標註序列,稱爲l。
同時咱們知道,可選的標註序列有不少種,好比l還能夠是這樣:「Bob (名詞) drank(動詞) coffee(動詞) at(介詞) Starbucks(名詞)」
...

咱們的任務是,在這麼多的可選標註序列中,挑選出一個最靠譜的做爲咱們對這句話的標註。

怎麼判斷一個標註序列靠譜不靠譜呢?這裏就要藉助有監督學習的算法了,輸入一個訓練樣本集,獲得一個標註序列,使其」最符合訓練樣本集「中的機率分佈,則說明這個標註序列最靠譜。

咱們先從感性層面來討論這個問題,

就咱們上面展現的兩個標註序列來講,第二個顯然不如第一個靠譜,由於它把第2、第三個單詞都標註成了動詞,動詞後面接動詞,這在一個句子中一般是說不通的。

假如咱們給每個標註序列打分,打分越高表明這個標註序列越靠譜,咱們至少能夠說,凡是標註中出現了動詞後面仍是動詞的標註序列,要給它負分!!

上面所說的動詞後面仍是動詞就是一個特徵函數,咱們能夠定義一個特徵函數集合,用這個特徵函數集合來爲一個標註序列打分,並據此選出最靠譜的標註序列。把集合中全部特徵函數對同一個標註序列的評分綜合起來,就是這個標註序列最終的評分值。

1. 定義CRF中的特徵函數

咱們繼續圍繞這個例子,討論CRF中的特徵函數定義的問題。
  • 句子s(就是咱們要標註詞性的句子)
  • i,用來表示句子s中第i個單詞
  • l_i,表示要評分的標註序列給第 i 個單詞標註的詞性(至關於詞性序列的下標)
  • l_i-1,表示要評分的標註序列給第 i-1 個單詞標註的詞性
它的輸出值是 0 或者 1, 0 表示要評分的標註序列不符合這個特徵,1 表示要評分的標註序列符合這個特徵。這種 0/1 取值的特徵函數相似神經網絡中的單個神經元。
Note:這裏,咱們的特徵函數僅僅依靠當前單詞的標籤和它前面的單詞的標籤對標註序列進行評判,這樣創建的CRF也叫做線性鏈CRF,這是CRF中的一種簡單狀況。

1)幾個特徵函數的例子

圍繞詞性標註這個例子,咱們來人工定義幾個特徵函數:
:當l_i是「副詞」而且第i個單詞以「ly」結尾時,咱們就讓f1 = 1,其餘狀況f1爲0。
不難想到,模型通過訓練後,f1 特徵函數的權重 λ1 應當是正的(向訓練樣本擬合)。並且 λ1 越大,表示咱們越傾向於採用那些把以「ly」結尾的單詞標註爲「副詞」的標註序列。或者說訓練樣本中這個規律特徵表現地越明顯。

:若是i=1,l_i=動詞,而且句子s是以「?」結尾時,f2=1,其餘狀況f2=0。

一樣,λ2應當是正的,而且λ2越大,表示咱們越傾向於採用那些把問句的第一個單詞標註爲「動詞」的標註序列。

:當l_i-1是介詞,l_i是名詞時,f3 = 1,其餘狀況f3=0。

λ3也應當是正的,而且λ3越大,說明咱們越認爲介詞後面應當跟一個名詞。

:若是l_i和l_i-1都是介詞,那麼f4等於1,其餘狀況f4=0。

這裏,咱們應當能夠想到λ4是負的,而且λ4的絕對值越大,表示咱們越不承認介詞後面仍是介詞的標註序列。

在實際的工程項目中,特徵函數的選擇是一個很是重要的過程,它取決於咱們具體的業務場景。例如在入侵檢測場景中,咱們可能選取文本ascii序列模型做爲特徵,這意味着咱們創建了一個先驗假設:」正常的文本和異常的文本在ascii序列模式上存在明顯的不一致「

2.  對特徵函數賦予對應的權重,獲得機率表示 - 相似深度神經網絡中的激活函數求值過程

定義好一組特徵函數後,咱們要給每一個特徵函數f_j賦予一個權重λ_j。

而後,只要有一個句子s,有一個標註序列 l,咱們就能夠經過對權重的加權計算來獲得一個評分值,即對標記序列 l 評分。而特徵函數是否激活取決於標記序列當天 l_i 的值是否知足特徵條件。

上式中有兩個求和,外面的求和用來求每個特徵函數f_j評分值的和,裏面的求和用來求句子中每一個位置的單詞的的特徵值的和。

對這個分數進行指數化和標準化(規範化到【0,1】值域中),咱們就能夠獲得標註序列l的機率值 p(l | s ),以下所示

3. 構建條件隨機場CRF的基本要素

爲了建一個條件隨機場,咱們首先要定義一個特徵函數集,每一個特徵函數都以整個句子s,當前位置i,位置i和i-1的標籤爲輸入。而後爲每個特徵函數賦予一個權重,而後針對每個標註序列l,對全部的特徵函數加權求和,必要的話,能夠把求和的值轉化爲一個機率值。

Relevant Link:

https://www.jianshu.com/p/55755fc649b1
https://www.cnblogs.com/Dr-XLJ/p/5466856.html
https://www.zhihu.com/question/35866596

 

1. 條件隨機場模型

0x1:機率無向圖模型

機率無向圖模型(probabilistic undirected graphical model),又稱爲馬爾科夫隨機場(markov random field),是一個能夠由無向圖表示的聯合機率分佈。

1. 機率無向圖模型定義

圖(graph)是由節點(node)及鏈接節點的邊(edge)組成的集合。節點的邊分別記做 v 和 e,節點和邊的集合分別記做 V 和 E,圖記做 G =(V,E)。無向圖是指邊沒有方向的圖。由於理論上機率轉移矩陣中全部節點間都是能夠互相轉移的。

機率圖模型(probabilistic graphical model)是由圖表示的機率分佈。設有聯合機率分佈 P(Y),是一組隨機變量。由無向圖 G =(V,E)表示機率分佈 P(Y),即在圖 G 中,節點表示一個隨機變量;邊表示隨機變量之間的機率依賴關係。

給定一個聯合機率分佈 P(Y)和表示它的無向圖 G。首先定義無向圖表示的隨機變量之間存在的成對馬爾科夫性(pairwise markov property)局部馬爾科夫性(local markov property)全局馬爾科夫性(global markov property)

1)成對馬爾科夫性

設 u 和 v 是無向圖 G 中任意兩個沒有邊鏈接的節點,節點 u 和 v 分別對應隨機變量 Yu 和 Yv。其餘全部節點爲 O,對應的隨機變量組是 Yo。成對馬爾科夫性是指給定隨機變量組 Yo的條件下隨機變量 Yu 和 Yv 是條件獨立的,即:

2)局部馬爾科夫性

是無向圖 G 中任意一個節點,W 是與 v 有邊鏈接的全部節點, O 是v,W 之外的其餘全部節點。v 表示的隨機變量是 Yv,W 表示的隨機變量組是 Yw,O 表示的隨機變量組是 Yo。局部馬爾科夫性是指在給定隨機變量組 Yw 的條件下,隨機變量 Yv 與隨機變量 Yo是獨立的,即:

3)全局馬爾科夫性

設節點集合 A,B 是在無向圖 G 中被節點集合 C 分開的任意節點集合,以下圖所示

節點集合 A,B,C 所對應的隨機變量組分別是 Ya,Yb,Yc。全局馬爾科夫性是指給定隨機變量組 Yc 條件下隨機變量組 Ya 和 Yb 是條件獨立的,即:

以上三種特性都知足一種:

有限依賴特性,超過必定範圍的隨機變量之間是條件獨立的。其實,HMM本質也是一種有限依賴特性。

設有聯合機率分佈 P(Y),由無向圖 G =(V,E)表示,在圖 G 中,節點表示隨機變量,邊表示隨機變量之間的依賴關係。若是聯合機率分佈P(Y)知足成對、局部或全局馬爾科夫性,就稱此聯合機率分佈爲機率無向圖模型(probabilistic undirected graphical model),或馬爾科夫隨機場(markov random field)。

2. 機率無向圖模型的因子分解

對給定的機率無向圖模型,咱們但願將總體的聯合機率寫成若干子聯合機率的乘積的形式,也就是將聯合機率進行因子分解,這樣便於模型的學習與計算。實際上,機率無向圖模型的最大特色就是易於因子分解。

1)團與最大團

無向圖 G 中任何兩個節點均有邊鏈接的節點子集稱爲團(clique)。若 C 是無向圖 G 的一個團,而且不能再加進任何一個 G 的節點使其成爲一個更大的團,則稱此 C 爲最大團(maximal clique)。

下圖表示由4個節點組成的無向圖:

圖中由2個節點組成的團有5個:{Y1,Y2}、{Y2,Y3}、{Y3,Y4}、{Y4,Y2}、{Y1,Y3};

有2個最大團:{Y1,Y2,Y3}、{Y2,Y3,Y4};

注意,{Y1,Y2,Y3,Y4}不是一個團,由於 Y1 和 Y4 沒有邊鏈接,這對應在機率分佈中即這2個隨機變量之間沒有機率依賴關係。

將機率無向圖模型的聯合機率分佈表示爲其最大團上的隨機變量的函數的乘積形式的操做,稱爲機率無向圖模型的因子分解(factorization)。

給定機率無向圖模型,設其無向圖爲 G,C 爲 G 上的最大團,Yc表示 C 對應的隨機變量。那麼機率無向圖模型的聯合機率分佈 P(Y)可寫做圖中全部最大團 C 上的函數的乘積形式,即:,其中, Z 是規範化因子(normalization factor):

規範化因子保證 P(Y)構成一個機率分佈,函數稱爲勢函數(potential function)。

這裏要求勢函數必須是嚴格正的,一般定義爲指數函數:

2)Hammerslev-Clifford定理

機率無向圖模型的因子分解由Hammerslev-Clifford定理來保證。

機率無向圖模型的聯合機率分佈 P(Y)能夠表示爲以下形式:

其中,C 是無向圖的最大團,Yc是 C 的節點對應的隨機變量,是 C 上定義的嚴格正函數,乘積是在無向圖全部的最大團上進行的。

有了機率無向圖的基礎知識鋪墊,咱們接下來討論條件隨機場。

0x2:條件隨機場的定義與形式

1. 條件隨機場的定義

條件隨機場(conditional random field)是在給定隨機變量 X 的條件下,隨機變量 Y 的馬爾科夫隨機場。咱們這裏主要討論定義在線性鏈上的特殊的條件隨機場,稱爲線性鏈條件隨機場(linear chain conditional field)。

線性鏈條件隨機場能夠用於標註等問題。這時,在條件機率模型 P(Y | X)中,Y 是輸出變量,表示標記序列,X 是輸入變量,表示須要標註的觀測序列。也把標記序列稱爲狀態序列(在隱馬爾可夫模型中標記序列即隱狀態序列)。

學習時,利用訓練數據集經過極大似然估計或正則化的極大似然估計獲得條件機率模型;預測時,對於給定的輸入序列 x,求出條件機率最大的輸出序列

1)條件隨機場 - 通常的條件隨機場

設 X 與 Y 是隨機變量,P(Y | X)是在給定 X 的條件下 Y 的條件機率分佈。若隨機變量 Y 構成一個由無向圖 G =(V,E)表示的馬爾科夫隨機場,即:對任意節點 v 成立,則稱條件機率分佈P(Y | X)爲條件隨機場。式中 w ~ v 表示在圖 G =(V,E)中與節點 v 有邊鏈接的全部節點 w,w != v 表示節點 v 之外的全部節點。

能夠看到,條件隨機場的定義是一個泛化的隨機變量之間有限依賴的關係。同時也能夠看到,HMM本質上是隨機場的一種形態。

在定義中沒有要求 X 和 Y 具備相同的結構。可是在實際使用中,通常假設 X 和 Y 有相同的圖結構,

咱們這裏只討論以下所示的線性鏈條件隨機場:

在這種狀況下,X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn),最大團是相鄰兩個節點的集合

2)線性鏈條件隨機場定義

設 X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn)均爲線性鏈表示的隨機變量序列,若在給定隨機變量序列 X 的條件下,隨機變量序列 Y 的條件機率分佈 P(Y | X)構成條件隨機場,即知足馬爾科夫性:

(即某個隱狀態只取決於其所在最大團以及條件變量 X)

則稱 P(Y | X)爲線性鏈條件隨機場。

在標註問題中,X 表示輸入觀測序列,Y 表示對應的輸出標記序列或狀態序列。

2. 條件隨機場的參數化形式

根據Hammerslev-Clifford定理(最大團因子分解)定理,能夠給出線性鏈條件隨機場 P(Y | X)的因子分解式,各因子是定義在相鄰兩個節點(對於線性鏈條件隨機場來講,最大團就是相鄰節點的集合)上的函數。

1)線性鏈條件隨機場的參數化形式

設 P(Y | X)爲線性鏈條件隨機場,則在隨機變量 X 取值爲 x 的條件下,隨機變量 Y 的取值爲 y 的條件機率具備以下形式:

其中,

式中,是特徵函數,是對應的權值。Z(X)是規範化因子,求和是在全部可能的輸出序列上進行的。

上面式子是線性鏈條件隨機場模型的基本形式,表示給定輸入序列 x,對輸出序列 y 預測的條件機率。

是定義在邊上的特徵函數,稱爲轉移特徵,依賴於當前和前一個位置;

是定義在節點上的特徵函數,稱爲狀態特徵,依賴於當天位置;

都依賴於位置,是局部特徵函數。

一般,特徵函數取值爲 1 或0;當知足條件時取值爲1,不然爲0。

條件隨機場徹底由特徵函數,和對應的權值肯定。

線性鏈條件隨機場也是對數線性模型(log linear model)

2)關於線性鏈條件隨機場的一個簡單的例子

設有一個標註問題:輸入觀測序列爲 X = (X1,X2,X3),輸出標記序列爲 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值於 {1,2}。

假設特徵和對應的權值以下:

這裏只寫明特徵取值爲 1 的條件,取值爲 0 的條件省略(由於0的結果爲0,不影響加和式的結果):

下同:

對給定的觀測序列 x,求標記序列爲 y = (y1,y2,y3)=(1,2,2)的非規範化條件機率:

P(y1 = 1,y2 = 2,y3 = 2 | x)= exp(1 + 0.2 + 1 + 0.5 + 0.5)

由於只有知足特徵條件時才爲1,不然爲0,因此這裏實際上是在進行權值加和,將知足條件(轉移特徵、狀態特徵)的權值進行加和。

3. 條件隨機場的簡化形式

條件隨機場還能夠由簡化形式表示,咱們再來看一下線性鏈條件隨機場的參數化形式:

咱們注意到上式中同一個特徵在各個位置都有定義,爲了簡化,能夠對同一個特徵在各個位置求和,將局部特徵函數轉化爲一個全局特徵函數,這樣就能夠將條件隨機場寫成權值向量和特徵向量的內積形式,即條件隨機場的簡化形式。

爲了簡便說明,首先將轉移特徵和狀態特徵及其權值用統一的符號表示。設有 K1 個轉移特徵,K2 個狀態特徵,K = K1 + K2,記:

而後,對轉移與狀態特徵在各個位置 i 求和,記做:

表示特徵的權值,即:

因而,條件隨機場能夠簡化表示爲:

若以 w 表示權值向量,即:

以 F(y,x)表示全局特徵向量,即:

則條件隨機場能夠寫成向量 w 與 F(y,x)的內積的形式:

,其中,

4. 條件隨機場的矩陣形式

條件隨機場還能夠由矩陣表示。假設線性鏈條件隨機場,表示對給定觀測序列 x,相應的標記序列 y 的條件機率。引進特殊的起點和終點狀態標記,這時能夠經過矩陣形式表示。

對觀測序列 x 的每個位置 i = 1,2,...,n+1,定義一個 m 階矩陣(m 是標記 yi 取值的個數)

這樣,給定觀測序列 x,相應標記序列 y 的非規範化機率能夠經過該序列 n+1 個矩陣適當元素的乘積表示。

因而,條件機率 =

其中,爲規範化因子,是 n+1 個矩陣的乘積的(start,stop)元素:

注意,表示開始狀態與終止狀態,規範化因子是以 start 爲起點,stop 爲終點經過狀態的全部路徑 y1y2...yn的非規範化機率之和。

1)一個簡單的例子

給定一個下圖所示的線性鏈條件隨機場

觀測序列 x,狀態序列 y,i = 1,2,3,n = 3,標記,假設 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 = (1,2,1)

y = (1,2,2)

y = (2,1,1)

y = (2,1,2)

y = (2,2,1)

y = (2,2,2)

各路徑對應的非規範化機率分別是:

而後求規範化因子,經過計算矩陣乘積 M1(x)M2(x)M3(x)M4(x)可知,其第一行第一列的元素爲:

剛好等於從 start 到 stop 的全部路徑的非規範化機率之和。

 

2. 條件隨機場算法策略

條件隨機場的機率計算問題是給定條件隨機場 P(Y | X),輸入序列 x 和輸出序列 y,計算條件機率以及相應的數學指望的問題。和HMM隱馬同樣,引進前向-後向向量,遞歸地計算以上機率及指望值。這樣的算法稱爲前向-後向算法

條件隨機場是一種判別式模型,它的策略和其餘機率統計機器學習模型同樣,即經驗風險最小化策略。即咱們須要計算相關聯合機率和條件機率的極值。

0x1:前向-後向算法

對每一個指標 i = 0,1,....,n+1,定義前向向量

遞推公式爲:

又可表示爲:

表示在位置 i 的標記爲 yi而且到位置 i 的前部分標記序列的非規範化機率,yi 可取的值有 m 個,因此是 m 維列向量。

一樣,對每一個指標 i = 0,1,....,n+1,定義後向向量

,又可表示爲:

表示爲在位置 i 的標記爲 yi 而且從 i+1 到 n 的後部分標記序列的非規範化機率。

0x2:機率計算

按照前向-後向向量的定義,很容易計算標記序列在位置 i 是標記 yi 的條件機率,和在位置 i-1 與 i 是標記 yi-1 和 yi 的條件機率:

其中,

0x3:指望值的計算

利用前向-後向向量,能夠計算特徵函數關於聯合分佈 P(X,Y)和條件分佈 P(Y | X)的數學指望。

特徵函數關於條件分佈 P(Y | X)的數學指望是:

假設經驗分佈爲,特徵函數關於聯合分佈 P(X,Y)的數學指望是:

有了上式,對於給定的觀測序列 x 與標記序列 y,能夠經過一次前向掃描計算,經過一次後向掃描計算,從而計算全部的機率和特徵的指望。

 

3. 條件隨機場的學習算法

咱們上一小結討論了,咱們須要經過前向後向算法獲得以及,接下來從算法工程實現上來討論如何基於訓練數據集進行代數計算。

給定訓練數據集,估計條件隨機場模型參數的問題,即條件隨機場的學習問題。條件隨機場模型其實是定義在時序數據上的對數線性模型,其學習方法包括:極大似然估計正則化的極大似然估計

具體的優化實現算法有:改進的迭代尺度法IIS梯度降低法、以及擬牛頓法

0x1:改進的迭代尺度法

已知訓練數據集,由此能夠經驗機率分佈,能夠經過極大化訓練數據的對數似然函數來求模型參數。

訓練數據的對數似然函數爲:

把條件隨機場的函數帶入,上式對數似然函數爲:

改進的迭代尺度法經過迭代的方法不斷優化對數似然函數該變量的下界,達到極大化對數似然函數的目的。

咱們看到,迭代尺度算法能夠適用於任何的目標函數,算法自己是一種能夠通用的計算框架,它能夠適用於任何機器學習目標函數。

0x2:擬牛頓法

條件隨機場模型學習還能夠應用牛頓法或擬牛頓法,對於條件隨機場模型:

學習的優化目標函數(損失函數)是:

其梯度函數是:

1. 條件隨機場模型學習的BFGS算法

輸入:特徵函數 f1,f2,....,fn;經驗分佈

輸出:最優參數值;最優模型

1)選定初始點,取爲正定對稱矩陣,置 k = 0;

2)計算梯度函數,若 gk = 0,則中止計算;不然轉 3);

3)由求出

4)一維搜索:求使得:

5)置

6)計算,若,則中止計算;不然,按下式求出

,其中,

7)置 k = k + 1,轉 3)

 

4. 條件隨機場的預測算法

條件隨機場的預測問題是給定條件隨機場 P(Y | X)和輸入序列(觀測序列)x,求條件機率最大的輸出序列(標記序列),即對觀測序列進行標註。

條件隨機場的預測算法採用 維特比算法

條件隨機場向量內積形式爲:

因而,條件隨機場的預測問題成爲求非規範化機率最大的最優路徑問題。

這裏,路徑表示標記序列,其中,

注意,這裏只須要計算非規範化機率,而不須要計算機率,能夠大大提升效率。爲了求解最優路徑,將上式寫成以下形式:

其中,是局部特徵向量。

0x1:條件隨機場預測中的維特比算法

首先求出位置 1 的各個標記 j = 1,2,...,m 的非規範化機率:

通常地,由遞推公式,求出到位置 i 的各個標記 l = 1,2,...,m 的非規範化機率的最大值,同時記錄非規範化機率最大值的路徑,

直到 i = n 時終止,這時求得非規範化機率的最大值爲

以及最優路徑的終點

由此最優路徑終點返回

求得最優路徑

預測問題本質上就是最大似然估計,在數學上就是求極值。

1. 應用維特比算法求給定輸入序列對應的最優輸出序列 - 最大似然估計

設有一個標註問題:輸入觀測序列爲 X = (X1,X2,X3),輸出標記序列爲 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值於 {1,2}。

假設特徵和對應的權值以下:

這裏只寫明特徵取值爲 1 的條件,取值爲 0 的條件省略(由於0的結果爲0,不影響加和式的結果):

下同:

利用維特比算法求最優路徑問題:

1)初始化:

i = 1,

2)遞推:

最優標記序列:

Copyright (c) 2018 LittleHann All rights reserved

相關文章
相關標籤/搜索