RNN

RNNとはRecurrent Neural Networkのことであり、
良くある入力層から出力層までが一方通行のニューラルネットワークモデルと違って、RNNは自己再帰をする層が含まれている。これにより、文章などの連続的な入力を扱うことができる。隠れ層にいわゆる「記憶」として、過去の時系列の入力の情報が保持される。

時系列順に入力系列 を入力すれば出力には予測確率のベクトル がでてくる。 は隠れ層の状態を表している。活性化関数 は従来のモデルと同じように、tanhやReLU等の非線形関数が一般的に使用される。

このRNNの文章を入力すると何かしらの連続した文字列が出力されるという特徴から、文章とその翻訳文を学習させれば、機械翻訳タスクに、会話文とその応答文を学習させれば、文章生成をすることができる。(生成モデル)

RNNの学習は一般的なニューラルネットワークと同じように勾配を更新することで学習をするが、勾配計算の際に過去のステップの計算も使用する必要がある。(BPTT)
それにより、通常のRNNでは長いステップのネットワークの学習が困難となる。そこで、LSTMやGRUのようなアルゴリズムが考案された。
RNN系モデルの欠点として、再帰構造になっているため、並列化が出来ないことや, 層が深くなり勾配消失してしまうことなどが挙げられる.