La idea detrás de los RNN es hacer uso de información secuencial. En una red neuronal tradicional suponemos que todas las entradas (y salidas) son independientes entre sí. Pero para muchas tareas es una muy mala idea. Si desea predecir la siguiente palabra en una oración, es mejor que sepa qué palabras llegaron antes. Los RNN se denominan recurrentes porque realizan la misma tarea para cada elemento de una secuencia, y la salida depende de los cálculos anteriores. Otra forma de pensar acerca de los RNN es que tienen una “memoria” que captura información sobre lo que se ha calculado hasta ahora. En teoría, los RNN pueden hacer uso de la información en secuencias arbitrariamente largas, pero en la práctica se limitan a mirar hacia atrás solo unos pocos pasos (más sobre esto más adelante). Así es como se ve un RNN típico:
Una red neuronal recurrente y el despliegue en el tiempo del cómputo involucrado en su cómputo directo. Fuente: naturaleza
- ¿Qué tipo de servicio suele ofrecer el inicio del procesamiento del lenguaje natural?
- ¿Qué debo hacer cuando tengo una cita con las características NULL?
- ¿Cómo aprendiste el aprendizaje automático? ¿Por qué?
- ¿Cómo evaluaría un sistema de recomendación si todo lo que tiene son calificaciones de elementos de usuario?
- ¿Cuáles son los propósitos de ganchos y andamios en TensorFlow?
El diagrama anterior muestra un RNN desenrollado (o desplegado) en una red completa. Al desenrollar simplemente queremos decir que escribimos la red para la secuencia completa. Por ejemplo, si la secuencia que nos interesa es una oración de 5 palabras, la red se desenrollaría en una red neuronal de 5 capas, una capa para cada palabra. Las fórmulas que rigen el cálculo que ocurre en un RNN son las siguientes:
- es la entrada en el paso de tiempo. Por ejemplo, podría ser un vector único que corresponde a la segunda palabra de una oración.
- es el estado oculto en el paso de tiempo. Es la “memoria” de la red. se calcula en función del estado oculto anterior y la entrada en el paso actual:. La función generalmente es una no linealidad como tanh o ReLU. , que se requiere para calcular el primer estado oculto, generalmente se inicializa a todos los ceros.
- es la salida en el paso. Por ejemplo, si quisiéramos predecir la siguiente palabra en una oración, sería un vector de probabilidades en nuestro vocabulario. .
Para más información puedes consultar AI Journal