Inicio · Parte 15 — Matemática de Deep Learning
∂L/∂h₀ = Π_{t=1}^{T} (∂h_t/∂h_{t−1})
factores < 1 ⟹ 0 exponencialmente
factores > 1 ⟹ ∞ exponencialmente
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.
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.
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
w=0.5_desvanecew=1.0_establew=1.5_explotacausasi_cada_factor_<1si_cada_factor_>1remediospor_que_las_relu_ayudan{
"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"
}
Diagnóstico de entrenamientos inestables, justificación de LSTM y conexiones residuales, clipping en modelos de lenguaje y análisis de profundidad efectiva.
Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.
10.1109/72.279181 verificado en Crossref (2026-08-19).10.48550/arxiv.1211.5063 verificado en DataCite (2026-08-19).