Web教科書

双方向RNN

双方向 RNN (Bidirectional RNN)

解説:未来をカンニングして答えを出す

双方向 RNN(Bidirectional RNN)は、データの時間を「過去から未来(順方向)」へ読むだけでなく、「未来から過去(逆方向)」へも同時に読むことで、文脈をより深く理解するモデルです。

通常のRNNは、文章を前から順番に読むことしかできません。しかし、言葉の意味は「後ろの単語」によって決まることがよくあります。

🍎 具体例:「バンク」の意味は?
「私は バンク に行った。」

  • これだけでは、お金の「銀行」なのか、川の「土手(Bank)」なのか判断できません。

「私は バンク に行き、お金を下ろした。」

  • 後ろの「お金」という情報(未来の情報)を見て初めて、「あ、これは銀行のことだ!」と確定できます。

このように、後ろ(未来)の情報をカンニングして、現在の単語の意味を正確に捉えるのが双方向RNNです。

仕組み:2人の担当者がサンドイッチする

双方向RNNの中身は、実は「2つの独立したRNN」で構成されています。

  1. 順方向(Forward)RNN:「私は」→「バンク」→「お金」…と読む。
  2. 逆方向(Backward)RNN:「下ろした」→「お金」→「バンク」…と読む。

最後にこの2人の出力結果をガチャンと結合(Concatenate)することで、過去と未来の両方の情報を考慮した最強の答えを出します。

唯一の弱点:リアルタイム処理

非常に高性能ですが、「文章の最後まで読み終わらないと、逆方向の処理がスタートできない」という弱点があります。

タイプ 得意なこと 苦手なこと
通常のRNN リアルタイム処理
(入力された瞬間に反応できる)
文脈の把握
(後ろの情報を知らないため)
双方向RNN 精度の高い翻訳・要約
(データが全部揃ってから考える)
リアルタイム対話
(話が終わるまで待つ必要がある)
双方向RNNの構造イメージ

G検定対策

出題ポイント

  • 構造:順方向と逆方向、2つのRNNを組み合わせて出力を結合するモデルである。
  • 利点:ある時点の予測に、その「前後」の情報を利用できるため、機械翻訳や文章分類などで精度が高い。
  • 制約:データ全体が最初から揃っている(バッチ処理可能な)タスクに向いている。

ひっかけ対策

  • × リアルタイムの音声認識に最適である
    (解説)「未来の音声」はまだ聞こえていないため、リアルタイム処理には使えません(※数秒遅延させるなら可能です)。
  • × RNNよりも計算量が少ない
    (解説)順方向と逆方向の2回計算するため、単純計算で計算量は約2倍になります。
タイトルとURLをコピーしました