Estou usando o pacote keras para treinar um LSTM para uma série temporal univariada do tipo numérico (float). Realizar uma previsão de um passo à frente é trivial, mas não sei como executar uma previsão, digamos, de 10 passos à frente. Duas questões:
1) Li sobre NNs de sequência para sequência, mas mal consigo encontrar algo disso no contexto da previsão de séries temporais. Estou certo de que a previsão de mais de uma etapa com antecedência é um problema seq2seq? Isso faz sentido para mim, porque cada previsão depende de seu antecessor.
2) Uma solução intuitiva sem seq2seq seria: Execute a previsão em uma etapa à frente, anexe-a à série e use-a para obter a próxima previsão e assim por diante. Como isso diferiria de uma abordagem seq2seq?
time-series
keras
sevelf
fonte
fonte
Respostas:
A arquitetura Seq2Seq pode definitivamente ser usada para problemas de séries temporais. A única desvantagem é que você precisará de uma camada linear na parte superior do decodificador para projetar as saídas no tamanho necessário (por exemplo, 1 para univariada).
A abordagem de previsão passo a passo pode ser usada para sequências curtas, mas como quaisquer desvios são compostos usando essa abordagem, não é bom para sequências mais longas.
Por exemplo, se você tiver uma sequência em que o valor seja constante a cada etapa do tempoxi + 1=xEu , mas você aprendeu a fazer o modelo xi + 1= 1,01xEu em vez disso (o que é altamente provável com o algoritmo de descida de gradiente). Parat = 10 , o valor alvo será 150.= 1 , no entanto, seu modelo prevê 1.0150.= 1,64 .
Assim, um erro de etapa única de 1% resulta em uma diferença de 64% em 50 etapas.
fonte