uma3blog

気が向いたことを稀になんかいろいろ書きます。

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だけで高精度を達成。