Why this matters for ML
Aquí se junta todo el cálculo en el algoritmo que entrena el machine learning: gradient descent. Entenderás por qué funciona (Taylor + gradient), cómo elegir el learning rate, qué es la convexity (y por qué unas losses son fáciles y otras no), sus variantes (momentum, SGD) y cómo optimizar con restricciones vía Lagrange multipliers (que también reaparecen al derivar SVMs y PCA).
Concepts covered
- Gradient descent: la regla y por qué baja
- Learning rate: efectos y trade-offs
- Variantes: SGD, mini-batch, momentum
- Convexity multivariable
- Optimización con restricciones: Lagrange multipliers
- Vistazo a las condiciones KKT
Intuition first
🎬 3Blue1Brown Neural Networks cap. 2 ("Gradient descent, how neural networks learn"). Para restricciones, Khan Academy "Lagrange multipliers".
Theory & key results
Gradient descent (GD): para minimizar , itera Por qué baja: por Taylor de 1er orden (Calc-08), moverte en dirección es la dirección de máximo descenso local; con pequeño, disminuye.
Learning rate :
- Muy pequeño → converge lentísimo.
- Muy grande → oscila o diverge (se pasa del mínimo).
- Justo → baja rápido y estable. En la práctica se ajusta y a veces se programa (learning rate schedule).
Variantes (clave en deep learning):
- SGD (stochastic): usa el gradiente de un ejemplo (o mini-batch) en vez de todo el dataset → pasos ruidosos pero baratos y escalables. El ruido incluso ayuda a escapar de saddles.
- Mini-batch: el punto medio (lo estándar).
- Momentum: acumula una "velocidad" , → acelera en valles largos y amortigua oscilaciones. (Adam, RMSProp: refinamientos de esta idea.)
Convexity (multivariable): es convexa si su Hessian es positive semidefinite en todo el dominio (LA-08). Consecuencia enorme: todo mínimo local es global, así que GD encuentra la solución. Linear/logistic regression → convexas. Redes neuronales → no convexas (saddles y mínimos locales), por eso entrenar requiere trucos.
Optimización con restricciones — Lagrange multipliers: para minimizar sujeto a , forma el Lagrangiano y resuelve , . Intuición: en el óptimo, es paralelo a (no puedes mejorar sin violar la restricción). Aparece al derivar PCA (maximizar varianza con ) y SVMs.
KKT (vistazo): generalización a restricciones de desigualdad (). Las condiciones KKT (estacionariedad, factibilidad, complementary slackness) son la base teórica de SVMs y de la optimización convexa con restricciones. Solo necesitas saber que existen y qué generalizan por ahora.
Worked example
Minimizar sujeto a . Lagrangiano: . , → . Con : . Mínimo en , valor . (Geométricamente: el punto de la recta más cercano al origen.)
GD numérico: minimizando desde con converge a en pocas iteraciones; con diverge. Pruébalo abajo.
Notebook exercises (by hand)
- Escribe la actualización de GD para y haz 3 iteraciones a mano con , .
- ¿Para qué rango de converge GD en ? (Pista: analiza .)
- Minimiza sujeto a con Lagrange.
- Explica por qué momentum ayuda en un valle largo y estrecho.
- Argumenta por qué SGD es preferible a GD "full-batch" en datasets enormes.
- Da la intuición geométrica de " en el óptimo con restricción".
Python lab
import numpy as np
def gradient_descent(grad, theta0, eta, steps):
theta = np.array(theta0, float); traj = [theta.copy()]
for _ in range(steps):
theta = theta - eta*grad(theta); traj.append(theta.copy())
return theta, np.array(traj)
grad = lambda t: 2*t # de f = ||t||^2
for eta in [0.1, 0.5, 1.1]:
final, _ = gradient_descent(grad, [3., 3.], eta, 30)
print(f"eta={eta}: theta_final={np.round(final,3)} "
f"{'diverge' if np.linalg.norm(final)>1e3 else 'converge'}")
# momentum
def gd_momentum(grad, theta0, eta, beta, steps):
theta = np.array(theta0, float); v = np.zeros_like(theta)
for _ in range(steps):
v = beta*v + grad(theta); theta = theta - eta*v
return theta
print("con momentum:", np.round(gd_momentum(grad,[3.,3.],0.1,0.9,30),3))
Examen final 📝
Intenta cada nivel antes de abrir las soluciones.
🟡 Medio
- Escribe 3 iteraciones de GD para desde con .
- Minimiza sujeto a con Lagrange multipliers.
🟠 Medio-difícil
- Para (), la iteración es . Halla el rango de para el que GD converge y el óptimo.
- Demuestra que minimizar sujeto a exige en el óptimo, e interpreta geométricamente.
🔴 Difícil
- Deriva el estimador de PCA/SVM-style: maximiza sujeto a con Lagrange y muestra que el óptimo es el eigenvector principal de con valor óptimo = eigenvalue máximo (une Calc-10 + LA-07).
- Compara GD full-batch vs. SGD en términos de la varianza del estimador del gradiente (Prob-04/08): ¿por qué el gradiente de mini-batch es un estimador insesgado del gradiente verdadero, y cómo escala su varianza con el batch size ?
✅ Soluciones
- . ; ; → converge a 3.
- . , . Con : . Mínimo .
- Converge si . Óptimo (hace en un paso).
- En el óptimo restringido no puedes movar por la superficie y bajar : la componente de tangente a es cero, así que es normal a la superficie, igual que ⇒ . Geométricamente los level sets de y son tangentes.
- ; . El valor objetivo ; máximo al tomar y su eigenvector.
- El mini-batch promedia gradientes de ejemplos muestreados uniformemente: (insesgado, por linearity of expectation). La varianza del promedio de términos i.i.d. escala como ⇒ batches más grandes = gradiente menos ruidoso (a más coste). El ruido de pequeño ayuda a escapar de saddles.