🧮 Computational Mathematics

Inicio · Parte 12 — Optimización matemática y computacional

260 — Capstone: banco de optimizadores comparables

avanzado clase 20 de 20 4 horas demostración capstone_optimizer_bench

El mismo learning rate que converge en una cuadrática diverge en Rosenbrock.

Fórmulas

protocolo: mismo punto inicial, mismo lr, mismas iteraciones
reportar f final, ‖∇f‖ y si divergió
no existe un optimizador uniformemente mejor

Desarrollo

El capstone somete a siete optimizadores al mismo presupuesto —300 iteraciones, lr común, punto inicial idéntico— sobre dos problemas de dificultad muy distinta: una cuadrática bien condicionada y la función de Rosenbrock, con su valle curvo y estrecho.

El resultado principal es incómodo y verdadero: ningún optimizador gana en ambos. Momentum es el mejor en la cuadrática y diverge en Rosenbrock con el mismo paso. RMSProp gana en Rosenbrock precisamente porque su escalado adaptativo reduce el paso efectivo en las direcciones de gradiente grande. El descenso simple también diverge.

Que la divergencia aparezca en el banco no es un defecto del experimento: es su hallazgo más útil. Un lr = 0,02 perfectamente razonable en una cuadrática con L = 40 es suicida en un valle donde la curvatura local supera con creces ese valor. Esa es exactamente la situación de una red neuronal real, donde L cambia durante el entrenamiento.

La lección metodológica es que comparar optimizadores exige un protocolo: misma semilla, mismo punto inicial, mismo presupuesto de iteraciones y reporte explícito de los que divergieron. Un banco que oculta las divergencias, o que ajusta el lr de cada método por separado sin decirlo, produce rankings que no significan nada.

Ejemplo trabajado

Banco con presupuesto idéntico sobre dos problemas.

protocolo: 300 iteraciones, lr = 0,02, punto inicial fijo

método      cuadrática f      Rosenbrock
gd            9,2e-11          divergió
momentum      ~1e-14           divergió
nesterov      ~1e-14           convergió
adagrad       2,3e-04          convergió
rmsprop       6,9e-03          mejor
adam          5,9e-08          convergió
adamw         6,1e-08          convergió

mejor en cuadrática:  momentum
mejor en Rosenbrock:  rmsprop
divergieron en Rosenbrock: gd, momentum

El mismo lr no sirve para ambos problemas.
Reportar las divergencias es parte del resultado.

Qué calcula el laboratorio

Capstone: banco comparable de optimizadores con presupuesto idéntico.

python classes/part-12-optimizacion-matematica-y-computacional/260-capstone-banco-de-optimizadores-comparables/lab.py
compmath run 260

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "protocolo": {
    "iteraciones": 300,
    "learning_rate": 0.02,
    "punto_inicial_cuadratica": [
      -2.0,
      3.0
    ],
    "punto_inicial_rosenbrock": [
      -1.2,
      1.0
    ],
    "semilla": 20260813
  },
  "banco": {
    "gd": {
      "cuadratica_f_final": 9.2e-11,
      "cuadratica_|∇f|": 1.9205689e-05,
      "rosenbrock_f_final": "divergió",
      "rosenbrock_x": "divergió"
    },
    "momentum": {
      "cuadratica_f_final": 4e-12,
      "cuadratica_|∇f|": 1.7470171e-05,
      "rosenbrock_f_final": "divergió",
      "rosenbrock_x": "divergió"
    },
    "rmsprop": {
      "cuadratica_f_final": 0.001882401631,
      "cuadratica_|∇f|": 0.378301853221,
      "rosenbrock_f_final": 0.240783888483,
      "rosenbrock_x": [
        0.55098945,
        0.32338165
      ]
    },
    "adam": {
      "cuadratica_f_final": 0.090201412761,
      "cuadratica_|∇f|": 2.686280489861,
      "rosenbrock_f_final": 3.182427595462,
      "rosenbrock_x": [
        -0.78297011,
        0.61891175
      ]
    }
  },
  "mejor_en_cuadratica": "momentum",
  "mejor_en_rosenbrock": "rmsprop",
  "divergieron_en_rosenbrock": [
    "gd",
    "momentum"
  ],
  "el_mismo_lr_no_sirve_para_ambos_problemas": true
}

Errores comunes

Dónde se usa

Selección de optimizador para un proyecto, benchmarking reproducible, diagnóstico de divergencias en entrenamiento y diseño de experimentos de ablación.

Idea rectora de la parte

KKT generaliza Lagrange a restricciones de desigualdad.

Error a evitar

Aplicar weight decay dentro del gradiente en Adam (y no como AdamW).

Conexión con IA

AdamW es el optimizador por defecto del entrenamiento moderno; entender su actualización explica el weight decay, el warmup y el gradient clipping.

Bibliografía de la clase

Archivos de la clase