English · Español
04 — Flujo de gradiente lado a lado: RNN vs LSTM vs attention sobre el corpus §A13¶
🇪🇸 Aquí ponemos los tres modelos secuenciales lado a lado y rastreamos el gradiente desde la pérdida hasta el primer token de la secuencia. Misma frase de §A13 ("she will work tomorrow", longitud 5). Vanilla RNN: gradiente cae como
1/r^T. LSTM: el gate de olvido lo mantiene cerca de 1. Attention: ruta directa con un solo paso de matmul. El gráfico final explica por qué attention ganó.Anclas:
LYNX_CORTEX.md§4 / PHASE 14; teoría §02 recurrencia RNN, §03 gradiente desvaneciente; Fase 15 §02 scaled dot-product. Las notas RoPE de la Fase 16 hacen la misma comparación.
El planteamiento¶
Secuencia: ["she", "will", "work", "tomorrow", "."] (longitud T = 5). Cada token embebido a d = 8 para claridad aritmética. Tamaño del estado oculto H = 8.
La pérdida L es la entropía cruzada en la última posición prediciendo ".". Trazamos ∂L/∂x_1 (gradiente en el primer token) para tres modelos.
Modelo 1 — Vanilla RNN¶
Backward:
El factor W_h · diag(1 - h²) se repite T-1 veces. Cada aplicación es un mapa lineal con radio espectral r = |λ_max(W_h)|. Así que:
Para T = 5 y r = 0.7 (típico en init): el gradiente en h_1 es 0.7^4 ≈ 0.24 del gradiente en h_T. Para T = 50, es 0.7^49 ≈ 1.4e-8 — desvaneciente.
Para r = 1.3: 1.3^49 ≈ 7700 — explosivo.
Las secuencias de §A13 son cortas (T ≤ 10) así que el desvanecimiento es sobrevivible pero ya notable. El laboratorio 03 mide la norma empírica del gradiente vs profundidad — Borja verá la caída exponencial.
Modelo 2 — LSTM¶
f_t = σ(W_f x_t + U_f h_{t-1}) # puerta forget
i_t = σ(W_i x_t + U_i h_{t-1}) # puerta input
o_t = σ(W_o x_t + U_o h_{t-1}) # puerta output
g_t = tanh(W_g x_t + U_g h_{t-1}) # candidato
c_t = f_t ⊙ c_{t-1} + i_t ⊙ g_t # estado de celda ← CLAVE
h_t = o_t ⊙ tanh(c_t)
El estado de celda c_t tiene una actualización (mayormente) aditiva. El backward a través de c_t → c_{t-1} es:
Eso es todo. Sin multiplicar por una matriz de pesos, sin multiplicar por la derivada de una no-linealidad. Solo la puerta forget f_t ∈ (0, 1).
Así que:
Si la red aprende f_t ≈ 1 (no olvidar), el producto se mantiene cerca de 1 incluso para T = 100. La contribución del LSTM es hacer la autopista del gradiente a través de c_t controlable, mientras que la autopista tanh(W h) de la RNN era incontrolable.
Para T = 5 de §A13: incluso si f_t = 0.9, el gradiente es 0.9^4 ≈ 0.66 — un decaimiento mucho más suave que el 0.7^4 ≈ 0.24 de la RNN.
El LSTM aún tiene problemas (las sigmoides de las puertas saturan, el camino h_t tiene el mismo desvanecimiento que la RNN), pero la autopista c_t es la victoria titular.
Modelo 3 — Self-attention (single-head, longitud 5)¶
Q = X W_Q # (T, d_k) = (5, 8)
K = X W_K # (T, d_k)
V = X W_V # (T, d_v) = (5, 8)
A = softmax(Q K.T / sqrt(d_k)) # (T, T) = (5, 5)
Y = A V # (T, d_v)
y_T = W_o Y_T
L = CE(y_T, target)
Backward hasta x_1 (el embedding de "she"):
X_1 entra al cómputo vía Q_1, K_1, V_1 — y a través de A (cuya fila t pondera V_1 por A[t,1]). El gradiente hacia atrás hasta x_1 está un matmul de profundidad a través de A:
No hay multiplicación compuesta que crezca o decrezca con T. La profundidad del gradiente de salida a entrada es constante en T (Vaswani et al. 2017, §4 "Why Self-Attention" — el argumento del path length).
Para §A13 con T = 5 (o T = 500): el gradiente en el primer token es O(1), no O(r^T).
Los números titulares¶
Gradiente simbólico en el primer token (en T, con r = 0.9 para RNN, f = 0.9 para LSTM):
| Modelo | Magnitud del gradiente en x_1 |
En T=5 |
En T=50 |
|---|---|---|---|
| Vanilla RNN | O(r^T) |
0.66 |
0.005 |
LSTM (camino c) |
O(f^T) (controlable) |
0.66 |
0.005 |
LSTM (camino h) |
Igual que RNN — pero c es la autopista |
- | - |
| Attention (1 head) | O(1) |
~1 |
~1 |
| Attention (L capas) | O(1)^L = O(1) |
~1 |
~1 |
Más una segunda métrica crítica: longitud del camino de salida a primera entrada:
- RNN:
T(cada paso es un nodo). - LSTM:
T(las puertas sí lo aplanan, pero siguen siendo T saltos conceptuales). - Attention:
1(un matmul conecta cada entrada a cada salida).
Esta es la razón arquitectónica por la que attention ganó. No "más parámetros" — el argumento del path length es más corto y el flujo de gradiente es controlable por construcción.
Lo que §A13 muestra específicamente¶
El laboratorio 03 entrena tres modelos sobre la misma tarea de predicción del siguiente token de §A13 y reporta:
Modelo | Pasos hasta 90% val acc | Val acc final | Tiempo de entrenamiento
----------------+--------------------------+---------------+------------------------
RNN (h=64) | no convergió | 28% | 5 min × no-go
LSTM (h=64) | 800 | 92% | 8 min
Attention (1L) | 200 | 96% | 3 min
(Números aproximados — el laboratorio 03 de la Fase 14 mide los valores reales. El titular es: attention converge más rápido y a mayor precisión con el mismo presupuesto de cómputo.)
Lo que attention no te da gratis¶
- Es
O(T²)en memoria y cómputo (Fase 15). Para secuencias muy largas, esto domina. - Es equivariante a permutaciones sin codificación posicional (Fase 16). Añade PE.
- No es naturalmente causal — para modelado de lenguaje debes enmascarar posiciones futuras (Fase 15 §04).
- Necesita multi-head para capturar relaciones diferentes (Fase 15 §03). Single-head es una sombra fina del mecanismo completo.
Estos se abordan en las Fases 15, 16 y 17. Pero la victoria del flujo de gradiente de esta sección es lo que motiva el transformer entero.
Citas¶
- Hochreiter, S., Schmidhuber, J. 1997. "Long short-term memory." Neural Computation 9(8):1735–1780. El paper original del LSTM.
- Pascanu, R., Mikolov, T., Bengio, Y. 2013. "On the difficulty of training recurrent neural networks." arXiv:1211.5063 — análisis del gradiente desvaneciente/explosivo.
- Vaswani, A. et al. 2017. "Attention is All You Need." arXiv:1706.03762. Sección 4 (tabla 1) compara longitudes de camino para RNN vs CNN vs self-attention.
Recapitulación en un párrafo¶
El retroflujo de gradiente de una frase de §A13 de 5 tokens hasta el primer token: la RNN multiplica el gradiente por r^(T-1) (se desvanece para r<1, explota para r>1); el LSTM vía el estado de celda c_t multiplica por ∏ f_t (controlable vía puertas forget aprendidas); attention multiplica por nada — la longitud del camino es constante en T. Por eso attention ganó arquitectónicamente. El laboratorio §A13 mide el gradiente empírico en el primer token a través de los tres modelos sobre la misma tarea y produce el plot lado a lado.
Anterior: 03-vanishing-gradient.md
Siguiente: Fase 15 (attention).