ホームページ  >  記事  >  バックエンド開発  >  Keras のステートフル LSTM は従来の LSTM とどのように違うのでしょうか?また、それぞれのタイプをいつ使用する必要がありますか?

Keras のステートフル LSTM は従来の LSTM とどのように違うのでしょうか?また、それぞれのタイプをいつ使用する必要がありますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-05 04:17:02335ブラウズ

How do Stateful LSTMs in Keras differ from traditional LSTMs, and when should I use each type?

Keras Long Short Term Memories (LSTM) について

再形成とステートフルネス

データ再形成:

再形成操作は、Keras が想定する LSTM 入力形式 ([サンプル、タイム ステップ、特徴]) に準拠するために必要です。この場合、サンプルはデータセット内のシーケンスの数を表し、タイム ステップは各シーケンスの長さを示し、特徴量は各タイムステップの入力変数の数を示します。データを再形成することで、LSTM がシーケンス情報を適切に処理できるようになります。

ステートフル LSTM:

ステートフル LSTM は、トレーニング中に複数のバッチにわたって内部状態を保持します。これにより、これまでに見た配列情報を「記憶」することができます。提供されている例では、batch_size が 1 に設定され、メモリはトレーニングの実行の間にリセットされます。これは、LSTM がステートフル機能を十分に活用していないことを意味します。ステートフルネスを利用するには、通常、1 より大きいバッチ サイズを使用し、バッチ間の状態のリセットを避けます。これにより、LSTM は複数のシーケンスにわたる長期的な依存関係を学習できるようになります。

時間ステップと機能

時間ステップ:

時間ステップの数は、データセット内の各シーケンスの長さを示します。あなたが共有したイメージでは、可変長シーケンスが 1 つの出力に凝縮される多対 1 のケースを考慮しています。ピンクのボックスの数は、入力シーケンスのタイム ステップ数に対応します。

特徴:

特徴の数は、それぞれの特徴の入力変数の数を指します。タイムステップ。複数の金融銘柄を同時にモデル化するなど、多変量系列では、タイム ステップごとに複数の特徴があり、予測されるさまざまな変数を表します。

ステートフル LSTM 動作

図内の赤いボックスは、は隠れた状態を表し、緑色のボックスはセルの状態を表します。これらは視覚的には同じですが、LSTM では別個の要素です。 LSTM のステートフルな動作は、これらの状態が後続のタイム ステップおよびバッチに引き継がれることを意味します。ただし、この例のトレーニング実行間の状態のリセットにより、真のステートフル性が妨げられることに注意することが重要です。

さまざまな LSTM 構成の実現

単一レイヤーでの多対多:

単一 LSTM レイヤーで多対多の処理を実現するには、return_sequences=True を使用します。これにより、出力形状に時間次元が含まれるようになり、シーケンスごとに複数の出力が可能になります。

単一レイヤーによる多対 1:

多対 1 の処理の場合は、return_sequences=False を設定します。これは、LSTM 層に最後のタイム ステップのみを出力し、それ以前のシーケンス情報を効果的に破棄するように指示します。

Repeat Vector を使用した 1 対多:

1 対多の構成では、RepeatVector レイヤーを使用して入力を複数のタイム ステップに複製できます。これにより、単一の観測を LSTM 層にフィードし、複数の出力を取得できます。

ステートフル LSTM による 1 対多:

を達成するためのより複雑なアプローチ1 対多の処理には、stateful=True の使用が含まれます。シーケンスを手動で繰り返し、各タイム ステップの出力を入力として次のタイム ステップに入力すると、単一のステップのみを入力するだけで一連の出力を生成できます。これはシーケンス生成タスクによく使用されます。

複雑な構成:

LSTM をさまざまな構成でスタックして、複雑なアーキテクチャを作成できます。たとえば、オートエンコーダーは多対 1 エンコーダーと 1 対多デコーダーを組み合わせて、モデルがシーケンスのエンコードとデコードの両方を学習できるようにすることができます。

以上がKeras のステートフル LSTM は従来の LSTM とどのように違うのでしょうか?また、それぞれのタイプをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。