Vous êtes sur la page 1sur 6

Cours optimisation

Benjamin Monmege
29 fvrier 2012
On appelle problme doptimisation la donne dune instance de la forme
minimiser/maximiser f(x)
sous les conditions

g
i
(x) 0 i 1, . . . , m
h
j
(x) = 0 j 1, . . . , m

avec f : R
p
R une fonction objectif et g
i
, h
j
: R
p
R des fonctions de contraintes.
Lensemble des points
x R
p
[ g
i
(x) 0 i 1, . . . , m, h
j
(x) = 0 j 1, . . . , m

est appel ensemble de candidats. Sil est non vide, on appelle solution du problme doptimisation
tout minimum/maximum global de la fonction f restreinte cet ensemble de candidats, not x

.
Dans ce cours, on tudie uniquement les problmes de minimisation sans contraintes, cest--dire
avec m = m

= 0. Ainsi, lensemble des candidats correspond lespace R


p
tout entier. Remarquons
quun problme de maximisation max f(x) peut naturellement se transformer en un problme de mi-
nimisation min f(x).
Pourquoi sintresser ces problmes doptimisation ? Mettons-nous un instant dans la situation
o lon souhaite apprendre des donnes :
Donnes : (x
i
, y
i
) R
n
R, i 1, . . . , N
But : trouver un modle y = f(x) susceptible davoir gnr les donnes
(1)
dans le but de pouvoir ensuite prdire au mieux le comportement sur une nouvelle donne brute x R
n
.
Un expert, sachant do sont extraites les donnes, choisit alors une catgorie de modles potentiels,
savoir une famille (f

)
R
p de fonctions R
n
R rgie par des paramtres R
p
. Notre objectif est
alors de trouver le meilleur paramtre , par exemple en minimisant la fonction derreur des sommes
de carrs, cest--dire de rsoudre le problme doptimisation :
minimiser
1
2
N

i=1
[f

(x
i
) y
i
[
2
pour R
p
.
Avant de dtailler les outils qui vont nous permettre de rsoudre ces problmes doptimisation,
notons quil est possible de restreindre nos attentes en cherchant un optimum local (et non global
comme prcdemment), cest--dire chercher une valeur x

qui optimise la fonction f sur un voisinage


de x

et non sur lespace tout entier. Dans ce cas, on peut utiliser des mthodes de descente (si la
fonction objectif est direntiable), par exemple base sur le gradient, que nous dvelopperons en
Section 2, ou des mthodes telles que la mthode du simplexe (si la fonction objectif est linaire) ou
de recherches de motifs (si la fonction objectif nest pas direntiable). noter que dans le cas dune
fonction objectif prenant des valeurs discrtes, les mthodes sont tout fait direntes et constituent
le domaine de loptimisation combinatoire. Dans le cas des optima globaux, il est souvent ncessaire
dintroduire du non-dterminisme pour schapper des optima locaux, moins bien sr de vouloir
payer le prix dune recherche exhaustive. noter que le cas convexe que nous allons dvelopper permet
dassurer que le minimum local trouv est en fait un minimum global : on trouvera de plus amples
dtails sur loptimisation convexe dans [1].
1
1 Outils mathmatiques et conditions doptimalit
An de dvelopper les mthodes doptimisation, il est ncessaire de connatre un minimum doutils
mathmatiques relatifs au calcul direntiel. Pour de plus amples informations ou exercices, on se
reportera par exemple [2].
1.1 Direntielle et gradient
On se place dans des espaces vectoriels norms de dimension nie : on notera toujours | | la
norme, indpendamment de lespace utilis. Dans lespace R
n
, on note (e
1
, . . . , e
n
) la base canonique et
on identie le plus souvent une application linaire et sa matrice dans la base canonique. Par ailleurs,
on notera A
T
la transpose dune matrice A. Lespace R
n
est naturellement muni dun produit scalaire
canonique, not , , et dni pour deux vecteurs x, y R
n
par x, y = x
T
y.
Dnition 1 (direntielle). Soient U un ouvert de R
n
et a U. Une fonction f : U R
p
est dite
direntiable en a sil existe une application linaire continue L: R
n
R
p
et une fonction : R
n
R
p
telles que
pour tout h R
n
tel que a + h U, f(a + h) f(a) = L(h) +|h|(h) ;
lim
h0
|(h)| = 0 .
Si L existe, elle est unique : on la note Df(a) (ou f

(a), df(a), D
a
f...) et on lappelle direntielle de
f en a : dans la suite, on notera
f(a + h) = f(a) + Df(a)h + o(|h|) .
La fonction f est dite direntiable, si elle est direntiable en tout point de U.
Exemple 1. Si f est une application linaire sur U = R
n
alors f est direntiable de direntielle f.
Si f : R
n
R est dnie pour tout x R
n
par f(x) = x
T
Ax avec A une matrice n n coecients
rels, alors f est direntiable de direntielle Df(a)h = a
T
(A + A
T
)h.
Thorme 1. Soient U un ouvert de R
n
et a U.
Soient f, g : U R
p
deux fonctions direntiables en a et R. Lapplication f + g est
direntiable en a de direntielle D(f + g)(a) = Df(a) + Dg(a).
Soient f : U R
p
une application direntiable en a et g : f(U) R
q
une application dif-
frentiable en f(a). Lapplication g f est direntiable en a de direntielle D(g f)(a) =
Dg(f(a)) Df(a).
Exercice 1. Soient U un ouvert de R
n
, a U, v R
n
et f : U R
p
une application direntiable en
a. Montrer que lapplication t R f(a+tv) est dnie sur un voisinage de t = 0 et est direntiable
en 0. Que vaut sa direntielle en 0 ?
Si f : U R
p
est direntiable en a, on note f/x
i
(a) (ou
i
f(a)) le vecteur Df(a)e
i
R
p
. Grce
la linarit de la direntielle, on a pour tout h = (h
1
, . . . , h
n
) R
n
Df(a)h =
n

i=1
f
x
i
(a)h
i
.
Dnition 2 (gradient). On se place ici dans le cas o p = 1. On considre nouveau un ouvert U
de R
n
. Si f est une application U R direntiable en un point a U, telle que Df(a) nest pas
lapplication nulle, alors il existe un unique vecteur f(a) R
n
, appel gradient de f en a, vriant
pour tout h R
n
, Df(a)h = f(a), h.
On peut aisment vrier que f(a) = (f/x
1
(a), . . . , f/x
n
(a)).
Exemple 2. Si f est une forme linaire, de matrice u
T
R
1n
(cela veut donc dire que f(x) = u
T
x
pour tout x R
n
), alors f(a) = u. Si f(x) = x
T
Ax, alors f(a) = (A + A
T
)a.
Exercice 2. Soit f : R
n
R une application direntiable. Pour tout rel c, on appelle ligne de niveau
c de f lensemble A
c
= x R
n
[ f(x) = c. Soit x
0
A
c
. Montrer que f(x
0
) est orthogonal A
c
en x
0
.
2
1.2 Direntielle seconde et Hessienne
On se limite dans cette sous-section aux fonctions numriques, pour simplier lexpos : il est bien
sr possible de gnraliser les dnitions et thormes suivants au cas gnral.
Dnition 3 (direntielle seconde et Hessienne). Soient U un ouvert de R
n
et a U. Une fonction
f : U R est dite deux fois direntiable en a si les conditions suivantes sont vries :
f est direntiable sur un voisinage V de a dans U ;
lapplication Df : V (R
n
)

, u Df(u) (on note (R


n
)

lespace vectoriel des formes linaires


sur R
n
, qui sidentie par dualit R
n
lui-mme) est direntiable en a.
On note alors D
2
f(a) = D(Df)(a) (application linaire de R
n
dans (R
n
)

) la direntielle seconde ainsi


obtenue. Cette application linaire est reprsente dans les bases canoniques (base canonique de R
n
et
base duale canonique de (R
n
)

) par une matrice carre appele matrice Hessienne de f en a, souvent


note
2
f(a).
On note

2
f
x
i
x
j
(a) le vecteur

x
i

f
x
j

(a), et on abrge

2
f
x
i
x
i
(a) en

2
f
x
2
i
(a). On peut alors aisment
vrier que

2
f(a) =

2
f
x
2
1
(a)

2
f
x
2
x
1
(a) . . .

2
f
x
n
x
1
(a)
.
.
.
.
.
.
.
.
.

2
f
x
1
x
n
(a)

2
f
x
2
x
n
(a) . . .

2
f
x
2
n
(a)

.
De mme quon a associ Df(a) la forme linaire sur R
n
h R
n
Df(a)h =
n

i=1
f
x
i
(a)h
i
= h, fa ,
on associe D
2
f(a) une forme bilinaire sur R
n
R
n
dnie par
(h, k) R
n
R
n
D
2
f(a)(h, k) =
n

i,j=1

2
f
x
i
x
j
(a)h
i
k
j
= h,
2
f(a)k .
Exercice 3. Calculer la Hessienne de la fonction f : R
n
R, x x
T
Ax.
Thorme 2 (Schwarz). Soit U un ouvert de R
n
et a U. Si f : U R est deux fois direntiable
en a, alors pour tous i, j 1, . . . , n,

2
f
x
i
x
j
(a) =

2
f
x
j
x
i
(a) .
Autrement dit, la matrice
2
f(a) est symtrique, ou bien la forme bilinaire D
2
f(a) est symtrique.
Thorme 3 (Formule de Taylor-Young lordre 2). Soit U un ouvert de R
n
et a U. Si f : U R
est deux fois direntiable en a, on a
f(a + h) f(a) Df(a)h
1
2
D
2
f(a)(h, h) = o(|h|
2
)
lorsque h tend vers 0 dans R
n
.
Rappelons au passage la formule de Taylor-Lagrange lordre 2 pour les fonctions g : R R deux
fois drivables en a R (dont la preuve repose sur le thorme de Rolle) : pour tout h R, il existe
[0, 1] tel que
g(a + h) = g(a) + g

(a)h +
1
2
g

(a + h)h
2
.
Si f : U R est une fonction direntiable sur un ouvert U de R
n
, cette formule est en particulier
applicable la fonction g(t) = f(a + tv) pour tout a U et v R
n
.
3
1.3 Conditions doptimalit
Soient X une partie de R
n
, a X et f : X R une fonction numrique. On dit que f admet en a
un minimum global si f(x) f(a) pour tout x X.
On dit que f admet en a un minimum local sil existe un voisinage V de a dans R
n
tel que
f(x) f(a) pour tout x V X.
On dit que f admet en a un minimum strict si les ingalits prcdentes sont strictes pour x ,= a.
Les dnitions correspondantes pour maximum sen dduisent en inversant les ingalits. Le terme
extremum signie maximum ou minimum.
Thorme 4. Soient U un ouvert de R
n
, a U et f : U R une fonction numrique.
1. Condition ncessaire (pas susante) du premier ordre : si f admet en a un extremum local et si
f est direntiable en a, alors Df(a) = 0.
2. Condition ncessaire (pas susante) du second ordre : si f admet en a un minimum local et si f
est deux fois direntiable en a, alors Df(a) = 0 et D
2
f(a)(h, h) 0 pour tout vecteur h R
n
.
3. Condition susante (pas ncessaire) du second ordre : si f est deux fois direntiable en a,
Df(a) = 0 et D
2
f(a)(h, h) > 0 pour tout h R
n
0, alors f admet en a un minimum local
strict.
2 Optimisation de fonctions quadratiques
2.1 Solution analytique
On considre le problme (1) dans le cas o lexpert choisit la catgorie des modles anes :
f(x) = w
T
x + avec w R
n
et R. An de simplier les notations, on introduit le paramtre
=

R
n+1
, le vecteur y =

y
1
.
.
.
y
N

R
N
et la matrice X =

1 x
T
1
.
.
.
.
.
.
1 x
T
N

de taille N (n + 1).
Ainsi, on est ramen au problme de minimisation suivant :
minimiser
1
2
|X y|
2
2
pour R
n+1
o on a not | |
2
la norme 2 sur R
N
, issue du produit scalaire canonique.
En utilisant le Thorme 4, on peut montrer que toute solution optimale

de ce problme vrie
lquation
X
T
X

= X
T
y (2)
appele quations normales.
Exercice 4. Montrer (2).
2.2 Rgularisation
Comme toujours dans un tel problme dapprentissage, la tentation est grande de surapprendre
les donnes. Pour viter ce dsagrment, il est possible dintroduire un terme de rgularisation, emp-
chant le paramtre de prendre des valeurs trop importantes :
minimiser
1
2
|X y|
2
2
+

2
||
2
2
pour R
n+1
avec un paramtre de rgularisation. Dans ce cas particulier, on trouve galement une solution
optimale de manire analytique, qui doit vrier lquation (I + X
T
X)

= X
T
y, avec I la matrice
identit.
4
3 Optimisation de fonctions direntiables
3.1 Mthode de descente
On considre dsormais une fonction numrique f : R
n
R deux fois direntiable. Le principe
gnral des mthodes de descente est de construire une squence (x
k
)
k0
de points de R
n
qui va
converger vers un minimum local x

. Cette squence sera construite en choisissant un point initial


x
0
R
n
puis, pour k 0, rpter tant que ncessaire les tapes suivantes :
1. choisir une direction de descente d
k
R
n
0 ;
2. choisir une taille de pas
k
> 0 ;
3. poser x
k+1
= x
k
+
k
d
k
et continuer avec k = k + 1.
Le problme est de bien choisir x
0
, les directions d
k
et les tailles de pas
k
. chaque tape, d
k
et

k
sont choisis tels que f(x
k+1
) < f(x
k
) (sauf si on a atteint le minimum, cest--dire x
k
= x

).
3.2 Cas des fonctions convexes
On xe dans toute la sous-section un ouvert convexe U de R
n
et une fonction f : U R. On dit
que f est convexe sur U si, pour tous x, y U et pour tout t [0, 1],
f((1 t)x + ty) (1 t)f(x) + tf(y)
o (1t)x+ty appartient U, grce lhypothse de convexit de U. Ceci revient dire que le graphe
de f est au-dessous des cordes.
Exemple 3. Quelques exemples de fonctions convexes :
les fonctions anes : f(x) = a, x + b ;
les fonctions quadratiques : f(x) =
1
2
x, Ax +a, x +b avec A une matrice symtrique positive ;
les normes
p
: |x|
p
= (

n
i=1
[x
i
[
p
)
1/p
pour 1 p < et |x|

= max
i
x
i
;
loppos de la fonction entropie : f(x) =

n
i=1
x
i
log x
i
(la fonction entropie est donc concave).
Thorme 5. Si f est direntiable, alors f est convexe sur U si et seulement si
x, y U f(y) f(x) Df(x)(y x)
ce qui revient dire (si n = 1) que le graphe de f est au-dessus des tangentes.
Si f est deux fois direntiable, alors f est convexe sur U si et seulement si D
2
f est une forme
quadratique positive en tout point, cest--dire
x U, h R
n
D
2
f(x)(h, h) 0 .
Exercice 5. Prouver le Thorme 5.
En utilisant ce thorme, il est donc ais dobtenir des conditions susantes du type de celles du
Thorme 4 permettant de prouver lexistence dun minimum global (et non local).
Exercice 6. Soit f : U R une fonction sur U convexe ouvert de R
n
.
1. Si f est convexe et direntiable sur U et que Df(a) = 0, montrer que f admet en a un minimum
global sur U.
2. En dduire que si f est deux fois direntiable et vrie les conditions
Df(a) = 0 et x U, h R
n
D
2
f(x)(h, h) 0
alors f admet en a un minimum global.
Dans le cas dune fonction convexe f, on peut trouver une condition simple permettant de trouver
une direction de descente dans lalgorithme de descente.
5
Exercice 7. Montrer, en utilisant le thorme 5, que la direction de descente d
k
doit vrier f(x
k
)
T
d
k
<
0.
Un choix raisonnable consiste donc choisir d
k
= f(x
k
) : dans ce cas, on parle de descente de
gradient. Ce choix est aussi utilisable dans le cas gnral. Il reste choisir la taille de pas
k
. On peut
faire une recherche exhaustive, savoir chercher la taille minimisant f(x
k
f(x
k
)). Cest parfois
trop coteux et donc on se permet souvent de faire une approximation sur cette tape.
Sous certaines conditions sur f (par exemple forte convexit), on peut prouver que cette mthode
converge quel que soit le choix de x
0
et borner sa vitesse de convergence : il existe une constant c ]0, 1[
(dpendant de f) tel que pour tout k 0,
f(x
k
) f(x

) c
k
(f(x
0
) f(x

)) .
Cet algorithme est relativement lent, mme sil est abondamment utilis car ne ncessite pas de
calculs trop coteux ou de mise en uvre complique. Citons par ailleurs que lalgorithme rapide usuel
est la mthode de Newton, une mthode de descente qui se base sur le calcul de la Hessienne (coteux
en gnral) plutt que sur le gradient uniquement.
3.3 Gradient stochastique
Si lon suppose que la fonction minimiser scrit comme une somme de fonctions convexes f =

N
i=1
f
i
, alors une mthode permettant de rduire potentiellement le cot en calcul consiste considrer
chaque fonction f
i
alatoirement (ou alternativement en cycle). Ainsi, la mise jour devient x
k+1
=
x
k

k
f
i
(x
k
) avec i tir alatoirement parmi 1, . . . , N. On peut galement choisir un petit nombre
de fonctions f
i
chaque mise jour.
De retour lexemple mentionn en (1), cela revient dire quon considre chaque donne (x
i
, y
i
)
alatoirement chaque tape.
Rfrences
[1] Stephen Boyd and Lieven Vandenberghe. Convex optimization. Cambridge University Press, 2004.
Disponible en ligne ladresse http://www.stanford.edu/~boyd/cvxbook/.
[2] Franois Rouvire. Petit guide de calcul direntiel lusage de la licence et de lagrgation. Cassini,
2003. Deuxime dition revue et augmente.
6