Skip to content

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

h_t = tanh(W_h h_{t-1} + W_x x_t + b)
y_T = W_o h_T
L   = CE(y_T, target)

Backward:

\[ \frac{\partial L}{\partial h_T} = (\partial L / \partial y_T) \cdot W_o \]
\[ \frac{\partial L}{\partial h_t} = \frac{\partial L}{\partial h_{t+1}} \cdot W_h \cdot \mathrm{diag}(1 - h_{t+1}^2) \]

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:

\[ \Bigl\| \frac{\partial L}{\partial h_1} \Bigr\| \approx r^{T-1} \cdot \Bigl\| \frac{\partial L}{\partial h_T} \Bigr\| \]

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:

\[ \frac{\partial c_t}{\partial c_{t-1}} = f_t \]

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:

\[ \frac{\partial L}{\partial c_1} = \prod_{t=2}^{T} f_t \cdot \frac{\partial L}{\partial c_T} \]

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"):

\[ \frac{\partial L}{\partial x_1} = \frac{\partial L}{\partial X_{1,\cdot}} \]

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:

\[ \frac{\partial L}{\partial X_{1, \cdot}} \approx \sum_{t=1}^{T} A_{t, 1} \cdot (\text{gradiente a través de V}) + (\text{gradiente a través de Q, K}) \]

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

  1. Es O(T²) en memoria y cómputo (Fase 15). Para secuencias muy largas, esto domina.
  2. Es equivariante a permutaciones sin codificación posicional (Fase 16). Añade PE.
  3. No es naturalmente causal — para modelado de lenguaje debes enmascarar posiciones futuras (Fase 15 §04).
  4. 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).