「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
(Long short-term memory: LSTM)
特徴 †
- シンプルなRNNのhtはコロコロ変わるので記憶力が弱いと言える。
(長文を読んで要約をするというようなタスクには記憶力が足りない)
- 長期的特徴と短期的特徴を学習することができる。欠点は計算量が多いこと。
- 長期依存が学習できない原因は勾配消失問題があり、
(遠くの層ほど勾配の大きさが小さくなってしまい、学習が進み難い)
- 過去10ステップ程しか記憶できなかったRNNに
過去1000ステップ以上の記憶を保持できる機能が追加されている。
構造 †
- 追加のニューロン
- ゲートをコントロールするニューロン
- セルへの入力を求めるニューロン
- 追加のニューロンへもCEC(記憶セル)の値を入力
- 重み衝突(入力重み衝突、出力重み衝突)
3つのゲートを追加(Attention機構に近い)。
- 入力重み衝突:入力ゲート
- 出力重み衝突:出力ゲート
- 上記以外に、忘却ゲート
GRU (Gated Recurrent Unit) †
- ゲート付き回帰型ユニット
- LSTMの簡略版(ゲートの数が更新ゲートとリセットゲートの2つ)
- 更新ゲート:過去の情報をどれだけ取り込むかを決定する。
- リセットゲート:過去の情報をどれだけ捨てるかを決定する。
LSTM (Long short-term memory) †
LSTMでできること †
≒ RNNでできること
詳細 †
GRUの仕組みと構造の説明 †
数式と構造 †
要素の説明 †
- ztは
- 式の意味としては、
・RNNの式と同じだが活性化関数がSigmoid関数(σ)
・更に、よくよく見ると、重みはWhとWxではなくWzと、同じものを使っているぽい。
- ただし、htの式での使われ方の観点からは、hをどの程度更新するかを決める。
- rtは
- 式の意味としては、ztと同じ。
- ただし、~htの式での使われ方の観点からは、ht-1をどの程度減衰するかを決める。
htは
- 式の意味としては、活性化関数含め、ほとんどRNNの式。
- ただし、rtによってht-1が減衰される機能が盛り込まれている。
- htは計算済みのht-1と~htを、計算したztを使ってブレンドしている。
- ztが0に近いと、ht-1が強調される(文脈に変化がない場合)。
- ztが1に近いと、~htが強調される(文脈に変化がある場合)。
LSTMの仕組みと構造の説明 †
拡張形式 †