雙向lstm 雙向LSTM CRF模型用於序列標註

2021-10-12 09:41:21 字數 2002 閱讀 3074

這部分主要介紹了五種模型,lstm,bi-lstm,crf,lstm-crf,bi-lstm-crf。這裡我們就不一一詳細贅述了。

以bi-lstm-crf為例,在每一步中,把訓練資料分為不同的批次,一次處理乙個批次。每乙個批次包括一些句子,句子的多少由批次大小來決定。對於每乙個批次:

首先執行bi-lstm-crf模型正向傳遞,該正向傳遞包括正向和反向狀態的正向傳遞 lstm,得到所有位置上所有標籤的輸出得分

然後,我們對crf層進行正向和反向傳遞,以計算網路輸出和狀態轉換邊緣的梯度

之後,我們可以將錯誤從輸出反向傳播到輸入,其中包括lstm正向和反向狀態的反向傳遞

最後,我們更新網路引數,其中包括狀態轉移矩陣

和原始雙向lstm引數

訓練過程的演算法偽碼如下:

for each epoch do

for each batch do

1) bidirectional lstm-crf model forward pass:

forward pass for forward state lstm

forward pass for backward state lstm

2) crf layer forward and backward pass

3) bidirectional lstm-crf model backward pass:

backward pass for forward state lstm

backward pass for backward state lstm

4) update parameters

end for

end for

本次實驗共使用了三組資料,下面是三組資料的基本情況:

從三組資料中抽取了兩種特徵,包括拼寫特徵和上下文特徵。

在處理特徵連線的時候,本文運用了乙個小trick,即把拼寫特徵和上下文特徵直接連到輸出,這樣可以加速訓練速度,並且訓練精度類似。

模型訓練時的學習率設為0.1,隱含層的數量設定為300,最終模型的效能對比結果如下:

其中conv-crf模型是文章(collobert et al.,2011)中的最好結果,random和senna是兩種詞嵌入的方式。

然後,為了證明模型的魯棒性,作者又只對單詞特徵(去掉了拼寫和上下文特徵)進行了訓練,結果如下:

本文的創新點在於首次使用bi-lstm-crf模型進行了序列標註任務,並且模型結果表現不錯。並且作者證明了模型的魯棒性,以及模型對詞嵌入方法的依賴較少,在隨機詞嵌入的時候,模型的精度表現也不錯。

Keras實現雙向LSTM 隨機生成的資料

例如如下 10 個隨機數 0.63144003 0.29414551 0.91587952 0.95189228 0.32195638 0.60742236 0.83895793 0.18023048 0.84762691 0.29165514 累加值超過設定好的閾值時可標記為 1,否則為 0,例如...

雙向鍊錶的雙向遍歷

雙向鍊錶的雙向遍歷 雙向煉表相比較於單向鍊錶的優勢之一就是可以快速遍歷,對於單向鍊錶只能借助於單個指標逐個遍歷,而對於雙向鍊錶而言因為每個節點都存在乙個前指標和後指標,所以可以借助於兩個指標雙向遍歷,相對於單向鍊錶而言可以節省很多時間。但是對於雙向鍊錶的雙向遍歷需要考慮的因素偏多,的步驟需要非常嚴謹...

OGG DML雙向複製及DDL雙向複製

二 dml雙向複製 雙向複製就是再配置一組,將ogg2上的操作傳遞到ogg1上 1 在目的端配置補充日誌 強制記錄日誌 表的補充日誌。這裡在之前已經配置完成,如果沒有配置,請執行如下命令 2 目的端配置日誌抽取程序 置日誌抽取配置檔案 ggsci target edit params eora 2 ...