El aprendizaje automático a menudo se ocupa de la optimización de una función que tiene muchos mínimos locales. Un buen ejemplo son las redes neuronales con unidades ocultas. Tanto si estas funciones son discretas como continuas, no existe ningún método que alcance un mínimo global y se detenga. Es fácil demostrar que no existe ningún 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 de aprendizaje de redes neuronales se atascan en un mínimo local. Es fácil comprobarlo: cree una red neuronal aleatoria, haga un gran conjunto de sus respuestas a entradas aleatorias y, a continuación, intente aprender otra red neuronal con la misma arquitectura para copiar las respuestas. Aunque la solución perfecta existe, ni la retropropagación ni ningún otro algoritmo de aprendizaje será capaz de descubrirla, partiendo de un conjunto aleatorio de pesos.
Algunos métodos de aprendizaje, como el recocido simulado o los algoritmos genéticos, exploran muchos mínimos locales. Para funciones continuas existen métodos como el descenso de gradiente, que encuentran el mínimo local más cercano. Son mucho más rápidos, por eso se utilizan mucho en la práctica. Pero si se dispone de tiempo suficiente, el primer grupo de métodos supera al segundo en términos de error del conjunto de entrenamiento. Pero con limitaciones de tiempo razonables, para los problemas del mundo real, el segundo grupo suele ser mejor.
Para algunos modelos, como la regresión logística, existe un mínimo local, la función es convexa, la minimización converge al mínimo, pero los modelos en sí son simplistas.
Esa es la amarga verdad.
Nótese 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 ello.
Por último, en algunos modelos no sabemos cómo aprender. Por ejemplo, si la salida es una función computable arbitraria de las 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 primos), no conocemos ningún algoritmo de aprendizaje que sea capaz de predecir, en un tiempo razonable, que f(11)=31, a menos que ya conozca el concepto de número primo.