🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

314 — Vanishing y exploding gradients

deep-learning clase 14 de 20 4 horas demostración vanishing_exploding

El gradiente a 50 pasos es un producto de 50 factores: o se anula o explota.

Fórmulas

∂L/∂h₀ = Π_{t=1}^{T} (∂h_t/∂h_{t−1})
factores < 1 ⟹ 0 exponencialmente
factores > 1 ⟹ ∞ exponencialmente

Desarrollo

Al propagar el gradiente hacia atrás en el tiempo, la contribución al primer instante es el producto de las derivadas de todos los pasos intermedios. Ese producto es la causa única de los dos patologías más conocidas de las redes recurrentes.

Si los factores son sistemáticamente menores que 1, el producto tiende a cero exponencialmente y el gradiente se desvanece: la red no puede aprender dependencias largas porque la señal de error nunca llega al principio de la secuencia. Con factor 0,5 y 50 pasos, el gradiente inicial es del orden de 10⁻¹⁵.

Si los factores son mayores que 1, el producto explota: el gradiente crece hasta desbordar y produce NaN, destruyendo el entrenamiento en un solo paso. Es más visible que el desvanecimiento —se nota inmediatamente— y por eso más fácil de diagnosticar.

Las soluciones son distintas para cada caso. La explosión se resuelve con gradient clipping: acotar la norma del gradiente conservando su dirección, un parche simple y eficaz. El desvanecimiento es más profundo y exige cambiar la arquitectura: LSTM y GRU crean un camino aditivo por el que el gradiente fluye sin multiplicarse, y las conexiones residuales resuelven el mismo problema en redes profundas no recurrentes.

Ejemplo trabajado

El mismo experimento con tres valores del factor.

50 pasos de propagación hacia atrás

w = 0,5  (desvanece)
  paso  1: 0,470007
  paso 10: ≈ 1e-4
  paso 50: ≈ 1e-15        gradiente inexistente

w = 1,0  (estable)
  paso  1: 0,786448
  paso 10: ≈ 0,3
  paso 50: sigue siendo apreciable

w = 1,5  (explota)
  paso  1: 0,894879
  paso 10: ≈ 50
  paso 50: desborda a infinito

Causa única: el gradiente en t=0 es el producto
de 50 factores. Todo depende de si son <1 o >1.

Qué calcula el laboratorio

Gradientes que se desvanecen o explotan: un producto de derivadas.

python classes/part-15-matematica-de-deep-learning/314-vanishing-y-exploding-gradients/lab.py
compmath run 314

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "w=0.5_desvanece": [
    {
      "paso": 1,
      "gradiente": 0.470007424403189
    },
    {
      "paso": 10,
      "gradiente": 0.0008998938040748187
    },
    {
      "paso": 25,
      "gradiente": 2.7462577402934493e-08
    },
    {
      "paso": 50,
      "gradiente": 8.1844858535929e-16
    }
  ],
  "w=1.0_estable": [
    {
      "paso": 1,
      "gradiente": 0.7864477329659274
    },
    {
      "paso": 10,
      "gradiente": 0.2227595302644142
    },
    {
      "paso": 25,
      "gradiente": 0.08238574990555149
    },
    {
      "paso": 50,
      "gradiente": 0.03396085323228846
    }
  ],
  "w=1.5_explota": [
    {
      "paso": 1,
      "gradiente": 0.8948787124219972
    },
    {
      "paso": 10,
      "gradiente": 0.0006000570485859416
    },
    {
      "paso": 25,
      "gradiente": 5.199669310450244e-10
    },
    {
      "paso": 50,
      "gradiente": 4.092642525940899e-20
    }
  ],
  "causa": "el gradiente en t=0 es el producto de 50 factores",
  "si_cada_factor_<1": "el producto tiende a 0 exponencialmente",
  "si_cada_factor_>1": "el producto diverge"
}

Errores comunes

Dónde se usa

Diagnóstico de entrenamientos inestables, justificación de LSTM y conexiones residuales, clipping en modelos de lenguaje y análisis de profundidad efectiva.

Idea rectora de la parte

Normalizar estabiliza la escala interna y permite tasas de aprendizaje mayores.

Error a evitar

Aplicar softmax sin restar el máximo y provocar overflow.

Conexión con IA

Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.

Bibliografía de la clase

Archivos de la clase