Estoy usando el paquete keras para entrenar un LSTM para una serie de tiempo univariante de tipo numérico (flotante). Realizar un pronóstico anticipado de 1 paso es trivial, pero no estoy seguro de cómo realizar un pronóstico anticipado de 10 pasos, digamos. Dos preguntas:
1) Leí sobre NN de secuencia a secuencia, pero apenas puedo encontrar nada de eso en el contexto del pronóstico de series de tiempo. ¿Estoy en lo cierto al suponer que la previsión de más de 1 paso por adelantado es un problema seq2seq? Eso tiene sentido para mí porque cada pronóstico depende de su predecesor.
2) Una solución intuitiva sin seq2seq sería: realizar un pronóstico anticipado de 1 paso, luego agregar este pronóstico a la serie y usarlo para obtener el próximo pronóstico, y así sucesivamente. ¿Cómo diferiría esto de un enfoque seq2seq?
fuente
Respuestas:
La arquitectura Seq2Seq definitivamente se puede usar para problemas de series temporales. El único giro es que necesitará una capa lineal en la parte superior de su decodificador para proyectar las salidas al tamaño requerido (por ejemplo, 1 para univariante).
El enfoque de pronóstico por pasos se puede usar para secuencias cortas, pero debido a que cualquier sesgo se agrava con este enfoque, no es bueno para secuencias más largas.
Por ejemplo, si tiene una secuencia donde el valor es constante en cada paso de tiempoXi + 1=Xyo , pero tu modelo aprendiste a hacer Xi + 1= 1.01Xyo en cambio (lo cual es muy probable con el algoritmo de descenso de gradiente). port = 10 , el valor objetivo será 150= 1 , sin embargo, su modelo predecirá 1.0150= 1,64 .
Por lo tanto, un error de un solo paso del 1% da como resultado una diferencia del 64% en 50 pasos.
fuente