Deep Learning · Inteligencia Artificial

Redes recurrentes: RNN, LSTM y GRU

Modelar dependencias temporales con redes recurrentes y explicar cómo LSTM y GRU mitigan el gradiente desapareciente mediante puertas de estado.

Redes recurrentes

Pensar en secuencias Una RNN es la misma neurona aplicada una y otra vez, alimentada con su propia salida anterior. Ese bucle le da memoria del pasado, pero una memoria frágil que se desvanece con la distancia.

El bucle de la recurrencia

En cada paso la red combina la entrada actual con el estado oculto previo y produce uno nuevo. El mismo conjunto de pesos se comparte a lo largo del tiempo, procesando secuencias de longitud variable.

Desplegar en el tiempo

El gradiente desapareciente

Al retropropagar por muchos pasos, el gradiente es un producto de derivadas repetidas; si son menores que uno, se apaga y la red no aprende dependencias largas. Con mayores que uno, explota.

Una cadena de bloques idénticos conectados de izquierda a derecha, cada uno con una entrada por abajo y una flecha de retroalimentación que lleva el estado de un paso al siguiente.
La recurrencia comparte los mismos pesos a lo largo del tiempo y traslada un estado de un paso al siguiente.

La célula LSTM

La LSTM añade un estado de celda que actúa como cinta transportadora, dejando fluir el gradiente sin multiplicarlo una y otra vez. Es la arquitectura que domó el desaparecimiento.

Las puertas de la LSTM

Tres puertas sigmoides deciden con qué fuerza pasar información: la de olvido descarta lo inútil, la de entrada escribe lo nuevo y la de salida publica el estado. Aprender a abrir y cerrar es la clave.

La puerta GRU

El GRU simplifica a dos puertas —actualización y reinicio— sin estado de celda separado. Más barato casi siempre rinde parecido, y se elige por comodidad y datos.

Bidireccionalidad

Leer la secuencia hacia delante y hacia detrás deja que cada palabra vea su contexto completo. Útil cuando el futuro ayuda a interpretar el pasado, como en tareas de etiquetado.

Hoy, transformers

El mecanismo de atención y los transformers han desplazado a las RNN en muchas tareas por su paralelización. Aun así, las recurrentes siguen donde el procesado en flujo continuo y la memoria ligera mandan.

Errores frecuentes

Ejemplo resuelto: predecir con una dependencia lejana

Una señal al principio de la frase determina el sentido al final, y la RNN sencilla no la recuerda. Analizamos por qué y qué hacer:

  1. Observar que la RNN sencilla retropropaga multiplicando derivadas en cada paso del tiempo.
  2. Notar que con muchos pasos el producto se apaga y la dependencia lejana no se aprende.
  3. Sustituir por una LSTM, cuyo estado de celda suma en vez de multiplicar.
  4. Dejar que la puerta de olvido mantenga abierta la información relevante durante muchos pasos.
  5. Verificar que ahora el gradiente fluye y la red asocia el inicio con el final.

¿Para qué sirve en la realidad?

Las secuencias están en todas partes —texto, audio, series de tiempo, sensores— y las recurrentes con puertas fueron durante años la herramienta que permitía aprender dependencias largas antes de la era de los transformers.

La principal dificultad de entrenar una RNN sencilla sobre secuencias largas es:

El estado de celda de la LSTM ayuda a que la información y el gradiente perduren a lo largo de muchos pasos.

RNN

Compartir pesos a lo largo del tiempo define a una red...
recurrente
Apagarse del gradiente en secuencias largas es el ... del gradiente
desaparecimiento
Cinta de estado que preserva la información en la LSTM
celda
Estructura que decide qué olvidar, entrar y salir
puerta
Variante de dos puertas sin celda separada
gru

Ordena el paso a paso de una RNN con LSTM al procesar una secuencia:

Entrada
Olvidar
Actualizar
Producir

LSTM
Mecanismo de puertas de la memoria a largo plazo.

Une cada concepto con su idea.

Pensar en secuencias

# Redes recurrentes
## RNN
### pesos compartidos
### gradiente se apaga
## LSTM
### estado de celda
### tres puertas
## GRU
### dos puertas
### más barato
## Bidireccional
### lee en dos sentidos
### contexto completo

Qué es una RNN según IBM
Introducción a las redes recurrentes y su uso con datos secuenciales.

Tus predicciones dependen de un evento ocurrido al inicio de una secuencia muy larga y la red no lo capta. ¿Cambiarías de RNN sencilla a LSTM o GRU, y por qué las puertas ayudan aquí?