AccueilđŸ‡«đŸ‡·Chercher

Algorithme du gradient

L'algorithme du gradient, aussi appelé algorithme de descente de gradient, désigne un algorithme d'optimisation différentiable. Il est par conséquent destiné à minimiser une fonction réelle différentiable définie sur un espace euclidien (par exemple, , l'espace des n-uplets de nombres réels, muni d'un produit scalaire) ou, plus généralement, sur un espace hilbertien. L'algorithme est itératif et procÚde donc par améliorations successives. Au point courant, un déplacement est effectué dans la direction opposée au gradient, de maniÚre à faire décroßtre la fonction. Le déplacement le long de cette direction est déterminé par la technique numérique connue sous le nom de recherche linéaire. Cette description montre que l'algorithme fait partie de la famille des algorithmes à directions de descente.

Les algorithmes d'optimisation sont généralement écrits pour minimiser une fonction. Si l'on désire maximiser une fonction, il suffira de minimiser son opposée.

Il est important de garder à l'esprit le fait que le gradient, et donc la direction de déplacement, dépend du produit scalaire qui équipe l'espace hilbertien ; l'efficacité de l'algorithme dépend donc de ce produit scalaire.

L'algorithme du gradient est également connu sous le nom d'algorithme de la plus forte pente ou de la plus profonde descente (steepest descent, en anglais) parce que le gradient est la pente de la fonction linéarisée au point courant et est donc, localement, sa plus forte pente (notion qui dépend du produit scalaire).

Dans sa version la plus simple, l'algorithme ne permet de trouver ou d'approcher qu'un point stationnaire (i.e., un point en lequel le gradient de la fonction Ă  minimiser est nul) d'un problĂšme d'optimisation sans contrainte. De tels points sont des minima globaux, si la fonction est convexe. Des extensions sont connues pour les problĂšmes avec contraintes simples, par exemple des contraintes de borne. MalgrĂ© des rĂ©sultats de convergence thĂ©oriques satisfaisants, cet algorithme est gĂ©nĂ©ralement lent si le produit scalaire dĂ©finissant le gradient ne varie pas avec le point courant de maniĂšre convenable, c'est-Ă -dire si l'espace vectoriel n'est pas muni d'une structure riemannienne appropriĂ©e, d'ailleurs difficilement spĂ©cifiable a priori. Il est donc franchement Ă  dĂ©conseiller, mĂȘme pour minimiser une fonction quadratique strictement convexe de deux variables. Toutefois, ses qualitĂ©s thĂ©oriques font que l'algorithme sert de modĂšle Ă  la famille des algorithmes Ă  directions de descente ou de sauvegarde dans les algorithmes Ă  rĂ©gions de confiance.

Le principe de cet algorithme remonte au moins Ă  Cauchy (1847)[1].

L'algorithme

Soient un espace hilbertien (produit scalaire noté et norme associée notée ) et une fonction différentiable. On note la différentielle de en et le gradient de en , si bien que pour tout direction , [2].

Algorithme du gradient — On se donne un point/itĂ©rĂ© initial et un seuil de tolĂ©rance . L'algorithme du gradient dĂ©finit une suite d'itĂ©rĂ©s , jusqu'Ă  ce qu'un test d'arrĂȘt soit satisfait. Il passe de Ă  par les Ă©tapes suivantes.

  1. Simulation : calcul de .
  2. Test d'arrĂȘt : si , arrĂȘt.
  3. Calcul du pas par une rÚgle de recherche linéaire sur en le long de la direction .
  4. Nouvel itéré :

En pratique, il faudra prendre ; la valeur nulle de cette tolérance a été admise uniquement pour simplifier l'expression des résultats de convergence ci-dessous.

Cet algorithme structurellement trÚs simple repose sur le fait que, dans le voisinage d'un point , la fonction décroßt le plus fortement dans la direction opposée à celle du gradient de en , à savoir dans la direction . De maniÚre plus précise, cette affirmation exprime en termes suggestifs le fait que, si , la solution du problÚme d'optimisation

est la direction , orientée donc vers l'opposé du gradient[3].

La notion de direction de plus forte pente est en fait mal dĂ©finie car elle dĂ©pend fortement du produit scalaire que l'on se donne sur l'espace hilbertien . En effet, si est un autre produit scalaire sur , il existe un opĂ©rateur linĂ©aire continu auto-adjoint et dĂ©fini positif tel que si bien que le gradient de en pour ce dernier produit scalaire s'Ă©crit , ce qui montre explicitement la dĂ©pendance du gradient par rapport au produit scalaire. Il n'y a donc pas une unique direction de plus forte pente, ce qui n'apparaĂźt pas clairement dans l'affirmation faite au dĂ©but du paragraphe prĂ©cĂ©dent. On peut mĂȘme montrer que toute direction de descente de en , c'est-Ă -dire toute direction telle , est l'opposĂ© du gradient de en pour un certain produit scalaire[4]. L'efficacitĂ© de l'algorithme du gradient dĂ©pendra donc du choix de ce produit scalaire.

Si , la direction est une direction de descente de en , puisque , si bien que pour tout assez petit, on a

.

Grùce à la recherche linéaire, tant que , l'algorithme fait décroßtre la fonction strictement à chaque itération :

L'algorithme du gradient peut s'utiliser lorsque l'espace vectoriel sur lequel est dĂ©finie la fonction Ă  minimiser est de dimension infinie[5]. Dans ce cas, l'algorithme n'est pas implĂ©mentable, mais son Ă©tude peut avoir un intĂ©rĂȘt pour connaĂźtre son comportement en grande dimension ou pour en utiliser les propriĂ©tĂ©s de convergence Ă  des fins thĂ©oriques.

L'algorithme du gradient peut s'interpréter comme la méthode d'Euler explicite de résolution de l'équation différentielle ordinaire (flot du gradient), avec un pas de discrétisation adapté à l'itération courante par la recherche linéaire.

RĂ©sultats de convergence

ProblĂšmes quadratiques

On considĂšre dans un premier temps le cas oĂč le critĂšre est une fonction quadratique strictement convexe, dĂ©finie sur un espace euclidien (donc de dimension finie) :

oĂč et est un opĂ©rateur auto-adjoint dĂ©fini positif. Dans ce cas, l'algorithme du gradient avec recherche linĂ©aire exacte (i.e., Ă  chaque itĂ©ration le critĂšre est minimisĂ© le long de la direction opposĂ©e au gradient) converge q-linĂ©airement vers l'unique minimum du problĂšme. De maniĂšre plus prĂ©cise, on a le rĂ©sultat de convergence suivant, qui utilise le conditionnement du hessien H du critĂšre f, c'est-Ă -dire le rapport entre sa plus grande valeur propre et sa plus petite valeur propre ,

et la norme associée à H qui est définie par

Convergence sur une fonction quadratique strictement convexe — Soit f une fonction quadratique strictement convexe sur un espace euclidien, de hessien H. UtilisĂ© pour minimiser cette fonction, l'algorithme du gradient ci-dessus, avec et recherche linĂ©aire exacte, gĂ©nĂšre une suite convergeant q-linĂ©airement vers l'unique minimum x* de f. Plus prĂ©cisĂ©ment, on a

Comme , l'estimation de la vitesse de convergence ci-dessus s'applique aussi Ă  celle du critĂšre f(x) vers sa valeur optimale f(x*).

Ce rĂ©sultat pourrait paraĂźtre attrayant et laisser penser que l'algorithme du gradient est une mĂ©thode performante, mais en gĂ©nĂ©ral, ce n'est pas le cas. D'une part, la convergence linĂ©aire est une propriĂ©tĂ© relativement faible en optimisation diffĂ©rentiable, d'autant plus faible que le taux de convergence (ici ) est proche de 1. Cela se produit dans l'algorithme du gradient lorsque est grand, c'est-Ă -dire pour les problĂšmes mal conditionnĂ©s. À l'inverse, lorsque (i.e., le hessien est un multiple de l'identitĂ©), l'algorithme converge en 1 itĂ©ration. On rappelle par ailleurs que pour minimiser une fonction quadratique strictement convexe, l'algorithme du gradient conjuguĂ© ou toute mĂ©thode directe de rĂ©solution du systĂšme linĂ©aire associĂ© trouve le minimum en un nombre fini d'opĂ©rations (en arithmĂ©tique exacte), alors que l'algorithme du gradient requiert en gĂ©nĂ©ral un nombre infini d'itĂ©rations.

Exemples

Minimisation d'une fonction de 2 variables

Algorithme du gradient sur une fonction de type bol (vue en plan avec courbes de niveaux).

L'Ă©volution des itĂ©rĂ©s au cours de l'algorithme est illustrĂ©e sur la figure de droite : f est une fonction convexe de deux variables (dĂ©finie sur le plan ) et son graphe reprĂ©sente une forme de bol. Chaque courbe bleue reprĂ©sente une courbe de niveau de f, un lieu de points en lesquels f vaut une constante donnĂ©e. Chaque vecteur rouge reprĂ©sente un dĂ©placement , qui est orientĂ© suivant l'opposĂ© de la direction du gradient en xk. Ici, le gradient en xk est celui associĂ© au produit scalaire euclidien, si bien qu'il est orthogonal (pour le produit scalaire euclidien) Ă  la tangente en xk Ă  la courbe de niveau auquel xk appartient. La figure illustre la progression des itĂ©rĂ©s vers le fond du bol, c'est-Ă -dire vers le point oĂč la valeur de f est minimale.

Maximisation d'une fonction de 2 variables

Application de la méthode de remontée de gradient à la fonction



Une illustration de cette fonction trigonométrique, ci-dessus, permet de constater le caractÚre zigzagant de la méthode du gradient, dû au fait que le gradient d'un itéré est orthogonal au gradient du précédent. On notera que malgré la convergence de l'algorithme, cette derniÚre est relativement lente à cause de cette avancée en zigzag.

Problùme de terminaison de l’algorithme à pas constant

Un dĂ©faut facilement observable de l'algorithme du gradient Ă  pas constant, est sa non-convergence pour des pas trop Ă©levĂ©s, ce mĂȘme pour des fonctions qui en thĂ©orie devraient le faire converger. La fonction ci-dessous en est un cas typique. Dans la pratique avec un pas de 0.01 l'algorithme converge en moins 150 itĂ©rations. Mais si l'on dĂ©cide d'opter pour un pas de 0.1, l'algorithme ne convergera tout simplement pas. On pourra vĂ©rifier que l'algorithme boucle entre les deux mĂȘmes valeurs indĂ©finiment.

Points faibles, remĂšdes et extensions

L'algorithme du gradient peut rencontrer un certain nombre de problĂšmes, en particulier celui de la convergence lorsque le minimum de la fonction se trouve au fond d'une vallĂ©e Ă©troite (plus prĂ©cisĂ©ment lorsque le conditionnement de la matrice hessienne est Ă©levĂ©e). Dans un tel cas, la suite des {xk} oscille de part et d'autre de la vallĂ©e et progresse laborieusement, mĂȘme lorsque les αk sont choisis de sorte Ă  minimiser f(b).

La figure ci-dessous illustre ce type de comportement pour une fonction de Rosenbrock Ă  2 dimensions.

Deux points faibles de l'algorithme du gradient sont :

  • l'algorithme peut nĂ©cessiter de nombreuses itĂ©rations pour converger vers un minimum local, notamment si la courbure est trĂšs diffĂ©rente dans des directions diffĂ©rentes ;
  • la recherche du pas α optimal, gĂ©nĂ©ralement effectuĂ©e par une recherche linĂ©aire, peut se rĂ©vĂ©ler trĂšs longue. Inversement, utiliser un pas α fixe peut conduire Ă  de mauvais rĂ©sultats. Des mĂ©thodes comme la mĂ©thode de Newton et l'inversion de la matrice hessienne en complĂ©ment des techniques de gradient conjuguĂ© offrent souvent de meilleurs rĂ©sultats.

Amélioration et alternatives dans le cas général

L’amĂ©lioration la plus naturelle de l’algorithme est la mĂ©thode de Newton avec recherche linĂ©aire, dont la convergence est quadratique, et garantie si on dispose des hypothĂšses mentionnĂ©es dans RĂ©sultats de convergence.

Une alternative efficace est la mĂ©thode BFGS, qui consiste Ă  calculer en chaque Ă©tape une matrice, qui multipliĂ©e au gradient permet d’obtenir une meilleure direction. De plus, cette mĂ©thode peut ĂȘtre combinĂ©e avec une mĂ©thode plus efficace de recherche linĂ©aire afin d’obtenir la meilleure valeur de α.

L’algorithme du gradient est mal dĂ©fini pour minimiser des fonctions non lisses, mĂȘme si elles sont convexes. Lorsque le critĂšre est localement lipschitzien, et spĂ©cialement s’il est convexe, l’algorithme des faisceaux apporte un remĂšde Ă  l’absence de convergence[6].

Notes et références

(en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « Gradient descent » (voir la liste des auteurs).
  1. Augustin Cauchy, « MĂ©thode gĂ©nĂ©rale pour la rĂ©solution des systĂšmes d’équations simultanĂ©es », Comptes Rendus de l’AcadĂ©mie des Sciences de Paris, t. 25,‎ , p. 536-538 (lire en ligne).
  2. M. Annad, A. Lefkir, M. Mammar-kouadri et I. Bettahar, « Development of a local scour prediction model clustered by soil class », Water Practice and Technology, no wpt2021065,‎ (ISSN 1751-231X, DOI 10.2166/wpt.2021.065, lire en ligne, consultĂ© le )
  3. Par l'inégalité de Cauchy-Schwarz la valeur optimale de ce problÚme est supérieure à , borne atteinte par la solution donnée.
  4. En effet, supposons que et que soit le gradient de en pour le produit scalaire . On considĂšre l'application avec
    oĂč est l'identitĂ© sur et est l'opĂ©rateur dĂ©fini en par (on reconnaĂźt la formule de BFGS directe de mise Ă  jour de l'identitĂ©). Comme est auto-adjoint et dĂ©fini positif pour le produit scalaire , l'application bilinĂ©aire est un produit scalaire. Par ailleurs, on a , si bien que le gradient de pour le produit scalaire , qui vaut , n'est autre que , comme annoncĂ©.
  5. K. Ito, K. Kunisch (2008), Lagrange Multiplier Approach to Variational Problems and Applications, Advances in Design and Control, SIAM Publication, Philadelphia.
  6. (en) K. C. Kiwiel (2001), « Convergence and efficiency of subgradient methods for quasiconvex minimization », Mathematical Programming (Series A), 90, 1-25.

Voir aussi

Articles connexes

Bibliographie

  • (en) Mordecai Avriel, Nonlinear Programming: Analysis and Methods, Dover Publishing, (ISBN 0-486-43227-0).
  • (en) D. P. Bertsekas, Nonlinear Programming, Athena Scientific, (ISBN 1-886529-14-0)
  • (en) J. F. Bonnans, J. Ch. Gilbert, C. LemarĂ©chal et C. SagastizĂĄbal, Numerical Optimization - Theoretical and Numerical Aspects,
  • (en) Jan A. Snyman, Practical Mathematical Optimization: An Introduction to Basic Optimization Theory and Classical and New Gradient-Based Algorithms, Springer Publishing, (ISBN 0-387-24348-8)
  • Michel Bierlaire, Introduction Ă  l'optimisation diffĂ©rentiable, (ISBN 978-2-88074-669-8)
  • Marie-HĂ©lĂšne Meurisse, Algorithme numĂ©riques, Fondement thĂ©oriques et analyse pratique, Cours, exercices et applications avec MATLAB, (ISBN 9782340-021860)
  • Patrick Lascaux et Raymond ThĂ©odor, Analyse numĂ©rique matricielle appliquĂ©e Ă  l'art de l'ingĂ©nieur 2. MĂ©thodes itĂ©ratives,
  • Jacques Rappaz et Marco Picasso, Introduction Ă  l'analyse numĂ©rique,

Lien externe

J. Ch. Gilbert, ÉlĂ©ments d'Optimisation DiffĂ©rentiable — ThĂ©orie et Algorithmes, syllabus de cours Ă  l'ENSTA ParisTech, Paris.

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.