リカレントニューラルネットワーク(RNN)は、時系列データや文章のような「順序のあるデータ」を扱うために作られたニューラルネットワークです。この節(回帰結合層)の中心概念であり、LSTM・GRU・双方向RNN・Attentionといった発展形の出発点でもあります。ここを固めれば周辺キーワードの理解が一気に楽になります。
📖 ひと言でいうと
リカレントニューラルネットワークとは、隠れ層が自己ループを持ち、過去の情報を内部状態として保持しながら系列データを1ステップずつ処理するニューラルネットワークです。人間が文章を読むときの頭の働きに似ています。私たちは1単語ずつ読み進めながら「ここまでの内容の理解」を頭の中で更新し続け、それを踏まえて次の単語を解釈します。RNNの内部状態は、この「ここまでの理解」にあたります。厳密には、内部状態は前時刻の状態と現在の入力から計算されるベクトルで、人間の理解のような意味内容を直接持つわけではありませんが、系列の要約として機能します。
🖼 1枚でわかるリカレントニューラルネットワーク
📘 公式テキストの説明
リカレントニューラルネットワーク(RNN)は、ディープラーニングの一種で、時系列データやシーケンシャルデータの処理に適している。従来のフィードフォワード型ニューラルネットワークとは異なり、RNNは過去の情報を内部状態として保持し、これを現在の入力と組み合わせて次の出力を生成する。これにより、文脈や時間的な依存関係を考慮した処理が可能となる。RNNの基本的な構造は、入力層、隠れ層、出力層から成り、隠れ層が自己ループを持つ点が特徴的である。この自己ループにより、過去の情報が次の時刻の入力に影響を与える。具体的には、ある時刻における隠れ層の状態は、前時刻の隠れ層の状態と現在の入力の組み合わせで決定される。しかし、RNNには長期的な依存関係を学習する際に「勾配消失問題」が生じやすいという課題がある。これは、逆伝播アルゴリズムを用いた学習過程で、時間的に遠い過去の情報の影響が薄れてしまう現象である。この問題を解決するために、長短期記憶(LSTM)やゲート付きリカレントユニット(GRU)といった改良モデルが提案されている。これらのモデルは、ゲート機構を導入することで、重要な情報を長期間保持し、不要な情報を適切に忘れることができる。RNNは、自然言語処理、音声認識、時系列予測など、多様な分野で応用されている。例えば、文章の感情分析や機械翻訳、音声からのテキスト変換、株価の予測などが挙げられる。これらの応用において、RNNはデータの時間的な連続性や文脈を考慮した処理が求められるため、適したモデルとされている。さらに、双方向RNN(Bidirectional RNN)や注意機構(Attention Mechanism)を組み合わせることで、より高度な情報処理が可能となる。双方向RNNは、過去から未来への情報伝達だけでなく、未来から過去への情報も同時に処理することで、文脈理解を深める。一方、注意機構は、入力データの中で特に重要な部分に焦点を当てることで、効率的な情報処理を実現する。
長い説明ですが、①フィードフォワード型との違い(内部状態の保持)、②構造の特徴(隠れ層の自己ループ)、③課題(勾配消失問題)、④発展(LSTM・GRU・双方向RNN・Attention)の4ブロックに分ければ整理できます。特に「ある時刻の隠れ層の状態は、前時刻の隠れ層の状態と現在の入力の組み合わせで決定される」という一文はRNNの動作原理そのものです。
🔍 しっかり理解する
フィードフォワード型と何が違うのか
通常のニューラルネットワーク(フィードフォワード型)は、情報が入力層から出力層へ一方向に流れるだけで、1件処理するごとに記憶はリセットされます。画像1枚の分類のように各入力が独立したタスクには十分ですが、「前に何が来たか」が意味を持つデータには対応できません。
RNNの核心は回帰結合層(隠れ層の自己ループ)です。隠れ層が自分自身の過去の状態を入力として受け取ることで、時間の流れを考えながら情報を処理できます。毎時刻の処理は次のサイクルで進みます。
重要なのは、どの時刻でも同じ重み(パラメータ)を使い回す点です。だからRNNは系列の長さに関係なく同じ仕組みで対応でき、「時間方向に同じ層を繰り返し適用するネットワーク」と見ることもできます。
勾配消失問題という宿命
RNNの学習では、誤差を時間方向にさかのぼって伝える必要があります(この学習法はBPTTと呼ばれます)。しかし逆伝播で何ステップもさかのぼるうちに勾配が小さくなり、時間的に遠い過去の情報の影響が薄れてしまいます。これが勾配消失問題で、「文の冒頭の主語を文末まで覚えておく」ような長期的な依存関係の学習を妨げます。
この課題への回答がゲート機構です。LSTMやGRUは、重要な情報を長期間保持し不要な情報を適切に忘れる仕組みを導入することで、長期依存の学習を可能にしました。さらに、未来方向の文脈も使う双方向RNN、重要な部分に焦点を当てる注意機構(Attention)を組み合わせることで、より高度な情報処理が実現されています。
💡 具体例で考える
言葉を予測するモデルを考えてみましょう。「昨日、図書館で借りた本を今日は一日中...」に続く単語を予測するとき、直前の「一日中」だけでは「読んでいた」も「歩いていた」も候補になり得ます。しかし「図書館で借りた本」という前半の情報が内部状態に蓄積されていれば、「読んでいた」が自然だと判断できます。RNNは直前の言葉だけでなく、それより前の言葉も考えに入れて予測する——これは人間が文章を理解するときの方法によく似ています。
もうひとつは音声認識です。音声は1秒間に何千もの数値が並ぶ波形データで、まさにシーケンシャルデータです。RNNは波形を時間順に読みながら内部状態に「ここまでの音の流れ」を蓄え、対応するテキストへ変換していきます。スマートフォンの音声入力の基盤技術として、RNN系のモデルが長く使われてきました。
⚠️ よくある誤解・紛らわしい用語
- CNNとの混同 — CNN(畳み込みニューラルネットワーク)は画像などの空間的構造が得意、RNNは時系列などの時間的構造が得意です。略称が似ているため、定義文の入れ替え問題に注意してください。
- 「RNNは長期記憶が得意」は誤り — むしろ逆で、勾配消失問題のため長期的な依存関係の学習が苦手です。それを克服したのがゲート機構を持つLSTM・GRUです。
- 「自己ループ=同じ計算の無限繰り返し」ではない — 自己ループは「前時刻の隠れ状態を次時刻の計算に使う」という意味で、時間方向に展開すれば通常の(深い)ネットワークとして学習できます。
- エルマン/ジョルダンネットワークとの関係 — これらはRNNという枠組みの初期の具体例です。「RNNの一種」という包含関係を逆にした選択肢に惑わされないようにしましょう。
📝 試験でのポイント
- 「過去の情報を内部状態として保持し、現在の入力と組み合わせて出力を生成する」「隠れ層が自己ループを持つ」という定義・構造の記述からRNNを選ばせる形式が基本です。
- フィードフォワード型との違い(記憶の有無)、CNNとの違い(時間構造vs空間構造)という対比軸で問われることが想定されます。
- 課題→解決の流れ「勾配消失問題→ゲート機構(LSTM・GRU)」は、この節全体を貫く最頻出ストーリーです。
- 応用分野(自然言語処理・音声認識・時系列予測・機械翻訳・感情分析・株価予測)から適するモデルを選ばせる事例問題にも備えましょう。
📚 まとめ
リカレントニューラルネットワーク(RNN)は、隠れ層の自己ループにより過去の情報を内部状態として保持し、時系列・シーケンシャルデータを文脈込みで処理できるニューラルネットワークです。ある時刻の隠れ状態は「前時刻の隠れ状態+現在の入力」で決まります。勾配消失問題による長期依存学習の困難が最大の課題で、LSTM・GRU・双方向RNN・Attentionといった発展形を生みました。この「課題と発展の流れ」ごと覚えることが得点への近道です。
