Keras の長期短期記憶 (LSTM) を理解する
データとステートフル LSTM の再構成
データの再形成
- LSTM レイヤーが時系列データのシーケンスを処理できるように、データ系列は [サンプル、タイム ステップ、特徴] に再形成されます。
- 時間ステップは各シーケンス内の時点の数を表し、特徴はさまざまな変数またはチャネルを表します。
ステートフル LSTM
- ステートフル LSTMバッチ間で内部状態を維持し、以前の出力を記憶できるようにします。
- これは、将来のイベントを予測するために以前のタイム ステップのコンテキストが重要であるタスクに役立ちます。
質問 1: 時間ステップと特徴
- ピンクのボックスのある画像は、「多対 1」の場合を示しています。ここで、黒いボックス (特徴) の数は 3 で、ピンクのボックス (タイム ステップ) は可変です。
- これは、入力シーケンスにタイム ステップごとに 3 つの特徴が含まれていることを意味します。
質問 2: ステートフル LSTM
- 提供されたコード例では、ステートフル LSTM が使用されていますが、batch_size は 1 に設定されています。
- これは、モデルが一度に 1 つのシーケンスでトレーニングされることを意味し、セル メモリ値は各バッチ後にリセットされます。
- ステートフル LSTM を使用する目的は、バッチ サイズが 1 であるにもかかわらず、単一シーケンス内のタイム ステップ全体でコンテキストを保持することです。
画像の対応
-
最初の図 (展開、バッチ サイズ != 1): 各行は、LSTM の内部状態 (オレンジ色のボックス) と出力 (
-
2 番目の図 (バッチ サイズ = 1): 最初の図と似ていますが、各行は状態の内容と出力を表します。単一バッチ内のシーケンス全体 (バッチ サイズ 1)。
追加メモ
-
多変量シリーズ: へ各時間ステップに複数の特徴が含まれる多変量系列を処理する場合、変形層および LSTM 層の特徴の数は、データ内の特徴の総数と等しくなければなりません。
-
時間分散層: TimeDistributed レイヤーを使用すると、シーケンス内の各タイム ステップに同じ変換を適用し、効果的に多対多のレイヤーを作成できます。
以上がステートフル LSTM はバッチ サイズ 1 でどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。