RNN(再帰型ニューラルネットワーク)とは?意味・仕組みと主な論文(2026年11月時点)

RNN(再帰型ニューラルネットワーク)(あーるえぬえぬ)

再帰型ニューラルネットワーク / Recurrent Neural Network / LSTM

RNN(再帰型ニューラルネットワーク)とは、文章や音声のように順番のあるデータを1つずつ読み、それまでの内容を内部の状態として次の計算に持ち越すニューラルネットワークのこと。

要するに

  • 素の RNN は長い系列で勾配が消えやすく、1997年の LSTM はゲートでこれに対処した
  • Transformer は再帰をやめ、RNN では難しかった学習の並列化を進めた
  • Mamba や xLSTM など、再帰の考え方に関わる論文が2023年以降も出ている

最終確認

白い面に1列に並べた白い板3枚とすりガラスの板、板の上を波打ちながら順につないでいく紫のリボン
目次8

ひとことで言うと

RNN(再帰型ニューラルネットワーク)は、文章や音声のように順番のあるデータを1つずつ読み、それまでの内容を内部の状態として次の計算に持ち越すニューラルネットワークだ。英語では Recurrent Neural Network と書く。スタンフォード大学の講座 CS231n は、RNN を系列を処理するにつれて更新される「内部の状態」を持つ仕組みと説明している。

身近な例でいえば、文の感情の判定がある。CS231n は文の単語の並びを受け取り、その文が肯定か否定かを分類する使い方を例に挙げている。

仕組み

CS231n の説明に沿って、いちばん簡単な RNN の流れを書くと次のようになる。

  1. 系列の先頭から、1つの時点(タイムステップ)ごとに入力を1つ受け取る。文字単位の例では、1文字ずつ入れる。
  2. 1つ前の時点の内部の状態(隠れ状態)と今の入力から、新しい隠れ状態を計算する。CS231n の最も簡単な型では、2つに重みを掛けて足し、tanh という関数に通す。
  3. 新しい隠れ状態から、その時点の出力を出す。文字の例では、次に来る文字の点数を出す。
  4. 同じ計算を最後の時点までくり返す。どの時点でも同じ重みを使うので、入力の長さを決めずに使える。

CS231n によると、RNN の各時点の予測は、それより前のすべての時点の入力によって決まる。

学習では、最後の時点の誤りから逆向きに勾配(重みをどちらへ直すかを示す値)をたどる。CS231n は、素の RNN ではこの勾配が時点をさかのぼるたびに小さくなり、0に近づくと説明している。これが勾配消失で、長い系列を扱うと学習がとても遅くなる。逆に勾配が大きくなりすぎる勾配爆発もあり、値が NaN(計算できない値)になることが多いという。CS231n は、勾配爆発には勾配の大きさに上限を設けるクリッピングで対処し、勾配消失を避けるために LSTM が作られたとしている。

LSTM(Long Short-Term Memory)は、1997年に Hochreiter と Schmidhuber が学術誌 Neural Computation に発表した。CS231n によると、LSTM は隠れ状態のほかに、長い期間の情報を蓄えるセル状態を持つ。入力、忘却、出力の3つのゲート(0から1の値で情報の通し方を決める部分)で、セル状態の情報を消したり書き足したりする。CS231n は、LSTM は勾配消失や勾配爆発が起きないことを保証しないが、離れた時点の関係を学びやすくすると書いている。

表で見る最新の状況

上の「RNN の主な論文」は、TRAIL が解説した論文から、RNN を使うか RNN の考え方に関わる6本を、発表の古い順に並べたものだ。確認日は2026年11月6日。

2016年7月の Layer Normalization は、1つの入力の同じ層の中で平均と分散を計算する正規化で、再帰型のネットワークでは時点ごとに計算する。2016年9月の GNMT は8層ずつの LSTM に注意機構と WordPiece を組み合わせた Google の翻訳の仕組みだ。2017年1月の MoE の論文は、大規模な実験で主に LSTM の層の間に MoE の層を置いた。

2017年6月の Attention Is All You Need は、再帰を使わずに注意機構だけで組む Transformer を提案した。2019年1月の Transformer-XL は、前の区間の隠れ状態を次の区間で使い直す仕組みを Transformer に加えた。2023年12月の Mamba は、過去の情報を小さな内部の状態にまとめて順に更新する状態空間モデルを、言語などの系列に使った。

翻訳の分野の流れは次のとおりだ。2014年9月10日に arXiv で公開された Sutskever らの論文は、多層の LSTM で入力の文を決まった大きさのベクトル(数値の並び)に変え、別の LSTM でそこから訳文を作った。論文の題名は「Sequence to Sequence Learning with Neural Networks」で、系列から別の系列への変換を扱う。論文の要旨によると、原文の単語の順を逆にして入れると性能が大きく上がった。翻訳の精度の数字はAI翻訳の用語ページにまとめている。

2014年9月1日に公開された Bahdanau らの論文は、原文を決まった長さのベクトルにまとめることが性能の妨げだと考えた。そこで、訳語を出すたびに原文の関係する部分を探す仕組みを加えた。この仕組みはアテンションの用語ページで解説している。

2017年の Transformer の原論文は、LSTM や GRU などの再帰型のネットワークが、言語モデルや機械翻訳で最高水準の方法として確立されていたと書いている。そのうえで、再帰型のモデルは時点の順に計算するため、1つの学習例の中で計算を並列にできないと指摘した。論文が提案した Transformer は再帰を使わずに注意機構だけで組み、論文はより多くの計算を並列にできるとしている。2024年の xLSTM の論文の要旨も、並列に計算できる自己注意を持つ Transformer が、規模を大きくしたときに LSTM を上回ったと書いている。

2023年以降も、再帰の考え方に関わる論文が出ている。Mamba の論文の要旨は、再帰型のモデルなどが長い系列での Transformer の効率の悪さに対処するために作られてきたが、言語などでは注意機構ほどの性能が出ていなかったと書いている。同じ論文によると、注意機構は文脈をまったく圧縮しないので効果が高い一方で効率が悪い。再帰型のモデルは状態の大きさが限られているので効率がよいが、その効果は状態がどれだけうまく文脈を圧縮できるかで決まる。Mamba は今のトークンに応じて情報を残すか忘れるかを選ぶ仕組みを入れ、論文は RNN のゲートをこの選択の仕組みの一例としている。2024年5月の xLSTM の論文は、LSTM を数十億のパラメータまで大きくしたとき、言語モデルでどこまで届くかを問い、LSTM の改良版を示した。

素の RNN と LSTM と GRU の違い

項目 素の RNN LSTM GRU
内部に持つもの 隠れ状態 隠れ状態とセル状態 隠れ状態
ゲート(PyTorch 2.15 の表記) なし 入力、忘却、セル、出力 リセット、更新、新しい値
年 ― 1997年に Neural Computation で発表 2014年12月の論文が「最近提案された」と紹介
PyTorch 2.15 のクラス torch.nn.RNN torch.nn.LSTM torch.nn.GRU

GRU(Gated Recurrent Unit)は、LSTM と同じようにゲートを持つ再帰型の部品だ。2014年12月に公開された Chung らの論文は、多声の音楽と音声の信号のモデル化で、LSTM と GRU を tanh を使う従来の部品と比べた。ゲートを持つ部品は従来の部品より優れ、GRU は LSTM と同程度だったという。CS231n は LSTM のゲートを入力、忘却、出力の3つとして説明し、PyTorch 2.15 のドキュメントはこれにセルを加えた4つで式を書いている。

仕事でどう関係するか

既存の仕組みの説明に LSTM や GRU とあったとき

入力を前から1つずつ読む型のモデルだと分かる。Transformer の原論文によると、この型は1つの学習例の中で計算を並列にできない。系列が長いほどこの制約が重くなり、メモリの制約で複数の例をまとめて計算することにも限りがある。PyTorch 2.15 には torch.nn.RNN、torch.nn.LSTM、torch.nn.GRU が用意されている。

プロンプト
提案いただいた予測モデルについて、次を教えてください。
1. モデルの型(LSTM、GRU、Transformer など)
2. 一度に読ませる系列の長さの上限
3. 学習と予測にかかる時間の目安

長い入力に強いという新しいモデルの説明を読むとき

Mamba の論文は、効率のよいモデルは状態が小さく、効果の高いモデルは文脈の必要な情報をすべて状態に持つ必要がある、と整理している。説明を読むときは、過去の情報を限られた大きさの状態にまとめる型か、注意機構のように文脈を圧縮しない型かを確かめる。

論文の速さの数字を自社の見積もりに使うとき

Mamba の論文の要旨は、推論の処理量が Transformer の5倍で、系列の長さに比例して計算が増えると報告している。言語モデルでは、Mamba-3B が同じ大きさの Transformer を上回り、2倍の大きさの Transformer に並んだという。どれも論文の条件での報告で、自社の業務の入力で同じ結果が出るとは限らない。

注意点と限界

LSTM でも勾配消失がなくなるわけではない。CS231n は、LSTM は勾配消失や勾配爆発が起きないことを保証しないとしている。

勾配の問題には、ゲートとは別の対策も提案されている。2012年11月に公開された Pascanu らの論文は、RNN の学習でよく知られた問題として、Bengio ら(1994年)が詳しく示した勾配消失と勾配爆発を挙げた。そのうえで、勾配爆発には勾配の大きさを切りそろえる方法を、勾配消失には緩やかな制約を提案した。

Mamba と xLSTM の結果は、著者らが論文で報告したものだ。xLSTM の論文は最新の Transformer や状態空間モデルと比べて性能と規模の伸び方で良い結果だったとしているが、比べた条件は論文の実験に限られる。

よくある質問

RNN と LSTM は何が違うのか

LSTM は RNN の一種で、隠れ状態のほかにセル状態とゲートを持つ。CS231n によると、実際には素の RNN の式はほとんど使わず、LSTM を使う。LSTM は離れた時点の関係を学びやすくするために作られた。

RNN と Transformer はどう違うのか

RNN は前から1つずつ順に計算し、Transformer は学習のときに注意機構で系列のすべての位置をまとめて計算できる。Transformer の原論文は、自己注意の層はすべての位置を一定の回数の順番の計算でつなぐが、再帰型の層は系列の長さに比例した回数を要すると書いている。詳しい比較は Transformer の用語ページの表にある。

RNN はもう使われていないのか

ライブラリには今も用意され、2023年以降も再帰の考え方を使う論文が出ている。PyTorch 2.15 には RNN、LSTM、GRU のクラスがある。2023年の Mamba や2024年の xLSTM の論文は、再帰の考え方を使ったモデルを言語モデルで Transformer と比べた。

GRU と LSTM のどちらを選べばよいか

決まった答えはない。2014年の Chung らの論文では、音楽と音声の信号のモデル化で GRU は LSTM と同程度だった。GRU はセル状態を持たず、ゲートの数も PyTorch の式では LSTM より少ない。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)