Optimización
Optimizar es encontrar la mejor solución de una función objetivo, su máximo o su mínimo. En el aprendizaje automático es el motor del entrenamiento: ajustar los parámetros de un modelo para minimizar su error. Explicamos qué es una función objetivo, la diferencia entre problemas convexos y no convexos, el descenso de gradiente y sus variantes, y por qué no siempre se alcanza el óptimo global.
Optimizar es encontrar la mejor solución posible de una función objetivo —su valor máximo o mínimo—, quizá sujeta a restricciones que delimitan qué soluciones son admisibles. Es una idea matemática general, pero en inteligencia artificial ocupa un lugar central: entrenar un modelo es, literalmente, un problema de optimización. Se define una función de pérdida que mide cuánto se equivoca el modelo, y el entrenamiento consiste en ajustar sus parámetros para minimizarla.
Los ingredientes
Todo problema de optimización tiene tres piezas: una función objetivo (o de coste, o de pérdida) que se quiere minimizar o maximizar; unas variables de decisión que se pueden ajustar —en un modelo, sus pesos—; y, a veces, unas restricciones que acotan la región de soluciones válidas. Una solución que respeta las restricciones es «factible»; entre las factibles, la que optimiza la función objetivo es la «óptima».
Convexo y no convexo
La distinción más importante es esta. En un problema convexo, todo mínimo local es también el mínimo global: no hay trampas, y se puede resolver con garantías. El entrenamiento de las redes neuronales, en cambio, es no convexo: al encadenar transformaciones lineales con funciones de activación no lineales, el paisaje de la pérdida se llena de valles, y el optimizador puede detenerse en un mínimo local que no es el mejor.
El descenso de gradiente
El método dominante en el aprendizaje profundo es el descenso de gradiente: calcula la pendiente (el gradiente) de la pérdida respecto a cada parámetro y da un pequeño paso en la dirección que la reduce, repitiendo hasta converger. Tiene variantes según cuántos datos usa en cada paso: el descenso estocástico (SGD), que usa un solo ejemplo, y el mini-batch, que usa pequeños lotes y es el estándar. Sobre ellos se construyen optimizadores adaptativos como Adam (Kingma y Ba, 2015), que ajusta el paso de cada parámetro combinando información de los gradientes recientes.
Sin garantía de óptimo global
Conviene ser honesto: en los problemas no convexos no hay garantía de alcanzar el mínimo global, y en la práctica se buscan buenos mínimos locales. Funciona sorprendentemente bien porque, en las dimensiones altísimas de una red, muchos de esos mínimos tienen un error parecido al óptimo y el ruido del muestreo ayuda a escapar de los peores. Es una observación empírica robusta, no un teorema.