Web教科書

RNN

リカレントニューラルネットワーク (RNN)

解説:過去を「記憶」するネットワーク

リカレントニューラルネットワーク(RNN: Recurrent Neural Network)は、「時間的なつながり」を持つデータを扱うために開発されたモデルです。

通常のニューラルネットワーク(DNN/CNN)は、入力されたデータを一度処理したら忘れてしまいますが、RNNは「前の時刻の計算結果(隠れ状態)」を、次の時刻の入力と一緒に再利用します。これにより、「文脈」や「流れ」を理解できるようになります。

🗣️ 例:会話の理解
「昨日は雨だったけど、今日は…」という文の続きを予測する場合、

  • 通常のAI:「今日は」だけを見て予測しようとする(無理がある)。
  • RNN:「昨日は雨だったけど」という過去の情報(記憶)を持った状態で「今日は」を見るため、「晴れかな?」と推測できる。

RNNの2つの弱点

RNNは画期的でしたが、実用するには大きな壁がありました。

弱点 解説
長期依存の学習が苦手
(勾配消失問題)
RNNの学習は、時間を遡って誤差を伝えるBPTT (Backpropagation Through Time)という手法を使います。
しかし、文章が長くなると、遡るうちに勾配(誤差の情報)が消えてしまったり、爆発したりして、「遠い過去のこと」を忘れてしまいます。
並列化できない 「前の単語」の計算が終わらないと「次の単語」の計算に入れないため、GPUを使っても処理を高速化しにくい(逐次処理)という欠点があります。

※この「忘れっぽい」問題を解決するために、後にLSTMGRUが開発されました。

G検定対策

出題ポイント

  • 得意なデータ:自然言語、音声、動画、株価などの「時系列データ(可変長データ)」
  • 重みの共有:時系列のどのタイミングでも、「同じパラメータ(重み)」を使い回して計算する。
  • 学習手法:時間を遡って誤差を伝播する「BPTT (Backpropagation Through Time)」を用いる。

ひっかけ対策

  • × 並列処理が得意である
    (解説)前の結果を待つ必要があるため、並列化は苦手です。(並列化が得意なのはTransformerです)。
  • × 数千ステップ前の情報も記憶できる
    (解説)理論上は可能ですが、実際には「勾配消失問題」により、長期的な記憶は保持できません。
タイトルとURLをコピーしました