Je connais l'algorithme de descente de gradient qui peut trouver le minimum local (maximum) d'une fonction donnée.
Y a-t-il une modification de la descente du gradient qui permet de trouver le minimum absolu (maximum), où la fonction a plusieurs extrema locaux?
Existe-t-il des techniques générales, comment améliorer un algorithme qui peut trouver l'extremum local, pour trouver l'extremum absolu?
Réponses:
Je suppose que vous parlez de minimisation sans contrainte. Votre question doit préciser si vous envisagez une structure de problème spécifique. Sinon, la réponse est non.
Je dois d'abord dissiper un mythe. La méthode classique de descente en gradient (également appelée méthode de descente la plus raide ) n'est même pas garantie de trouver un minimiseur local. Il s'arrête lorsqu'il a trouvé un point critique de premier ordre, c'est-à-dire un point où le gradient disparaît. Selon la fonction particulière minimisée et le point de départ, vous pouvez très bien vous retrouver à un point de selle ou même à un maximiseur global!
Considérons par exemple et le point initial . La direction de descente la plus abrupte est . Une étape de la méthode avec recherche de ligne exacte vous laisse à où le gradient disparaît. Hélas, c'est un point de selle. Vous vous en rendriez compte en examinant les conditions d'optimalité de second ordre. Mais imaginez maintenant que la fonction est . Ici, est toujours un point de selle, mais numériquement, les conditions de second ordre peuvent ne pas vous le dire. En général, supposons que vous déterminez que la Hesse a une valeur propre égale àf(x,y)=x2−y2 (x0,y0):=(1,0) −∇f(1,0)=(−2,0) (0,0) f(x,y)=x2−10−16y2 ∇ 2 f ( x * , y * ) - dix - seize + dix - seize(0,0) ∇2f(x∗,y∗) −10−16 . Comment le lisez-vous? S'agit-il d'une courbure négative ou d'une erreur numérique? Que diriez-vous de ?+10−16
Considérons maintenant une fonction telle que
Cette fonction est parfaitement fluide, mais si votre point initial est , l'algorithme s'arrête à un maximiseur global. Et en vérifiant les conditions d'optimalité du second ordre, vous ne le sauriez pas! Le problème ici est que certains minimiseurs locaux sont des maximiseurs globaux!x0=−2
Désormais, pratiquement toutes les méthodes d'optimisation basées sur le gradient en souffrent par leur conception. Votre question concerne vraiment l'optimisation globale . Encore une fois, la réponse est non, il n'y a pas de recettes générales pour modifier une méthode afin de garantir qu'un minimiseur global est identifié. Demandez-vous simplement: si l'algorithme renvoie une valeur et dit qu'il s'agit d'un minimiseur global, comment vérifieriez-vous que c'est vrai?
Il existe des classes de méthodes dans l'optimisation globale. Certains introduisent la randomisation. Certains utilisent des stratégies à départs multiples. Certains exploitent la structure du problème, mais ce sont des cas particuliers. Prenez un livre sur l'optimisation globale. Vous l'apprécierez.
la source
Il n'y a probablement pas de réponse unique à votre question. Mais vous voudrez peut-être étudier les algorithmes de recuit simulé ou d'autres approches qui s'appuient sur les méthodes de la chaîne de Markov Monte Carlo (MCMC). Celles-ci peuvent également être combinées avec des méthodes locales comme la descente de gradient.
la source
il existe de nombreuses références sur "l'optimisation globale des réseaux de neurones". les techniques sont similaires au recuit simulé [voir autre réponse]. l'idée de base est de redémarrer la descente du gradient du réseau à partir de nombreux points de départ de poids différents, échantillonnés de manière aléatoire ou systématique. chaque résultat de la descente de gradient est alors comme un "échantillon". plus il y a d'échantillons, plus il est probable que l'un des échantillons soit l'optimum global, surtout si la fonction cible est "bien comportée" dans le sens de continu, différenciable, etc.
refs en ligne
[1] Optimisation globale des poids des réseaux de neurones par Hamm et al
[2] Une approche d'optimisation globale de la formation des réseaux de neurones Voglis / Lagaris
[3] Calibration des réseaux de neurones artificiels par Global Optimization Pinter
[4] Optimisation globale des réseaux de neurones à l'aide d'une approche hybride déterministe Beliakov
[5] Optimisation globale pour la formation des réseaux de neurones Shang / Wah
la source
En général, il est difficile sur le plan informatique d'optimiser les fonctions non convexes multivariées. La dureté se décline en différentes saveurs (cryptographiques, NP-hard). Une façon de voir cela est que les modèles de mélange (tels que le mélange de Guassiens ou de HMM) sont difficiles à apprendre, mais seraient faciles (*) s'il était possible de maximiser efficacement la probabilité. Pour les résultats sur la dureté de l'apprentissage des HMM, voir http://alex.smola.org/journalclub/AbeWar92.pdf http://link.springer.com/chapter/10.1007%2F3-540-45678-3_36 http: // www.math.ru.nl/~terwijn/publications/icgiFinal.pdf
(*) modulo les conditions habituelles de non-génération et identifiabilité
la source
je dois être en désaccord avec Dominique. il a été démontré par hajek au milieu des années 1980 que le recuit d'un problème non convexe dans certaines conditions strictes est garanti d'atteindre le minimum global: http://dx.doi.org/10.1287/moor.13.2.311
la source