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

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

1. 定義と概要

リカレントニューラルネットワーク(RNN)とは、文章や音声、株価の推移のように順序や時間に意味があるデータ(系列データ)を扱うために設計されたニューラルネットワークの一種です。再帰型ニューラルネットワークとも呼ばれます。ある時刻の隠れ層の出力である隠れ状態(直前までの情報を覚えておくための内部の値)を、次の時刻の入力の一部として使う再帰的な構造(ループ構造)を持ちます。

具体例としては、文章中の単語の並び、音声の時間的な変化、日々の株価や気温の推移など、前後の並び方に意味があるデータ全般が挙げられます。通常のニューラルネットワークが1つの入力を1回の処理で完結させるのに対し、RNN は前の時刻の処理結果を次の時刻へ持ち越しながら判断を積み重ねていく点が大きな違いです。

こうした構造が求められた背景には、それまでのネットワークの制約があります。従来のニューラルネットワークの多くは順伝播型ニューラルネットワーク(フィードフォワードネットワーク。入力から出力へ情報が一方向に流れ、各入力を独立に処理する基本的な構造)でした。この構造には、入力の順序や時系列的な前後関係をくみ取る仕組みが備わっていません。

文章や音声のように前後の並びに意味があるデータでは、直前までの文脈を踏まえて次を判断する必要があります。そこで RNN は、前の時刻の隠れ状態をループ状に次の時刻へ渡す構造を導入し、過去の情報を踏まえた処理を可能にしました。

2. 試験対策ポイント

RNN と順伝播型ニューラルネットワークの構造上の違いは、整理しておきたい柱の一つです。順伝播型は入力ごとに独立して一方向に処理するのに対し、RNN は隠れ層にループ(フィードバック)を持ち、前の時刻の隠れ状態を次の時刻の入力の一部として使います。この違いによって、RNN は直前までの文脈を踏まえた処理ができるようになります。

あわせて押さえておきたいのが、RNN が各時刻で同じ重み(パラメータ)を使い回す設計になっている点です。これは重み共有(パラメータ共有。時刻ごとに別々の重みを持たず、同じ重みを使い回す設計)と呼ばれ、系列の長さが変わっても同一のパラメータで処理できる省パラメータな仕組みにあたります。順伝播型が層ごとに異なる重みを持つのとは対照的です。

系列データという語の中身も整理しておくと、文章(単語の並び)、音声(時間的な波形の変化)、株価や気温の推移のように、順序・時間に意味があるデータを指します。画像のような空間的なデータの扱いには CNN(畳み込みニューラルネットワーク)が向くという役割分担も、あわせて見ておきたいところです。

RNN 最大の限界とされるのが勾配消失問題(誤差を過去にさかのぼって伝える過程で、学習の手がかりとなる値がどんどん小さくなり、うまく学習できなくなる現象)です。系列が長くなるほど遠い過去の時刻まで誤差がうまく伝わらなくなり、遠い過去の情報を学習しにくくなります。

この学習アルゴリズムには BPTT(Backpropagation Through Time、通時的誤差逆伝播法。時間方向に展開したネットワークに誤差逆伝播法を適用する RNN の学習アルゴリズム)という名称が付いています。時間方向に長く展開するほど、誤差をさかのぼらせる道のりも長くなるわけです。

勾配消失を克服する目的で提案された発展形として知られるのが LSTM(ゲート機構により長期依存を学習しやすくした構造)です。その簡略版にあたる GRU(LSTM と同様に勾配消失への対処として考案された、より単純な構造を持つ発展形)も、あわせて整理しておきたいところです。仕組みの詳細には、本記事では立ち入りません。

3. 関連概念との比較・相違点

順伝播型ニューラルネットワークとの最大の違いは、情報の流れが一方向で各入力を独立処理するか、ループ構造で前の時刻の情報を次に渡すかという点にあります。RNN は後者にあたり、系列データを扱える点が両者の分かれ目です。

文章の生成や音声の認識のように直前までの文脈が意味を持つタスクでは、RNN の構造が土台になってきました。一方、画像分類のように各入力を独立に扱えるタスクでは順伝播型や CNN の構造で十分な場合が多く、扱うデータの性質によって向き不向きが分かれます。

LSTM との関係は、発展の系譜として整理しておきたいところです。RNN は勾配消失によって長期依存の学習が難しくなるという限界を抱えており、LSTM はこの限界を克服するために考案された発展形にあたります。ゲート機構を備えることで長期依存を学習しやすくした構造ですが、仕組みの中身は LSTM 自体のテーマとして、ここでは名称の紹介にとどめます。

両者の最大の違いは、単純なループ構造だけを持つか、情報の取捨選択を担うゲートを備えているかという点です。三者の位置づけは、構造と向くデータを並べると見通しがよくなります。

構造 情報の流れ 向くデータ
順伝播型ニューラルネットワーク 入力から出力へ一方向・各入力を独立に処理 画像分類のように各入力を独立に扱えるデータ
RNN 前の時刻の隠れ状態をループで次の時刻へ渡す 文章・音声・株価の推移などの系列データ
LSTM ループに加えてゲート機構で情報を取捨選択 系列データのうち長期依存が問題になるもの

こう並べると、RNN は順伝播型に時間方向のつながりを足したもの、LSTM はその RNN に情報の取捨選択を足したものという関係が見えてきます。

4. ビジネス・実務での活用シナリオ

自然言語処理(コンピュータに人間の言葉を扱わせる技術分野)の基礎では、文章を単語の並びとして扱い、直前までの文脈を踏まえて次の単語を予測する発想の起点に RNN の構造がありました。現在の主流は Transformer 系のモデルですが、文脈を踏まえて系列を処理するという発想そのものは後続のモデルにも引き継がれており、系列データを扱う考え方の土台にあたります。

時系列データ分析の領域では、株価や気温の推移のように過去の値の並びから将来の値を予測する時系列予測に、前の時刻の情報を引き継ぐ RNN の構造が使われてきました。系列の長さが変わっても同じ重みで処理できる仕組みは、期間の異なる時系列データを扱ううえでの実務的な利点でもあります。

音声のように時間とともに変化する信号データの処理にも、系列を扱える RNN の構造が土台として使われてきました。個別の応用の詳細については、それぞれ別記事で扱う設計です。

5. 要点まとめ

  • RNN は、系列データを扱うために前の時刻の隠れ状態を次の時刻へ渡す再帰的な構造(ループ構造)を持つニューラルネットワークです。
  • 順伝播型ネットワークが各入力を独立処理するのに対し、RNN はループ構造と重み共有によって過去の情報を踏まえた処理ができる点が分かれ目です。
  • 系列が長くなるほど勾配消失によって長期依存の学習が難しくなるという限界があり、LSTM や GRU はこれに対処する目的で考案されました。

6. 確認問題

問1RNN は、ある時刻の隠れ層の出力(隠れ状態)を次の時刻の入力の一部として利用する再帰的な構造を持つ。

解答・解説をみる

○ 正しい

前の時刻の隠れ状態を次の時刻の処理へ渡すループ構造こそが RNN の中心的な特徴にあたるため、この記述は正しいといえます。順伝播型ネットワークにはこうした構造がなく、各入力を独立に処理する点が対照的です。

問2RNN は系列が長くなるほど、遠い過去の情報を学習しやすくなる。

解答・解説をみる

× 誤り

系列が長くなるほど誤差を過去へ伝える過程で勾配が小さくなる勾配消失が起こりやすく、遠い過去の情報はむしろ学習しにくくなるため、この記述は誤りです。正しくは、系列が長くなるほど遠い過去の情報を学習しにくくなるという関係にあります。逆向きの記述は取り違えやすい典型です。

問3RNN の勾配消失という限界を克服するために、LSTM や GRU といった発展形が提案されている。

解答・解説をみる

○ 正しい

勾配消失によって長期依存の学習が難しいという RNN の課題を受けて、ゲート機構を備えた LSTM と、その簡略版にあたる GRU が考案された経緯があるため、この記述は正しいといえます。