Heim > Artikel > Backend-Entwicklung > Wie forme ich Zeitreihendaten für die Verwendung mit Keras-LSTMs um und welche Bedeutung haben zustandsbehaftete LSTMs und die Parameter „Zeitschritte' und „Funktionen'?
In Keras werden Zeitreihendaten normalerweise mit dem in ein dreidimensionales Array umgeformt Dimensionen [Samples, Zeitschritte, Features]. Dieses Format ist für LSTM-Ebenen erforderlich, die Daten im Laufe der Zeit sequentiell verarbeiten.
Zum Beispiel, wenn Sie 5 Trainingssequenzen mit jeweils 10 Zeitschritten und 1 haben Funktion würden Ihre Daten in (5, 10, 1) umgeformt.
Zustandsbehaftete LSTMs ermöglichen es dem Modell, seinen internen Zustand zwischen Chargen beizubehalten. Dies bedeutet, dass sich das Modell die verborgenen Zustände nach der Verarbeitung eines Stapels merkt und sie als Eingabe für den nächsten Stapel verwendet. Dies ist besonders nützlich beim Umgang mit sequentiellen Daten, bei denen die aktuelle Ausgabe von den vorherigen Eingaben abhängt.
In dem von Ihnen bereitgestellten Keras-Code ist stateful=True auf True gesetzt, was anzeigt, dass der LSTM zustandsbehaftet ist. Die Batch-Größe ist auf 1 gesetzt, was bedeutet, dass das Modell jeweils eine Sequenz verarbeitet. Das Modell behält die Zellspeicherwerte zwischen den Trainingsläufen bei und ermöglicht so das Erlernen der langfristigen Abhängigkeiten in den Daten.
Wenn Sie mit multivariaten Zeitreihen arbeiten, bei denen jeder Zeitschritt mehrere Eingabemerkmale hat (z. B. Aktienkurse). ), ist die Anzahl der Features größer als 1.
Die von Ihnen bereitgestellte Keras LSTM-Implementierung verfügt über ein einziges LSTM-Schicht mit 4 Einheiten und einer Rückgabesequenz von True. Dies bedeutet, dass das LSTM für jeden Eingabezeitschritt eine Sequenz der Länge 4 ausgibt.
Das Modell wird dann mit der Funktion des mittleren quadratischen Fehlerverlusts und dem Adam-Optimierer kompiliert. Die Trainingsschleife iteriert über 100 Epochen mit einer Stapelgröße von 1.
Es ist wichtig zu beachten, dass dieses LSTM-Modell darauf ausgelegt ist, den nächsten Zeitschritt basierend auf den vorherigen Zeitschritten vorherzusagen. Das Modell kann jedoch für andere Aufgaben wie Sequenzklassifizierung oder Sprachmodellierung modifiziert werden, indem die Ausgabeebene und die Verlustfunktion geändert werden.
Das obige ist der detaillierte Inhalt vonWie forme ich Zeitreihendaten für die Verwendung mit Keras-LSTMs um und welche Bedeutung haben zustandsbehaftete LSTMs und die Parameter „Zeitschritte' und „Funktionen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!