深層学習day3 Section2:LSTM
要点まとめ
RNNは時系列を遡るほど勾配が消失していき、長い時系列の学習が困難である。特に活性化関数にシグモイド関数を用いると、シグモイド関数の微分の最大値が0.25なので、勾配消失問題が発生しやすくなる。
LSTM(Long Short Term Memory)は、勾配消失問題を発生しにくいようにした学習器である。
勾配消失や勾配爆発が起きないようにするためには、時間をいくら遡っても勾配が1であれば勾配は消失も爆発もしなくなる。 数式で表現すると、
CEC
Constant Error Carousel. 過去の入力層や中間層を全て記憶するための部品。 重みが一律であるため、学習機能は存在しない。
入力ゲートと出力ゲート
入力ゲートは入力層からの入力に対して重みを掛けたものと、前回の出力値に対して重みを掛けたものを用いて、CECに対して出力には重みを掛けて出力する。 出力ゲートも同様に入力層からの入力に対して重みを掛けたものと、前回の出力値に対して重みを掛けたものを用いて出力する。
忘却ゲート
過去の情報を不要になったタイミングで情報を忘却する機能。
覗き穴結合
入力ゲートや出力ゲートに対してもCECの情報を用いたら良いのではないかということで、試みられたがあまり効果が無かった。
実装演習
確認テスト等考察
シグモイド関数の微分の最大値は0.25。 これは、シグモイド関数の微分を考えると明らか。