Como otros han mencionado, el aprendizaje automático es mucho más que una simple optimización, y si está trabajando en ML aplicado, conocer los conceptos básicos de la optimización generalmente será suficiente para que la mayoría de los algoritmos funcionen. Ahora, en el lado de la investigación de ML, las cosas son bastante diferentes, y la optimización juega un papel clave, en particular para desarrollar algoritmos de aprendizaje eficientes y escalables.
La optimización es solo una herramienta en la caja de herramientas ML
Muchos de los problemas que surgen en el aprendizaje automático tienen que ver con el modelado, por ejemplo, con modelos probabilísticos (gráficos), encontrar buenos estimadores estadísticos, generalizar bien, lidiar con compensaciones de exploración / explotación, etc. y la optimización generalmente sirve simplemente como una herramienta para estimar parámetros de un modelo (aunque el muestreo también puede servir para este propósito en algunos casos).
- ¿Qué piensa la gente del concurso Quora ML CodeSprint 2013?
- ¿Por qué los investigadores de IA se centran solo en problemas de regresión y clasificación?
- ¿Puede explicar la optimización convexa sin matrices de arpillera y solo la segunda derivada?
- Si quiero trabajar en Machine Learning e Inteligencia artificial, ¿debería especializarme en Matemáticas / CS o Estadísticas / CS?
- ¿Se utilizan algoritmos evolutivos como PSO en el aprendizaje profundo para encontrar pesos óptimos?
En el uso cotidiano y práctico del aprendizaje automático, la mayor parte del trabajo suele ser el modelado, la elección de los algoritmos correctos, la ingeniería de características y la evaluación; el algoritmo de optimización subyacente no hace una gran diferencia y a menudo se abstrae del usuario cuando se usan bibliotecas ML, o si uno necesita profundizar e implementar algoritmos, a menudo los métodos simples de primer orden de propósito general funcionan bien. En el aprendizaje profundo, la mayor parte de la innovación proviene de plantear los objetivos correctos y definir las arquitecturas de red adecuadas, y cuando se trata de la optimización, generalmente el algoritmo de descenso de gradiente estocástico muy básico hace el trabajo. En este sentido, estoy de acuerdo con Xavier en que no necesita saber tanto sobre la optimización para trabajar en ML.
La optimización es esencial para desarrollar algoritmos de aprendizaje y es una gran parte de la investigación de ML
Cuando se trata de desarrollar algoritmos eficientes y escalables para resolver problemas de aprendizaje automático, la optimización es un ingrediente muy importante y ha sido la clave de muchos éxitos del aprendizaje automático en los últimos 15-20 años, especialmente para ampliar algoritmos a grandes conjuntos de datos y / o modelos complejos, comenzando por el “redescubrimiento” del descenso de gradiente estocástico y el desarrollo de solucionadores eficientes para máquinas de vectores de soporte.
Incluso en los últimos años, si observa los trabajos de investigación publicados en las principales conferencias de aprendizaje automático como NIPS e ICML, una gran parte de ellos trata de la optimización: probablemente ha sido la categoría principal en términos de cantidad de trabajos en los últimos dos años. años, tal vez después de un aprendizaje profundo.
Lo que hace que la optimización sea importante en la investigación de ML es que los problemas de optimización encontrados en ML pueden ser bastante desafiantes y han requerido el desarrollo de nuevos algoritmos apropiados, que no se habían descubierto previamente en la comunidad de optimización. Esto también explica en parte por qué muchas técnicas de optimización útiles en ML podrían no aparecer en los libros introductorios de optimización, como la Optimización convexa de Boyd y Vandenberghe. Ejemplos de estos desafíos son la escalabilidad de reglas simples de minimización de riesgos empíricos a grandes conjuntos de datos, incluidos algoritmos paralelos y distribuidos, que tratan problemas con estructura compleja (por ejemplo, en imágenes, lenguaje natural, biología computacional, redes), optimización en línea, problemas con objetivos no observables (optimización sin gradiente o bayesiana, exploración-explotación), muchos problemas no convexos (por ejemplo, modelos de variables latentes, modelos de factorización matricial, redes neuronales).
El aprendizaje profundo es su propia historia, ya que las técnicas de optimización que pueden resolverlo se han limitado principalmente a (variantes de) descenso de gradiente estocástico. Sin embargo, muchos de los avances recientes que condujeron a su éxito implicaron mejoras en la optimización, por ejemplo, cambiando la estructura del objetivo (por ejemplo, funciones de activación que evitan mesetas como ReLU), encontrando mejores inicializaciones que tienen menos probabilidades de atascarse, o escalando a conjuntos de datos más grandes usando SGD (aunque esto es menos reciente).
En general, la optimización ciertamente juega un papel central en el aprendizaje automático, y es cada vez más común que los investigadores del aprendizaje automático contribuyan a la optimización y viceversa. Dicho esto, para los usos más prácticos del día a día del aprendizaje automático, la optimización generalmente es solo una herramienta en la caja de herramientas, y solo conocer el material introductorio es probablemente lo suficientemente bueno.