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
f(x)=⎧⎩⎨1cos(x)−1if x≤0if 0<x<πif x≥π.
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.