LSTMの中の三つのGate
ここでは、LSTMの中で、Gateがどのようなところに配置されているかを見てみよう。
あらためて、RNNとLSTMの比較をしてみよう。
まずは、RNNから。
横串が、一本増えた。
ただ、この二つの図を見ているだけではわからないことがある。もう少しだけ詳しく、内部の様子を見てみよう。
まずは、RNNから。
基本となるのは、RNNの次のような構成である。この図では、矢印に添えられた文字は、情報の名前ではなく、重みであることに注意されたい。
これまでも、また、これからも繰り返し登場する重要な式は、Full Connectなニューラル・ネットワーク一層の出力は、入力をX、重みをW、バイアスをb とした時に、\( \phi ( W \cdot X + b) \) で表されるということである。
RNNでは、隣り合う隠れ層もFull Connectである。ここでは、RNNの隠れ層が受け取る二つの入力 \(h_{t-1}\) と \(x_t\) から、次の式で、出力が計算されている。
$$ h_t = \phi _h ( U \cdot x_t + W \cdot h_{t-1} + b_h $$
ここで、基本式に新たに付け加えられた \(W \cdot h_{t-1}\)が、隣の隠れ層からの入力に対応している。
あらためて、RNNとLSTMの比較をしてみよう。
まずは、RNNから。
隠れ層に、横串が一本通っているが、RNNは単純な三層構造のニューラル・ネットワークが単位であることは、わかると思う。
では、LSTMは、どうであろうか?
ただ、この二つの図を見ているだけではわからないことがある。もう少しだけ詳しく、内部の様子を見てみよう。
まずは、RNNから。
基本となるのは、RNNの次のような構成である。この図では、矢印に添えられた文字は、情報の名前ではなく、重みであることに注意されたい。
これまでも、また、これからも繰り返し登場する重要な式は、Full Connectなニューラル・ネットワーク一層の出力は、入力をX、重みをW、バイアスをb とした時に、\( \phi ( W \cdot X + b) \) で表されるということである。
RNNでは、隣り合う隠れ層もFull Connectである。ここでは、RNNの隠れ層が受け取る二つの入力 \(h_{t-1}\) と \(x_t\) から、次の式で、出力が計算されている。
$$ h_t = \phi _h ( U \cdot x_t + W \cdot h_{t-1} + b_h $$
ここで、基本式に新たに付け加えられた \(W \cdot h_{t-1}\)が、隣の隠れ層からの入力に対応している。
この関係式を、先のRNNのグラフに書き込んでみよう。次の図が、それである。
出力層では、活性化関数とバイアスが省略されている。
この図に対応するLSTMのグラフは、次のようになる。
似ているようでもあり、似ていないような気もするが。
ただ、先の図には、重要な情報が抜けている。LSTMが、もっともRNNと異なるのは、それが内部にGateを持つということだ。それを図示したのが、次の図である。
LSTMは、内部に三つのGateを持っている。それが、LSTMの振る舞いを、RNNとは大きく変えることになる。
コメント
コメントを投稿