🧮 Computational Mathematics

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

252 — Método de Newton

avanzado clase 12 de 20 4 horas demostración newton_method

Newton resuelve una cuadrática en un solo paso, y por eso no escala.

Fórmulas

xₖ₊₁ = xₖ − H⁻¹·∇f(xₖ)
convergencia cuadrática cerca del óptimo
coste O(n³) por iteración, memoria O(n²)

Desarrollo

El método de Newton aplicado a optimización aproxima la función por su desarrollo de Taylor de segundo orden y salta al mínimo de esa parábola. Usa por tanto la curvatura, no solo la pendiente, y eso le permite elegir simultáneamente dirección y tamaño de paso sin learning rate.

En una función cuadrática, la aproximación de segundo orden es la función, y Newton alcanza el mínimo exacto en una única iteración desde cualquier punto de partida. En funciones generales conserva convergencia cuadrática cerca del óptimo: el número de dígitos correctos se duplica en cada paso, igual que en la búsqueda de raíces de la clase 223.

El obstáculo es el coste. El Hessiano tiene entradas e invertirlo cuesta O(n³). Con un modelo de mil millones de parámetros, el Hessiano tendría 10¹⁸ entradas: no cabe en ninguna memoria existente. Por eso los métodos de segundo orden puros son inviables en aprendizaje profundo, por muy atractiva que sea su tasa de convergencia.

Hay un segundo problema, cualitativo: si el Hessiano no es definido positivo —lo cual ocurre en puntos de silla, abundantes en dimensión alta— la dirección de Newton puede apuntar cuesta arriba. Las variantes prácticas añaden regularización al Hessiano o usan regiones de confianza para evitarlo.

Ejemplo trabajado

Newton sobre una cuadrática: un paso y termina.

f(x,y) = x² + 20y²        punto inicial (−2, 3)

Hessiano = [[2,  0],        H⁻¹ = [[0,5,   0   ],
            [0, 40]]                [0  ,  0,025]]

Paso 1:  x = (−2,3) − H⁻¹·(−4,120) = (0, 0)
  f = 0,0                                            ✓

Paso 2:  ya está en el óptimo, no se mueve.

Un paso frente a las 200 iteraciones del descenso.

Coste: invertir H es O(n³). Con n = 10⁹ el Hessiano
tendría 10¹⁸ entradas: imposible de almacenar.

Qué calcula el laboratorio

Newton en optimización: usa curvatura, converge en un paso si es cuadrática.

python classes/part-12-optimizacion-matematica-y-computacional/252-metodo-de-newton/lab.py
compmath run 252

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "funcion": "x² + 20y² (cuadrática)",
  "hessiano": [
    [
      2.0,
      0.0
    ],
    [
      0.0,
      40.0
    ]
  ],
  "hessiano_inverso": [
    [
      0.5,
      0.0
    ],
    [
      0.0,
      0.025
    ]
  ],
  "historial": [
    {
      "iter": 1,
      "x": [
        0.0,
        0.0
      ],
      "f": 0.0
    },
    {
      "iter": 2,
      "x": [
        0.0,
        0.0
      ],
      "f": 0.0
    },
    {
      "iter": 3,
      "x": [
        0.0,
        0.0
      ],
      "f": 0.0
    }
  ],
  "converge_en_1_paso": true,
  "coste": "O(n³) por inversión del Hessiano"
}

Errores comunes

Dónde se usa

Optimización de pocos parámetros, ajuste de modelos estadísticos, IRLS en regresión logística y base conceptual de los métodos cuasi-Newton.

Idea rectora de la parte

El learning rate es el hiperparámetro que más veces explica una divergencia.

Error a evitar

Declarar convergencia por número de épocas y no por criterio numérico.

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