Why this matters for ML
Cuando una función devuelve un vector (p. ej. una capa de red que produce muchas activaciones), su derivada es una matriz: el Jacobian. Cuando quieres saber la curvatura de tu loss (¿estás en un mínimo, un máximo o un saddle?), miras la Hessian. El Jacobian es el engranaje de backpropagation; la Hessian es la base de métodos de optimización de segundo orden (Newton) y del análisis de convergencia.
Concepts covered
- Jacobian de
- Hessian de (matriz de segundas parciales)
- Simetría de la Hessian (Schwarz)
- Clasificación de critical points vía definiteness de la Hessian (usa LA-08)
- Relación gradient ↔ Jacobian ↔ Hessian
Intuition first
Repasa Calc-05 (gradient) y Khan Academy — Multivariable Calculus (Jacobian, Hessian). Idea: el Jacobian es "todas las parciales de todas las salidas"; la Hessian es "el gradient del gradient".
Theory & key results
Jacobian: para , , el Jacobian es la matriz de todas las parciales: Es la mejor aproximación lineal local de . Si , el Jacobian es (la transpuesta de) el gradient. El chain rule multivariable (Calc-07) es multiplicación de Jacobians.
Hessian: para , la Hessian es la matriz de segundas parciales: Es el "Jacobian del gradient". Mide curvatura en cada par de direcciones.
Simetría (teorema de Schwarz/Clairaut): si las segundas parciales son continuas, , así que es simétrica → se le aplica todo LA-08 (spectral theorem, definiteness).
Clasificar critical points (donde ) por la definiteness de :
| Hessian | Tipo de punto |
|---|---|
| Positive definite (eigenvalues >0) | mínimo local |
| Negative definite (eigenvalues <0) | máximo local |
| Indefinite (eigenvalues mixtos) | saddle point |
| Semidefinite (algún 0) | no concluye |
Los saddle points son la razón por la que la optimización en deep learning es difícil: hay muchísimos, y el gradient es cero en ellos aunque no sean mínimos.
Worked example
.
- Gradient: . Critical point: .
- Hessian: (constante aquí). Eigenvalues (de LA-07/08) → positive definite → el origen es un mínimo. ✓
Ejemplo saddle: tiene , indefinite → el origen es un saddle.
Notebook exercises (by hand)
- Jacobian de (una función ).
- Hessian de ; ¿es simétrica?
- Encuentra los critical points de y clasifícalos con la Hessian.
- Muestra que tiene un saddle en el origen.
- Para , explica por qué el Jacobian de es la Hessian.
- Si la Hessian de tu loss en un punto tiene eigenvalues , ¿qué es y qué implica para GD?
Python lab
import numpy as np, sympy as sp
x, y = sp.symbols("x y")
# Jacobian de una función vectorial
F = sp.Matrix([x**2*y, sp.sin(x) + y])
print("Jacobian:\n", F.jacobian([x, y]))
# Hessian de un escalar
f = x**2 + x*y + y**2
H = sp.hessian(f, (x, y))
print("Hessian:\n", H) # [[2,1],[1,2]]
print("eigenvalues:", H.eigenvals()) # {3:1, 1:1} -> PD -> mínimo
# clasifica un critical point numéricamente
Hn = np.array([[2.,1.],[1.,2.]])
w = np.linalg.eigvalsh(Hn)
print("PD?" , np.all(w > 0)) # True -> mínimo
Examen final 📝
Intenta cada nivel antes de abrir las soluciones.
🟡 Medio
- Jacobian de ().
- Hessian de ; confirma que es simétrica.
🟠 Medio-difícil
- Encuentra los critical points de y clasifícalos con la Hessian.
- Para el softmax , se sabe que su Jacobian es . Verifícalo para el caso 2D calculando y .
🔴 Difícil
- Demuestra que la Hessian de la loss de regresión lineal es (constante, independiente de ), y usa LA-08 para explicar por qué esto garantiza que la loss es convexa.
- El Jacobian conecta capas en backprop. Para , , demuestra que (chain rule matricial) y explica por qué reverse-mode multiplica estos Jacobians de derecha a izquierda.
✅ Soluciones
- .
- , simétrica ✓.
- . . En : eigenvalues → mínimo. En : → saddle.
- . (como sigmoid). . Coinciden con .
- . ; . Como es PSD (LA-08), en todo punto ⇒ convexa.
- Por chain rule, , que es la entrada del producto . Reverse-mode empieza por (un vector) y lo multiplica por Jacobians hacia atrás; como cada paso es vector×matriz (no matriz×matriz), el coste es lineal en el tamaño del grafo.