Keras實現CRF中一些難點理解

2021-10-24 22:34:13 字數 852 閱讀 5446

1.模型傳入的真實標籤的shape是(batch_size, num_tokens),對每乙個token進行標籤。計算損失時,將標籤資料進行one-hot編碼,得到的新的shape是(1, batch_size, num_tokens, num_classes)。

2.計算路徑的未規範化條件概率(相對概率)。

相對概率包含兩部分,狀態特徵得分(概率圖點得分)和轉移特徵得分(概率圖邊得分),具體可以看大神文章的定義。狀態特徵得分:crf相當於帶有可訓練引數**移矩陣)的loss層,使用網路的各神經元的輸出作為結點的得分。轉移特徵得分:相鄰兩個時刻的轉移得分即對應的真實標籤在轉移矩陣中的值。

圖中**為bert4keras中計算得分的函式,是經過優化後的**。將真實標籤錯位對齊(1...n-1,2...n),由於y_true是經過one-hot編碼後的標籤分類,因此相乘後得到的就是轉移矩陣中對應的相鄰時刻對應標籤的值。

note: 路徑得分函式 ,即勢函式定義為exp,狀態特徵得分由隱藏層輸出決定,轉移特徵得分由學習的crf轉移矩陣決定。

3. mask值,1為實際token,0為填充部分。

4.遞迴地利用t-1時刻的路徑指數和求t時刻路徑指數和,這裡用到了logsumexp,暫時不明這裡的處理方式,如有大佬了解,可以告訴我。

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...

php中一些知識

file 的路徑是當前 所在檔案 dirname dirname file 得到的是檔案上一層目錄名 dirname file 得到的是檔案所在層目錄名 require其實是乙個直譯器解釋的過程,比如當我們在乙個檔案中require另乙個檔案的時候,其實是先解釋另乙個檔案。php中的檔案a的過程中假...

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...