🧮 Computational Mathematics

Inicio · Parte 08 — Cálculo multivariable, matricial y autodiferenciación

169 — Hessiano

universitario-avanzado clase 9 de 20 4 horas demostración hessian

El Hessiano describe la curvatura, y el signo de sus autovalores clasifica el punto crítico.

Fórmulas

Hᵢⱼ = ∂²f/∂xᵢ∂xⱼ
definido positivo ⟹ mínimo; definido negativo ⟹ máximo; signos mixtos ⟹ silla

Desarrollo

El Hessiano recoge todas las segundas derivadas y describe cómo se curva la función en cada dirección. Es simétrico por el teorema de Schwarz (clase 163), y por tanto tiene autovalores reales y autovectores ortogonales (clase 126).

Los autovalores son las curvaturas principales. Todos positivos significa que la función se curva hacia arriba en todas las direcciones: mínimo local. Todos negativos: máximo. Signos mixtos: punto de silla, mínimo en unas direcciones y máximo en otras.

Ese último caso es el que domina en alta dimensión. En un espacio de un millón de dimensiones, que todos los autovalores tengan el mismo signo es extraordinariamente improbable; lo típico es que haya mezcla. Por eso el consenso actual es que el problema del entrenamiento de redes profundas no son los mínimos locales malos, son los puntos de silla y las mesetas que los rodean.

El Hessiano también determina la velocidad de convergencia. El cociente entre su mayor y su menor autovalor es el número de condición del problema, y controla lo lento que converge el descenso de gradiente (clase 244). Los métodos de segundo orden usan el Hessiano para corregir esa anisotropía, a costa de un coste O(n³) que los hace inviables con millones de parámetros.

Ejemplo trabajado

Hessiano de x² + 3y² en el origen.

f(x,y) = x² + 3y²

∇f(0,0) = (0, 0)                    → punto crítico

H = [[2, 0],
     [0, 6]]

autovalores: 2 y 6,  ambos positivos → definido positivo

Clasificación: MÍNIMO local          ✓

Número de condición: 6/2 = 3
  curvas de nivel: elipses con ejes 3:1

Qué calcula el laboratorio

Hessiano: curvatura y clasificación del punto crítico.

python classes/part-08-calculo-multivariable-matricial-y-autodiferenciacion/169-hessiano/lab.py
compmath run 169

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "funcion": "x² + 3y²",
  "punto_critico": [
    0.0,
    0.0
  ],
  "gradiente": [
    0.0,
    0.0
  ],
  "hessiano": [
    [
      2.0,
      0.0
    ],
    [
      0.0,
      6.0
    ]
  ],
  "autovalores": [
    6.0,
    2.0
  ],
  "definido_positivo": true
}

Errores comunes

Dónde se usa

Clasificación de puntos críticos, método de Newton, análisis de convergencia, aproximación de Laplace en inferencia bayesiana y K-FAC.

Idea rectora de la parte

Modo reverso calcula todas las derivadas en un solo barrido hacia atrás.

Error a evitar

Olvidar acumular gradientes cuando un nodo se reutiliza en el grafo.

Conexión con IA

Autograd de PyTorch y JAX es exactamente el modo reverso del grafo de cómputo que se construye en esta parte a mano.

Bibliografía de la clase

Archivos de la clase