RNN
まずはじめに、RNNはRecurrent Neural Networkの略です。
時系列データのように、順序に対して何らかのパターンを持っているデータに対して有効です。
現在のRNNは、主にLSTMのことを指すことが多いようです。
単純なRNNはElmanと呼ばれたりしますが、ここではRNNと呼ぶことにします。
なぜRNNは、単純なRNNはLSTMに置き換わったのかは以下にまとめます。
- 勾配爆発の問題
- 勾配消失の問題
RNNの構造
RNNは、再帰的なループ構造を持ち、系列の状態を保持することができるモデルです。
上のRNNユニットを時間軸に展開したら下のような図になります。
時間軸に展開しただけなので、同じものです。
時系列版誤差逆伝播方(BPTT)
BPTT(Back-propagation through time)
Truncated BPTT
時系列のシーケンス(\(x_0, x_1, \dots, x_n\))が長い場合、BPTTの実行が大変になる。
BPTTの工夫として、適当なブロックに分けて学習する方法をTruncated BPTTという。
参考
https://amzn.to/2NmoUJc
https://amzn.to/318ghdo