E資格に向けての勉強(RNN)
Recurrent Neural Network
系列(シーケンス)データを解析する。
系列データに時間の概念があるのが時系列データで、株価予測とかに使われる。
時間の概念がないものは、自然言語処理などに使われる。
前回の隠れ層を入力に使用するので、過去の入力が考慮される。
記憶を長くしようとすると勾配消失が発生する問題がある→LSTM、GRUセルで解決
- LSTM
中間層をLSTM Blockというものに置き換えることで、各10ステップ程度しか記憶できなかったのが1000ステップ以上記憶できるようになった。
LSTM Blockは下記の構成要素で成り立っている。
メモリセル(CEC;Constant Error Carousel)
過去の情報を記憶する。
入力ゲート
入力層からの入力を取捨選択する。
出力ゲート
隠れ層からの入力を取捨選択する。
忘却ゲート
不要な記憶をメモリセルから消去する。
各隠れ層はLSTM Blockに置き換えられる。つまり隠れ層の数だけLSTM Blockが存在する。
- GRU
LSTMよりも単純で計算効率が良い。
- その他RNNに関係のある用語
WaveNet
音声合成や音声生成などに使われる。
Sequence-to-Sequence (seq2seq)
自然言語処理タスクに使われる。Encoder-Decoderモデルにより、系列データを別の系列データに変換する。
Transformer
自然言語処理タスクに使われる。RNNやCNNは使わず、Attentionだけで高精度を達成。