Inicio · Parte 12 — Optimización matemática y computacional
condición de Armijo: f(x + αd) ≤ f(x) + c₁·α·∇fᵀd
retroceso: empezar en α = 1 y multiplicar por 0,5 hasta cumplirla
c₁ típico: 10⁻⁴
Elegir el tamaño de paso a mano es frágil: demasiado grande diverge, demasiado pequeño malgasta iteraciones. La búsqueda de línea automatiza esa elección probando valores y quedándose con uno que garantice progreso suficiente.
El criterio ingenuo —aceptar cualquier α que reduzca f— no basta. Se pueden construir sucesiones de pasos que reducen la función cada vez y aun así no convergen al mínimo, porque la reducción se hace arbitrariamente pequeña. Hace falta exigir un progreso proporcional al prometido por el gradiente.
Esa exigencia es la condición de Armijo: la reducción debe ser al menos una fracción c₁ de la que predice la aproximación lineal. Con c₁ = 10⁻⁴ la exigencia es muy laxa —se pide capturar la diezmilésima parte del descenso prometido— y aun así basta para garantizar convergencia.
La implementación estándar es el retroceso: empezar con α = 1, y mientras no se cumpla Armijo multiplicar por 0,5. Termina en pocas iteraciones y solo requiere evaluar la función. Las condiciones de Wolfe añaden una segunda desigualdad sobre la curvatura para evitar pasos demasiado cortos, y son las que necesita BFGS para mantener válida su aproximación.
Retroceso desde un punto con gradiente muy desequilibrado.
punto (−2, 3) f = 184,0
dirección d = −∇f = (4, −120) c₁ = 1e-4
α f(x + αd) ¿Armijo?
1,000 273 784,0 no
0,500 64 900,0 no
0,250 15 016,0 no
0,125 3 271,0 no
0,0625 634,0 no
0,03125 146,3 sí ← aceptado
6 evaluaciones de f y ningún hiperparámetro que ajustar.
Sin línea de búsqueda, α = 1 habría multiplicado
la función por 1 488.
Búsqueda de línea con la condición de Armijo.
python classes/part-12-optimizacion-matematica-y-computacional/254-line-search/lab.py
compmath run 254
puntof(x)direccionc1intentosalpha_aceptadocondicion_de_Armijosegunda_condicion_de_Wolfe{
"punto": [
-2.0,
3.0
],
"f(x)": 184.0,
"direccion": [
4.0,
-120.0
],
"c1": 0.0001,
"intentos": [
{
"alpha": 1.0,
"f": 273784.0,
"armijo": false
},
{
"alpha": 0.5,
"f": 64980.0,
"armijo": false
},
{
"alpha": 0.25,
"f": 14581.0,
"armijo": false
},
{
"alpha": 0.125,
"f": 2882.25,
"armijo": false
},
{
"alpha": 0.0625,
"f": 408.0625,
"armijo": false
},
{
"alpha": 0.03125,
"f": 14.765625,
"armijo": true
}
],
"alpha_aceptado": 0.03125
}
Métodos cuasi-Newton, optimización sin ajuste manual de paso, entrenamiento con paso adaptativo y solvers de propósito general.
AdamW es el optimizador por defecto del entrenamiento moderno; entender su actualización explica el weight decay, el warmup y el gradient clipping.
9780387400655 verificado en International ISBN Agency (2026-08-19).10.2140/pjm.1966.16.1 verificado en Crossref (2026-08-19).