LSTM

・LSTM:RNNの一種

画像2

LSTM block

画像1

・Constant Error Carousel (CEC):勾配消失および勾配爆発の解決方法として導入された。勾配が1であれば解決できる。

・入力ゲート:

画像3

CECの課題は入力データについて、時間依存度に関係なく重みが一律である。学習特性が無いため、入力ゲートと出力ゲートを導入して解決

・入力ゲートと出力ゲート:

画像4

LSTMのCECは、過去の情報が全て保管されている。過去の情報が要らなくなった場合、削除することはできず、保管され続ける。そのため、過去の情報が要らなくなった場合、そのタイミングで情報を忘却する機能が必要になる。

・忘却ゲート:

画像5

確認テスト:以下の文章をLSTMに入力し空欄に当てはまる単語を予測したいとする。文中の「とても」という言葉は空欄の予測においてなくなっても影響を及ぼさないと考えられる。このような場合、どのゲートが作用すると考えられるか。

「映画おもしろかったね。ところで、とてもお腹が空いたから何か____。」

回答:忘却ゲート

・覗き穴結合(peephole connection):CECの保存されている過去の情報を、任意のタイミングで他のノードに伝播させたり、あるいは任意のタイミングで忘却させたい。

・LSTMの課題:LSTMでは、パラメータ数が多く、計算経路と負荷が高い問題があった。学習がとても遅い。

考察

・LSTMは構造が非常に複雑で、勉強しにくいものだ。しかし、この複雑な計算経路の中に他のニューラルネットワークアルゴリズムに閃きを与えたに思える。例えばCECの勾配1のアイデアとReLU関数の導入と似ている。そしてpeephole connectionはResnetのskipped connectionと似ている。

・RNNと言えばLSTMという時代が長かった。複雑だけではなく、それくらい優秀なネットワーク構築ともいえる。

この記事が気に入ったらサポートをしてみませんか?