RNN(Recurrent Neural Network)とは、時系列データや自然言語のような連続的なデータを扱うことに特化したニューラルネットワークです。再帰構造で過去の情報を記憶し、系列全体を学習します。仕組み・応用例・課題と改良のポイント、改良版との違いも解説します。
RNN(Recurrent Neural Network、リカレントニューラルネットワーク)とは、時系列データや自然言語のような連続的なデータを扱うことに特化したニューラルネットワークの一種です。本記事では、再帰構造の仕組み、応用例、課題と改良を解説します。
従来のニューラルネットワークがもつ層状の構造に加え、RNNは「再帰構造」をもつことが特徴です。この再帰構造によって過去の情報を記憶し、それを現在の処理に反映させることができます。
データの並び順に意味がある場合、直前までの状態を踏まえて判断できることが大きな利点になります。
たとえば文章中の単語の並びや、時系列の観測値のように、順序そのものが情報をもつデータで役立ちます。逆に順序に意味がないデータでは、利点を活かしにくくなります。
基本構造は入力層、隠れ層、出力層から構成され、通常のニューラルネットワークと異なり隠れ層に再帰的な接続があります。この接続により、過去の隠れ層の状態(内部状態)を現在の入力とともに考慮して次の状態を計算し、データの系列全体を通して情報を保持し学習します。
「直前までの文脈を踏まえて次を判断する」という点が、ニューラルネットワークだけでは扱いにくかった系列データの処理を可能にしました。
| 要素 | 役割 |
|---|---|
| 入力層 | 系列の各時点のデータを受け取る |
| 隠れ層 | 再帰的な接続をもち、過去の内部状態を保持する |
| 出力層 | 各時点の処理結果を出力する |
同じネットワークを各時点で使い回すイメージで捉えると理解しやすくなります。時点ごとに同じ処理が繰り返され、そのたびに内部状態が更新されます。
時間的な順序に意味があるデータで力を発揮します。音声認識でも同様に系列情報の扱いが重要になります。
動画や音声のように時間軸をもつデータでは、前後のつながりを踏まえた解析が欠かせません。RNNはそうした用途の土台として使われてきました。
ただし、系列が長くなるほど学習が難しくなるという弱点があります。そのため実務では、後続の改良版と組み合わせて使われることが多くなっています。
課題として「勾配消失問題」(系列が長くなると過去の情報が現在の状態に十分伝わらなくなる現象)があります。これを解決するためにLSTM(Long Short-Term Memory)やGRUといった改良版のRNNが開発されました。
改良版では、情報を長く保つ仕組みを加えることで、長い系列でも学習が進みやすくなっています。用途に応じて従来型と使い分けることが大切です。
実際は:系列が長くなると勾配消失問題により過去の情報が伝わりにくくなります。そのためLSTMやGRUが用いられます。
実際は:RNNは順序をもつ系列データに特化した手法です。順序に意味のないデータでは、別の手法のほうが適します。
実際は:RNNはLSTM(Long Short-Term Memory)の一種です。層状の構造を土台に、再帰的な接続を加えたものと考えると理解しやすくなります。
A. LSTMはRNNの一種で、勾配消失問題を軽減し長期の依存関係を扱いやすくした改良版です。詳細はニューラルネットワークをご覧ください。
A. テキストや音声、時系列のように、順序に意味がある連続的なデータを扱うタスクに向いています。
A. 系列が長くなるにつれて、過去の情報が現在の状態に十分伝わらなくなる現象です。改良版のモデルで緩和が図られています。
用語の一覧はAI用語辞典トップからたどれます。実際のツール比較はAIツール一覧をご覧ください。
本記事にはアフィリエイトリンクを含む場合があります。経由での申し込み時に当サイトが報酬を受け取ることがありますが、掲載内容・評価は報酬の有無に左右されません。記載情報は公開時点のものであり、最新情報は各公式サイトをご確認ください。
編集部の評価方法論を見る →