¿Cuál es la relación entre el aprendizaje automático y la optimización matemática?

Por un lado, como se señaló en otras respuestas, la optimización matemática se utiliza en el aprendizaje automático durante la fase de entrenamiento. Los parámetros se eligen para optimizar alguna función que combine la tasa de error con, en algunos casos, un término que actúa como penalización por sobreajuste.

Por otro lado, he visto especulaciones en algunos lugares sobre el uso del aprendizaje automático para resolver problemas de optimización. La noción (creo) es que entrenaría un modelo de aprendizaje en una muestra de instancias problemáticas con óptimos conocidos (“aprendizaje supervisado” en términos de LD), y luego usaría el modelo para “reconocer” soluciones óptimas a nuevas instancias. Para ser honesto, no estoy seguro de cómo funcionaría esto en la práctica, y soy más que un poco escéptico. Reconocer una solución óptima cuando uno se alimenta al modelo ML capacitado probablemente no sería de gran ayuda; aún necesitaría un mecanismo para generar soluciones potenciales y el tiempo para probar resmas de ellas. A mí me parece una enumeración de la fuerza bruta. Un modelo de ML entrenado que realmente generaría una solución (por ejemplo, un vector de índices de elementos que se colocarán en ranuras consecutivas) necesitaría expresar la solución óptima de cada instancia de problema en función de las entradas de esa instancia. Tal función sería extremadamente compleja, y su complejidad probablemente crecería exponencialmente con el número de entradas.

Dejando de lado mi escepticismo, espero que veamos una investigación considerable (exitosa o no) sobre soluciones de LD para problemas de optimización en un futuro no muy lejano.

Para citar a mi profesor de ML:
Cada algoritmo de ML tiene tres componentes: representación, evaluación y optimización. Por lo general, la representación se realiza una vez; La evaluación y optimización luego itera hasta que se cumpla una determinada condición. Puede ser una serie de iteraciones o un cierto grado de precisión o ambas.
Para ser muy breves, la mayoría, si no todos los algoritmos de ML establecen inicialmente algunos valores de parámetros (Representación), evalúan los datos utilizando los parámetros (Evaluación), modifican los parámetros en función de la evaluación (Optimización). La naturaleza de la optimización dependerá del método de evaluación. Si la evaluación produce error / precisión, la optimización estará diseñada para modificar los parámetros con el fin de disminuir el error / aumentar la precisión en el siguiente paso, maximizando la precisión / minimizando el error.

La optimización se encuentra en el corazón del aprendizaje automático. La mayoría de los problemas de aprendizaje automático se reducen a problemas de optimización. Considere al analista de aprendizaje automático en acción resolviendo un problema para algún conjunto de datos. El modelador formula el problema seleccionando una familia apropiada de modelos y masajea los datos en un formato que se pueda modelar. Luego, el modelo generalmente se entrena resolviendo un problema de optimización central que optimiza las variables o parámetros del modelo con respecto a la función de pérdida seleccionada y posiblemente alguna función de regularización. En el proceso de selección y validación del modelo, el problema de optimización central puede resolverse muchas veces. El área de investigación de la programación matemática se cruza con el aprendizaje automático a través de estos problemas centrales de optimización. Por un lado, la teoría de la programación matemática proporciona una definición de lo que constituye una solución óptima: las condiciones de optimización. Por otro lado, los algoritmos de programación matemática equipan a los investigadores de aprendizaje automático con herramientas para capacitar a grandes familias de modelos.

Machine Learning es optimización numérica.

La optimización matemática incluye técnicas analíticas (como el cálculo, multiplicadores de lagrange, métodos variacionales, etc.) que se pueden utilizar para saltar directamente a una respuesta en lugar del proceso iterativo de un enfoque numérico.

En la práctica, las técnicas numéricas y analíticas a menudo se usan de manera híbrida. Por ejemplo, uno puede estimar numéricamente un multiplicador lagrangiano y luego usar esta estimación para deducir una solución analítica que se acerque a la solución verdadera.

Otro ejemplo sería la reducción del sistema propio. Analíticamente, esto es simplemente resolver la ecuación característica de una matriz, pero las matrices de orden 5 o superior a menudo no tienen solución analítica (teoría de galois), sin embargo, un vector adivinado, mejorado iterativamente, convergerá rápidamente al vector propio local. Una vez que se han convergido suficientes vectores (usando gram-schmidt), esta nueva matriz puede reducirse analíticamente a alta velocidad para obtener el sistema propio exacto. La reducción analítica de filas en matrices grandes directamente está plagada de problemas de redondeo, a menos que la matriz esté cerca de la diagonal.

Entonces, el aprendizaje automático es básicamente “usar la fuerza bruta de una computadora para esquivar el álgebra incómoda hasta que se puedan usar más métodos analíticos”. Recordando que el tiempo de la computadora es barato y preciso, mientras que el tiempo humano es costoso, propenso a errores, pero a menudo increíblemente creativo, es fácil ver por qué el aprendizaje automático es tan atractivo y efectivo. Hombre + Máquina = Aprendizaje automático.

Hay muchos casos, pero uno podría ser donde está creando un diccionario y desea utilizar la mejor rutina de clasificación. Querías un árbol equilibrado con esas palabras como las hojas. Desea utilizar el número mínimo de operaciones para colocar la palabra en el árbol y el número mínimo de operaciones o accesos al disco para acceder a la hoja. Ese es uno de esos casos.

O está utilizando un sistema de PNL basado en vectores. Desea maximizar la eficiencia en el almacenamiento y recuperación de palabras.

Afortunadamente, Google ha lanzado la biblioteca Tensorflow que ha optimizado matemáticamente las llamadas a funciones en su biblioteca. Por lo tanto, no hay necesidad de reinventar la rueda. Por supuesto, no revelaron TODOS sus secretos porque una parte importante de lo que hace que Google sea tan rápido reside en su diseño de hardware, que es un secreto muy guardado.

Como creo, la optimización se respeta a un conjunto específico de datos e intenta hacer algún cálculo de alguna manera y finalmente le dará una respuesta a este conjunto de datos; cuando entra otro conjunto de datos, es necesario repetir todo el proceso para obtener otra respuesta a los nuevos datos;

Pero para el ML, utiliza la optimización interna para entrenar un modelo. el modelo se usa para hacer predicciones para todos los datos que vienen.

En resumen, ML tiene capacidad de generalización (como aplicar experiencia previa a nuevos datos) mientras que la optimización es un algoritmo puro para encontrar algunos puntos / valores especiales para algunos datos.