Inicio · Parte 15 — Matemática de Deep Learning
warmup: subir el lr linealmente durante los primeros pasos
clipping: si ‖g‖ > c, escalar g ← c·g/‖g‖
planificador: reducir el lr según avanza el entrenamiento
Entrenar una red profunda es aplicar los optimizadores de la parte 12 a un problema no convexo, ruidoso y de curvatura muy variable. Las técnicas de esta clase no son adornos: son lo que hace la diferencia entre un entrenamiento que converge y uno que produce NaN en el paso 300.
El warmup sube el learning rate gradualmente durante los primeros cientos o miles de pasos. La razón es concreta: al principio los momentos de Adam están mal estimados y los gradientes son grandes y poco informativos, así que un paso completo puede llevar los pesos a una región de la que no se recuperan. Es prácticamente obligatorio al entrenar Transformers.
El gradient clipping acota la norma del gradiente sin cambiar su dirección. Es un seguro barato contra los picos anómalos —un lote raro, una muestra corrupta— que en un solo paso podrían destruir horas de entrenamiento. Un valor de 1,0 es habitual y rara vez perjudica.
Los planificadores reducen el learning rate a lo largo del entrenamiento: pasos grandes al principio para explorar, pequeños al final para afinar. El decaimiento por coseno con warmup es la receta estándar actual. Y conviene recordar que estas tres técnicas atacan problemas de optimización, no de generalización: si el modelo converge bien y generaliza mal, el remedio está en otra parte.
Cuatro configuraciones sobre el mismo objetivo ruidoso.
objetivo: minimizar ‖w − w*‖² con gradientes ruidosos
configuración paso 10 paso 100
lr alto sin clipping 0,00039758 0,0
lr alto con clipping 4,96308444 0,0
lr moderado 0,00864028 0,0
lr moderado con warmup 2,80892690 0,0
Todas convergen aquí porque el problema es benigno.
Lo que cambia es el paso 10: warmup y clipping avanzan
más despacio al principio a cambio de no arriesgar.
En un problema real, "lr alto sin clipping" produciría
NaN antes del paso 100 con un solo lote anómalo.
Entrenar una red profunda: learning rate, warmup y clipping.
python classes/part-15-matematica-de-deep-learning/318-optimizacion-de-redes-profundas/lab.py
compmath run 318
objetivolr_alto_sin_clippinglr_alto_con_clippinglr_moderadolr_moderado_con_warmupgradient_clippingwarmupschedulersemilla{
"objetivo": "minimizar ‖w - w*‖² con gradientes ruidosos",
"lr_alto_sin_clipping": [
{
"paso": 10,
"perdida": 0.00039758
},
{
"paso": 100,
"perdida": 0.0
},
{
"paso": 300,
"perdida": 0.0
}
],
"lr_alto_con_clipping": [
{
"paso": 10,
"perdida": 4.96308444
},
{
"paso": 100,
"perdida": 0.0
},
{
"paso": 300,
"perdida": 0.0
}
],
"lr_moderado": [
{
"paso": 10,
"perdida": 0.00864028
},
{
"paso": 100,
"perdida": 0.0
},
{
"paso": 300,
"perdida": 0.0
}
],
"lr_moderado_con_warmup": [
{
"paso": 10,
"perdida": 2.8089269
},
{
"paso": 100,
"perdida": 0.0
},
{
"paso": 300,
"perdida": 0.0
}
],
"gradient_clipping": "acota la norma del gradiente sin cambiar su dirección"
}
Entrenamiento de modelos de lenguaje, recetas de entrenamiento reproducibles, ajuste fino y depuración de entrenamientos inestables.
Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.
10.48550/arxiv.1706.02677 verificado en DataCite (2026-08-19).10.48550/arxiv.1608.03983 verificado en DataCite (2026-08-19).