RNN(リカレントニューラルネットワーク)モデルについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
RNN(リカレントニューラルネットワーク)
概要
- 「RNN(リカレントニューラルネットワーク;再帰型ニューラルネットワーク)」
- ”リカレント”は、”再帰的”、”繰り返し処理”の意味
- 「時系列データ」(言語、音楽、音声、動画など)を扱うニューラルネットワーク
- 一度処理した情報を同じセルに記憶できる→「値の順序(単語の並びなど)」を解析できる
- 「可変長データ」にも対応できる
- 他のニューラルネットワーク→「フィードフォワード(順伝播型)」
→データが入力側から出力側に向かい、一方向に処理される
→個々に処理されるため時間順序の情報が削られる - RNN→以前に処理した情報を現時刻にフィードバックする仕組み
→過去の隠れ層と現在の隠れ層の間に、情報の繋がりを持つ(過去の時刻の情報を考慮しつつ、現時刻の情報を処理する)
→時間順序の情報が削られないことから、時系列データを扱うことに適している
可変長データ
- RNNの重要な特徴→「可変長の入出力に対応できること」
- 入力データや出力データの時系列長を揃える必要はない
※機械翻訳などでは、おおむね入力の長さと出力の長さは揃わない - 「エンコーダ(Encoder)」・「デコーダ(Decoder)」→初期のニューラル機械翻訳モデルで利用されていた
※ルールベースや統計的手法の機械翻訳より精度が改善された
課題
①勾配消失問題
- 長い順伝播型モデルとなる(時間ステップの分だけ深くなる)ので、勾配消失が通常のニューラルネットワークよりも深刻となる
②重み衝突問題
- 「BPTT(Back Propagation Through Time)」→RNNにおける誤差逆伝播
- 「重み衝突問題」→ある時点では重要度(重み)が低くとも、ある時点では重要度(重み)が高くなり、過去データの重みを特定値に決定できない問題
→「入力重み衝突問題」・「出力重み衝突問題」 - ある時刻では大きい勾配、ある時刻では小さい勾配、という不揃い状態になる
- 長い時系列データの場合に影響がより大きくなり、精度が悪化する
解決策
①LSTM(Long Short Term Memory)
- 「LSTM(Long Short Term Memory)」→RNNの改良版
- セルへ出入りする情報を制御するための「ゲート構造」を設ける
→従来のRNNよりも長い系列データを扱えるようになった - ゲート→学習に必要な誤差情報を適宜メモリに書き留めることで、勾配消失を軽減
※不要になった情報を棄却する機能もあり - 「CEC(Constant Error Carousel)」→LSTMのセル
- 「ゲート」→セルへ出入りする情報を適切なタイミングで制御
- 「CTC(Connectionist Temporal Classification)」→入力系列長と出力系列長とが一致しなくともよいよう、空白文字(blanc)を加えて処理し、形式的に系列長を揃える技術
- 入力ゲート:入力時の重みを制御
- 出力ゲート:出力時の重みを制御
- 忘却ゲート:誤差が過剰にセルに停留することを防止、リセットの役割も果たす
②GRU(Gated Recurrent Unit)
- 「GRU(Gated Recurrent Unit)」→LSTMを簡略化したもの
- リセットゲート
- 更新ゲート