¿Cuál es una longitud de secuencia factible para un modelo RNN?


15

Estoy investigando el uso de una versión LSTM ( memoria a largo plazo ) de una red neuronal recurrente (RNN) para modelar datos de series temporales. A medida que aumenta la longitud de la secuencia de los datos, aumenta la complejidad de la red. Por lo tanto, tengo curiosidad por saber qué longitud de secuencias sería posible modelar con una buena precisión.

Me gustaría utilizar una versión relativamente simple del LSTM sin ningún enfoque difícil de implementar. Cada observación en mi serie de tiempo probablemente tendría 4 variables numéricas y el número de observaciones sería de alrededor de 100,000 a 1,000,000.

Respuestas:


8

Depende totalmente de la naturaleza de sus datos y las correlaciones internas, no hay una regla general. Sin embargo, dado que tiene una gran cantidad de datos, un LSTM de 2 capas puede modelar una gran cantidad de problemas / puntos de referencia de series temporales.

Además, no retrocederá a través del tiempo a toda la serie, sino generalmente a (200-300) últimos pasos. Para encontrar el valor óptimo, puede realizar una validación cruzada mediante la búsqueda de cuadrícula o la optimización bayesiana. Además, puede ver los parámetros aquí: https://github.com/wojzaremba/lstm/blob/master/main.lua .

Entonces, la longitud de la secuencia realmente no afecta el entrenamiento de su modelo, pero es como tener más ejemplos de entrenamiento, que simplemente mantiene el estado anterior en lugar de restablecerlo.


Digamos que necesito hacer un análisis de sentimientos, que es un enfoque de muchos a uno (ver karpathy.github.io/2015/05/21/rnn-effectiveness ). Cada una de estas sentencias son muy largas (> 200 palabras). Si solo retrocedo en el tiempo los 35 pasos habituales, ¿no sería un problema? Ya que es el aprendizaje supervisado supongo que sólo puede backpropagate cuando "éxitos" el objetivo de la clasificación binaria, y. De esta manera, ¿cómo ajustaría RNN los pesos en función de algo anterior a los 35 pasos seleccionados para BPTT?
pir

1
Bueno, no sería un problema, ya que los mismos pesos se reutilizan en el siguiente paso de entrenamiento. Además, si ve el código fuente en el paso 36 (digamos), el vector de inicialización no es cero, sino los estados del paso 35. Entonces, al hacer pequeños pasos, optimiza su función de costo utilizando BPTT.
Yannis Assael

1
Solo para aclarar: ¿Se ejecuta el BPTT una sola vez o varias veces para una sola oración? Si se ejecuta una sola vez, los patrones que afectan solo a las primeras palabras de la oración solo afectarán el estado oculto, ¿verdad? Quiero decir ... los gradientes nunca se calcularán con respecto a esa parte de la entrada.
pir

1
He hecho esto como una pregunta separada que espero que vean :) stats.stackexchange.com/questions/167482/…
pir

2
"dado que tiene una gran cantidad de datos, un LSTM de 2 capas puede modelar prácticamente cualquier serie de tiempo". ¿Dónde está la prueba?
nbro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.