Tema
Redes recurrentes y memoria larga y corta
- Aprendizaje profundo
- Nivel intermedio
Una red recurrente mantiene un estado que se actualiza en cada paso de la secuencia con los mismos pesos, y la memoria larga y corta añade compuertas que deciden qué conservar y qué olvidar.
Nombre en inglés
Recurrent networks and LSTM
Intuición
El estado funciona como un resumen de todo lo leído hasta el momento, y el mismo juego de pesos lo actualiza en cada palabra. El problema aparece al derivar hacia atrás, porque el gradiente atraviesa el mismo factor tantas veces como pasos tenga la secuencia y acaba desapareciendo o explotando. La celda de la memoria larga y corta abre un canal aditivo que solo se multiplica por la compuerta de olvido, de modo que el gradiente recorre decenas de pasos sin encogerse si esa compuerta se mantiene cerca de uno.
Fórmula
h_t = \tanh(W_h h_{t-1} + W_x x_t + b) \qquad c_t = f_t \odot c_{t-1} + i_t \odot g_t \qquad h_t = o_t \odot \tanh(c_t)
Ejemplo resuelto
Sea una celda con el estado anterior 2, compuerta de olvido 0.9, compuerta de entrada 0.5, candidato 1 y compuerta de salida 0.8. La celda nueva vale 0.9 por 2 más 0.5 por 1 = 2.3, y el estado oculto vale 0.8 por la tangente hiperbólica de 2.3, es decir, 0.8 por 0.980, cerca de 0.784. En una red recurrente simple, en cambio, el gradiente a lo largo de 20 pasos se multiplica veinte veces por el mismo factor; si ese factor vale 0.5 el gradiente queda en cerca de una millonésima, y si vale 1.5 crece hasta cerca de 3325, lo que obliga a recortar la norma del gradiente.
Errores frecuentes
- Aplicar abandono con una máscara distinta en cada paso temporal, lo que borra el estado; la variante correcta reutiliza la misma máscara en toda la secuencia.
- Confundir el número de pasos temporales con la profundidad de la red, ya que una recurrente de una sola capa sobre 50 palabras propaga gradiente a través de 50 factores.
- Recortar el gradiente valor a valor en lugar de recortar su norma, lo que cambia la dirección del paso además de su tamaño.
Ejercicio
Una celda tiene estado anterior 4, compuerta de olvido 0.5, compuerta de entrada 0.25 y candidato 2. ¿Cuánto vale la celda nueva?
Ver la solución
La celda nueva es el estado anterior multiplicado por la compuerta de olvido más el candidato multiplicado por la compuerta de entrada. El primer término vale 0.5 por 4 = 2 y el segundo vale 0.25 por 2 = 0.5. La suma da 2.5.
Respuesta: 2.5