Optimisation continue sans contraintes

Transcription

Optimisation continue sans contraintes
Optimisation continue sans contraintes
Méthodes de descente
Gilles Gasso
INSA Rouen - Département ASI
Laboratoire LITIS
5 octobre 2016
Gilles Gasso
Optimisation continue sans contraintes
1 / 29
Plan
1
Formulation
2
Notion de différentiabilité et gradient
3
Conditions d’optimalité
4
Algorithmes de descente
Principales méthodes de descente
Recherche du pas
5
Illustration méthodes de descente
Gilles Gasso
Optimisation continue sans contraintes
2 / 29
Formulation
Problèmes d’optimisation sans contraintes
D’où viennent ces problèmes ?
Quel est lien avec le Machine Learning ?
Comment se formulent-ils ?
Gilles Gasso
Optimisation continue sans contraintes
3 / 29
Formulation
Exemple 1 : Moindres carrés pour la régression
4
Grandeur à prédire : y ∈ R
Points
Regression
2
Variables prédictives : x ∈ Rd
0
Modèle linéaire : f (x) = x > θ
θ ∈ Rd : vecteur de paramètres à
déterminer
−2
−4
−2
−1
0
1
2
Détermination de θ
Minimisation de l’erreur quadratique
6
5.5
J(θ)
N
1X
min
(yi − xi> θ)2 ⇔ min J(θ)
θ 2
θ
5
4.5
i=1
4
2
avec J(θ) =
PN
1
2
i=1 (yi
− xi> θ)2
2
θ2
Gilles Gasso
1
0
0
−2 −2
Optimisation continue sans contraintes
−1
θ1
4 / 29
Formulation
Introduction : exemple 2
N données : D = {(xi , yi )}N
i=1
(xi , yi ) ≡ (donnée, étiquette)
Problème : apprendre une fonction
prédisant correctement le label de x
Problème de classification
Exemple : f (x) = x > θ
L : mesure l’erreur entre y et f (x)
Problème d’optimisation : déterminer θ
min
θ
N
X
|i=1
L(yi , xi> θ) + λ
{z
erreur
Gilles Gasso
}
kθk2
| {z }
pénalisation
Optimisation continue sans contraintes
5 / 29
Formulation
Optimisation sans contraintes
Formulation du problème
min J(θ)
θ∈Rd
Éléments du problème
θ ∈ Rd : vecteur de paramètres réels inconnus
J : Rd → R : fonction à plusieurs variables à minimiser.
Domaine de J : domJ = θ ∈ Rd | J(θ) < ∞
Hypothèse : J est différentiable (dérivable) partout sur son domaine
Gilles Gasso
Optimisation continue sans contraintes
6 / 29
Notion de différentiabilité et gradient
Différentiabilité et gradient
Intérêts de la différentiabilité
caractériser les conditions pour qu’un vecteur θ soit solution
approximation linéaire locale du problème
Notion de gradient
Soit la fonction J : Rd → R différentiable en tout point θ ∈ Rd . Le gradient
de J en un point θ est le vecteur de taille d noté ∇J(θ) et défini par
∇J(θ) =
∂J(θ)
∂θk
∂J(θ)
∂θ1
···
∂J(θ)
∂θd
>
est la dérivée partielle de J par rapport à la variable θk .
Gilles Gasso
Optimisation continue sans contraintes
7 / 29
Notion de différentiabilité et gradient
Exemples de gradient
Exemple 1
J(θ) = θ14 + θ24 − 4θ1 θ2
3
4θ1 − 4θ2
Gradient : ∇J(θ) =
−4θ1 + 4θ23
1
8
Valeur du gradient en θ =
: ∇J(θ) =
−1
−8
Exercice
Donner l’expression du gradient de J(θ) = cos(θ1 − θ2 ) + sin(θ1 + θ2 ) +
Gilles Gasso
Optimisation continue sans contraintes
θ1
4
8 / 29
Notion de différentiabilité et gradient
Calcul du gradient
Dérivée directionnelle au sens de Gâteaux
Soit la fonction J : Rd → R et soit h ∈ Rd . On appelle dérivée
directionnelle de Gâteaux en θ ∈ Rd suivant la direction h la limite si elle
existe
J(θ + th) − J(θ)
D(h, θ) = lim
t→0
t
Le gradient
Soit J : Rd → R une fonction différentiable en θ ∈ Rd . Le gradient en θ de J est
l’unique vecteur noté ∇J(θ) ∈ Rd tel que la dérivée directionnelle s’écrive :
D(h, θ)
Gilles Gasso
=
lim
t→0
J(θ + th) − J(θ)
= ∇J(θ)> h
t
Optimisation continue sans contraintes
9 / 29
Notion de différentiabilité et gradient
Exemples
Façon pratique d’avoir la dérivée directionnelle
Soit φ(t) = J(θ + th) avec t ∈ R, h ∈ Rd , θ ∈ Rd
φ0 (0), dérivée de φ(t) en t = 0, est la dérivée directionnelle
Preuve φ0 (0) = limt→0
φ(t)−φ(0)
t
= limt→0
J(θ+th)−J(θ)
t
De D(h, θ) au gradient : exercices
Calculer le gradient des fonctions suivantes
Forme linéaire : J(θ) = c > θ avec c, θ ∈ Rd
Forme quadratique : J(θ) = θ> Aθ avec A ∈ Rd×d
Gilles Gasso
Optimisation continue sans contraintes
10 / 29
Conditions d’optimalité
Conditions d’optimalité du problème d’optimisation
Quelles sont les solutions possibles au problème d’optimisation ?
Comment reconnait-on une solution au problème ?
Gilles Gasso
Optimisation continue sans contraintes
11 / 29
Conditions d’optimalité
Différentes solutions
Minimum global
Le vecteur θ∗ est un minimum global du problème d’optimisation s’il
vérifie J(θ∗ ) ≤ J(θ), ∀θ ∈ domJ
Minimum local
Le vecteur θ̂ est un minimum local du problème d’optimisation s’il vérifie
J(θ̂) ≤ J(θ), ∀θ ∈ domJ tel que kθ̂ − θk ≤ , > 0
Illustration
2
J(θ) = cos(θ1 − θ2 ) + sin(θ1 + θ2 ) +
θ1
4
1
0
−1
−2
6
6
4
4
2
2
0
Gilles Gasso
0
Optimisation continue sans contraintes
12 / 29
Conditions d’optimalité
Condition nécessaire d’optimalité 1
Théorème [Condition d’optimalité du premier ordre]
Soit J : Rd → R une fonction différentiable. Si un vecteur θ0 est solution
(locale ou globale) du problème (P), il vérifie nécessairement ∇J(θ0 ) = 0.
Vocabulaire
Le point θ0 vérifiant ∇J(θ0 ) = 0 est appelé point stationnaire ou point
critique
Gilles Gasso
Optimisation continue sans contraintes
13 / 29
Conditions d’optimalité
Exemple condition d’optimalité du premier ordre
24
4
4
0
10
14
4
0
−1
−1
1
4
9
9
9
1
19
9
14
19
9
2
J(θ) = θ14 + θ24 − 4θ1 θ2
3
4θ1 − 4θ2
Gradient ∇J(θ) =
−4θ1 + 4θ23
1
9
−1
0 1
4
14
9
14
0
19
1
19
4
−1
0
9
4
1
24
14
9
4
10
−1
−1
−2
−2
0
0
9
0
14
1
Points stationnaires vérifient ∇J(θ) = 0.
0
1
Trois solutions θ(1) =
, θ(2) =
et
0
1
−1
θ(3) =
−1
2
Remarques
θ(2) et θ(3) sont des minimum alors que θ(1) ne l’est pas
tout point stationnaire n’est pas forcément un minimum
Nécessité d’une autre condition
Comment s’assurer qu’un point stationnaire est un minimum ?
Gilles Gasso
Optimisation continue sans contraintes
14 / 29
Conditions d’optimalité
Matrice hessienne
Fonction deux fois différentiable
La fonction J : Rd → R est deux fois différentiable si en tout point θ il
existe une unique matrice H(θ) ∈ Rd×d symétrique appelée matrice
hessienne telle que J(θ + h) = J(θ) + ∇J(θ)> + h> H(θ)h + khk2 ε(h).
ε(h) est une fonction continue en 0 vérifiant limh→0 ε(h) = 0
H(θ) est la matrice des dérivées seconde


H(θ) = 

∂2J
∂θ 1 ∂θ 1
..
.
∂2J
∂θd ∂θ1
∂2J
∂θ1 ∂θ2
..
.
∂2J
∂θd ∂θ2
···
···
···
∂2J
∂θ1 ∂θd
..
.
∂2J
∂θ d ∂θ d




et est égale aussi à H(θ) = ∇θ> (∇θ J(θ)) (dérivée du gradient)
Gilles Gasso
Optimisation continue sans contraintes
15 / 29
Conditions d’optimalité
Exemple
Fonction J(θ) = θ14 + θ24 − 4θ1 θ2
Gradient ∇J(θ) =
4θ13 − 4θ2
−4θ1 + 4θ23
Matrice Hessienne H(θ) =
Gilles Gasso
12θ12
−4
−4
12θ22
Optimisation continue sans contraintes
16 / 29
Conditions d’optimalité
Condition nécessaire d’optimalité 2
Théorème [Condition d’optimalité du second ordre]
Soit J : Rd → R une fonction deux fois différentiable. Si θ0 est solution,
alors ∇J(θ0 ) = 0 et H(θ0 ) est une matrice définie positive.
Remarques
La matrice H est définie positive ssi toutes ses valeurs propres sont positives
Dans le cas scalaire, θ ∈ R, cette condition revient à dire qu’à un minimum
la dérivée de la fonction est nulle et sa dérivée seconde est positive
Gilles Gasso
Optimisation continue sans contraintes
17 / 29
Conditions d’optimalité
Illustration de la condition nécessaire du 2e ordre
4
4
0
−1
−1
24
9
4
4
−1
1
0 1
4
9
−1
14
14
9
14
0
19
1
19
−1
1
24
0
9
19
14
Gilles Gasso
1
0
9
4
10
Val. propres
Type de solution
10
Hessienne
4
0
1
θ(2) 12 −4
−4 12
8, 16
Minimum
4
9
9
14
0
9
θ(1) 0 −4
−4 12
4, −4
Point selle
9
14
19
9
2
J(θ) = θ14 + θ24 − 4θ1 θ2
3
1
4θ1 − 4θ2
Gradient : ∇J(θ) =
−4θ1 + 4θ23
0
0
1
Points stationnaires : θ(1) =
, θ(2) =
et
0
1
−1
−1
θ(3) =
−1
−2
2
−2
12θ1 −4
Hessienne H(θ) =
−4 12θ22
2
θ(3) 12 −4
−4 12
8, 16
Minimum
Optimisation continue sans contraintes
18 / 29
Conditions d’optimalité
Comment trouver la (les) solution(s) ?
On a vu comment reconnaître une solution du problème
Reste maintenant une question : comment trouver une solution ?
Gilles Gasso
Optimisation continue sans contraintes
19 / 29
Algorithmes de descente
Principe des algorithmes de descente
Direction de descente
Soit la fonction J : Rd → R. Le vecteur h ∈ Rd est appelé direction de
descente en θ s’il existe α > 0 tel que J(θ + αh) < J(θ)
Principe des méthodes de descente
1.5
θ1
Partir d’un point initial θ0
1
θ0
1
0.5
Construire une séquence {θk } avec
θk+1 = θk + αk hk
0.5
0
S’assurer que la séquence {θk } converge
vers un point stationnaire θ̂
0
θ8
−0.5
−0.5
−1
−1
−1.5
−2
−1
0
1
2
hk : direction de descente en θk
αk est le pas de descente
Gilles Gasso
Optimisation continue sans contraintes
20 / 29
Algorithmes de descente
Approche générale
Algorithme général
1:
Mettre k = 0, initialiser θ0
2:
repeat
3:
Trouver une direction de descente hk ∈ Rd
4:
Recherche linéaire : trouver un pas αk > 0 le long de hk tel que
J(θk + αk hk ) décroît "suffisamment"
5:
Mise à jour : θk+1 ← θk + αk hk et k ← k + 1
6:
until k∇J(θk )k < Les méthodes de descente diffèrent par le choix de h et α
Choix de h : algorithme du gradient, algorithme de Newton, algorithme
de type Quasi-Newton
Recherche linéaire : Armijo, Wolfe .. ;
Gilles Gasso
Optimisation continue sans contraintes
21 / 29
Algorithmes de descente
Principales méthodes de descente
Algorithme du gradient
Théorème [descente et direction opposée du gradient]
Soit J(θ) une fonction différentiable. La direction h = −∇J(θ) ∈ Rd est
une direction de descente.
Caractéristiques de l’algorithme du gradient
Choix de la direction en θk : hk = −∇J(θk )
Complexité de la mise à jour : θk+1 ← θk − αk ∇J(θk ) coûte O(d)
Gilles Gasso
Optimisation continue sans contraintes
22 / 29
Algorithmes de descente
Principales méthodes de descente
Algorithme de Newton
Approximation de J au 2e ordre en θk pour J deux fois différentiable
1
J(θ + h) ≈ J(θk ) + ∇J(θk )> h + h> H(θk )h
2
avec la matrice hessienne H(θk ) définie positive
La direction hk qui minimise cette approximation est obtenue par
∇J(θ + hk ) = 0
⇒
hk = −H(θk )−1 ∇J(θk )
Caractéristiques de la méthode de Newton
Choix de la direction en θk : hk = −H(θk )−1 ∇J(θk )
Complexité mise à jour : θk+1 ← θk − αk H(θk )−1 ∇(θk ) coûte O(d 3 )
On a pas toujours la garantie que H(θk ) est définie positive et donc
que hk soit une direction de descente
Gilles Gasso
Optimisation continue sans contraintes
23 / 29
Algorithmes de descente
Principales méthodes de descente
Illustration méthodes de gradient et Newton
Approximation locale des deux méthodes
en 1D
100
J
Approxim. de J Meth. Gradient
Approxim. de J Meth. Newton
80
Directions de descente en 2D
2
40
9
14
19
24
9
4
9
1
0
19
−1
4
14
20
1
0
0
4
1
1
−1
14
−20
0
0
0
4
h = − H−1 ∇ J
1
2
0
0
θ
4
−2
−1
−1
0
1
14
k
4
Tangente en θ
9
h=−∇J1
−1
0
4
4
1
19
−40
−4
9
θk
9
0
9
J(θ)
60
14
9
4
−2
−2
Gilles Gasso
9
9
−1
24
19
14
0
Optimisation continue sans contraintes
1
2
24 / 29
Algorithmes de descente
Recherche du pas
Recherche linéaire
La direction de descente hk en θk est fixée. On cherche le pas αk > 0
dans la direction hk tel que J(θk + αk hk ) décroît suffisamment
Plusieurs possibilités
Méthode à pas fixe : on fixe α > 0 une bonne fois pour toutes
θk+1 ← θk + αhk
Remarque : méthode souvent peu efficace
Pas variable : on adapte le choix αk à l’itération courante
θk+1 ← θk + αk hk
Remarque : approche la plus couramment utilisée
Gilles Gasso
Optimisation continue sans contraintes
25 / 29
Algorithmes de descente
Recherche du pas
Pas variable : recherche inexacte du pas
Règle d’Armijo
Déterminer le pas αk pour avoir une "décroissance suffisante" de J i.e.
J(θk + αk h) ≤ J(θk ) + c αk ∇J(θk )> hk
En général c est pris dans l’intervalle 10−5 , 10−1
hk étant une direction de descente on a ∇J(θk )> hk < 0, ce qui assure la
décroissance de J
Algorithme de backtracking
Choix du pas initial
1: Fixer un pas initial ᾱ, choisir 0 < ρ < 1, α ← ᾱ
2: repeat
3:
α ← ρα
4: until J(θk + αh) > J(θk ) + c α∇J(θk )> hk
Interprétation : tant que J ne décroît pas, on
diminue le pas
Gilles Gasso
Méthode de type
Newton : ᾱ = 1
Méthode de type
gradient :
J(θk )−J(θk−1 )
ᾱ = 2 ∇J(θ
)> h
Optimisation continue sans contraintes
k
k
26 / 29
Algorithmes de descente
Recherche du pas
Récapitulation méthodes de descente
Algorithme général
1: Initialiser θk
2: repeat
3:
Trouver une direction de descente hk ∈ Rd
4:
Recherche linéaire : trouver un pas αk > 0
5:
Mise à jour : θk+1 ← θk + αk hk
6: until convergence
Methode
Gradient
Newton
Quasi-Newton
Direction de descente h
−∇J(θ)
−H(θ)−1 ∇J(θ)
−B(θ)−1 ∇J(θ)
Complexité
O(d)
O(d 3 )
O(d 2 )
Convergence
linéaire
quadratique
superlinéaire
Recherche du pas : backtracking
Complexité de chaque méthode : dépend de la complexité de calcul de h, de
la recherche de α et du nombre d’itérations effectuées
Gilles Gasso
Optimisation continue sans contraintes
27 / 29
Illustration méthodes de descente
La méthode du gradient en marche
Fonction J au fil des itérations
Evolution des itérées
10
19
14
4
9
θ0
1.5
8
1
0
−1
4
9
0
0
1
4
0
6
Itérations k
8
10
1
12
−0.5
0
4
−1
1
−1
9
1
4
−1
2
0
0
0
−2
0
0
1
0
4
0.5
2
−1
−1
1
4
0
J(θ(k))
6
−1
0
−1.5 1
−1.5
Gilles Gasso
1
−1
4
−0.5
14
9
0
0.5
Optimisation continue sans contraintes
1
1.5
28 / 29
Illustration méthodes de descente
La méthode de Newton en marche
Fonction J au fil des itérations
Evolution des itérées
10
19
14
4
9
θ0
1.5
8
1
0
−1
4
9
0
0
1
4
0
3
4
Itérations k
5
6
1
7
−0.5
0
2
0
0
−1
0
1
−2
1
0
1
0
4
0.5
2
−1
−1
1
4
9
4
−1
A chaque itération nous avons
considéré la matrice H(θ) + λI au
−1.5 1
lieu de H pour garantir la
−1.5
propriété de défini positivité de la
hessienne
Gilles Gasso
1
−1
−1
0
J(θ(k))
6
0
1
−1
4
−0.5
14
9
0
0.5
Optimisation continue sans contraintes
1
1.5
29 / 29