Conocidas en inglés como Recurrent Neural Networks (RNNs) son un tipo de redes neuronales para procesar datos en forma de sucesiones, así como las redes convolucionales están especializadas para processar cuadrículas de valores, las RNNs están especializadas para procesar secuencias de valores
La idea que diferencia a ese tipo de redes con las redes multicapa simples es el hecho de compartir parámetros entre distintas partes de un modelo. Compartir parámetros permite extender y aplicar el modelo a ejemplos de distintas formas (diferentes longitudes, en este caso) y generalizar entre ellos. Si tuviéramos parámetros separados para cada valor del índice de tiempo, no podríamos generalizar a longitudes de secuencia no observadas durante el entrenamiento, ni compartir la solidez estadística entre distintas longitudes de secuencia y entre distintas posiciones en el tiempo. Tal uso compartido es particularmente importante cuando una pieza específica de información puede aparecer en múltiples posiciones dentro de la secuencia.
Esta idea también esta presente en las redes convolucionales ya que la salida de la convolución es una secuencia donde cada miembro de la salida es una función de un pequeño número de miembros vecinos de la entrada. En el caso de las RNNs cada miembro de la salida es una función de los miembros anteriores de la salida. Cada miembro de la salida se genera utilizando la misma regla de actualización aplicada a las salidas anteriores.
Una red neuronal recurrente se parece mucho a una red neuronal de propagación hacia adelante, excepto que también tiene conexiones que apuntan hacia atrás. Veamos la red neuronal recurrente más simple posible, compuesta por una neurona que recibe entradas, produce una salida y envía esa salida de regreso a sí misma. Como se muestra en siguiente imagen a la izquierda. En cada paso de tiempo

Se puede crear fácilmente una capa de neuronas recurrentes. En cada paso de tiempo

Cada neurona recurrente tiene dos conjuntos de pesos: uno para las entradas
Celdas de memoria
Dado que la salida de una neurona recurrente en el paso de tiempo
En general, el estado de una celda en el paso de tiempo
Tipos de RNNs
Podemos diferenciar estas redes por el tipo de entrada y salida.
Secuencia a secuencia
Es útil para predecir series temporales como precios de acciones: se le ingresan los precios de los últimos
Secuencia a vector
Podrías alimentar a la red una secuencia de entradas e ignorar todas las salidas excepto la última. Por ejemplo, podrías alimentar a la red una secuencia de palabras correspondientes a una reseña de una película, y la red generaría un puntaje de sentimiento (por ejemplo, de -1 [odio] a +1 [amor]).
Vector a secuencia
Podrías introducir en la red el mismo vector de entrada una y otra vez en cada paso de tiempo y dejar que genere una secuencia. Esta es una red de vector a secuencia. Por ejemplo, la entrada podría ser una imagen (o la salida de una CNN) y la salida podría ser un título para esa imagen.
Secuencia a vector a secuencia
Podría tener una red de secuencia a vector, llamada codificador (encoder), seguida de una red de vector a secuencia, llamada decodificador (decoder). Por ejemplo, esto podría usarse para traducir una oración de un idioma a otro. Usted alimentaría a la red con una oración en un idioma, el codificador convertiría esta oración en una única representación vectorial y luego el decodificador decodificaría este vector en una oración en otro idioma.