¿Cómo entrenar el modelo LSTM en datos de series de tiempo múltiples?
Caso de uso: Tengo ventas semanales de 20,000 agentes durante los últimos 5 años. Necesita pronosticar las próximas ventas semanales para cada agente.
¿Debo seguir una técnica de procesamiento por lotes: tomar un agente a la vez, entrenar el modelo LSTM y luego pronosticar? ¿Alguna mejor manera?
Respuestas:
Haga que la identidad del agente sea una de las características y capacítese en todos los datos. Probablemente entrene en un mini lote de, por ejemplo, 128 agentes a la vez: recorra la serie temporal de principio a fin para esos 128 agentes, luego seleccione un nuevo mini lote de agentes. Para cada mini lote, ejecute una porción de, digamos, 50 veces, y luego vuelva a preparar. Mantenga los estados finales de ese segmento y ejecute los siguientes 50 pasos, comenzando por esos estados finales. Enjuague y repita hasta llegar al final de los pasos de tiempo, para ese mini lote de ~ 128 agentes.
Al poner la identidad de cada agente como una de las características, permite que la red:
Editar: Alpo Jose escribió:
Ooo, eso es verdad. Hay 20,000 de ellos. Eso es bastante Creo que lo que querrás hacer es 'incrustarlos'. Tiene una capa de búsqueda, que toma una identificación de agente (expresada como un entero, un índice) y genera un vector de alta dimensión, como algo así como un vector de longitud 50-300, probablemente un vector cuya longitud coincida aproximadamente con el tamaño oculto de tu LSTM.
Matemáticamente, una tabla de búsqueda, también llamada "capa de incrustación", es equivalente a convertir los identificadores de agente en vectores de un solo calor y luego pasar a través de una capa lineal (totalmente conectada). Sin embargo, los requisitos en memoria se reducen mucho para la capa de incrustación.
En términos de lo que aprenderá la capa de incrustación, a medida que la entrene, la capa de incrustación formará algún tipo de representación latente de cada agente. Es probable que la representación latente no sea legible / interpretable de ninguna manera, pero permitirá que el modelo aprenda cosas como 'ok, este agente, 1524, es relativamente efectivo, pero no los fines de semana; donde como 1526 es genial todos los días; etc .... ' Las dimensiones latentes del vector de incrustación en realidad pueden significar cosas, pero nadie intenta entender qué significan (creo que sería difícil / imposible). Sin embargo, las incorporaciones de alta dimensión por agente permiten al modelo aprender algo sobre el comportamiento de cada agente y modelar esto en las predicciones de series de tiempo.
fuente