Recurrent Neural Network(RNN)の背後にある考え方は私には明らかです。私はそれを次のように理解しています:
一連の観測()(つまり、多変量時系列)があります。各単一観測は次元の数値ベクトルです。RNNモデル内では、次の観測は以前の観測と以前の "非表示状態"であると。ここで、非表示状態も数値で表されますベクトル(観測状態と非表示状態の次元は異なる場合があります)。隠された状態自体も、以前の観測と隠された状態に依存すると想定されます。 → h i
最後に、RNNモデルでは、関数はニューラルネットワークであると想定されます。利用可能なデータ(一連の観測)を使用して、ニューラルネットワークをトレーニング(適合)します。トレーニングの目標は、前の観測を使用して次の観測をできるだけ正確に予測できるようにすることです。
現在、LSTMネットワークはRNNネットワークの修正版です。私が理解している限り、LSTMの背後にある動機は、RNNに固有の短いメモリの問題を解決することです(従来のRNNは、時間的に離れすぎている関連イベントに問題があります)。
LSTMネットワークの仕組みを理解しています。ここでLSTMの最良の説明、私が発見したことは。基本的な考え方は次のとおりです。
非表示状態ベクトルに加えて、非表示状態ベクトル()と同じサイズ(次元)を持つ、いわゆる「セル状態」ベクトルを導入します。「細胞状態」ベクトルは長期記憶をモデル化するために導入されたと思います。従来のRNNの場合と同様に、LSTMネットワークは入力として観測された隠された状態を取得します。この入力を使用して、次の方法で新しい「セル状態」を計算します。
ここで、、、およびの関数は、ニューラルネットワークによってモデル化されています。式を簡単にするために、引数を削除します。
したがって、新しい「セル状態ベクトル」()は、古い状態ベクトル()と「中間」のセル状態ベクトル(加重和であることがわかります。)。ベクトル間の乗算はコンポーネント単位です(2つのN次元ベクトルを乗算し、結果として別のN次元ベクトルを取得します)。つまり、コンポーネント固有の重みを使用して、2つのセル状態ベクトル(古いものと中間のもの)を混合します。
これは、説明されている操作間の直感です。セル状態ベクトルは、メモリベクトルとして解釈できます。2番目の重みベクトル(ニューラルネットワークによって計算されます)は、「保持」(または忘却)ゲートです。その値は、セル状態ベクトル(または長期記憶ベクトル)からの対応する値を保持するか、または忘れる(消去する)かを決定します。別のニューラルネットワークによって計算される最初の重みベクトル()は、「書き込み」または「記憶」ゲートと呼ばれます。新しいメモリ(「中間」のセル状態ベクトル)を保存する必要があるかどうか(より正確には、その特定のコンポーネントを保存/書き込む必要があるかどうか)を決定します。「中級」ベクター)。実際には、2つの重みベクトル(および)を使用して、古いメモリと新しいメモリを「混合」すると言った方が正確です。
したがって、上記の混合(または忘却と記憶)の後、新しいセル状態ベクトルが得られます。次に、別のニューラルネットワークを使用して「中間」の隠された状態を計算します(以前と同様に、観測された状態と隠された状態を入力として使用します)。最後に、新しいセルの状態(メモリ)を「中間」の隠し状態()と組み合わせて、実際に出力する新しい(または「最終的な」)隠し状態を取得します。
ここで、はセル状態ベクトルの各成分に適用されるシグモイド関数です。
だから、私の質問です:このアーキテクチャはなぜ(または正確には)問題を解決するのですか?
特に、次のことは理解できません。
- ニューラルネットワークを使用して「中間」メモリ(セル状態ベクトル)を生成し、「古い」メモリ(またはセル状態)と混合して「新しい」メモリ(セル状態)を取得します。混合の重み係数もニューラルネットワークによって計算されます。しかし、なぜニューラルネットワークを1つだけ使用して「新しい」セル状態(またはメモリ)を計算できないのでしょうか。または、言い換えれば、観測された状態、隠された状態、および古いメモリを、「新しい」メモリを計算するニューラルネットワークへの入力として使用できないのはなぜですか。
- 最後に、観測状態と非表示状態を使用して新しい非表示状態を計算し、次に「新しい」セル状態(または(長期)メモリ)を使用して、新しく計算された非表示状態のコンポーネントを修正します。言い換えると、セル状態のコンポーネントは、計算された非表示状態の対応するコンポーネントを単に減らす重みとして使用されます。しかし、なぜセル状態ベクトルがこの特定の方法で使用されるのでしょうか。セル状態ベクトル(長期記憶)をニューラルネットワークの入力(観測状態と非表示状態も入力として取る)に入れて、新しい非表示状態を計算できないのはなぜですか?
追加:
これは、さまざまなゲート(「保持」、「書き込み」、「読み取り」)がどのように構成されているかを明確にするのに役立つビデオです。