CRF的模型引數學習問題

2021-08-15 09:49:09 字數 1585 閱讀 4575

當乙個crf條件隨機場模型引數確定後,基於crf進行狀態序列**問題,比如給定中文語句觀測序列,來**整個中文語句當中每個詞的詞性,實質問題就是**每個句子的隱含詞性狀態問題,在相關條件轉移矩陣等模型引數給定的條件下,利用維特比演算法,就能**出概率最大的隱含狀態,從而實現詞性識別,本文主要是討論crf 的另乙個問題,條件隨機場的模型引數學習問題。參考了兩篇部落格以及《統計機器學習》書中關於條件隨機場的相關概念介紹,鏈結位址如下:

首先給出crf的模型:

公式(1) 給出的在給定觀測序列的條件下,求狀態序列的條件概率分布,就是乙個條件隨機場模型,f(x,y)表示特徵函式,具體含義可以參考另一篇部落格中基於crf **中文詞性的概率的介紹中,特徵函式的具體意義。

給定了模型函式後,我們來給出模型的目標優化函式,在這種場景下, 我們可以通過mle 極大似然估計演算法, 求得p(y|x)的最大概率估計,類似於邏輯回歸模型,我們給出式(4)中的對數似然目標函式,條件似然函式的公式推導可參考條件熵的公式推導,將(1)中的模型函式帶入(4)後 就得到(3)中的對數似然函式表示式,也是我們最終需要優化的目標函式:

改進的迭代尺度優化演算法:

改進的迭代尺度法(improved iterative scaling),在很多模型求解中用到,比如最大熵、crfs等,對模型是對數線性模型的似然都適用。這個演算法的思想也很簡單,通俗的理解就是通過兩個不等式變形優化下界,從而迭代到收斂的演算法, 有兩個比較重要的不等式 後面會涉及到:

迭代尺度演算法具體流程:

從而得到:

以上就是crf 模型引數學習的乙個大致說明,其中還是有些不明白的點,尤其是《統計機器學習》關於條件隨機場的介紹,理解起來還是有點困難,後續需要進一步去整理 體會,接下來準備將crf應用到nlp領域當中,比如基於tensorflow 構建bilstm + crf 來實現分詞以及詞性標註等nlp任務,目前也是有許多開源的專案,因此需要去進一步分析其中的原始碼 

CRF序列標註模型幾個問題的理解

條件隨機場模型 crf 在序列標註問題中得到廣泛應用,並且事實證明crf的效果不錯。本文就以下幾個問題寫下自己的理解 1 哪些場景適合序列標註模型,哪些場景適合分類器模型?edwin chen在介紹條件隨機場的博文中,通過乙個有趣的問題,引入條件隨機場序列標註問題,我們這裡不妨拿過來直接用一下 假設...

BiLSTM CRF模型 CRF層的作用

1 輸入句子x通過字嵌入或詞嵌入構成向量。如果是字嵌入,則是隨機初始化的 char2id 若是詞嵌入,則是通過訓練好的詞向量得到 如glove 2 字嵌入或詞嵌入構成向量構成bilstm模型的輸入,輸出為句子x中各個字元對應的標籤。如下圖 顯然,標籤序列是 i organization i pers...

方法引數學習

一 params c 參考 params關鍵字可以指定在引數數目可變處採用引數的方法引數。在方法宣告中的params關鍵字之後不允許任何其他引數,並且在方法宣告中只允許乙個params關鍵字。cs params.cs using system public class myclass console...