Loading [MathJax]/jax/element/mml/optable/GreekAndCoptic.js

70 votos

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

Las redes neuronales recurrentes se diferencian de las "normales" por el hecho de que tienen una capa de "memoria". Debido a esta capa, se supone que las redes neuronales recurrentes son útiles en la modelización de series temporales. Sin embargo, no estoy seguro de entender correctamente cómo utilizarlas.

Digamos que tengo las siguientes series temporales (de izquierda a derecha): [0, 1, 2, 3, 4, 5, 6, 7] mi objetivo es predecir i -en el que se utilizan los puntos i-1 y i-2 como entrada (para cada i>2 ). En una RNA "normal", no recurrente, yo procesaría los datos como sigue:

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

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

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

0 votos

¿Ha averiguado cómo estructurar los datos para la RNN (por ejemplo, LSTM)? gracias

52voto

karatchov Puntos 230

Lo que describes es, de hecho, un enfoque de "ventana temporal deslizante" y es diferente a las redes recurrentes. Se puede utilizar esta técnica con cualquier algoritmo de regresión. Este enfoque tiene una gran limitación: los eventos de las entradas sólo pueden correlacionarse con otras entradas/salidas que estén separadas por un máximo de t pasos de tiempo, donde t es el tamaño de la ventana.

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

Lo mejor es ilustrar una RNN en contraste con una red feedfoward. Consideremos la (muy) sencilla red feedforward y=Wx donde y es la salida, W es la matriz de pesos, y x es la entrada.

Ahora, utilizamos una red recurrente. Ahora tenemos una secuencia de entradas, así que denotaremos las entradas por xi para la i-ésima entrada. La ith salida correspondiente se calcula entonces mediante yi=Wxi+Wryi1 .

Así, tenemos otra matriz de pesos Wr que incorpora la salida del paso anterior de forma lineal a la salida actual.

Se trata, por supuesto, de una arquitectura sencilla. Lo más común es una arquitectura en la que se tiene una capa oculta que se conecta recurrentemente a sí misma. Dejemos que hi denotan la capa oculta en el paso de tiempo i. Las fórmulas son entonces:

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

Donde σ es una función no lineal/de transferencia adecuada como la sigmoidea. W1 y W2 son los pesos de conexión entre la capa de entrada y la oculta y la oculta y la de salida. Wr representa los pesos recurrentes.

Aquí hay un diagrama de la estructura:

schematic

2 votos

¿Me equivoco al ver alguna similitud de las redes recurrentes con los filtros Kalman? Veo esto porque la salida anterior afecta a la salida actual. ¿Cuál es entonces el beneficio práctico de las redes recurrentes?

10 votos

Se escribe en el sentido de que ambos son modelos de espacio de estados. Sin embargo, hay muchas diferencias: Los KF son totalmente probabilísticos, en el sentido de que los estados ocultos tienen un significado probabilístico propio. Las RNN, en cambio, son deterministas y sólo las salidas pueden utilizarse para modelar una distribución de forma discriminatoria. Además, los KF se suelen estimar con EM, mientras que las RNN se estiman con métodos basados en el gradiente. Si quieres más detalles, no dudes en publicar una pregunta y enviarme el enlace, pero los comentarios están demasiado restringidos para esto.

0 votos

Cuando se conecta la salida a la entrada en una red recurrente con una línea de retardo de la toma, ¿no es exactamente lo mismo que una red feed forward con una ventana deslizante?

10voto

LarsVegas Puntos 133

También puede considerar la posibilidad de utilizar simplemente una serie de transformaciones de series temporales para los datos de entrada. Sólo para un ejemplo, las entradas podrían ser:

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

Así, si las entradas de 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ías que codificar las transformaciones que toman los datos en bruto y los convierten en las 6 entradas anteriores para tu red neuronal.

1 votos

Sin embargo, has puesto un montón de conocimiento de dominio en esto. ¿Qué pasa si usted mismo no reconoce el patrón de la serie temporal? ¿Cómo se construye entonces un modelo que pueda hacerlo, especialmente si depende de entradas que se remontan infinitamente al pasado?

0 votos

El infinito sería ciertamente complicado. Sin embargo, si se introducen transformaciones de los datos que no son relevantes para este dominio, el algoritmo de aprendizaje podrá fácilmente darse cuenta de ello y ajustar las ponderaciones en consecuencia, por lo que no es un gran problema siempre que se tengan transformaciones de los datos que sean relevantes. Por lo tanto, tener muchas transformaciones diferentes disponibles mejora sus probabilidades de éxito.

0 votos

Imagina la siguiente tarea: La primera entrada a la red es 0 o 1 . Entonces, la red recibe el ruido del intervalo [0.1,0.1] para cualquier número (10, 1000, 100000) de pasos de tiempo. En cuanto reciba 1 de nuevo tiene que poner fuera o 0 o 1 , en función de lo que haya visto antes. Este es el llamado "Latching benchmark". Se trata de un escenario bastante típico en los problemas de aprendizaje de secuencias. La gran ventaja de las redes recurrentes es que toda la transformación de las entradas se aprende y NO la da un experto humano o un ingeniero de características.

7voto

Dan Puntos 12178

Otra posibilidad son Redes neuronales históricas coherentes (HCNN) . Esta arquitectura podría ser más apropiada para la configuración mencionada anteriormente, ya que eliminan la distinción, a menudo arbitraria, entre las variables de entrada y de salida y, en su lugar, intentan replicar toda la dinámica subyacente de todo el sistema a través del entrenamiento con todas las 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 de mercados, previsión y análisis de riesgos con redes neuronales históricamente consistentes.

Para dar una idea del paradigma, he aquí un breve extracto:

En este artículo, presentamos un nuevo tipo de NN recurrente, llamada red neuronal consistente (HCNN). Las HCNN permiten modelar sistemas dinámicos no lineales de alta interacción no lineales de alta interacción a través de múltiples escalas escalas de tiempo. Las HCNN no hacen ninguna distinción entre entradas y salidas, sino que modelan observables en la dinámica de un gran espacio de espacio de estados.

[...]

La RNN se utiliza para modelar y predecir un sistema dinámico abierto utilizando un enfoque de regresión no lineal. Muchos aplicaciones técnicas y económicas del mundo real de la economía y de la técnica en el mundo real. el contexto de grandes sistemas en los que en los que varias 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 grandes sistemas, necesitamos estados ocultos para poder explicar la dinámica de los observables. Los observables y las variables ocultas deben ser tratadas por el modelo de la misma manera. El término observables abarca las variables de entrada y variables de salida (es decir Y_τ := (y_τ, u_τ) ). Si somos capaces de implementar un modelo en el que la dinámica de todos los observables pueda ser descrita, estaremos estaremos en condiciones de cerrar el sistema abierto.

...y de la conclusión:

La modelización conjunta de las funciones ocultas y variables observadas en grandes redes recurrentes recurrentes ofrece nuevas perspectivas para la planificación y la gestión de riesgos. El enfoque de conjunto enfoque de conjunto basado en HCNN ofrece un enfoque alternativo para la previsión de las distribuciones de probabilidad futuras. Las HCNN ofrecen una descripción perfecta de la dinámica de los observables en el pasado. Sin embargo, la observabilidad parcial observabilidad del mundo da lugar a una reconstrucción no única de las variables ocultas y, por tanto, diferentes escenarios futuros. Dado que el verdadero desarrollo de la dinámica es desconocido y todos los caminos tienen la misma probabilidad, la media del conjunto puede considerarse como la mejor previsión, mientras que el ancho de banda de la distribución describe el riesgo del mercado riesgo del mercado. En la actualidad, utilizamos las previsiones HCNN para para predecir los precios de la energía y los metales preciosos para optimizar el momento de decisiones de compra. El trabajo actual en curso se refiere al análisis de las propiedades del conjunto y la aplicación de estos conceptos en la gestión práctica de los riesgos y las de riesgos y de los mercados financieros.

El documento está por fin disponible en su totalidad aquí: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Modelización de mercados, previsión y análisis de riesgos con redes neuronales históricamente coherentes .

1 votos

¿Tiene una implementación disponible para descargar y probar?

0 votos

@JulienL: Desgraciadamente no porque era un trabajo propio de Siemens.

1 votos

@JulienL: Te animo a que te pongas en contacto con Georg, mi coautor. Su correo electrónico está en la primera página del artículo (véase el enlace anterior).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X