Saya menggunakan paket keras untuk melatih LSTM untuk rangkaian waktu univariat tipe numerik (float). Melakukan ramalan 1 langkah di depan adalah sepele, tapi saya tidak yakin bagaimana melakukan ramalan 10 langkah di depan. Dua pertanyaan:
1) Saya membaca tentang urutan ke urutan NN, tetapi hampir tidak dapat menemukan apa pun dalam konteks perkiraan deret waktu. Apakah saya benar dengan asumsi bahwa perkiraan lebih dari 1 langkah sebelumnya adalah masalah seq2seq? Itu masuk akal bagi saya karena setiap perkiraan tergantung pada pendahulunya.
2) Solusi intuitif tanpa seq2seq adalah: Lakukan ramalan 1 langkah ke depan, lalu tambahkan ramalan ini ke seri dan gunakan untuk mendapatkan perkiraan berikutnya, dan seterusnya. Bagaimana ini berbeda dari pendekatan seq2seq?
sumber
Jawaban:
Arsitektur Seq2Seq pasti dapat digunakan untuk masalah deret waktu. Satu-satunya twist adalah bahwa Anda akan memerlukan lapisan linier di atas decoder Anda untuk memproyeksikan output ke ukuran yang diperlukan (misalnya, 1 untuk univariat).
Pendekatan ramalan bertahap dapat digunakan untuk urutan pendek tetapi karena bias apa pun diperparah menggunakan pendekatan ini, itu tidak baik untuk urutan yang lebih lama.
Misalnya, jika Anda memiliki urutan di mana nilainya konstan pada setiap langkah waktuxi + 1=xsaya , tetapi model yang Anda pelajari harus dilakukan xi + 1= 1,01xsaya sebagai gantinya (yang sangat mungkin dengan algoritma gradient descent). Untukt = 10 , nilai target akan 150= 1 , namun model Anda akan memprediksi 1.0150= 1,64 .
Jadi 1% kesalahan langkah tunggal menghasilkan perbedaan 64% dalam 50 langkah.
sumber