Quería saber cuánto del aprendizaje automático requiere optimización. Por lo que he escuchado, las estadísticas son un tema matemático importante para las personas que trabajan con el aprendizaje automático. Del mismo modo, ¿qué importancia tiene para alguien que trabaja con el aprendizaje automático aprender sobre la optimización convexa o no convexa?
machine-learning
optimization
Ronald Grayson
fuente
fuente
Respuestas:
La forma en que lo veo es que las estadísticas / aprendizaje automático le dicen lo que debe optimizar, y la optimización es cómo lo hace realmente.
Por ejemplo, considere la regresión lineal con donde y . Las estadísticas nos dicen que este es (a menudo) un buen modelo, pero encontramos nuestra estimación real al resolver un problema de optimizaciónE ( ε ) = 0 V a r ( ε ) = σ 2 I βY= Xβ+ ε mi( ε ) = 0 Va r ( ε ) = σ2yo β^
Conocemos las propiedades de a través de estadísticas, por lo que sabemos que este es un buen problema de optimización para resolver. En este caso, es una optimización fácil, pero todavía muestra el principio general.β^
En términos más generales, gran parte del aprendizaje automático se puede ver como resolver donde estoy escribiendo esto sin regularización, pero eso podría agregarse fácilmente.
Una gran cantidad de investigación en teoría del aprendizaje estadístico (SLT) ha estudiado las propiedades de estos argumentos, si son asintóticamente óptimos o no, cómo se relacionan con la complejidad de y muchas otras cosas similares. Pero cuando realmente quieres obtener , a menudo terminas con una optimización difícil y es un conjunto completamente diferente de personas que estudian ese problema. Creo que la historia de SVM es un buen ejemplo aquí. Tenemos gente de SLT como Vapnik y Cortes (y muchos otros) que mostraron cómo SVM es un buen problema de optimización para resolver. Pero luego fueron otros, como John Platt y los autores de LIBSVM, quienes hicieron esto factible en la práctica.F F^
Para responder a su pregunta exacta, conocer cierta optimización es ciertamente útil, pero generalmente nadie es un experto en todas estas áreas, por lo que aprenderá tanto como pueda, pero algunos aspectos siempre serán algo así como una caja negra para usted. Tal vez no haya estudiado adecuadamente los resultados de SLT detrás de su algoritmo ML favorito, o tal vez no conozca el funcionamiento interno del optimizador que está utilizando. Es un viaje de toda la vida.
fuente
En la práctica, muchos paquetes se encargan de la optimización y de la mayoría de los detalles matemáticos. Por ejemplo, TensorFlow puede hacer backprop + descenso de gradiente estocástico para entrenar redes neuronales automáticamente (solo tiene que especificar la velocidad de aprendizaje). Las herramientas de ML de scikit-learn generalmente no requieren que usted sepa realmente cómo se produce realmente la optimización, pero tal vez solo configure algunos parámetros de ajuste y se encargue del resto (por ejemplo, el número de iteraciones para las que se ejecuta el optimizador). Por ejemplo, puede entrenar un SVM sin saber nada de matemáticas en scikit-learn; solo ingrese los datos, el tipo de núcleo y continúe.
Dicho esto, conocer la optimización básica (por ejemplo, a nivel de optimización convexa de Boyd y Vandenberghe / programación no lineal de Bertsekas) puede ser útil en el diseño y análisis de algoritmos / problemas, especialmente si está trabajando en cuestiones teóricas. O, implementando los algoritmos de optimización usted mismo.
Tenga en cuenta que los métodos de optimización de libros de texto a menudo necesitan ajustes para funcionar realmente en la práctica en entornos modernos; por ejemplo, es posible que no use el descenso de gradiente estocástico clásico de Robbins-Munroe, sino una variante acelerada más rápida. Sin embargo, puede obtener algunas ideas al trabajar con los problemas de optimización.
fuente