Vous êtes sur la page 1sur 6

Méthode de gradient (1)

Problème d’optimisation sans contrainte


inf J(v), V Hilbert
v∈V

Méthodes numériques pour l’optimisation • Dimension finie : discrétisation du problème sur une base idoine,
fonctionnelle J différentiable

Gabriel STOLTZ • Objectif : construire un point critique de manière itérative


stoltz@cermics.enpc.fr
vk → v où ∇J(v) = 0
(CERMICS, Ecole des Ponts & Equipe-projet MATHERIALS, INRIA Rocquencourt)

• Principe : pour v k ∈ V donné, direction de descente dk = −∇J(v k ) :

pour t suffisamment petit, J(v k + tdk ) 6 J(v k )


Calcul scientifique, Ecole des Ponts, 12 mars 2015

Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 1 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 2 / 21

Méthode de gradient (2) Méthode de gradient (3)


• Initialisation
choisir v 0 ∈ V et poser k := 0
choisir le pas λ > 0
fixer un seuil de convergence ε > 0

• Itérations (boucle sur k)


calculer ∇J(v k )
choisir comme direction de descente dk = −∇J(v k )
déterminer v k+1 selon la formule

v k+1 = v k + λdk

kv k+1 − v k kV |J(v k+1 ) − J(v k )|


test de convergence : 6 ε ou 6ε
kv 0 kV J(v 0 )
• La convergence est très lente si λ est trop petit
• Méthode de gradient à pas fixe : choix de λ ? convergence ? • Si λ est trop grand, on peut ne pas converger !
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 3 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 4 / 21
Convergence de la méthode de gradient (1) Convergence de la méthode de gradient (2)
• Méthode de gradient à pas fixe = itération de point fixe sur • Preuve : la contraction vient de l’α-convexité...
Jλ (v) = v − λ∇J(v) kJλ (w) − Jλ (v)k2V = k(w − v) − λ(∇J(w) − ∇J(v))k2V
= kw − vk2V − 2λ(∇J(w) − ∇J(v), w − v)V + λ2 k∇J(w) − ∇J(v)k2V
En effet, v k+1 = v k − λ∇J(v k ) = Jλ (v k )
6 ρ(λ)2 kw − vk2V
• Point fixe de Jλ = point critique de J
avec ρ(λ)2 = (1 − 2λα + λ2 L2 ). Sous la condition 0 < λ < 2α/L2 , on a 0 < ρ < 1
Contractivité de Jλ  1/2
α2
On suppose que J est α-convexe et que ∇J : V → V est Lipschitzienne • Minimum de ρ pour λopt = α/L2 , valeur ρopt = 1− 2
L
∃L > 0, ∀(v, w) ∈ V × V, k∇J(v) − ∇J(w)kV 6 Lkv − wkV
• Soit u le minimiseur global de J sur V (J est α-convexe...). Comme u
Alors, l’application Jλ est contractante lorsque est point fixe de Jλ , on a

2α u − v k+1 = Jλ (u) − Jλ (v k )
0<λ<
L2
d’où ku − v k+1 kV 6 ρku − v k kV
• En pratique on ne connait pas ces paramètres ! Guide théorique...
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 5 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 6 / 21

Convergence de la méthode de gradient (3) Autres méthodes numériques


• L’efficacité d’un algorithme d’optimisation résulte de
Estimation d’erreur sa capacité d’exploration (sortir des puits locaux)
ku − v k kV 6 ρk ku − v 0 kV sa vitesse de convergence (au sein du bon puits)

• Algorithme d’ordre zéro : approches stochastiques


• L’erreur tend exponentiellement vers zéro... exemples : recuit simulé, algorithme génétique
vitesse de convergence dite linéaire : réduire l’erreur d’un ordre de bonnes capacités d’exploration, faible vitesse de convergence
grandeur nécessite un nombre d’itérations constant
évaluation de J uniquement, faible coût/itération, bcp. d’itérations
coût de calcul par itération = essentiellement évaluation de ∇J
(méthode d’ordre 1) • Algorithme d’ordre deux : méthode de Newton (et variantes)
coût de calcul total = nombre d’itérations x coût par itération faible capacité d’exploration, vitesse de convergence quadratique au
voisinage de u : peu d’itérations si bonne initialisation
• Lorsque α ≪ L (ce qui est souvent le cas en pratique!), ρopt ∼ 1−
... mais possibilité de non-convergence “loin” de u
→ convergence extrêmement lente
évaluation de ∇2 J (matrice hessienne), coût/itération élevé
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 7 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 8 / 21
Méthode de gradient : fonctionnelles quadratiques (1) Méthode de gradient : fonctionnelles quadratiques (2)
• Conditionnement (A matrice SDP)
• Résolution des systèmes linéaires Au = b avec A symétrique définie
positive (SDP) κ(A) > 1 : rapport entre plus grande et plus petite valeur propre
κ(A) ≫ 1 : matrice mal conditionnée
1
• Minimisation de J(v) = (v, Av)RN − (b, v)RN dont le gradient est
2 • J est α-convexe et ∇J est Lipschitzienne avec
α : plus petite valeur propre de A
∇J(v) = Av − b
L : plus grande valeur propre de A
• Méthode de gradient à pas fixe si A mal conditionnée, alors ρopt ∼ 1− : convergence très lente

v k+1 = v k + λdk , dk = b − Av k =: rk (résidu de v k ) • Préconditionnement :


matrice SDP P facile à inverser (diagonale, bloc diagonale, ...) avec
• Méthode de gradient à pas optimal : optimisation 1D le long de la
direction de descente → se souvenir du TD 4 ! κ(P −1/2 AP −1/2 ) ≪ κ(A)
itérer sur le système équivalent (seule P doit être inversée)
• Méthode du gradient conjugué : très efficace pour les systèmes SDP (v k
est minimiseur de J sur un sous-espace affine de dimension k) (P −1/2 AP −1/2 )x̃ = (P −1/2 b), x = P −1/2 x̃
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 9 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 10 / 21

Méthode de gradient : fonctionnelles quadratiques (3)

1.0

0.5

0.0
Méthode du gradient projeté
-0.5

-2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0

 
ε 0
Exemple avec A = et ε = 0.07
0 1
Question : que valent L, α, κ(A) = ?
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 11 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 12 / 21
Idée générale Projection sur un convexe (1)

Problème d’optimisation avec contrainte


inf J(v), K ⊂ V Hilbert • En pratique, il n’est pas simple de calculer la projection (il faut résoudre
v∈K explicitement le problème de minimisation)...

• Algorithme de gradient à pas fixe avec projection à chaque itération


• Sauf cas particuliers !
 
v k+1 = ΠK v k − λ∇J(v k ) K = B(0, 1) auquel cas ΠK (v) = ?
K = [a, b] ⊂ R, auquel cas ΠK (v) = ?

• Projection orthogonale ΠK : V → K
• Pour un ensemble convexe K général, caractérisation de ΠK (v) ?
kv − ΠK (v)kV = inf kv − wkV → se souvenir de la condition nécessaire
w∈K

∀w ∈ K, (∇Jv (u), w − u) > 0


• La projection est bien définie si K est convexe et fermé.
→ Pourquoi ?
Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 13 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 14 / 21

Projection sur un convexe (2) Autre exemple : projection sur une sphère (exercice)
Remarquer que ∇Jv (u) = u − v et donc hΠK (v) − v, w − ΠK (v)iV > 0
• Problème de minimisation inf Jv où
K
n o
K = s ∈ V, kskV = 1

1
Jv (s) = kv − sk2V
2
• On note ΠK (v) le minimiseur

• Appliquer le résultat précédent pour trouver la projection ΠK (v)


On montre aussi que kΠK (v) − ΠK (w)kV 6 kv − wkV
h i
2
Ecrire kΠK (v) − ΠK (w)kV = hΠK (v) − v, ...iV +hv − w, ...iV + hΠK (w) − w, ...iV
| {z } | {z }
60 60

Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 15 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 16 / 21
Algorithme de gradient projeté Convergence vers un point critique

• Reformulation comme un algorithme de point fixe v n+1 = Jλ,K (v n ) avec


• Initialisation  
choisir v 0 ∈ K (ou v 0 ∈ V et le projeter) Jλ,K (v) = ΠK v − λ∇J(v)
choisir un pas λ > 0
fixer un seuil de convergence ε > 0 • Si u est point fixe, alors automatiquement u = ΠK (...) ∈ K
• Itérations
• Si K est convexe, u est un point critique de J, cf. propriété projection
calculer la direction de descente dk = −∇J(v k ) D E
appliquer un pas de gradient non-projeté vek+1 = v k +λdk ΠK (u − λ∇J(u)) − (u − λ∇J(u)) , w − ΠK (u − λ∇J(u)) >0
  V
projeter l’état proposé v k+1 = ΠK vek+1
soit, pour tout w ∈ K,
kv k+1 − v k kV |J(v k+1 ) − J(v k )|
test de convergence : 6 ε ou 6ε
0
kv kV J(v 0 ) h∇J(u), w − uiV > 0,

qui est la caractérisation d’un point critique sur un ensemble convexe K

Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 17 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 18 / 21

Algorithme de gradient projeté : convergence

• Résultat très similaire au gradient simple


Convergence exponentielle de l’erreur si K convexe
J est α-convexe sur V
∇J est Lipschitzienne sur V de constante L > 0


 Conclusion
λ ∈ 0, 2
L
alors il existe ρ ∈]0, 1[ tel que kv k+1 − ukV 6 ρk kv 0 − u0 kV (u unique
minimiseur de inf K J)

[Preuve : composition des applications contractantes ΠK et Jλ (v) = v − λ∇J(v)]

• Intérêt pratique du résultat limité (fonctionnelle pas convexe, α, L =?)

Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 19 / 21 Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 20 / 21
En résumé et en ouverture...

• Algorithme de gradient :
avec ou sans projection
convergence pour J fortement convexe et ∇J Lipschitzienne, si le pas
n’est pas trop grand
quelques éléments sur la pratique

• Au menu de la suite :
un TP sur un exemple 2D simple
un TD sur la minimisation avec contrainte le 26 mars

Gabriel Stoltz (ENPC/INRIA) Ecole des Ponts, mars 2015 21 / 21

Vous aimerez peut-être aussi