Heim > Artikel > Backend-Entwicklung > Wie wirken sich Zeitschritte und Funktionen auf die Leistung des LSTM-Modells und das zustandsbehaftete Training aus?
Verstehen von LSTM-Zeitschritten und -Funktionen
In LSTM-Modellen beziehen sich Zeitschritte und Funktionen auf die Dimensionen der Eingabedaten. Zeitschritte stellen die Anzahl der Datenpunkte in einer Sequenz dar, während Features die verschiedenen Variablen oder Dimensionen innerhalb jedes Datenpunkts darstellen.
In Ihrem Beispiel werden die Eingabedaten in ein 3D-Array mit den folgenden Dimensionen umgeformt:
Daher ist jede Stichprobe eine Folge von 3 Datenpunkten, wobei jeder Datenpunkt aus einer einzelnen Eingabe besteht Variable.
Stateful LSTM
Stateful LSTMs behalten ein verborgenes Zustand, der bei jedem Zeitschritt aktualisiert wird. Dadurch kann das Modell aus früheren Eingaben lernen und kontextbasierte Vorhersagen treffen. Wenn stateful=True, merkt sich das LSTM den verborgenen Zustand zwischen Batches, was für sequentielle Daten nützlich sein kann.
In Ihrem Code verwenden Sie eine Batchgröße von 1 und trainieren das Modell für 100 Epochen. Mit model.reset_states() setzen Sie jedoch auch die Zustände nach jeder Epoche zurück. Das bedeutet, dass das Modell nicht wirklich aus vergangenen Eingaben zwischen den Chargen lernt und jeden Batch im Wesentlichen als neue Sequenz behandelt.
Um ein zustandsbehaftetes LSTM korrekt zu trainieren, sollten Sie das Zurücksetzen der Zustände während des Trainings vermeiden. Stattdessen sollten Sie die Zustände nur dann zurücksetzen, wenn Sie eine neue Sequenz starten oder eine Vorhersage für einen neuen Datenpunkt treffen möchten.
Ungerollte Diagramme
Die von Ihnen bereitgestellten Diagramme veranschaulichen die entfaltete Architektur von LSTM-Netzwerken. In beiden Fällen stellen die roten Kästchen Eingabeschritte dar und die grünen Kästchen den ausgeblendeten Zustand.
Edit 1:
Das folgende Diagramm entspricht dem ersten abgerollten Diagramm Sie haben Folgendes bereitgestellt:
[Bild eines abgerollten Diagramms mit einem Eingabeschritt pro Zeitschritt]
Das von Ihnen bereitgestellte Diagramm entspricht dem zweiten abgerolltes Diagramm:
[Bild des abgerollten Diagramms mit allen Eingabeschritten auf einmal]
Edit 2:
Das Verständnis von Zeitschritten und Funktionsargumenten ist wichtig für LSTM-Modelle. Weitere Informationen finden Sie in den im Originalbeitrag und in den Kommentaren bereitgestellten Ressourcen.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie wirken sich Zeitschritte und Funktionen auf die Leistung des LSTM-Modells und das zustandsbehaftete Training aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!