双方向 LSTM (Bidirectional LSTM) と通常の LSTM 計算式プロセス

LSTM は、「ゲート」を導入することでシーケンス情報を記憶するリカレント ニューラル ネットワーク (RNN) の変種です。これらのゲートには、入力ゲート、忘却ゲート、および出力ゲートが含まれます。

双方向 LSTM と通常の LSTM の主な違いは、入力シーケンスの前方情報と後方情報を同時に処理することです。単語の場合、双方向 LSTM モデルは、現在の単語と前の単語に基づいて次の単語を予測するだけでなく、現在の単語と次の単語に基づいて次の単語も予測します。したがって、より複雑な言語パターンをキャプチャできます。

以下は双方向 LSTM の計算式プロセスです。

初期化:

入力ベクトル: x_t
隠れ状態: h_t および c_t
出力: y_t

順方向伝播:

現在の入力と前の隠れ状態に基づいて、現在の入力ゲート、忘却ゲート、および出力ゲートを計算します。 入力ゲート
: i_t = sigmoid(W_xi * x_t + W_hi * h_{t-1} + b_i)
忘却ゲート: f_t = sigmoid (W_xf * x_t + W_hf * h_{t-1} + b_f)
出力ゲート: o_t = sigmoid(W_xo * x_t + W_ho * h_{t-1} + b_o)
入力ゲートと電流に基づいて新しい候補メモリ セルの状態を計算入力: 候補 c_t = Tanh(W_xc * x_t + W_hc * h_{t-1} + b_c) は、
現在のメモリ セルの状態を更新します。 c_t = f_t * c_{t-1} + i_t * 候補 c_t は、
現在の隠れ状態を更新します。 h_t = o_t * Tanh (c_t)

誤差逆伝播法:

順伝播と似ていますが、逆の時間順序を考慮する必要があります。たとえば、時間 t では、時間 T-1 の隠れ状態 h_{T-1} を使用する必要があります。

次の単語を予測します。


タイム ステップごとに、順方向の隠れ状態と逆方向の隠れ状態を連結します。b)

以上が双方向LSTMの計算式処理です。

通常の LSTM と比較して、双方向 LSTM の利点は、入力シーケンス内の前後の情報を取得できることであるため、翻訳、要約、センチメント分析など、文脈の理解が必要な一部のタスクでは、双方向 LSTM が使用されます。通常、通常の LSTM よりも優れたパフォーマンスを発揮します。

双方向 LSTM の欠点は、前の単語だけでなくシーケンス全体を同時に処理する必要があるため、より多くのコンピューティング リソースとメモリが必要になることです。さらに、前方情報と後方情報の両方を考慮するため、入力シーケンスにより密接に依存し、入力シーケンスへの小さな変更が予測結果に影響を与える可能性があります。

これらの欠点にもかかわらず、双方向 LSTM は多くの自然言語処理タスクで目覚ましい成功を収め、多くのモデルの基本アーキテクチャとなっています。

おすすめ

転載: blog.csdn.net/xifenglie123321/article/details/132666978