Recientemente hubo una pregunta similar a ML sobre el intercambio de pilas de teoría, y publiqué una respuesta recomendando el método de Powell, el descenso de gradiente, los algoritmos genéticos u otros "algoritmos de aproximación". En un comentario, alguien me dijo que estos métodos eran "heurísticos" y no "algoritmos de aproximación" y con frecuencia no se acercaban al óptimo teórico (porque "a menudo se atascan en los mínimos locales").
¿Están otros de acuerdo con eso? Además, me parece que hay una sensación de qué algoritmos heurísticos se pueden garantizar que se acerquen a los óptimos teóricos si están configurados para explorar una gran parte del espacio de búsqueda (por ejemplo, establecer parámetros / tamaños de paso pequeños), aunque no tengo No he visto eso en un periódico. ¿Alguien sabe si esto se ha demostrado o probado en un documento? (si no es para una gran clase de algoritmos, tal vez para una clase pequeña, digamos NN, etc.)
Respuestas:
Creo que estás mezclando múltiples conceptos importantes. Déjame intentar aclarar un par de cosas:
Existen métodos metaheurísticos, que son métodos que intentan iterativamente mejorar una solución candidata. Ejemplos de esto son la búsqueda tabú, el recocido simulado, los algoritmos genéticos, etc. Observe que si bien puede haber muchos casos en que estos métodos funcionan bien, no hay una comprensión profunda de cuándo funcionan y cuándo no. Y lo más importante cuando no llegan a la solución, podemos estar arbitrariamente lejos de ella. Los problemas resueltos por métodos metaheurísticos tienden a ser de naturaleza discreta, porque existen herramientas mucho mejores para manejar problemas continuos. Pero de vez en cuando también se ven metaheurísticas para problemas continuos.
Existen métodos de optimización numérica, las personas de esta comunidad examinan cuidadosamente la naturaleza de la función que se debe optimizar y las restricciones de la solución (en grupos como la optimización convexa, la programación cuadrática, la programación lineal, etc.) y aplican los algoritmos que se han mostrado. trabajar para ese tipo de función y ese tipo de restricciones. Cuando la gente en esta área dice "demostrado que funciona", significan una prueba. La situación es que este tipo de métodos funcionan en problemas continuos. Pero cuando su problema cae en esta categoría, esta es definitivamente la herramienta a utilizar.
Existen métodos de optimización discretos, que tienden a ser cosas que en la naturaleza están conectadas a algoritmos a problemas discretos bien estudiados: como rutas más cortas, flujo máximo, etc. A las personas en esta área también les importa que sus algoritmos realmente funcionen (pruebas). Hay un subconjunto de personas en este grupo que estudian problemas realmente difíciles para los cuales no se espera que exista un algoritmo rápido. Luego estudian algoritmos de aproximación, que son algoritmos rápidos para los cuales pueden demostrar que su solución está dentro de un factor constante del óptimo óptimo. Esto se llama "algoritmos de aproximación". Estas personas también muestran sus resultados como pruebas.
Entonces ... para responder a su pregunta, no creo que las metaheurísticas sean algoritmos de aproximación. No me parece algo relacionado con la opinión, es solo un hecho.
fuente
El aprendizaje automático a menudo se ocupa de la optimización de una función que tiene muchas minimas locales. Las redes neuronales de avance con unidades ocultas son un buen ejemplo. Si estas funciones son discretas o continuas, no existe un método que logre un mínimo global y se detenga. Es fácil demostrar que no existe un algoritmo general para encontrar un mínimo global de una función continua, incluso si es unidimensional y suave (tiene infinitas derivadas). En la práctica, todos los algoritmos para el aprendizaje de redes neuronales se pegan a un mínimo local. Es fácil verificar esto: cree una red neuronal aleatoria, haga un gran conjunto de sus respuestas a entradas aleatorias, luego intente aprender otra red neuronal con la misma arquitectura para copiar las respuestas. Si bien existe la solución perfecta, ni la retropropagación ni ningún otro algoritmo de aprendizaje podrán descubrirla,
Algunos métodos de aprendizaje, como el recocido simulado o los algoritmos genéticos, exploran muchas minimas locales. Para funciones continuas hay métodos como el descenso de gradiente, que encuentra el mínimo local más cercano. Son mucho más rápidos, por eso son ampliamente utilizados en la práctica. Pero dado el tiempo suficiente, el primer grupo de métodos supera al segundo en términos de error de conjunto de entrenamiento. Pero con limitaciones de tiempo razonables, para problemas del mundo real, este último grupo suele ser mejor.
Para algunos modelos, como la regresión logística, hay un mínimo local, la función es convexa, la minimización converge al mínimo, pero los modelos mismos son simplistas.
Esa es la amarga verdad.
Tenga en cuenta también que la prueba de convergencia y la prueba de convergencia a la mejor solución son dos cosas diferentes. El algoritmo K-means es un ejemplo de esto.
Finalmente, para algunos modelos no sabemos cómo aprender en absoluto. Por ejemplo, si la salida es una función computable arbitraria de entradas, no conocemos buenos algoritmos que, en un tiempo razonable, encuentren una máquina de Turing o equivalente que implemente esta función. Por ejemplo, si f (1) = 2, f (2) = 3, f (3) = 5, f (4) = 7, ..., f (10) = 29 (diez primeros números primos), no No conozco ningún algoritmo de aprendizaje que pueda predecir, en un tiempo razonable, que f (11) = 31, a menos que ya conozca el concepto de números primos.
fuente