L'apprentissage automatique traite souvent de l'optimisation d'une fonction qui comporte de nombreux minimas locaux. Les réseaux de neurones à action directe avec des unités cachées en sont un bon exemple. Que ces fonctions soient discrètes ou continues, il n'existe aucune méthode permettant d'atteindre un minimum global et de s'arrêter. Il est facile de prouver qu'il n'y a pas d'algorithme général pour trouver un minimum global d'une fonction continue même si elle est unidimensionnelle et lisse (a une infinité de dérivées). Dans la pratique, tous les algorithmes d'apprentissage des réseaux de neurones sont coincés dans un minimum local. Il est facile de vérifier cela: créez un réseau neuronal aléatoire, créez un grand ensemble de ses réponses à des entrées aléatoires, puis essayez d'apprendre un autre réseau neuronal avec la même architecture pour copier les réponses. Bien que la solution parfaite existe, ni la rétropropagation ni aucun autre algorithme d'apprentissage ne pourront la découvrir,
Certaines méthodes d'apprentissage, comme le recuit simulé ou les algorithmes génétiques, explorent de nombreux minimas locaux. Pour les fonctions continues, il existe des méthodes comme la descente de gradient, qui trouvent le minimum local le plus proche. Ils sont beaucoup plus rapides, c'est pourquoi ils sont largement utilisés dans la pratique. Mais avec suffisamment de temps, l'ancien groupe de méthodes surpasse le dernier en termes d'erreur d'ensemble de formation. Mais avec des contraintes de temps raisonnables, pour les problèmes du monde réel, ce dernier groupe est généralement meilleur.
Pour certains modèles, comme la régression logistique, il existe un minimum local, la fonction est convexe, la minimisation converge vers le minimum, mais les modèles eux-mêmes sont simplistes.
C'est la vérité amère.
Notez également que la preuve de convergence et la preuve de convergence vers la meilleure solution sont deux choses différentes. L'algorithme K-means en est un exemple.
Enfin, pour certains modèles, nous ne savons pas du tout comment apprendre. Par exemple, si la sortie est une fonction arbitraire calculable des entrées, nous ne connaissons pas de bons algorithmes qui, dans un délai raisonnable, trouvent une machine de Turing ou équivalente implémentant cette fonction. Par exemple, si f (1) = 2, f (2) = 3, f (3) = 5, f (4) = 7, ..., f (10) = 29 (dix premiers nombres premiers), nous don Je ne connais aucun algorithme d'apprentissage qui serait capable de prédire, dans un délai raisonnable, que f (11) = 31, à moins qu'il ne connaisse déjà le concept de nombres premiers.