La optimización es posiblemente el componente clave más importante en el aprendizaje automático, ya que impulsa todo el proceso de aprendizaje/entrenamiento.

La optimización en aprendizaje automático es una parte central del Machine Learning, que permite adaptar los modelos a los datos y así entrenarlos. Al mismo tiempo, el termino y los procesos que lo componen son abstractos e incomprensibles para muchas personas.

La optimización ya se usa en matemáticas escolares para encontrar mínimos y máximos (puntos altos y bajos) de funciones. En general, cuando se trata de problemas de optimización, es importante determinar aquellas combinaciones de ciertas variables ajustables (parámetros) con las que se puede lograr el mejor resultado en relación con una tarea específica. Tales problemas ocurren en varios dominios:

  • Economía – Para maximizar las ganancias se debe encontrar la definición ideal de precios, distribución del trabajo, personal, etc.
  • Logística y envío – Se debe evaluar el posicionamiento de los centros de distribución para minimizar el tiempo promedio de entrega requerido.
  • Física – Se va a investigar el mínimo de energía de un sistema físico.
  • Investigación climática – Los modelos climáticos estadísticos deben adaptarse a los datos medidos reales, que surgen de procesos hidrodinámics complejos.

Resulta que la optimización se utiliza en un gran número de áreas de investigación y contextos de aplicación. En el aprendizaje automático, permite adaptar un modelo y sus parámetros a los datos disponibles durante el entrenamiento (similar al ejemplo climático anterior).

¿Cómo de bueno es el modelo? – La función objetivo

En el aprendizaje automático, los parámetros afectan el comportamiento de un modelo. Con la ayuda de la optimización, se debe encontrar la asignación óptima de parámetros. Para ello se utilizan datos de entrenamiento con etiqueta, para lo cual el modelo puede realizar predicciones con asignaciones de parámetros específicos. La calidad de esta asignación se puede estimar a partir de las etiquetas predichas y las etiquetas de entrenamiento conocidas y correctas (error promedio). Esto da como resultado posibles funciones objetivo para problemas de optimización, por ejemplo: encontrar los parámetros y la predicción del modelo correspondiente, con…

… la desviación más pequeña (cuadrada) (mínimos cuadrados)

… la mayor plausibilidad (probabilidad)

En la aplicación, la función objetivo también suele denominarse función de pérdida, calidad o aptitud. Dado que la pérdida debe minimizarse intuitivamente y la calidad y la precisión del ajuste deben maximizarse, las funciones objetivo correspondientes generalmente se invierten (los mínimos son luego máximos). En el caso de un espacio de parámetros de baja dimensión, la función también se puede representar gráficamente. Las soluciones óptimas corresponden a los puntos bajos o valles. Se hace una distinción entre mínimos locales, que solo son óptimos en un determinado entorno, y mínimos globales, que tienen el valor de función objetivo más bajo para todo el espacio de parámetros.

Resolver un problema de optimización

Dependiendo del tipo de función objetivo, existen diferentes enfoques para resolver el problema de optimización. Para algunas funciones (continuas y derivables) los óptimos pueden determinarse mediante las derivadas de la función (criterio necesario y suficiente para gradientes de primer y segundo orden). Sin embargo, con un espacio de parámetros grande, este problema no se puede resolver matemáticamente de manera cerrada. En su lugar, aquí se pueden utilizar métodos de descenso de gradiente, en los que se aproxima gradualmente al óptimo.

Comenzando desde una posición inicial, el gradiente se calcula alternativamente con los parámetros actuales y los parámetros se cambian en la dirección del gradiente hasta que no se puede lograr ninguna mejora adicional. Para muchos métodos (por ejemplo, redes neuronales artificiales), el gradiente actual solo se estima estocásticamente (para una parte de los datos). En consecuencia, se requieren menos predicciones y cálculos de gradiente. Esto acelera la optimización paso a paso.

Si no se pueden determinar gradientes, se puede intentar buscar el espacio de parámetros sistemáticamente. Representantes bien conocidos de esta idea son la reducción a la mitad del intervalo, la proporción áurea y el método Nelder-Mead. Subdivides el espacio de parámetros iterativamente, tratando de encontrar valores cada vez más bajos para la función objetivo.

Sin embargo, los métodos de búsqueda y descenso de gradiente generalmente solo encuentran mínimos locales, dependiendo del punto de partida seleccionado. Con la ayuda de procesos de inicio múltiple, se pueden llevar a cabo varias optimizaciones en paralelo. De esta forma, se pueden encontrar varios óptimos locales, entre los cuales también puede haber un óptimo global. Los algoritmos evolutivos, que se basan en la teoría de la evolución, persiguen una idea similar. Estos métodos cambian gradualmente (individuos). A través de ciertos métodos mutacionales y de recombinación, se crean nuevas ocupaciones, algunas de las cuales (dependiendo de su utilidad) “sobreviven” para la próxima generación.

La optimización como clave del objetivo

La optimización es posiblemente el componente clave más importante en el aprendizaje automático, ya que impulsa todo el proceso de aprendizaje/entrenamiento. Los subpasos de la optimización suenan complejos al principio, pero generalmente los ordenadores los manejan de forma totalmente automática. Los procesos de optimización asociados a los métodos más conocidos de aprendizaje automático ya están implementados y disponibles, solo se configuran mediante unos pocos tornillos de ajuste/hiperparámetros (incremento, número de puntos de partida, etc.). sin embargo, una comprensión más profunda de la optimización es esencial para lograr buenos resultados incluso con datos difíciles o un problema de aprendizaje particularmente complicado. En nuestro cuarto artículo de la serie Fundamentos de Machine Learning, explicamos qué herramientas son relevantes para el aprendizaje automático en la práctica.

Fuente:

ML2R | Blog

Optimización en aprendizaje automático