RNNRecurrent Neural Network

前の要約を引き継ぎ一語ずつ処理する神経網

ポイント
  • RNN (Recurrent Neural Network, 再帰型ニューラルネットワーク)は、文章や音のように順序のあるデータを一語ずつ順番に受け取る神経網です。
  • マスがいくつも並んでいるように見えますが、実際には同じマス一つを繰り返し使っています。
  • 毎回渡すのは、これまで聞いた内容を短くまとめた要約一つだけです。原文をそのまま持ち歩くわけではありません。
  • そのため文章が長くなると、最初に聞いた話がだんだんぼやけていきます。これがRNNの一番の弱点です。
  • 順番にしか進めないので、複数の語を一度にまとめて処理できません。トランスフォーマーに座を譲った理由です。
目次

1たとえで理解する

合宿の部屋で伝言ゲームをするのですが、ルールが少し違います。進行役が文章を一語ずつ区切って読み上げます。一番端の人は「今日」だけを聞き、聞いた内容を短くまとめて隣の人にささやきます。二番目の人は、前から回ってきたそのささやきと新しく聞いた「雨が」を合わせてまた短くまとめ、次に渡します。三番目も四番目も同じことをします。

渡せるのは短いひとことだけです。紙に書き留めることもできません。だから文章が長くなるほど、最初に聞いた「今日」は何人もの人を経るうちにだんだんぼやけていきます。最後の人が出すことばには、直前に聞いた部分だけがくっきり残っています。

2くわしく

一度に一語ずつしか受け取らない

普通の神経網は、データをまるごと一度に受け取ります。写真一枚、表の一行のように大きさの決まったかたまりを入れれば答えが出ます。ところが文章は長さがまちまちです。三語のものもあれば三百語のものもあります。

RNNはこの問題を順序で解きます。文章を一語ずつ区切って一つずつ入れます。一語入れると計算が一回回り、次の語を入れるとまた一回回ります。こうすれば長さがどれだけ違っても同じやり方で扱えます。

渡すのはこれまでの要約一つ

マスは毎回二つのものを受け取ります。新しく入ってきた語一つと、前の順番から渡ってきた要約一つです。この二つを合わせて計算し、新しい要約を作って次の順番に渡します。

この要約は原文をそのまま保存したものではありません。大きさが最初から決まった数字のまとまりなので、百語聞いても三語聞いても入れられる量は同じです。新しい語が入るたびにその中で場所を分け合う必要があり、場所を譲るのは前に聞いた内容です。

同じマスを繰り返し使っている

図に描くとマスが並んでいるように見えますが、実際のモデルの中にマスが複数あるわけではありません。マスは一つだけで、そのマスが自分の出力をまた自分の入力として受け取ります。再帰という名前はここから来ています。

繰り返し使うということは、掛ける大きさがどの順番でも同じという意味です。最初の語を扱うときの手加減と、百番目の語を扱うときの手加減が同じです。おかげでどれだけ長い文章が入ってきてもモデルが大きくならず、学習することも増えません。

長くなると前がぼやける

同じ計算を繰り返すという点が弱点にもなります。要約は一回進むごとに少しずつ押しつぶされ、その押しつぶしが何十回も重なると、最初に入ってきた内容はほとんど残りません。逆に少しずつ膨らんでいくと、値が発散してしまうこともあります。

学習のときには問題がさらに大きくなります。間違った答えを直すには、外れた量を後ろから前へさかのぼって送り返す必要がありますが、この信号も順番をさかのぼるたびに一緒に減っていきます。最後の語の近くはよく学べても、文章の最初はほとんど学べないことが起こります。この現象を勾配消失と呼びます。

順番にしか進めないので遅い

RNNは前の順番が終わらないと次の順番を始められません。二番目の語を計算するには一番目の要約が出ていなければならないからです。そのため語が千個あれば、計算も千回を順に待つ必要があります。

一度に複数の計算をまとめて行うのが得意な今の画像処理装置とは相性が悪いです。文章の中のすべての語を一度に処理できる構造が出てくると、言語まわりの座をすぐに譲ることになった背景です。それでも音楽やセンサーの値のようにデータがリアルタイムで一つずつ入ってくる場所では、今でもよく使われています。

3もう少し正確に

RNNは隠れ状態と呼ぶ数字のまとまりを順番ごとに更新しながら順序データを処理する神経網です。毎回新しい入力と直前の隠れ状態を合わせて掛けて足し、一度ひねって新しい隠れ状態を作り、必要ならそこから出力を取り出します。すべての順番が同じ重みを使うという点が、多層パーセプトロンと最も大きく違う部分です。

比喩がずれる点もあります。伝言ゲームでは人ごとに性格が違うので違うまとめ方をしますが、RNNはすべての順番が完全に同じ規則でまとめます。また人は言葉を文単位で理解しますが、RNNが渡す要約は意味の込められた文ではなく大きさの決まった数字のまとまりなので、人が開いてみても中身を読み取れません。

前後を両方見たいときは、文章を後ろから前へももう一度なぞる方法を併用することもあります。ただしこうしても、順番どおりに処理しなければならないという制約自体はなくなりません。二方向の要約を後で合わせるだけで、計算そのものが並列になるわけではないからです。

4やってみる

5よくある誤解

  • RNNが文章全体を覚えていると思われがちですが、実際には大きさの決まった要約一つしか持ち歩かないので、前の部分は順番が進むほどぼやけていきます。

  • 図の中のマスがそれぞれ別の部品だと思われがちですが、実際には同じマス一つを時間の順に並べて描いただけです。

  • トランスフォーマーが出たのでRNNはもう使われないと思われがちですが、実際にはデータが一つずつ入ってくるリアルタイム処理や小型機器の上では今も現役です。

7ひとこと要約

つまりRNNは同じマス一つが前の順番の要約を引き継いで一語ずつ処理する構造で、順序を扱える代わりに長い文章の前半を見失いやすいです。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02