Cours5 Optimisation
Cours5 Optimisation
Cours5 Optimisation
Si, de plus, f est deux fois différentiable dans un voisinage ouvert de x� , alors :
s2 �
soit : h H[f ](x� )h+o(s2 ) ≥ 0 puisque x� est un point de minimum local de f . Après division
2
par s2 , on fait tendre s vers 0 et on obtient : h� H[f ](x� )h ≥ 0. �
La condition d’optimalité du premier ordre montre que les points où le gradient s’annule sont
des points importants. Ils sont appelés points critiques et sont définis comme suit :
Définition 2.1 (Points critiques) Soit f : Rn → R une application différentiable. Tout point
x ∈ Rn vérifiant :
∇f (x) = 0,
est appelé point critique (ou point stationnaire) de f .
Mais attention ! Les conditions du théorème 2.1 ne sont que nécessaires : tout point où le
gradient est nul n’est pas nécessairement un extremum. Les exemples suivants montrent les dif-
férents types de cas qui peuvent apparaître.
Exemple 2.1.1 – La fonction x �→ x2 admet un point critique en x = 0 qui est aussi mini-
mum local.
– La fonction x �→ −x2 admet un point critique en x = 0 qui est aussi maximum local.
– La fonction x �→ x3 admet un point critique en x = 0 qui n’est ni minimum local ni
maximum local, c’est ici un point d’inflexion.
– La fonction x �→ x2 − y 2 admet un point critique en (x, y) = (0, 0) qui n’est ni minimum
local ni maximum local, c’est ici un point-selle.
Cependant, la condition du premier ordre joue un rôle central en optimisation numérique : elle
permet de sélectionner un certain nombre de points candidats à être des extrema locaux, même
s’il faut vérifier que les points critiques que l’on a sélectionné sont bien des minima locaux. Par
exemple dans l’exemple suivant
Exemple 2.1.2 Trouver le(s) minima globaux de f : x �→ ax2 + bx + c avec a, b, c ∈ R.
Si a > 0 alors la fonction est infinie à l’infini et admet un minimum global. Si a < 0 la fonction
vaut −∞ en ±∞ et si a = 0 et b �= 0 la fonction vaut −∞ en +∞ ou −∞ selon le signe de b et
dans tous ces cas n’admet pas de minimum global. Si a = 0 et b = 0, la fonction est constante
et tout point est minimum global. Nous nous intéressons donc au seul cas a > 0. L’équation des
points critiques est 2ax + b = 0, il existe un seul point critique x = −b/(2a) et dans le cas a > 0
nous savons qu’il existe un minimum global qui est donc point critique donc c’est −b/(2a).
Nous avons vu qu’être un point fixe est une condition nécessaire pour être un extremum, nous
voyons maintenant une condition suffisante.
Remarque 2.1 D’un point de vue géométrique, la condition du second ordre : "H[f ](x̄) définie
positive", revient à dire que f est localement convexe en x� , i.e. convexe dans un voisinage ouvert
de x� . En pratique, elle est difficile à vérifier systématiquement car elle nécessite de calculer les
dérivées secondes et d’étudier les valeurs propres de la matrice hessienne.
Exemple 2.1.3 L’exemple qui suit montre que la condition du Théorème 2.2 est suffisante mais
non nécessaire :
Montrer que 0 est un minimum global de f : x �→ x4 , que c’est bien un point critique de f mais
que la Hessienne de f en ce point est semidéfinie positive mais n’est pas définie positive (elle est
nulle).
Proposition 2.1 Si f est différentiable en un point x ∈ Rn , alors pour tout d �= 0, f admet une
dérivée dans la direction d en x et :
df (x; d) = Df (x)(d) = ∇f (x)� d.
26 2.2. Généralités sur les algorithmes de descente
On rappelle que la réciproque est fausse ! La dérivabilité selon tout vecteur en x n’implique
pas nécessairement la différentiabilité de f en x.
La dérivée directionnelle donne des informations sur la pente de la fonction dans la direction
d, tout comme la dérivée donne des informations sur la pente des fonctions à une variable. En
particulier,
– si df (x; d) > 0 alors f est croissante dans la direction d.
– si df (x; d) < 0 alors f est décroissante dans la direction d.
Dans ce dernier cas, on dira que d est une direction de descente de f .
20
18
d1 = −∇f (1, 1)
16
14
ϕ(t) = f (x + tdi)
12 � �
1
10 d2 =
−3
8
4
� �
−1
2
d3 =
−1
0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
F IGURE 2.1 – Allure de la fonction f : x �→ 12 x21 + 2x22 au point x = (1, 1)� dans plusieurs
directions.
Preuve de la proposition 2.2. Soit d telle ∇f (x)� d < 0. On écrit le développement de Taylor-
Young de t �→ f (x + td) : pour t assez petit,
Comme −∇f (x)� d > 0, il existe η > 0 tel que si |t| ≤ η, alors |�(t)| < −∇f (x)� d. D’où :
� �
∀t ∈]0, η], f (x + td) − f (x) = t ∇f (x)� d + �(t) < 0.
Ce qui montre la première partie de la proposition Soit maintenant d une direction de descente,
supposons que ∇f (x)� d > 0, en appliquant le même raisonnement que ci-dessus, on montre
qu’il existe un η tel que pour tout t tel que t ≤ η, on a �(t) > −∇f (x)� d et ainsi f (x + td) −
f (x) > 0, ce qui contredit le fait que d soit une direction de descente. �
Parmi toutes les directions de descente existantes en un point x donné, il est naturel de s’inté-
resser à celle où la pente est la plus forte. Un résultat remarquable montre que cette direction est
donnée par le gradient (ou plus exactement son opposé). Pour le démontrer, il suffit de comparer
les dérivées directionnelles :
Théorème 2.4 (Direction de plus forte descente) Soit f : Rn → R une fonction différentiable.
Soit x ∈ Rn . Alors pour toute direction d de norme constante égale à �d� = �∇f (x)�, on a :
Ainsi, la direction d� = −∇f (x) est appelée "direction de plus forte descente".
Preuve. Soit d ∈ Rn une direction quelconque de norme : �d� = �∇f (x)�. On a alors :
Corollaire 2.1 Le vecteur ∇f (x) est appelé direction de plus forte pente de f au point x ∈ Rn
et si d� = ∇f (x) alors
(d� )� ∇f (x) = maxn (d� ∇f (x)) sous la contrainte �d� = �∇f (x)�
d∈R
Exercice 2.2.1 Retrouver les conditions nécessaires d’optimalité du théorème 2.1 en utilisant la
notion de direction de descente.
28 2.2. Généralités sur les algorithmes de descente
Oracle/Boite noire. Pour obtenir le prochain itéré, l’algorithme aura besoin d’informations sur
la fonction objectif f : la valeur numérique de f en un point donné x, et souvent également du
gradient ∇f (x). Ces informations sont fournies en “boite noire”, i.e. par un sous-programme
indépendant de l’algorithme d’optimisation choisi : routine de calcul du gradient par différences
finies lorsque celui-ci n’est pas calculable explicitement, ou simulateur renvoyant les valeurs
numériques f (x) et ∇f (x) sans formule mathématique explicite par exemple.
En pratique, on préférera travailler avec les erreurs relatives plutôt qu’avec les erreurs abso-
lues, trop dépendantes de l’échelle.
min f (x).
x∈Rn
De plus, la convergence est dite locale si elle n’a lieu que pour des points initiaux x0 dans un
voisinage de x� . Sinon elle est dite globale.
En pratique, le but d’un algorithme d’optimisation ne sera que de trouver un point critique
(i.e. un point vérifiant la condition d’optimalité du premier ordre : ∇f (x� ) = 0). On introduit
alors la notion de convergence globale d’un algorithme d’optimisation :
Définition 2.4 Soit un algorithme itératif qui génère une suite (xk )k∈N dans Rn afin de résoudre
le problème :
minn f (x),
x∈R
Cette propriété garantit que le critère d’arrêt “�∇f (xk )� ≤ ε ?” sera satisfait à partir d’un certain
rang quelle que soit la précision ε > 0 demandée.
Remarque 2.2 Attention, la notion de convergence que l’on a vu ne suppose pas que l’algo-
rithme converge vers un minimum, même un minimum local. Prenons par exemple la fonction
30 2.2. Généralités sur les algorithmes de descente
f : (x, y) �→ x2 −√y 2 + y 4 qui est infinie à l’infini. Son minimum global est obtenu pour les points
(x, y) = (0, ±1/ 2). on peut montrer cependant que l’algorithme qui consiste à poser
est bien un algorithme de descente. Il converge au sens de la définition 2.4, cependant, si on part
du point (1, 0), l’algorithme converge vers le point (0, 0) qui est bien un point de gradient nul
mais pas un point de minimum (même local).
Il est bien entendu très important de garantir la convergence d’un algorithme sous certaines
hypothèses, mais la vitesse de convergence et la complexité sont également des facteurs à prendre
en compte lors de la conception ou de l’utilisation d’un algorithme ; en effet, on a tout intérêt à ce
que la méthode choisie soit à la fois rapide, précise et stable. Pour cela, on introduit les notions
de vitesse (ou taux) de convergence qui mesurent l’évolution de l’erreur commise �xk − x� �.
Définition 2.5 Soit (xk )k∈N une suite d’itérés générées par un algorithme convergent donné.
On note x� la limite de la suite (xk )k∈N et on suppose : ∀k ∈ N, xk �= x� (sinon l’algorithme
convergerait en un nombre fini d’itérations). La convergence de l’algorithme est dite :
– linéaire si l’erreur ek = �xk − x� � décroît linéairement i.e. s’il existe τ ∈]0, 1[ tel que :
�xk+1 − x� �
lim = τ.
k→+∞ �xk − x� �
– superlinéaire si
�xk+1 − x� �
lim = 0.
k→+∞ �xk − x� �
�xk+1 − x� �
lim = τ.
k→+∞ �xk − x� �p
Bien entendu, on a intérêt à ce que la convergence d’un algorithme soit la plus élevée possible
afin de converger vers la solution en un minimum d’itérations pour une précision donnée.
√
Exemple 2.2.1 La fonction f : x �→ x3 − 6x + 1 admet un minimum local sur R en x� = 2.
Partant d’une approximation grossière x0 = 2 de x� , comparons plusieurs algorithmes de calcul
approché de x� avec 5 chiffres significatifs exacts :
• Soit l’algorithme xk+1 = xk − α(x2k − 2). Vérifier que pour 0 < α < √12 , cet algorithme
√
converge linéairement avec un taux τ = |2α 2 − 1|.
Chapitre 2. Optimisation numérique sans contraintes 31
2 1 1
α 3 0.5 3
√
2 2
√
τ = |2α 2 − 1| 0.885 0.414 0.057 0
Nb d’itérations 105 15 6 4
Nb chiffres sign. exacts 5 5 7 10
1
Si α = √ , la convergence est dite superlinéaire et c’est la meilleure convergence pos-
2 2
sible de l’algorithme en question.
1 2
• Soit l’algorithme : xk+1 = (xk + ) dont la convergence est quadratique. On peut
2 xk
montrer que 4 itérations suffisent pour calculer une valeur approche de x� avec 5 chiffres
significatifs exacts ; en réalité, on a même 11 chiffres significatifs exacts dès la quatrième
itération.
On voudrait que la dérivée directionnelle ∇f (xk )� d soit la plus petite possible dans un voisinage
de d = 0. On cherche donc à résoudre :
dk = −∇f (xk ).
Le choix de la direction de plus forte descente définit une famille d’algorithmes appelés algo-
rithmes de descente de gradient dont le schéma est le suivant :
1. k := 0 ;
2. Tant que critère d’arrêt non satisfait,
(a) Direction de descente : dk = −∇f (xk ).
(b) Recherche linéaire : trouver un pas sk tel que : f (xk + sk dk ) < f (xk ).
(c) xk+1 = xk − sk ∇f (xk ) ; k := k + 1 ;
3. Retourner xk .
Il reste maintenant à définir une stratégie de recherche linéaire pour le calcul du pas. Nous
étudions ici en première approche une méthode à pas optimal, puis une à pas fixe.
La méthode de plus profonde descente est une sorte d’idéalisation : d’une part, nous ne savons
pas en pratique calculer de façon exacte un point minimum sk de l’objectif dans une direction
donnée et le problème n’est en général pas trivial. D’autre part, la résolution du problème de
minimisation unidimensionnel de l’étape 2 (a), même de façon approchée, coûte cher en temps
de calcul. Pour ces raisons, on peut lui préférer parfois l’algorithme de gradient à pas constant
(ou à pas fixe).
La question est alors : comment choisir un pas qui garantisse la convergence de l’algorithme ?
F IGURE 2.2 – Itérations des algos de gradient à pas fixe et optimal, générées à partir du point
(7, 1.5).
� �
−xk
– Direction de plus forte descente : dk = −∇f (Xk ) = .
−7yk
– Calcul du pas optimal sk solution, si elle existe, du problème à une dimension :
1 7
min f (Xk + sdk ) = min x2k (1 − s)2 + yk2 (1 − 7s)2 .
s>0 s>0 2 2
Deux directions de descente successives calculées par l’algorithme de plus profonde des-
cente sont orthogonales ce que traduisent les zigzags des itérés, observés sur la figure 2.2.
34 2.3. Premiers algorithmes de descente
TABLE 2.1 – Itérations de la méthode de plus profonde descente. Le critère d’optimalité est
satisfait en 43 itérations pour une précision ε = 10−5 et en 79 itérations si ε = 10−10 .
TABLE 2.2 – Nombres d’itérations de l’algorithme de gradient à pas fixe pour approcher l’unique
argument minimum de f à 10−5 près, en fonction du pas choisi - Point initial : x0 = (7, 1.5).
Enfin, les données du tableau 2.2 illustrent l’importance du choix du pas dans l’algorithme
de pas fixe : un pas “bien choisi” donne des résultats comparables à ceux obtenus par la plus
profonde descente, un pas plus petit atténue les zigzag des itérés mais augmente significativement
le nombre d’itérations et enfin, un pas trop grand fait diverger la méthode.
où la valeur f (xk ), le gradient ∇f (xk ) et la matrice hessienne H[f ](xk ) sont donnés par notre
oracle (boite noire).
On choisit alors comme point xk+1 le minimum de la quadratique q lorsqu’il existe et est
unique, ce qui n’est le cas que si H[f ](xk ) est définie positive. Or le minimum de q est réalisé
par xk+1 solution de : ∇q(xk+1 ) = 0, soit :
On reconnaît dans la formule (2.4) les itérations de la méthode de Newton vue en cours
d’analyse numérique, appliquée ici à la résolution de l’équation : ∇f (x) = 0. La méthode ne
doit cependant jamais être appliquée en utilisant une inversion de la matrice Hessienne (qui peut
être de très grande taille et mal conditionnée) mais plutôt en utilisant :
xk+1 = xk + dk
où dk est l’unique solution du système linéaire :
Cette méthode est bien définie si à chaque itération, la matrice hessienne H[f ](xk ) est définie
positive : ceci est vrai en particulier au voisinage de la solution x� cherchée si on suppose que
H[f ](x� ) est définie positive (par continuité de H[f ]).
Algorithme
Remarque 2.3 1. La méthode de Newton est un algorithme de descente à pas fixe égal à 1.
36 2.3. Premiers algorithmes de descente
La méthode peut diverger si le point initial n’est pas suffisamment proche d’un point de mi-
nimum local, et elle n’est pas définie si les matrices H[f ](xk ) ne sont pas définies positives.
Utilisée dans le cadre de l’optimisation, la méthode de Newton locale présente un autre incon-
vénient : la solution identifiée à la fin de l’algorithme n’est pas forcément un point de minimum
local, mais uniquement un point critique de f .
où JF (x) = ∇F (x)� = [∇F1 (x) . . . ∇Fm (x)]� désigne la matrice Jacobienne de F en x. Les
calculs permettant d’obtenir la relation (2.6) sont détaillés en annexe.
Chapitre 2. Optimisation numérique sans contraintes 37
La matrice Hessienne Hr (x) de r(x) a une expression assez compliquée. Cependant le terme
m
�
Fi (x) HFi (x) est tel que lorsque le résidu �F (x)� devient petit, c’est-à-dire lorsque l’on se
i=1
rapproche de la solution, il devient lui même négligeable.
Une autre façon de voir les choses consiste à remplacer dans l’expression de r, la fonction F
par une approximation linéaire au voisinage du point courant x. Autrement dit, on s’intéresse au
problème approché :
1
min r�(y) = �F (x) + JF (x)(y − x)�2 .
y 2
La solution de ce problème est caractérisée par la relation : ∇�
r(y) = 0 i.e. :
JF (x)� (F (x) + JF (x)(y − x)) = 0 soit : JF (x)� JF (x)(y − x) = −JF (x)� F (x)
Application aux moindres carrés linéaires. Dans le cas où la fonction F est linéaire, i.e. :
A� Axk+1 = A� b
38 2.3. Premiers algorithmes de descente
et ceci quel que soit xk . On reconnaît ici le système d’équations normales du problème de
moindres carrés linéaire :
1
minn �Ax − b�22 , (2.8)
x∈R 2
On rappelle que d’après le théorème 2.4 du cours d’analyse numérique, x� est solution du pro-
blème (2.8) si et seulement si x� vérifie les équations normales : A� Ax = A� b. De plus si A est
de rang plein, x� est l’unique solution de (2.8).
Ceci signifie donc que la méthode de Gauss-Newton identifie la solution en une seule itération
lorsque la fonction F est linéaire.
Fi (x0 , x1 , x2 ) = ci − x0 − x1 e−x2 ti , i = 1, . . . , n.