再帰型ニューラルネットワーク(RNN)とは

再帰型ニューラルネットワーク(RNN)とは

再帰型ニューラルネットワーク(Recurrent Neural Network,略してRNN)は,自然言語や株価などの時系列データを扱う際に最もよく使用されるニューラルネットワークです.RNNもCNNと同様に頻繁に使用されるモデルですので,ここで理解を深めておきましょう.

Q. RNNとは?

A. 自然言語や時系列データなどの可変長データを扱う際に最もよく使用されるニューラルネットワーク

スポンサーリンク

Recurrent Neural Network(RNN)

RNNはデータが循環する構造をもっており,過去の情報を記憶しながら,現在のデータを処理することができます.以下にRNNの例を示します.

図1. RNNの例

上記の例では,\(t+1\)個のデータ(\(\bf{x}_{0}, …, \bf{x}_{t}\))をRNNに入力して,\(t+1\)個の出力(\(\bf{h}_{0}, …, \bf{h}_{t}\))を得ています.入力データは例えば,\(t+1\)日分の株価データや\(t+1\)個の単語からなる文章に相当します.

また,図1にある各RNNはすべて同じものを指しており,以下のように前時刻の出力\(\bf{h}_{i-1}\)と現時刻の入力\(\bf{x}_{i}\)を受け取り,出力結果\(\bf{h}_{i}\)を計算します.そして,各RNNでの出力結果は上図に示すように次時刻への入力に使用されます.

図2. RNNでの計算内容

RNNには2つの重み\(\bf{W}_{h}\)と\(\bf{W}_{x}\)があります.\(\bf{W}_{h}\)は前時刻の出力結果を現時刻での出力に変換するための重み,\(\bf{W}_{x}\)は現時刻の入力を出力に変換するための重みになります.\(\bf{b}\)は通常のニューラルネットワークやCNNでも登場したバイアスになります.いわゆる活性化関数にあたるのが,tanh関数(双曲線正接関数)です.

そして,通常のニューラルネットやCNNと同じように,学習データと誤差逆伝搬法を用いて,損失関数が最小となるように重みとバイアスを最適化します.

図2内の計算式を見ると,現在の出力\(\bf{h}_{i}\)は前時刻の出力\(\bf{h}_{i-1}\)の影響を受けて計算されていることがわかります.これは,RNNは\(\bf{h}\)という前時刻までの記憶をもっており,現在の入力情報と一緒に更新されていると解釈できます.これが,冒頭で述べた「RNNはデータが循環する構造をもっており,過去の情報を記憶しながら,現在のデータを処理することができる」と言われる所以になります.

\(\bf{h}\)のことを「隠れ状態」や「隠れベクトル」と呼ぶことが多いです.

RNNの適用例

RNNの適用例として,言語モデルをRNNで構築することを考えましょう.言語モデルは「与えられた文章に対して,それがどれだけ自然な単語の並びであるか」を確率で評価するものです.例えば,「I like to play soccer」という文章には高い確率を出力,「I like to soccer」という文章には低い確率を出力するのを目指すことを言語モデルでは行います.

言語モデルは,音声翻訳や自動翻訳など様々なアプリケーションで利用することができます.

 

RNNによる言語モデルの一例を以下に示します.基本的な構造は図1で紹介したRNNと同じですが,単語情報をベクトル化するEmbeddingレイヤとRNNの出力結果を確率分布に変換する全結合層(FC)とSoftmaxレイヤを追加しています.

図3.RNNによる言語モデル

ここでやっていることは,これまで入力された単語情報をもとに,次に出現する単語の確率をRNNによって予測することです.例えば,最初の単語「I」に注目すると,正しい次の単語は「like」なので,「like」の確率が高くなるようにRNNの重みパラメータを最適化します.

同様に,「I like」と来た場合の次の単語は「to」なので「to」の確率が高くなるように,「I like to」の次の単語は,...と順次に予測をしていきます.
このように,あらかじめ用意した自然な文章をもとに過去の単語情報から次に出現する尤もらしい単語を予測することをRNNで学習することで,与えられた文章の自然らしさを評価することができます.

もちろんほかにもRNNの応用先はあるので,別の機会に紹介したいと思います.

RNNの派生モデル

RNNの基本的な処理方法を引き継ぎつつ,さらに性能を良くしたモデルとして,LSTMGRUと呼ばれるニューラルネットワークがあり,これらのモデルが最近ではよく使用されています.

LSTMとGRUについても別の機会に紹介したいと思います.

タイトルとURLをコピーしました