Inicio · Parte 12
Función objetivo, convexidad, descenso de gradiente y su familia completa de optimizadores, métodos de segundo orden, restricciones, KKT y optimización evolutiva.
Entrenar un modelo es resolver un problema de optimización. No es una analogía: es literalmente lo que ocurre. Se define una función objetivo que mide el error, se calcula su gradiente y se desciende. Todo lo demás —arquitecturas, regularización, planificación del learning rate— son decisiones sobre ese problema. Esta parte trata la optimización como lo que es: el motor de la inteligencia artificial moderna.
Las clases 241 a 243 fijan el vocabulario y el concepto que decide la dificultad del problema. En un problema convexo todo mínimo local es global, y eso convierte la optimización en una tarea con garantías. Fuera de la convexidad no hay ninguna: las redes neuronales son masivamente no convexas y aun así se entrenan bien, un hecho que la teoría todavía no explica del todo. Lo que sí se puede afirmar es que cualquier dirección con dᵀ∇f < 0 hace descender la función, y que el gradiente negativo es la más empinada localmente, pero no siempre la mejor globalmente.
Las clases 244 a 251 recorren la familia completa de optimizadores de primer orden, en el orden histórico en que se resolvieron sus problemas. Descenso de gradiente y su tensión con el learning rate: demasiado pequeño no avanza, demasiado grande diverge, y el umbral es 2/L con L el mayor autovalor del Hessiano. SGD cambia exactitud por coste. Momentum amortigua la oscilación en valles estrechos. Nesterov mira adelante antes de decidir. AdaGrad adapta el paso por coordenada, pero su acumulador solo crece y el aprendizaje acaba apagándose; RMSProp lo arregla con olvido exponencial; Adam combina ambos momentos con corrección de sesgo; y AdamW corrige un error sutil de Adam que tardó años en detectarse: el weight decay debe aplicarse desacoplado del gradiente adaptativo, no sumado a él.
Las clases 252 a 254 suben a segundo orden. Newton usa la curvatura y converge en un solo paso en problemas cuadráticos, pero invertir el Hessiano cuesta O(n³) y es impensable con millones de parámetros. BFGS aproxima el Hessiano inverso usando solo gradientes, y la búsqueda de línea con la condición de Armijo elimina la necesidad de fijar el paso a mano.
Las clases 255 a 258 tratan las restricciones. Regularizar es cambiar el objetivo, no añadir un truco: sumar λ‖w‖² es tan parte del problema como el término de error. Los multiplicadores de Lagrange manejan igualdades, las condiciones KKT los generalizan a desigualdades, y la holgura complementaria formaliza la intuición de que una restricción inactiva no influye en la solución.
El cierre incorpora lo que no usa gradiente —optimización evolutiva sobre funciones multimodales— y un banco comparativo con presupuesto idéntico. Ese capstone deja una lección incómoda y verdadera: el mismo learning rate que funciona en una cuadrática hace divergir en Rosenbrock, y comparar optimizadores sin fijar semilla, punto inicial y presupuesto de iteraciones no compara nada.
| # | Clase | Demostración ejecutable |
|---|---|---|
241 |
Problemas de optimización y función objetivo | objective_function |
242 |
Convexidad | convexity |
243 |
Gradiente y direcciones de descenso | descent_directions |
244 |
Gradient descent | gradient_descent |
245 |
Stochastic gradient descent | sgd |
246 |
Momentum | momentum |
247 |
Nesterov accelerated gradient | nesterov |
248 |
AdaGrad | adagrad |
249 |
RMSProp | rmsprop |
250 |
Adam | adam |
251 |
AdamW | adamw |
252 |
Método de Newton | newton_method |
253 |
Quasi-Newton y BFGS | quasi_newton |
254 |
Line search | line_search |
255 |
Regularización como optimización | regularization_as_optimization |
256 |
Restricciones y Lagrangianos | constraints_lagrangian |
257 |
Condiciones KKT | kkt_conditions |
258 |
Optimización cuadrática | quadratic_programming |
259 |
Optimización evolutiva | evolutionary_optimization |
260 |
Capstone: banco de optimizadores comparables | capstone_optimizer_bench |
compmath run --part 12
| Término | Definición | Clase |
|---|---|---|
| Función objetivo | Cantidad que se minimiza o maximiza. Define qué significa mejor en el problema. | 241 |
| Variables de decisión | Parámetros libres sobre los que se optimiza. | 241 |
| Problema irrestricto | Aquel sin restricciones sobre las variables. El caso de casi todo entrenamiento de redes. | 241 |
| Función convexa | La que queda por debajo de cualquier cuerda entre dos de sus puntos. | 242 |
| Convexidad y óptimos | En un problema convexo todo mínimo local es global. Fuera de él no hay garantía. | 242 |
| Hessiano definido positivo | Criterio de convexidad estricta: todos los autovalores positivos. | 242 |
| Dirección de descenso | Cualquier d con dᵀ∇f < 0. El gradiente negativo es la más empinada localmente. | 243 |
| Learning rate | Tamaño del paso. El hiperparámetro que más veces explica una divergencia. | 244 |
| Límite de estabilidad | lr < 2/L con L el mayor autovalor del Hessiano. Por encima, el descenso diverge. | 244 |
| SGD | Gradiente estimado sobre un subconjunto de datos. Más barato y más ruidoso. | 245 |
| Mini-batch | Lote de muestras para estimar el gradiente. Compromiso entre ruido y coste. | 245 |
| Momentum | Media móvil de los gradientes. Acelera en direcciones consistentes y amortigua la oscilación. | 246 |
| Nesterov | Momentum que evalúa el gradiente en el punto adelantado x + βv. | 247 |
| AdaGrad | Paso adaptativo por coordenada usando la suma acumulada de gradientes al cuadrado. | 248 |
| RMSProp | AdaGrad con media móvil exponencial en vez de suma. Evita que el paso se apague. | 249 |
| Adam | Momentum de primer y segundo orden con corrección de sesgo inicial. | 250 |
| Corrección de sesgo | División por 1 − βᵗ que compensa que los acumuladores empiezan en cero. | 250 |
| AdamW | Adam con weight decay desacoplado, aplicado al peso y no al gradiente. | 251 |
| Método de Newton | Usa el Hessiano para elegir dirección y paso. Converge en un paso en cuadráticas. | 252 |
| BFGS | Cuasi-Newton que aproxima el Hessiano inverso solo con gradientes sucesivos. | 253 |
| L-BFGS | Variante de memoria limitada que guarda solo los últimos pares de vectores. | 253 |
| Condición de Armijo | Exige que el paso reduzca la función al menos una fracción de lo que predice el gradiente. | 254 |
| Búsqueda por retroceso | Probar α, reducirlo a la mitad y repetir hasta cumplir Armijo. | 254 |
| Regularización L2 | Sumar λ‖w‖² al objetivo. Encoge todos los pesos sin anular ninguno. | 255 |
| Regularización L1 | Sumar λ‖w‖₁. Produce soluciones dispersas anulando coeficientes. | 255 |
| Lagrangiano | L = f − Σλᵢgᵢ. Convierte un problema con restricciones de igualdad en uno irrestricto. | 256 |
| Multiplicador de Lagrange | λ. Mide cuánto mejoraría el óptimo al relajar la restricción una unidad. | 256 |
| Condiciones KKT | Estacionariedad, factibilidad, no negatividad y holgura complementaria. | 257 |
| Holgura complementaria | μᵢ·gᵢ(x) = 0. Una restricción inactiva tiene multiplicador cero. | 257 |
| Programa cuadrático | Objetivo cuadrático con restricciones lineales. Convexo si Q es definida positiva. | 258 |
| Algoritmo evolutivo | Búsqueda por población con selección, cruce y mutación. No necesita gradiente. | 259 |
| Elitismo | Conservar los mejores individuos entre generaciones para no perder el óptimo hallado. | 259 |
| Presupuesto de iteraciones | Número fijo de pasos concedido a cada método para que la comparación sea justa. | 260 |