線性鏈條件隨機場-tutorial(二)
本篇文章內容大部分是根據上篇教程中的模型定義,對《統計學習方法》中相關內容的補充和改寫。
3. 條件隨機場的形式
一般來說特徵函數包括:轉移特徵,依賴於當前和前一個位置;狀態特徵,依賴於當前位置。這兩種特徵是由HMM中轉移概率和發射概率的概念變化推理而來,但實際上只要合理的特徵函數都是被允許的。
這裡我們將根據這兩種特徵,給出一般意義上更類似於HMM的線性鏈條件隨機場的參數化形式,並給出簡化形式及矩陣形式。
3.1 條件隨機場的參數化形式
根據式(2.11)和式(2.12),按照有轉移特徵和狀態特徵兩種特徵函數的情形,令 , 和 分別為轉移特徵和狀態特徵的數目。
此時可以將原來的參數 拆分,按照對應特徵函數寫成 兩部分,其中 。另外,將不同的特徵函數按照實際類別,用符號區分得到:
於是我們可以將(2.11)寫成:
其中,
式中, 和 是特徵函數, 和 是對應的權值。 是規範化因子,求和是在所有可能的輸出序列上進行的。
式(3.2)和式(3.3)是線性鏈條件隨機場模型的基本形式,表示給定輸入序列,對輸出序列 預測的條件概率。式(3.2)和式(3.3)中 是定義在邊上的特徵函數,稱為轉移特徵,依賴於當前和前一個位置(對應HMM中的轉移概率); 是定義在結點上的特徵函數,稱為狀態特徵,依賴於當前位置(對應HMM中的發射概率)。
和 都依賴於位置,是局部特徵函數。通常,特徵函數 和 取值為1或0(註:特徵函數可以是任意實值函數),當滿足特徵條件是取值為1,否則為0。
條件隨機場完全由特徵函數 、 和 權值 、 確定。線性鏈條件隨機場也是對數線性模型(log linear model)。下面看一個簡單的例子。
例1 設有一標註問題:輸入觀測序列為 ,輸出標記序列為 , 取值於 。
假設特徵 , 和對應的權值 , 如下:解 由式(2.13),線性鏈條件隨機場模型為
對給定的觀測序列 ,標記序列 的非規範化條件概率為:3.2 條件隨機場的簡化形式(Optional)
這一小節的內容更進一步簡化了條件隨機場的形式,但實際的用處不大。閱讀時注意觀察求和的順序變換,加深對特徵函數的理解。
在第2.2.2節中我們給出了線性鏈條件隨機場的定義,式(2.11)與式(3.2)相比算是一種簡化形式的定義了。但仔細觀察式(2.11),其實還可以進一步進行簡化。
根據式(2.11),將按序列長度連續相乘的符號寫進exp函數內,可得:
對式(3.4)中的指數部分進行簡化,令
由之前的定義,將參數寫成向量形式,即:
於是,條件隨機場(2.11)~(2.12)可表示為
式(3.8)、式(3.9)即為條件隨機場的簡化形式。如果將式(3.4)中的求和順序調換,最終也可以得到相同形式的簡化版定義,但中間的過程會麻煩一些。
3.3 條件隨機場的矩陣形式
條件隨機場的矩陣形式其實就是一種模型按時序展開,分步計算的形式。類似於對輸入觀測序列 的每一個 :
- 計算出所有的可能情況(根據不同的假設 組合情況,計算激活的特徵函數與權值乘積的和),按照一定的順序組成矩陣;
- 在所有矩陣計算完成之後,利用這些矩陣可以完成最優序列的求解、 的計算。
假設現有一個線性鏈條件隨機場形式如式(2.11)、式(2.12),用於求給定觀測序列 ,相應的標記序列 的條件概率。引進特殊的起點和終點狀態標記 ,這時條件隨機場可以通過矩陣形式表示。
對觀測序列的每一個位置 上,定義一個 階矩陣( 是標記的取值個數,包括 和 ,沒有正式名字,以下我簡稱為單步矩陣)
這樣,給於定觀測序列 ,某個標記序列 的非規範化概率可以通過T+1個矩陣的乘積表示,則該序列的條件概率 是:
其中, 為規範化因子,是T+1個單步矩陣的乘積的 元素:
根據特殊定義的起止標記的index的不同,規範化因子可能出現在不同的位置。如《統計學習方法》中,最終得到的矩陣第0行、第0列的元素為規範化因子,而下面這個例子卻不同。
例2 給定如下圖所示的線性鏈條件隨機場,
觀測序列 ,狀態序列 , , ,標記 ,假設 ,各個位置的單步矩陣 分別為是
試求狀態序列 以 為起點到 為終點的所有路徑的非規範化概率及規範化因子。
解: 各個路徑對應的非規範化概率分別是
顯然, 表示的序列為 ,其餘序列可按照按同樣的理解。
而規範化因子,直接利用給定的公式可得:
其中
具體計算過程可以自行按照給出的單步矩陣,手算得出(算一遍吧,不會失望的)。
推薦閱讀:
※台灣大學林軒田機器學習技法課程學習筆記3 -- Kernel Support Vector Machine
※通過DARPA項目看看晶元世界的「遠方」- 自動化工具和開源硬體
※為什麼現在的CNN模型都是在GoogleNet、VGGNet或者AlexNet上調整的?
※需要做聚類、分類、時間序列分析,用什麼工具比較好?