Forma adecuada de usar la red neuronal recurrente para el análisis de series temporales

67

Las redes neuronales recurrentes difieren de las "regulares" por el hecho de que tienen una capa de "memoria". Debido a esta capa, se supone que los NN recurrentes son útiles en el modelado de series temporales. Sin embargo, no estoy seguro de entender correctamente cómo usarlos.

Digamos que tengo las siguientes series de tiempo (de izquierda a derecha): [0, 1, 2, 3, 4, 5, 6, 7]mi objetivo es predecir el ipunto enésimo usando puntos i-1y i-2como entrada (para cada uno i>2). En un ANN "regular", no recurrente, procesaría los datos de la siguiente manera:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

Luego crearía una red con dos nodos de entrada y uno de salida y lo entrenaría con los datos anteriores.

¿Cómo se necesita alterar este proceso (si es que lo hay) en el caso de redes recurrentes?

Boris Gorelik
fuente
¿Ha descubierto cómo estructurar los datos para el RNN (por ejemplo, LSTM)? gracias
mik1904

Respuestas:

49

Lo que usted describe es, de hecho, un enfoque de "ventana de tiempo deslizante" y es diferente a las redes recurrentes. Puede usar esta técnica con cualquier algoritmo de regresión. Hay un gran límite para este enfoque: los eventos en las entradas solo se pueden correlacionar con otras entradas / salidas que se encuentran en la mayoría de los pasos de tiempo, donde t es el tamaño de la ventana.

Por ejemplo, puedes pensar en una cadena de orden de Markov t. Los RNN no sufren esto en teoría, sin embargo, en la práctica, el aprendizaje es difícil.

Es mejor ilustrar un RNN en contraste con una red de feedfoward. Considere la red de alimentación directa (muy) simple donde es la salida, es la matriz de peso y es la entrada.y=WxyWx

Ahora, usamos una red recurrente. Ahora tenemos una secuencia de entradas, por lo que denotaremos las entradas por para la i-ésima entrada. La salida i-ésima correspondiente se calcula a través de .xiyi=Wxi+Wryi1

Por lo tanto, tenemos otra matriz de peso que incorpora la salida en el paso anterior linealmente en la salida actual.Wr

Por supuesto, esta es una arquitectura simple. Lo más común es una arquitectura en la que tiene una capa oculta que se conecta periódicamente a sí misma. Deje denotar la capa oculta en el paso de tiempo i. Las fórmulas son entonces:hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

Donde es una función de no linealidad / transferencia adecuada como el sigmoide. y son los pesos de conexión entre la entrada y lo oculto y lo oculto y la capa de salida. representa los pesos recurrentes.W 1 W 2 W rσW1W2Wr

Aquí hay un diagrama de la estructura:

esquemático

bayerj
fuente
2
Me equivoco al ver alguna similitud de redes recurrentes con filtros Kalman? Veo esto porque la salida anterior afecta la salida actual. ¿Cuál es el beneficio práctico de las redes recurrentes?
Vass
10
Estás escribiendo en el sentido de que ambos son modelos de espacio de estado. Sin embargo, hay muchas diferencias: los KF son totalmente probabilísticos, en el sentido de que los estados ocultos tienen un significado probabilístico adecuado. Los RNN, por otro lado, son deterministas y solo las salidas se pueden usar para modelar una distribución de manera discriminatoria. Además, los KF generalmente se estiman con EM, mientras que los RNN se estiman con métodos basados ​​en gradientes. Si desea más detalles, no dude en publicar una pregunta y enviarme el enlace, pero los comentarios son demasiado restringidos para esto.
bayerj
1
No, la ventana de tiempo deslizante no pretende en la salida de la red, solo en la entrada.
bayerj
2
@bayerj gran información, pero no creo que hayas respondido la pregunta. ¿Cómo estructura los vectores de entrada y salida que no están en una ventana de tiempo deslizante para RNN? ¿Puede proporcionar un par de muestras con el conjunto de datos del OP?
Levitikon
1
Esta es una descripción muy informativa de los RNN, pero no encuentro una respuesta a la pregunta de OP: ¿Cómo se necesita alterar [la capacitación] en el caso de redes recurrentes?
wehnsdaefflae
9

También puede considerar simplemente usar una serie de transformaciones de series de tiempo para los datos de entrada. Solo por un ejemplo, las entradas podrían ser:

  1. el valor de intervalo más reciente (7)
  2. el siguiente valor de intervalo más reciente (6)
  3. El delta entre el más reciente y el más reciente (7-6 = 1)
  4. el tercer valor de intervalo más reciente (5)
  5. El delta entre el segundo y el tercero más reciente (6-5 = 1)
  6. el promedio de los últimos tres intervalos ((7 + 6 + 5) / 3 = 6)

Por lo tanto, si sus entradas a una red neuronal convencional fueran estos seis datos transformados, no sería una tarea difícil para un algoritmo de retropropagación ordinario aprender el patrón. Sin embargo, tendría que codificar las transformaciones que toman los datos sin procesar y los convierten en las 6 entradas anteriores a su red neuronal.

rossdavidh
fuente
1
Aunque pones mucho conocimiento de dominio en esto. ¿Qué pasa si no reconoce el patrón de la serie de tiempo usted mismo? ¿Cómo se construye un modelo que pueda, especialmente si depende de entradas que están infinitamente en el pasado?
bayerj
Infinito ciertamente sería complicado. Sin embargo, si coloca transformaciones de los datos que no son relevantes para este dominio, el algoritmo de aprendizaje podrá resolverlo fácilmente y ajustar los pesos en consecuencia, por lo que no es un gran problema siempre que tenga transformaciones de Los datos que son relevantes. Por lo tanto, tener muchas transformaciones diferentes disponibles mejora sus probabilidades de éxito.
rossdavidh
Imagine la siguiente tarea: la primera entrada a la red es o . Luego, la red recibe ruido del intervalo para cualquier número (10, 1000, 100000) de pasos de tiempo. Tan pronto como reciba nuevamente, tiene que poner o , dependiendo de lo que haya visto anteriormente. Este es el llamado "punto de referencia de enganche". Este es un escenario bastante típico en problemas de aprendizaje de secuencia. El gran beneficio de las redes recurrentes es que toda la transformación de las entradas en sí misma es aprendida y NO dada por un experto humano o una ingeniería de características. 1 [ - 0.1 , 0.1 ] 1 0 101[0.1,0.1]101
bayerj
2
No quisiera decir que nunca deberías usar redes neuronales recurrentes; Todo lo contrario. Sin embargo, si la tarea (como se indica en la pregunta) es predecir el i-ésimo a partir de los puntos (i-1) e (i-2), entonces puede obtener un mejor resultado más rápido utilizando ese conocimiento. No pretendo sugerir que los RNN nunca son una buena idea, pero está bien usar cualquier conocimiento de dominio que tenga para acelerar el proceso de capacitación (y disminuir la probabilidad de que la capacitación quede atrapada en un mínimo local, etc.) .
rossdavidh
4

Otra posibilidad son las redes neuronales consistentes históricas (HCNN) . Esta arquitectura podría ser más apropiada para la configuración mencionada anteriormente porque eliminan la distinción a menudo arbitraria entre las variables de entrada y salida y, en cambio, intentan replicar la dinámica subyacente completa de todo el sistema a través del entrenamiento con todos los observables.

Cuando trabajaba para Siemens, publiqué un artículo sobre esta arquitectura en un libro de Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Modelización del mercado, pronóstico y análisis de riesgos con redes neuronales consistentes históricas

Solo para dar una idea sobre el paradigma aquí hay un breve extracto:

En este artículo, presentamos un nuevo tipo de NN recurrente, llamado red neuronal coherente histórica (HCNN). Los HCNN permiten modelar sistemas dinámicos no lineales altamente interactivos en múltiples escalas de tiempo. Los HCNN no hacen ninguna distinción entre entradas y salidas, pero modelan observables incrustados en la dinámica de un gran espacio de estado.

[...]

El RNN se usa para modelar y pronosticar un sistema dinámico abierto utilizando un enfoque de regresión no lineal. Sin embargo, muchas aplicaciones técnicas y económicas del mundo real deben verse en el contexto de grandes sistemas en los que diversas dinámicas (no lineales) interactúan entre sí en el tiempo. Proyectado en un modelo, esto significa que no diferenciamos entre entradas y salidas, sino que hablamos de observables. Debido a la observabilidad parcial de los sistemas grandes, necesitamos estados ocultos para poder explicar la dinámica de los observables. Los observables y las variables ocultas deben ser tratados por el modelo de la misma manera. El término observables abarca las variables de entrada y salida (es decir,Yτ:=(yτ,uτ)) Si podemos implementar un modelo en el que se pueda describir la dinámica de todos los observables, estaremos en condiciones de cerrar el sistema abierto.

... y de la conclusión:

El modelado conjunto de variables ocultas y observadas en grandes redes neuronales recurrentes proporciona nuevas perspectivas para la planificación y la gestión de riesgos. El enfoque conjunto basado en HCNN ofrece un enfoque alternativo para pronosticar distribuciones de probabilidad futuras. Los HCNN dan una descripción perfecta de la dinámica de los observables en el pasado. Sin embargo, la observabilidad parcial del mundo da como resultado una reconstrucción no única de las variables ocultas y, por lo tanto, diferentes escenarios futuros. Dado que se desconoce el desarrollo genuino de la dinámica y todas las rutas tienen la misma probabilidad, el promedio del conjunto puede considerarse como el mejor pronóstico, mientras que el ancho de banda de la distribución describe el riesgo de mercado. Hoy, Utilizamos pronósticos de HCNN para predecir los precios de la energía y los metales preciosos para optimizar el momento de las decisiones de adquisición. El trabajo actualmente en progreso se refiere al análisis de las propiedades del conjunto y la implementación de estos conceptos en aplicaciones prácticas de gestión de riesgos y mercado financiero.

Partes del documento se pueden ver públicamente: aquí

vonjd
fuente
¿Tiene una implementación disponible para descargar y probar?
Julien L
@JulienL: Desafortunadamente no porque esto fuera un trabajo de propiedad de Siemens.
vonjd
Lástima, eso parecía prometedor.
Julien L
@JulienL: Te animo a contactar a Georg, mi coautor. Su correo electrónico está en la primera página del documento (ver enlace arriba).
vonjd