Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Algorithme du gradient — Wikipédia
Algorithme du gradient — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Algorithme du gradient
Algorithme du gradient sur une fonction de type bol (vue en plan avec courbes de niveaux).
Type
Algorithme d'optimisation, méthode itérative, concept mathématique (en)Voir et modifier les données sur Wikidata
Formule
x n + 1 = x n − γ ∇ F ( x n ) {\displaystyle \mathbf {x} _{n+1}=\mathbf {x} _{n}-\gamma \nabla F(\mathbf {x} _{n})} {\displaystyle \mathbf {x} _{n+1}=\mathbf {x} _{n}-\gamma \nabla F(\mathbf {x} _{n})}Voir et modifier les données sur Wikidata

modifier - modifier le code - modifier WikidataDocumentation du modèle

L'algorithme du gradient, ou de descente de gradient, est une méthode d'optimisation mathématique sans contrainte. Il s'agit d'un algorithme itératif du premier ordre permettant de minimiser une fonction multivariée différentiable. L'idée consiste à effectuer des étapes répétées dans la direction opposée au gradient (ou gradient approximatif) de la fonction au point actuel, car il s'agit de la direction de descente la plus raide. À l'inverse, se déplacer dans la direction du gradient conduira à une trajectoire qui maximise cette fonction ; la procédure est alors connue sous le nom d'ascension du gradient. Elle est particulièrement utile dans l'apprentissage automatique pour minimiser le coût ou la fonction de perte.

Il permet donc de minimiser une fonction réelle différentiable définie sur un espace euclidien (par exemple, R n {\displaystyle \mathbb {R} ^{n}} {\displaystyle \mathbb {R} ^{n}}, l'espace des n-uplets de nombres réels, muni d'un produit scalaire) ou, plus généralement, sur un espace hilbertien. On qualifie cet algorithme d’itératif parce qu’il procède 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[réf. nécessaire]. 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

[modifier | modifier le code]

Soient E {\displaystyle \mathbb {E} } {\displaystyle \mathbb {E} } un espace hilbertien (produit scalaire noté ⟨ ⋅ , ⋅ ⟩ {\displaystyle \langle \cdot ,\cdot \rangle } {\displaystyle \langle \cdot ,\cdot \rangle } et norme associée notée ‖ ⋅ ‖ {\displaystyle \|\cdot \|} {\displaystyle \|\cdot \|}) et x ∈ E ↦ f ( x ) ∈ R {\displaystyle x\in \mathbb {E} \mapsto f(x)\in \mathbb {R} } {\displaystyle x\in \mathbb {E} \mapsto f(x)\in \mathbb {R} } une fonction différentiable. On note d f ( x ) {\displaystyle \mathrm {d} f(x)} {\displaystyle \mathrm {d} f(x)} la différentielle de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x} et ∇ f ( x ) {\displaystyle \nabla f(x)} {\displaystyle \nabla f(x)} le gradient de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x}, si bien que pour tout direction d ∈ E {\displaystyle d\in \mathbb {E} } {\displaystyle d\in \mathbb {E} }, d f ( x ) ( d ) = ⟨ ∇ f ( x ) , d ⟩ {\displaystyle \mathrm {d} f(x)(d)=\langle \nabla f(x),d\rangle } {\displaystyle \mathrm {d} f(x)(d)=\langle \nabla f(x),d\rangle }[2].

Algorithme du gradient — On se donne un point/itéré initial x 0 ∈ E {\displaystyle x_{0}\in \mathbb {E} } {\displaystyle x_{0}\in \mathbb {E} } et un seuil de tolérance ε ⩾ 0 {\displaystyle \varepsilon \geqslant 0} {\displaystyle \varepsilon \geqslant 0}. L'algorithme du gradient définit une suite d'itérés x 1 , x 2 , … ∈ E {\displaystyle x_{1},x_{2},\ldots \in \mathbb {E} } {\displaystyle x_{1},x_{2},\ldots \in \mathbb {E} }, jusqu'à ce qu'un test d'arrêt soit satisfait. Il passe de x k {\displaystyle x_{k}} {\displaystyle x_{k}} à x k + 1 {\displaystyle x_{k+1}} {\displaystyle x_{k+1}} par les étapes suivantes.

  1. Simulation : calcul de ∇ f ( x k ) {\displaystyle \nabla f(x_{k})} {\displaystyle \nabla f(x_{k})}.
  2. Test d'arrêt : si ‖ ∇ f ( x k ) ‖ ⩽ ε {\displaystyle \|\nabla f(x_{k})\|\leqslant \varepsilon } {\displaystyle \|\nabla f(x_{k})\|\leqslant \varepsilon }, arrêt.
  3. Calcul du pas α k > 0 {\displaystyle \alpha _{k}>0} {\displaystyle \alpha _{k}>0} par une règle de recherche linéaire sur f {\displaystyle f} {\displaystyle f} en x k {\displaystyle x_{k}} {\displaystyle x_{k}} le long de la direction − ∇ f ( x k ) {\displaystyle -\nabla f(x_{k})} {\displaystyle -\nabla f(x_{k})}.
  4. Nouvel itéré : x k + 1 = x k − α k ∇ f ( x k ) . {\displaystyle x_{k+1}=x_{k}-\alpha _{k}\nabla f(x_{k}).} {\displaystyle x_{k+1}=x_{k}-\alpha _{k}\nabla f(x_{k}).}

En pratique, il faudra prendre ε > 0 {\displaystyle \varepsilon >0} {\displaystyle \varepsilon >0} ; 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 x {\displaystyle x} {\displaystyle x}, la fonction f {\displaystyle f} {\displaystyle f} décroît le plus fortement dans la direction opposée à celle du gradient de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x}, à savoir dans la direction − ∇ f ( x ) {\displaystyle -\nabla f(x)} {\displaystyle -\nabla f(x)}. De manière plus précise, cette affirmation exprime en termes suggestifs le fait que, si d f ( x ) ≠ 0 {\displaystyle \mathrm {d} f(x)\neq 0} {\displaystyle \mathrm {d} f(x)\neq 0}, la solution du problème d'optimisation

min ‖ d ‖ = 1 ⟨ ∇ f ( x ) , d ⟩ {\displaystyle \min _{\|d\|=1}\,\langle \nabla f(x),d\rangle } {\displaystyle \min _{\|d\|=1}\,\langle \nabla f(x),d\rangle }

est la direction d = − ∇ f ( x ) / ‖ ∇ f ( x ) ‖ {\displaystyle d=-\nabla f(x)/\|\nabla f(x)\|} {\displaystyle d=-\nabla f(x)/\|\nabla f(x)\|}, 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 E {\displaystyle \mathbb {E} } {\displaystyle \mathbb {E} }. En effet, si σ : ( u , v ) ↦ σ ( u , v ) {\displaystyle \sigma :(u,v)\mapsto \sigma (u,v)} {\displaystyle \sigma :(u,v)\mapsto \sigma (u,v)} est un autre produit scalaire sur E {\displaystyle \mathbb {E} } {\displaystyle \mathbb {E} }, il existe un opérateur linéaire continu S : E → E {\displaystyle S:\mathbb {E} \to \mathbb {E} } {\displaystyle S:\mathbb {E} \to \mathbb {E} } auto-adjoint et défini positif tel que σ ( u , v ) = ⟨ S u , v ⟩ , {\displaystyle \sigma (u,v)=\langle Su,v\rangle ,} {\displaystyle \sigma (u,v)=\langle Su,v\rangle ,} si bien que le gradient de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x} pour ce dernier produit scalaire s'écrit S − 1 ∇ f ( x ) {\displaystyle S^{-1}\nabla f(x)} {\displaystyle S^{-1}\nabla f(x)}, 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 f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x}, c'est-à-dire toute direction d {\displaystyle d} {\displaystyle d} telle d f ( x ) ( d ) < 0 {\displaystyle \mathrm {d} f(x)(d)<0} {\displaystyle \mathrm {d} f(x)(d)<0}, est l'opposé du gradient de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x} pour un certain produit scalaire[4]. L'efficacité de l'algorithme du gradient dépendra donc du choix de ce produit scalaire.

Si d f ( x ) ≠ 0 {\displaystyle \mathrm {d} f(x)\neq 0} {\displaystyle \mathrm {d} f(x)\neq 0}, la direction d = − ∇ f ( x ) {\displaystyle d=-\nabla f(x)} {\displaystyle d=-\nabla f(x)} est une direction de descente de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x}, puisque d f ( x ) ( d ) = ⟨ ∇ f ( x ) , − ∇ f ( x ) ⟩ = − ‖ ∇ f ( x ) ‖ 2 < 0 {\displaystyle \mathrm {d} f(x)(d)=\langle \nabla f(x),-\nabla f(x)\rangle =-\|\nabla f(x)\|^{2}<0} {\displaystyle \mathrm {d} f(x)(d)=\langle \nabla f(x),-\nabla f(x)\rangle =-\|\nabla f(x)\|^{2}<0}, si bien que pour tout α > 0 {\displaystyle \alpha >0} {\displaystyle \alpha >0} assez petit, on a

f ( x − α ∇ f ( x ) ) < f ( x ) {\displaystyle f(x-\alpha \nabla f(x))<f(x)} {\displaystyle f(x-\alpha \nabla f(x))<f(x)}.

Grâce à la recherche linéaire, tant que d f ( x k ) ≠ 0 {\displaystyle \mathrm {d} f(x_{k})\neq 0} {\displaystyle \mathrm {d} f(x_{k})\neq 0}, l'algorithme fait décroître la fonction strictement à chaque itération :

f ( x k + 1 ) < f ( x k ) . {\displaystyle f(x_{k+1})<f(x_{k}).} {\displaystyle f(x_{k+1})<f(x_{k}).}

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 x ′ ( α ) = − ∇ f ( x ( α ) ) {\displaystyle x'(\alpha )=-\nabla f(x(\alpha ))} {\displaystyle x'(\alpha )=-\nabla f(x(\alpha ))} (flot du gradient), avec un pas α k {\displaystyle \alpha _{k}} {\displaystyle \alpha _{k}} de discrétisation adapté à l'itération k {\displaystyle k} {\displaystyle k} courante par la recherche linéaire.

Résultats de convergence

[modifier | modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Problèmes quadratiques

[modifier | modifier le code]

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 E {\displaystyle \mathbb {E} } {\displaystyle \mathbb {E} } (donc de dimension finie) :

f : x ∈ E ↦ f ( x ) := ⟨ g , x ⟩ + 1 2 ⟨ H x , x ⟩ , {\displaystyle f:x\in \mathbb {E} \mapsto f(x):=\langle g,x\rangle +{\frac {1}{2}}\langle Hx,x\rangle ,} {\displaystyle f:x\in \mathbb {E} \mapsto f(x):=\langle g,x\rangle +{\frac {1}{2}}\langle Hx,x\rangle ,}

où g ∈ E {\displaystyle g\in \mathbb {E} } {\displaystyle g\in \mathbb {E} } et H : E → E {\displaystyle H:\mathbb {E} \to \mathbb {E} } {\displaystyle H:\mathbb {E} \to \mathbb {E} } 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 ℓ 2 {\displaystyle \ell _{2}} {\displaystyle \ell _{2}} du hessien H du critère f, c'est-à-dire le rapport entre sa plus grande valeur propre λ max ( H ) {\displaystyle \lambda _{\max }(H)} {\displaystyle \lambda _{\max }(H)} et sa plus petite valeur propre λ min ( H ) {\displaystyle \lambda _{\min }(H)} {\displaystyle \lambda _{\min }(H)},

κ 2 := κ 2 ( H ) := λ max ( H ) λ min ( H ) , {\displaystyle \kappa _{2}:=\kappa _{2}(H):={\frac {\lambda _{\max }(H)}{\lambda _{\min }(H)}},} {\displaystyle \kappa _{2}:=\kappa _{2}(H):={\frac {\lambda _{\max }(H)}{\lambda _{\min }(H)}},}

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

v ∈ E ↦ ‖ v ‖ H = ⟨ H v , v ⟩ 1 / 2 . {\displaystyle v\in \mathbb {E} \mapsto \|v\|_{H}=\langle Hv,v\rangle ^{1/2}.} {\displaystyle v\in \mathbb {E} \mapsto \|v\|_{H}=\langle Hv,v\rangle ^{1/2}.}

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 ε = 0 {\displaystyle \varepsilon =0} {\displaystyle \varepsilon =0} et recherche linéaire exacte, génère une suite { x k } k ⩾ 1 {\displaystyle \{x_{k}\}_{k\geqslant 1}} {\displaystyle \{x_{k}\}_{k\geqslant 1}} convergeant q-linéairement vers l'unique minimum x* de f. Plus précisément, on a

∀ k ⩾ 1 : ‖ x k + 1 − x ∗ ‖ H ⩽ ( κ 2 − 1 κ 2 + 1 ) ‖ x k − x ∗ ‖ H . {\displaystyle \forall \;k\geqslant 1:\qquad \|x_{k+1}-x_{*}\|_{H}\leqslant \left({\frac {\kappa _{2}-1}{\kappa _{2}+1}}\right)\|x_{k}-x_{*}\|_{H}.} {\displaystyle \forall \;k\geqslant 1:\qquad \|x_{k+1}-x_{*}\|_{H}\leqslant \left({\frac {\kappa _{2}-1}{\kappa _{2}+1}}\right)\|x_{k}-x_{*}\|_{H}.}

Comme ‖ x − x ∗ ‖ H 2 = 2 [ f ( x ) − f ( x ∗ ) ] {\displaystyle \|x-x_{*}\|_{H}^{2}=2[f(x)-f(x_{*})]} {\displaystyle \|x-x_{*}\|_{H}^{2}=2[f(x)-f(x_{*})]}, 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 ( κ 2 − 1 ) / ( κ 2 + 1 ) {\displaystyle (\kappa _{2}-1)/(\kappa _{2}+1)} {\displaystyle (\kappa _{2}-1)/(\kappa _{2}+1)}) est proche de 1. Cela se produit dans l'algorithme du gradient lorsque κ 2 {\displaystyle \kappa _{2}} {\displaystyle \kappa _{2}} est grand, c'est-à-dire pour les problèmes mal conditionnés. À l'inverse, lorsque κ 2 = 1 {\displaystyle \kappa _{2}=1} {\displaystyle \kappa _{2}=1} (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.

Problèmes non linéaires

[modifier | modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Exemples

[modifier | modifier le code]

Minimisation d'une fonction de deux variables

[modifier | modifier le code]

L'évolution des itérés xk 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 R 2 {\displaystyle \mathbb {R} ^{2}} {\displaystyle \mathbb {R} ^{2}}) 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 xk + 1 – xk, 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 deux variables

[modifier | modifier le code]

On applique de la méthode de remontée de gradient à la fonction

f ( x , y ) = sin ⁡ ( 1 2 x 2 − 1 4 y 2 + 3 ) cos ⁡ ( 2 x + 1 − e y ) {\displaystyle f(x,y)=\sin \left({\frac {1}{2}}x^{2}-{\frac {1}{4}}y^{2}+3\right)\cos(2x+1-e^{y})} {\displaystyle f(x,y)=\sin \left({\frac {1}{2}}x^{2}-{\frac {1}{4}}y^{2}+3\right)\cos(2x+1-e^{y})}

  • Vue en plan avec courbes de niveaux.
    Vue en plan avec courbes de niveaux.
  • Vue en trois dimensions.
    Vue en trois dimensions.


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

[modifier | modifier le code]

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 10−2, l'algorithme converge en moins de 150 itérations. Mais si l'on décide d'opter pour un pas de 10−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

[modifier | modifier le code]

L'algorithme du gradient peut rencontrer des 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é). 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).

Une fonction de Rosenbrock à deux dimensions, qui présente une vallée étroite difficilement atteignable par l'algorithme du gradient.

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

[modifier | modifier le code]

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

[modifier | modifier le code]
(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,‎ 1847, p. 536-538 (lire en ligne).
  2. ↑ (en) 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,‎ 7 juillet 2021 (ISSN 1751-231X, DOI 10.2166/wpt.2021.065).
  3. ↑ Par l'inégalité de Cauchy-Schwarz la valeur optimale de ce problème est supérieure à − ‖ ∇ f ( x ) ‖ {\displaystyle -\|\nabla f(x)\|} {\displaystyle -\|\nabla f(x)\|}, borne atteinte par la solution donnée.
  4. ↑ En effet, supposons que d f ( x ) ( d ) < 0 {\displaystyle \mathrm {d} f(x)(d)<0} {\displaystyle \mathrm {d} f(x)(d)<0} et que ∇ f ( x ) {\displaystyle \nabla f(x)} {\displaystyle \nabla f(x)} soit le gradient de f {\displaystyle f} {\displaystyle f} en x {\displaystyle x} {\displaystyle x} pour le produit scalaire ( u , v ) ↦ ⟨ u , v ⟩ {\displaystyle (u,v)\mapsto \langle u,v\rangle } {\displaystyle (u,v)\mapsto \langle u,v\rangle }. On considère l'application σ : ( u , v ) ↦ ⟨ S u , v ⟩ {\displaystyle \sigma :(u,v)\mapsto \langle Su,v\rangle } {\displaystyle \sigma :(u,v)\mapsto \langle Su,v\rangle } avec

    S := I − ∇ f ( x ) ⊗ ∇ f ( x ) ⟨ ∇ f ( x ) , d ⟩ − d ⊗ d ‖ d ‖ 2 , {\displaystyle S:=I-{\frac {\nabla f(x)\otimes \nabla f(x)}{\langle \nabla f(x),d\rangle }}-{\frac {d\otimes d}{\|d\|^{2}}},} {\displaystyle S:=I-{\frac {\nabla f(x)\otimes \nabla f(x)}{\langle \nabla f(x),d\rangle }}-{\frac {d\otimes d}{\|d\|^{2}}},}

    où I {\displaystyle I} {\displaystyle I} est l'identité sur E {\displaystyle \mathbb {E} } {\displaystyle \mathbb {E} } et u ⊗ v : E → E {\displaystyle u\otimes v:\mathbb {E} \to \mathbb {E} } {\displaystyle u\otimes v:\mathbb {E} \to \mathbb {E} } est l'opérateur défini en z ∈ E {\displaystyle z\in \mathbb {E} } {\displaystyle z\in \mathbb {E} } par ( u ⊗ v ) z = ⟨ v , z ⟩ u {\displaystyle (u\otimes v)z=\langle v,z\rangle u} {\displaystyle (u\otimes v)z=\langle v,z\rangle u} (on reconnaît la formule de BFGS directe de mise à jour de l'identité). Comme S {\displaystyle S} {\displaystyle S} est auto-adjoint et défini positif pour le produit scalaire ⟨ ⋅ , ⋅ ⟩ {\displaystyle \langle \cdot ,\cdot \rangle } {\displaystyle \langle \cdot ,\cdot \rangle }, l'application bilinéaire σ {\displaystyle \sigma } {\displaystyle \sigma } est un produit scalaire. Par ailleurs, on a S d = − ∇ f ( x ) {\displaystyle Sd=-\nabla f(x)} {\displaystyle Sd=-\nabla f(x)}, si bien que le gradient de f {\displaystyle f} {\displaystyle f} pour le produit scalaire σ {\displaystyle \sigma } {\displaystyle \sigma }, qui vaut S − 1 ∇ f ( x ) {\displaystyle S^{-1}\nabla f(x)} {\displaystyle S^{-1}\nabla f(x)}, n'est autre que − d {\displaystyle -d} {\displaystyle -d}, comme annoncé.

  5. ↑ (en) K. Ito et K. Kunisch, Lagrange Multiplier Approach to Variational Problems and Applications, Philadelphia, SIAM Publication, coll. « Advances in Design and Control », 2008.
  6. ↑ (en) K. C. Kiwiel, « Convergence and efficiency of subgradient methods for quasiconvex minimization », Mathematical Programming (Series A), vol. 90,‎ 2001, p. 1-25 (DOI 10.1007/PL00011414).

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • Algorithme du gradient stochastique
  • Algorithme proximal (optimisation)
  • Analyse vectorielle
  • Dérivée directionnelle
  • Dérivation automatique

Bibliographie

[modifier | modifier le code]
  • (en) Mordecai Avriel, Nonlinear Programming: Analysis and Methods, Dover Publishing, 2003 (ISBN 0-486-43227-0).
  • (en) D. P. Bertsekas, Nonlinear Programming, Athena Scientific, 1995 (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, 2006
  • (en) Jan A. Snyman, Practical Mathematical Optimization: An Introduction to Basic Optimization Theory and Classical and New Gradient-Based Algorithms, Springer Publishing, 2005 (ISBN 0-387-24348-8)
  • Michel Bierlaire, Introduction à l'optimisation différentiable, 2006 (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, 2018 (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, 2000
  • Jacques Rappaz et Marco Picasso, Introduction à l'analyse numérique, 2017

Lien externe

[modifier | modifier le code]
  • J. Ch. Gilbert, Éléments d'Optimisation Différentiable — Théorie et Algorithmes, syllabus de cours à l'ENSTA ParisTech, Paris.
  • (es) « Gradiente descendente »
v · m
Optimisation: théorie et algorithmes
Non linéaire
  • Méthode du nombre d'or
  • Recherche linéaire
  • Méthode de Nelder-Mead
  • Critères de Wolfe
  • Méthode de Broyden-Fletcher-Goldfarb-Shanno
  • Algorithme à régions de confiance
  • Pénalisation
  • Algorithme du gradient
  • Algorithme du gradient stochastique
  • Méthode de Newton
  • Algorithme de Gauss-Newton
  • Algorithme de Levenberg-Marquardt
  • Algorithme du lagrangien augmenté
Convexe
  • Optimisation complètement positive
  • Optimisation copositive
  • Optimisation SDP
  • Méthode des plans sécants
  • Algorithme de Frank-Wolfe
  • Méthode de l'ellipsoïde
Linéaire
  • Optimisation conique
  • Algorithme du simplexe
  • Méthodes de points intérieurs
  • Décomposition de Benders
  • Génération de colonnes
Quadratique
  • Optimisation quadratique successive
Combinatoire
  • Algorithme d'approximation
  • Programmation dynamique
  • Algorithme glouton
  • Optimisation linéaire en nombres entiers
Métaheuristique
  • Stratégie d'évolution
    • Algorithme génétique
  • Essaims
  • Forêts aléatoires
  • Boosting
  • icône décorative Portail de l'analyse
  • icône décorative Portail de l'informatique théorique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Algorithme_du_gradient&oldid=231167559 ».
Catégories :
  • Analyse à plusieurs variables
  • Algorithme d'optimisation
Catégories cachées :
  • Page utilisant P31
  • Page utilisant P2534
  • Article utilisant l'infobox Méthode scientifique
  • Article utilisant une Infobox
  • Article à référence nécessaire
  • Article avec une section vide ou incomplète
  • Portail:Analyse/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Sciences/Articles liés
  • Portail:Informatique théorique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id