IT is IT.

空想イノベーション

リカレントニューラルネットワークの勾配消失問題対策

f:id:itry:20190224141301j:plain
リカレントニューラルネットワークにおいても、通常のニューラルネットワーク同様、勾配消失問題がある。
さらに、時系列を扱ううえで固有の問題として、現時点では関係性が少なくても、将来は関係性がある、というような入力があった場合に、重みを大きすべきものであると同時に、重みを小さくしなくてはいけない、という矛盾が生じてしまう。
これを、入力重み衝突と呼び、リカレントニューラルネットワークでの学習の妨げの大きな要因となっている。
出力に関しても同様で、出力重みの衝突の問題が存在している。

こういった問題を対策するために、リカレントニューラルネットワークの一種である、LSTM(Long Short Term Memory)と呼ばれる手法が存在する。
通常のニューラルネットワークでは、勾配消失問題を、活性化関数の工夫により対処するようにしていたが、LSTMも同様、隠れ層の構造を変えることで、勾配消失や重み衝突の問題を回避している。

LSTMは、LSTMブロックと呼ばれる機構で、時系列の情報をネットワークに保持できるような仕組みになっている。
LSTMブロックの構造は、大きく、2つの機構で構成されている。

  • 誤差を内部にとどまらせるためのセル
  • 必要な情報を必要なタイミングで保持・焼却させるためのゲート

セル

セルとは、CEC(Constant Error Carousel)とも呼ばれ、誤差を内部にとどめ、勾配消失を防ぐためのものである。

ゲート

ゲートは、入力ゲート出力ゲート忘却ゲートの3つで構成されている。
入力ゲートは入力重み衝突を、出力ゲートは出力重み衝突のためのゲート機構になっている。
そして忘却ゲートで、誤差が過剰にセルに停留するのを防ぐためにリセットするゲート機構になっている。

スポンサーリンク
 

こういった仕組みで、リカレントニューラルネットワークでは、勾配消失や、入力重み衝突、出力重み衝突などの問題に対処しているが、LSTMはセルやゲートをそれぞれ最適化するために、膨大な計算を必要とする。
そのため、LSTMを簡略化したGRU(Gated Recurrent Unit)という手法を用いることもある。

GRUでは、リセットゲート、更新ゲートが、入力ゲート、出力ゲート、忘却ゲートの代わりを果たしている。