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