双方向 RNN (Bidirectional RNN)
解説:未来をカンニングして答えを出す
双方向 RNN(Bidirectional RNN)は、データの時間を「過去から未来(順方向)」へ読むだけでなく、「未来から過去(逆方向)」へも同時に読むことで、文脈をより深く理解するモデルです。
通常のRNNは、文章を前から順番に読むことしかできません。しかし、言葉の意味は「後ろの単語」によって決まることがよくあります。
🍎 具体例:「バンク」の意味は?
「私は バンク に行った。」
「私は バンク に行った。」
- これだけでは、お金の「銀行」なのか、川の「土手(Bank)」なのか判断できません。
「私は バンク に行き、お金を下ろした。」
- 後ろの「お金」という情報(未来の情報)を見て初めて、「あ、これは銀行のことだ!」と確定できます。
このように、後ろ(未来)の情報をカンニングして、現在の単語の意味を正確に捉えるのが双方向RNNです。
仕組み:2人の担当者がサンドイッチする
双方向RNNの中身は、実は「2つの独立したRNN」で構成されています。
- 順方向(Forward)RNN:「私は」→「バンク」→「お金」…と読む。
- 逆方向(Backward)RNN:「下ろした」→「お金」→「バンク」…と読む。
最後にこの2人の出力結果をガチャンと結合(Concatenate)することで、過去と未来の両方の情報を考慮した最強の答えを出します。
唯一の弱点:リアルタイム処理
非常に高性能ですが、「文章の最後まで読み終わらないと、逆方向の処理がスタートできない」という弱点があります。
| タイプ | 得意なこと | 苦手なこと |
|---|---|---|
| 通常のRNN | リアルタイム処理 (入力された瞬間に反応できる) |
文脈の把握 (後ろの情報を知らないため) |
| 双方向RNN | 精度の高い翻訳・要約 (データが全部揃ってから考える) |
リアルタイム対話 (話が終わるまで待つ必要がある) |

G検定対策
出題ポイント
- 構造:順方向と逆方向、2つのRNNを組み合わせて出力を結合するモデルである。
- 利点:ある時点の予測に、その「前後」の情報を利用できるため、機械翻訳や文章分類などで精度が高い。
- 制約:データ全体が最初から揃っている(バッチ処理可能な)タスクに向いている。
ひっかけ対策
- × リアルタイムの音声認識に最適である
(解説)「未来の音声」はまだ聞こえていないため、リアルタイム処理には使えません(※数秒遅延させるなら可能です)。 - × RNNよりも計算量が少ない
(解説)順方向と逆方向の2回計算するため、単純計算で計算量は約2倍になります。
