リカレントニューラルネットワーク (RNN)
解説:過去を「記憶」するネットワーク
リカレントニューラルネットワーク(RNN: Recurrent Neural Network)は、「時間的なつながり」を持つデータを扱うために開発されたモデルです。
通常のニューラルネットワーク(DNN/CNN)は、入力されたデータを一度処理したら忘れてしまいますが、RNNは「前の時刻の計算結果(隠れ状態)」を、次の時刻の入力と一緒に再利用します。これにより、「文脈」や「流れ」を理解できるようになります。

🗣️ 例:会話の理解
「昨日は雨だったけど、今日は…」という文の続きを予測する場合、
「昨日は雨だったけど、今日は…」という文の続きを予測する場合、
- 通常のAI:「今日は」だけを見て予測しようとする(無理がある)。
- RNN:「昨日は雨だったけど」という過去の情報(記憶)を持った状態で「今日は」を見るため、「晴れかな?」と推測できる。
RNNの2つの弱点
RNNは画期的でしたが、実用するには大きな壁がありました。
| 弱点 | 解説 |
|---|---|
| 長期依存の学習が苦手 (勾配消失問題) |
RNNの学習は、時間を遡って誤差を伝える「BPTT (Backpropagation Through Time)」という手法を使います。 しかし、文章が長くなると、遡るうちに勾配(誤差の情報)が消えてしまったり、爆発したりして、「遠い過去のこと」を忘れてしまいます。 |
| 並列化できない | 「前の単語」の計算が終わらないと「次の単語」の計算に入れないため、GPUを使っても処理を高速化しにくい(逐次処理)という欠点があります。 |
※この「忘れっぽい」問題を解決するために、後にLSTMやGRUが開発されました。
G検定対策
出題ポイント
- 得意なデータ:自然言語、音声、動画、株価などの「時系列データ(可変長データ)」。
- 重みの共有:時系列のどのタイミングでも、「同じパラメータ(重み)」を使い回して計算する。
- 学習手法:時間を遡って誤差を伝播する「BPTT (Backpropagation Through Time)」を用いる。
ひっかけ対策
- × 並列処理が得意である
(解説)前の結果を待つ必要があるため、並列化は苦手です。(並列化が得意なのはTransformerです)。 - × 数千ステップ前の情報も記憶できる
(解説)理論上は可能ですが、実際には「勾配消失問題」により、長期的な記憶は保持できません。
