Ich verwende das Keras-Paket, um ein LSTM für eine univariate Zeitreihe vom Typ numerisch (float) zu trainieren. Das Durchführen einer Prognose mit einem Schritt voraus ist trivial, aber ich bin mir nicht sicher, wie eine Prognose mit einem Schritt vorausgehen soll. Zwei Fragen:
1) Ich habe über Sequenz-zu-Sequenz-NNs gelesen, kann aber im Zusammenhang mit der Vorhersage von Zeitreihen kaum etwas davon finden. Habe ich Recht mit der Annahme, dass die Vorhersage von mehr als einem Zeitschritt im Voraus ein seq2seq-Problem ist? Das macht für mich Sinn, denn jede Prognose hängt von ihrem Vorgänger ab.
2) Eine intuitive Lösung ohne seq2seq wäre: Führen Sie eine 1-Schritt-Voraus-Prognose durch, hängen Sie diese Prognose dann an die Serie an und verwenden Sie sie, um die nächste Prognose zu erhalten, und so weiter. Wie würde sich dies von einem seq2seq-Ansatz unterscheiden?
quelle
Antworten:
Die Seq2Seq-Architektur kann definitiv für Zeitreihenprobleme verwendet werden. Die einzige Wendung besteht darin, dass Sie eine lineare Ebene über Ihrem Decoder benötigen, um die Ausgänge auf die erforderliche Größe zu projizieren (z. B. 1 für univariate).
Der schrittweise Prognoseansatz kann für kurze Sequenzen verwendet werden. Da jedoch mit diesem Ansatz Verzerrungen verstärkt werden, ist er für längere Sequenzen nicht geeignet.
Somit führt ein Einzelschrittfehler von 1% zu einem Unterschied von 64% in 50 Schritten.
quelle