#はじめに
今回は、時系列データや自然言語処理を扱うときによく使われる「リカレントニューラルネットワーク(RNN)」についてまとめていきます。
🌟難しい数式等は扱いません。
#リカレントニューラルネットワーク(RNN)とは
通常のディープラーニングでは「出力は現在の入力によって決まる」。
つまり、過去の出力は関係ない。(過去の重みを表現できない。)
一問一答の画像認識や分類問題であればこのやり方でも問題ないが、時系列データ(株価の推移)などの場合は、過去の情報が現在の出力に及ぼす影響は大きい。
よって、時間の情報を反映できる仕組みが必要となり生まれたのが「リカレントニューラルネットワーク(RNN)」。
🌟イメージ図
##概要
リカレントニューラルネットワーク(RNN)を一言でいうと、「内部に閉路をもつニューラルネットワーク」。
※閉路:一周して完結する閉じた回路
リカレントニューラルネットワークでは、「出力は現在の入力と過去の出力によって決まる」
過去の隠れ層の情報を新しい層へ反映することで、過去の情報を保持しています。
イメージ図
##問題点
このような仕組みを作り、過去の情報を保持できるようになったが一つ問題があった。
それは、学習を進めていくほど「遠い過去の情報」が薄れていってしまうこと。
🌟長期記憶の保持ができない。
(過去のデータが新しいデータによってどんどん更新されてしまうため。)
そこで、「現在は重要ではないが将来的に重要になりそうな情報」を保持するために生まれたのが、「LSTM」。
##LSTMとは
LSTMは、LSTMブロックというものを導入して、長期記憶の保持を実現する。
LSTMブロックでは「必要な情報の保持と不要な情報の消却」をしている。
LSTMを少し簡略化した「GRU」というのもある。
(LSTMよりも計算コストが少ない。)
#おわりに
今回は、リカレントニューラルネットワーク(RNN)をまとめました。
学習の参考になれば幸いです。