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の一覧と技術原理の図解
[[432441]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
テンセントクラウド基礎製品センターとテンセントアーキテクチャプラットフォーム部門で構成されたテンセン...
[51CTO.comよりオリジナル記事] 近年、都市化の急速な発展に伴い、中国の都市の街灯の数はます...
Nvidia は最近、TensorRT-LLM と呼ばれる新しいオープンソース ソフトウェア スイ...
ZKの紹介ZK = 動物園の飼育係ZK は、マイクロサービス ソリューションにおけるサービス登録と検...
サイバー攻撃と防御の対決は絶えず進化とアップグレードを続けています。人工知能は自己学習と適応能力を備...
負荷分散アルゴリズムの種類を分析した後、動的負荷分散について紹介します。この概念は主にロードバランサ...
[[255694]]プロフェッショナルソフトウェア開発における人工知能 (AI) の急速な発展により...
研究アイデアの成功は、そのアイデアが他の研究方向よりも優れているかどうかではなく、適切なハードウェア...
生成的敵対的ネットワーク (GAN) を使用した画像超解像 (SR) は、リアルな詳細を復元する上で...
[[92385]] Windows XP ユーザーは、現在の XP が 2001 年にリリースされた...
[[373863]] 「人工知能は将来の生産性の中核である」という見解に疑問を抱く人はほとんどいませ...
世界中の政府は、AI技術革命に直面しても既存の法律、規制、枠組みが引き続き有効であることを保証し、新...