CRF は、品詞タグ付け、単語分割、固有表現認識などのタスクに使用できる、一般的に使用されるシーケンス ラベリング アルゴリズムです。 BiLSTM+CRF は、BiLSTM と CRF を組み合わせた一般的なシーケンス ラベリング アルゴリズムです。これにより、モデルは CRF のように前のシーケンスと次のシーケンス間の相関関係を考慮でき、LSTM の特徴抽出およびフィッティング機能も備えています。
1. はじめに 前回の記事「CRF 条件付きランダムフィールド」では、条件付きランダムフィールド CRF について紹介し、CRF と LSTM の違いについて説明しました。単語の分割を例に挙げてみましょう。各単語に対応するラベルは、s、b、m、e になります。 「What is street stall economy」という文が与えられた場合、正しい単語分割方法は「what / is / street stall / economy」であり、各単語に対応する単語分割ラベルは「be / s / be / be」です。下の図は、シーケンスのラベル付けを行う際の LSTM の問題を示しています。 BiLSTM単語分割 BiLSTM は、各単語が異なるタグに属する確率を予測し、Softmax を使用して、最も確率の高いタグを位置の予測値として取得します。この方法では、予測中にラベル間の相関関係は無視されます。たとえば、上の図では、BiLSTM は最初の単語を s と予測し、2 番目の単語を e と予測します。しかし実際には、単語分割中に s の後に e はないので、BiLSTM はラベル間の関係を考慮しません。 そのため、BiLSTM+CRF は BiLSTM の出力層に CRF を追加し、モデルがクラス ラベル間の相関を考慮できるようにします。ラベル間の相関は CRF の転送行列であり、ある状態から別の状態に遷移する確率を表します。 CRF の転送行列が以下に示すとおりであると仮定します。 CRF状態遷移行列 すると、最初の 2 つの単語「什么」の場合、ラベルが「se」である確率は 0.8×0×0.7=0、ラベルが「be」である確率は 0.6×0.5×0.7=0.21 になります。 そのため、BiLSTM+CRF では、単一のクラスラベルの確率だけではなく、クラスラベルパス全体の確率を考慮します。BiLSTM 出力層に CRF を追加すると、次のようになります。 BiLSTM+CRF単語分割 最終的に、すべてのパスの中で、besbebe の確率が最も高いため、予測結果は besbebe になります。 2. BiLSTM+CRFモデル CRF には 2 つの機能があります。詳しくは、前の記事をご覧ください。最初の特徴関数は状態特徴関数であり、放出確率とも呼ばれ、単語 x がラベル y に対応する確率を表します。 CRF状態機能 BiLSTM+CRFでは、この特徴関数(放出確率)はLSTMの出力を使用して直接計算されます。第1セクションの図に示すように、LSTMは各瞬間の各位置に対応する異なるラベルの確率を計算できます。 CRF の 2 番目の特徴関数は状態遷移特徴関数であり、ある状態 y1 から別の状態 y2 に遷移する確率を表します。 CRF状態遷移機能 CRF の状態転送特徴関数は状態転送行列で表すことができ、トレーニング中に状態転送行列の要素値を調整する必要があります。したがって、BiLSTM+CRF では、BiLSTM モデルに状態転送行列を追加する必要があります。コードは次のようになります。
文 x が与えられた場合、そのラベルシーケンスが y である確率は次の式を使用して計算されます。 y と x の積分 式中のスコアは次の式を使用して計算されます。ここで、Emit は放出確率(つまり、LSTM 出力の確率)に対応し、Trans は遷移確率(つまり、CRF 転送行列に対応する値)に対応します。 スコア計算式 BiLSTM+CRF は最大尤度法を使用してトレーニングされ、対応する損失関数は次のようになります。 損失関数 このうち、スコア(x,y)は比較的計算が簡単で、Z(x)はすべてのラベルシーケンス(y)の指数スコアの合計です。シーケンスの長さがlでラベルの数がkの場合、シーケンスの数は(k^l)です。直接計算することはできないため、フォワードアルゴリズムを使用して計算します。 現在主流のディープラーニングフレームワークを使用して損失を導出し、勾配降下法を適用することで、BiLSTM+CRF を最適化できます。モデルをトレーニングした後、Viterbi アルゴリズム (動的プログラミング) を使用して最適なパスを見つけることができます。 3. 損失関数の計算 BiLSTM+CRF損失関数を計算する際の難しさは、次の式に示すようにFで表されるlog Z(x)を計算することにあります。 スコアを、放出確率 p と遷移確率 T の合計に分割します。問題を簡略化するために、シーケンスの長さを 3 と仮定すると、以下に示すように、長さがそれぞれ 1、2、3 の場合の log Z 値を計算できます。 上記の式で、p は出力確率、T は遷移確率、Start は文の開始、End は文の終了を表します。 F(3)は最終的なlogZ(x)値です。上記の式を変形すると、F(3)は次のように再帰形式に変換できます。 上記の式の各ステップの演算は、log_sum_expを含めて同じであることがわかります。たとえば、F(1)は次のようになります。
したがって、log Z を計算するフォワード アルゴリズムのコードは次のように記述できます。
4. ビタビアルゴリズムのデコード モデルをトレーニングした後、予測プロセスでは Viterbi アルゴリズムを使用してシーケンスをデコードする必要があります。興味のある方は、「統計的学習方法」を参照してください。以下はビタビの公式の紹介です。まず、いくつかの記号の意味は次のとおりです。 すると、ビタビアルゴリズムの再帰式が得られる。 最後に、ビタビによって計算された値に基づいて最も適切なシーケンスを見つけることができます。 最後に、pytorch 公式サイトの BiLSTM+CRF コードを読むことをお勧めします。コードを通じて理解するのが簡単です。 5. 参考文献 上級: 動的な意思決定と BI-LSTM CRF |
>>: 人工知能の代表的な応用分野トップ10の一覧と技術原理の図解
[51CTO.com クイック翻訳] 増え続けるプログラミング言語ライブラリやツールの中から、機械学...
最近、Stability AIの創設者兼CEOであるEmad Mostaque氏が再び衝撃的な発言を...
今朝、私の友人の輪の中に、AI による顔の変形に関する短い動画が大量に現れました。これらの短編動画の...
最近、「GFlowNet Foundations」と題された論文が注目を集めています。これはチューリ...
01データセットの準備使用されるデータセットは、30 次元の特徴と 569 個のサンプルを含む、sk...
現在、世界経済の回復は依然として緩やかです。国際通貨基金(IMF)が最近発表した世界経済見通しレポー...
[[409182]] 1. K番目に大きいものを見つけるタイトル順序付けられていない整数配列がありま...
[[261498]]私の国には1,100社以上の人工知能企業があります。人工知能の最もホットな分野...
[[255293]]明らかに、自動運転と5Gはチップビジネスそのものよりもはるかに魅力的です。 AI...
アシュトーシュ・グプタ翻訳者: ブガッティ企画丨孫淑娥亮策要するに:人工知能 (AI) プロジェクト...
AIOps が今日最も人気のある用語の 1 つになったことは間違いありません。厳密に言えば、IT 運...
過去数年間、顔認識は広く注目を集めており、画像分析の分野で最も有望なアプリケーションの 1 つと考え...