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 i
punto enésimo usando puntos i-1
y i-2
como 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?
fuente
Respuestas:
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=Wx y W x
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 .xi yi=Wxi+Wryi−1
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
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σ W1 W2 Wr
Aquí hay un diagrama de la estructura:
fuente
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:
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.
fuente
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:
[...]
... y de la conclusión:
Partes del documento se pueden ver públicamente: aquí
fuente