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.