¿Cuánto del aprendizaje automático es en realidad solo optimización?

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).

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.

Esta es una pregunta realmente difícil de responder. Es similar a preguntar, por ejemplo, cuánto de ML es solo álgebra lineal. El aprendizaje automático es un campo bastante vasto que incluye diferentes métodos y técnicas. Utiliza conceptos y herramientas de muchos juegos de herramientas diferentes, tales como optimización, estadística, álgebra, teoría de la computación … La optimización es un aspecto muy importante de algunos métodos, pero no tanto de otros.

De hecho, si toma una perspectiva particular sobre el aprendizaje automático, la optimización podría no ser un aspecto muy importante. Tome los elementos de aprendizaje estadístico de Hastie, Tibshirani y Friedman [1], por ejemplo. Se considera una de las referencias más importantes para el aprendizaje automático, y tiene muy pocas referencias a la optimización per se (tenga en cuenta que no lo digo como un complemento, sino simplemente como un hecho).

Otra forma de ver la pregunta es echar un vistazo al libro de optimización convexa de Boyd [2] y ver cuánto necesita saber si desea trabajar en ML. La respuesta es que nada de eso dolerá, por supuesto, pero es probable que pueda salirse con la suya al conocer un porcentaje muy pequeño y aún así tener una buena comprensión de los algoritmos de ML.

Notas al pie

[1] minería de datos, inferencia y predicción. 2da edición.

[2] Página en stanford.edu

Déjame darte mi opinión considerada: mucho, un poco .

El aprendizaje automático generalmente implica:

  1. Llegando a una buena formalización de su problema (la formalización generalmente será un modelo que tiene parámetros),
  2. Estimando los parámetros de su modelo,
  3. Aplicando su modelo a datos para los que no conoce las respuestas (inferencia).
  4. Observar, enjuagar y repetir.

Por supuesto, hay más en ML que lo anterior, pero este es un flujo de trabajo esquemático muy común.

Creo que lo que dices es una simplificación excesiva útil . # 2 es básicamente la optimización. E incluso más que eso: si realmente entiendes el # 2, entonces probablemente no temerás la diversidad de métodos en el # 1. En cierto sentido, puede ver el n. ° 2 como el “cuello de botella” a través del cual debe fluir finalmente el conjunto tremendamente diverso de técnicas de ML.

Déjame ser más específico. Para un gran subconjunto de técnicas en ML, el paso 1 implica modelar sus datos como resultado de algún gráfico de cálculos (por ejemplo, una red neuronal, una familia de distribución en la que realizar regresión o un tipo de clasificador) en los datos de entrada y salida. El Paso # 2 involucra estimar los parámetros de este gráfico computacional.

Hay varias capturas y advertencias, pero en realidad creo que la mayoría de ellas no son tan críticas. La única advertencia que creo que realmente importa es que, a veces, para que la estimación de parámetros y la inferencia sean manejables, debe comprender y apreciar los algoritmos , particularmente la programación dinámica. Un ejemplo típico es la estimación de parámetros en modelos gráficos.

Todos los demás tienen razón: el aprendizaje automático es un tema muy amplio, bla, bla. Pero creo que es casi justo decir que la optimización es el punto de estrangulamiento del aprendizaje automático.

Todo esto es totalmente subjetivo, por cierto. Y un buen argumento en contra de lo que he escrito es “¿qué hay que entender? Todo lo que necesita es el descenso de gradiente estocástico y una comprensión de cómo el cálculo es aplicable a los gráficos computacionales. La no convexidad no es tan importante; tanto para el importancia de la optimización convexa “. Hm, buen punto, interlocutor imaginado, ¡eso también es una simplificación excesiva útil!

Realmente me gustó esta pregunta porque es muy provocativa.

Cuando se publica el nuevo artículo, ¿qué es lo primero que ves después de la introducción? Los autores proporcionan el razonamiento que condujo a la creación del método. Desiredata, restricciones matemáticas y específicas de campo, etc. Luego explican el algoritmo. Y solo después de eso, cuando se describen todos los trucos, núcleos y distribuciones de hashing, se ve ese glorioso [math] \ operatorname {argmax} [/ math].

La optimización entra en juego cuando comienzas a hablar sobre funciones parametrizadas. Los métodos más simples no están parametrizados, por lo que no hay nada de qué hablar. kNN y regresión lineal son los primeros que vienen a la mente. Y el complejo tiene mucho detrás de ellos, por ejemplo, todo el concepto de incrustaciones de vectores que transfieren similitud semántica en proximidad espacial o acumulación iterativa de patrones complejos en redes convolucionales permanecen igual mientras cambian los métodos de optimización: puede usar SGD o Adagrad , la diferencia solo en el tiempo de cálculo.

El aprendizaje automático es un campo muy matemático y la optimización es solo una forma de conectar algunos métodos al mundo de las computadoras.

Los dos campos pueden estar muy relacionados entre sí. A veces, la optimización es solo una herramienta que utiliza el aprendizaje automático y, por lo tanto, los dos pueden estar bastante divorciados a nivel conceptual. Otras veces, realmente tienes que pensar profundamente sobre la interacción entre el aprendizaje automático y la optimización.

Por ejemplo, si solo desea entrenar un modelo dentro de un cierto nivel de precisión (es decir, dentro del 5% del modelo óptimo), eso puede implicar un gran ahorro computacional durante el entrenamiento / optimización. El caso más simple es codificar el requisito de precisión estadística como un criterio de convergencia aproximado en el solucionador de optimización subyacente.

Sin embargo, existen claramente problemas en el aprendizaje automático que trascienden la optimización. En particular, la optimización generalmente supone la existencia de una función objetivo. Sin embargo, el diseño de dicha función objetivo está típicamente más allá del alcance de la optimización.

Considero que la optimización es la segunda parte de los modelos ML. La primera parte es tener una función para optimizar y esta parte puede ser la razón por la cual las personas hacen un doctorado.

La idea del aprendizaje automático es hacer que la máquina aprenda de los datos y se desempeñe mejor y mejor. Sin embargo, la máquina nunca entiende lo que quieres decir con “predecir las tasas de interés” o “vencerme en G0”. Entonces debe tener una medida cuantitativa del rendimiento para que la máquina sepa que la acción A es mejor que la acción B.

Vamos a predecir los precios de la vivienda. Un buen modelo debe predecir los precios con precisión, pero en realidad, es imposible predecirlo perfectamente. Tienes que permitir que ocurran errores. Luego ajusta una curva y minimiza los errores, específicamente minimiza la suma de los errores al cuadrado.

Si desea reducir las dimensiones de los datos, puede hacer un PCA. La primera PC captura la varianza máxima. Las PC posteriores capturan el resto de la variación y todas las PC no están correlacionadas. Además, si asume la normalidad, el PCA probabilístico también ofrece las mismas soluciones cuando maximiza la función de probabilidad.

Continuando, puede argumentar que la mayoría de los modelos de ML, como k-means, regresión logística, redes neutrales son básicamente lo mismo que todo se puede explicar desde una perspectiva de optimización (la inferencia bayesiana puede no serlo, si cree que es ML).

Mi punto es que idear la función (significado o práctica) que refleje el rendimiento y pueda optimizarse es una parte más importante para mí. Puede ser extremadamente difícil. Algunas personas, incluido yo mismo, pueden pasar el 90% del tiempo en un proyecto para encontrarlo. Entonces comienza el ciclo: la función logística falla >> prueba la red neutral >> falla nuevamente >> prueba una cerveza …

Personalmente considero las técnicas de optimización como una herramienta.

Así es como lo veo:

La optimización cae en el dominio de las matemáticas . Los problemas matemáticos están matemáticamente bien definidos, es decir, hay alguna respuesta que puede obtenerse y verificarse como verdadera dada la potencia y el tiempo computacionales infinitos. La optimización cae en esta categoría: dado un problema de optimización, en principio puede encontrar una solución al problema, sin ambigüedad alguna.

El aprendizaje automático, por otro lado, cae en el dominio de la ingeniería . Los problemas de ingeniería a menudo no están matemáticamente bien definidos. Por ejemplo, considere el problema del reconocimiento facial. No existe una formulación matemática precisa que describa inequívocamente el problema. Es decir, dadas 100 imágenes de una persona y un poder y tiempo computacionales infinitos, ¿hay alguna manera infalible de reconocer una foto invisible de esa persona? ¡No!

La ingeniería se trata de analizar tales sistemas y de crear un “modelo” que explique aproximadamente el comportamiento del sistema. Este modelo ahora es susceptible de tratamiento matemático, utilizando técnicas matemáticas estándar. Esta es precisamente la relación entre el aprendizaje automático y la optimización: el aprendizaje automático implica elaborar un modelo matemático para un problema, que a menudo resulta ser un problema de optimización, que ahora se puede resolver utilizando técnicas matemáticas.

Mis 2 centavos de pensamiento ya que no es exactamente mi campo:

La optimización en el sentido de un ajuste de datos óptimo se utiliza en las siguientes técnicas bien conocidas:

-k-significa algoritmo de agrupación: Sí.

-Redes neuronales: sí.

-PCA: no.

-Regresiones: sí.

-SVMs: Sí.

-Árboles de decisión: no mucho, ya que incorpora otras teorías (por ejemplo, la teoría de la entropía).

-Validación cruzada: hasta cierto punto sí.

En general, creo que es una simplificación llamar a ML solo optimización porque involucra otras técnicas y teorías además de la optimización.

La respuesta simple es muy poco.

Si contrastamos Machine Learning y Optimization solo unos con respecto a otros, entonces Machine Learning se trata más de lograr un objetivo de optimización, mientras que Optimization se trata de resolver un problema de optimización siempre que se otorgue un objetivo de optimización.

El problema es que simplemente no sabemos qué objetivo de optimización usar en el conjunto de entrenamiento para lograr la máxima generalización de datos no vistos.

Más allá del estándar “encontrar parámetros que hacen un buen trabajo en el conjunto de entrenamiento”, a veces agregamos cosas como la regularización L1 o L2, a veces inventamos cosas como márgenes máximos, creamos diferentes modelos paramétricos que por alguna razón a veces funcionan mejor o peor. El campo del aprendizaje automático trata de encontrar diferentes funciones objetivas y entender cuándo agregar la regularización L1 o L2 (por ejemplo) es útil y por qué.

Y estos son solo los ejemplos en el caso más claramente definido de aprendizaje supervisado. Si nos aventuramos en el ámbito del aprendizaje no supervisado, simplemente nos perdemos en la fase de definición del problema y realmente no sabemos qué objetivo de optimización deberíamos usar.

Ciertamente no todo.
Esencialmente, la optimización se utiliza para inducir un modelo, pero no necesariamente se limita a él.

La optimización es solo la mitad de la historia. El otro es la exploración, que implica una gama sorprendentemente amplia y profunda de técnicas de reconocimiento de patrones. ML es el matrimonio de ambos.

More Interesting

¿Cómo es trabajar en problemas de aprendizaje automático en un entorno empresarial?

¿Qué profesores / grupos / laboratorios están trabajando en el aprendizaje profundo en el MIT?

Yoshua Bengio: ¿Será el aprendizaje profundo un paso hacia la IA consciente?

¿Qué algoritmo de aprendizaje automático puede dar la mejor solución para la clasificación no lineal?

¿Por qué Microsoft decidió usar bosques aleatorios en el Kinect?

¿Cómo analizaría programáticamente una oración y decidiría si responde con "eso es lo que dijo"? Resuma un algoritmo que, dada una oración, devuelve verdadero o falso para determinar si la declaración es apropiada.

¿Cuáles son los ejemplos de redes neuronales profundas extremas (más de 150 capas)?

Cómo detectar si una imagen contiene uno o más rostros humanos

¿Qué saben los profesionales del aprendizaje automático y los científicos de datos de la industria sobre el análisis, la probabilidad basada en la teoría de la medida y el álgebra lineal numérica?

¿Qué puedo hacer si soy un experto en aprendizaje automático supervisado?

¿Qué es mejor: un tema fundamental de doctorado de ML o uno aplicado?

¿Qué métricas debo usar para evaluar un modelo generativo cuantitativamente y qué tan confiables son?

¿Cuál es la diferencia entre los diferentes tipos de funciones de activación para redes neuronales y por qué es importante elegir una sobre otra?

¿Cuáles son los conjuntos de datos de visión por computadora más populares en este momento?

¿Cuál es la mejor computadora portátil que puedo obtener para aprender el aprendizaje profundo con CUDA?