Transcript B ienvenue
Fouille de données et apprentissage Cours 6: Les SVM (suite) et les méthodes à noyaux Alexis Lechervy 10 février 2014 Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 1 / 27 Rappels des cours précédents Sommaire 1 Rappels des cours précédents 2 Résolution du problème d’optimisation d’un SVM dans le dual 3 Recherche d’une séparation non-linéaire Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 1 / 27 Rappels des cours précédents La classification linéaire à deux classes Objectif L’objectif est de trouver un hyperplan qui sépare au mieux nos deux classes. Le classifieur sera alors la fonction : x si x est au dessus de l’hyperplan h(x) = o si x est en dessous de l’hyperplan Formalisation mathématique h(x) = Alexis Lechervy (UNICAEN) 1 si hw , xi + b > 0 −1 sinon Fouille de données et apprentissage 10 février 2014 2 / 27 Rappels des cours précédents Le choix d’un hyperplan, un problème dont la solution n’est pas unique. =⇒ Lequel choisir ? Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 3 / 27 Rappels des cours précédents Le meilleur hyperplan ? : celui qui maximise la marge Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 4 / 27 Rappels des cours précédents Formulation avec problème d’optimisation SVM dans le primal arg minw ,b s.t. 1 kw k2 2 ∀i, yi (w > xi + b) ≥ 1 (1) (2) ⇒ Problème en pratique, pas d’algorithme numérique efficace si le nombre d’exemple d’apprentissage est important. SVM dans le dual arg maxα X i s.t αi − 1X αi αj yi yj hxi , xj i 2 (3) i,j ∀i αi ≥ 0 X αi yi = 0 (4) (5) i Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 5 / 27 Rappels des cours précédents SVM à marge souple SVM à marge souple dans le primal X 1 kw k2 +C ξi 2 (6) ∀i, yi (w > xi + b) ≥ 1−ξi (7) arg minw ,b i s.t. ⇒ Problème en pratique, pas d’algorithme numérique efficace si le nombre d’exemple d’apprentissage est important. SVM à marge souple dans le dual arg maxα X i s.t αi − 1X αi αj yi yj hxi , xj i 2 (8) i,j ∀i C ≥αi ≥ 0 X αi yi = 0 (9) (10) i Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 6 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Sommaire 1 Rappels des cours précédents 2 Résolution du problème d’optimisation d’un SVM dans le dual 3 Recherche d’une séparation non-linéaire Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 6 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Une solution naïve : une montée de gradient Problème d’optimisation à résoudre arg maxα X i s.t αi − 1X αi αj yi yj hxi , xj i 2 (11) i,j ∀i C ≥ αi ≥ 0 X αi yi = 0 (12) (13) i Stratégie employée Montée itérative, A chaque itération on monte dans la direction d’une gradient (la plus forte pente), Et on projette sur les contraintes pour rester une solution admissible. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 7 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Gestion des contraintes pour une approche naïve Contraintes d’inégalité La projection sur la contrainte C ≥ αi ≥ 0 ce réalise simplement à l’aide de la transformation suivante : si C < αi alors αi ← C (14) si 0 > αi alors αi ← 0 (15) La contrainte d’égalité P La contrainte d’égalité i αi yi = 0 est plus difficile à satisfaire. Un moyen simple est de ne pas la traiter en fixant le biais b à une certaine valeur (par exemple le ∂L problème sans biais b = 0). En effet cette contrainte proviens = 0. ∂b Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 8 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Une solution naïve : une montée de gradient (suite) Montée dans la direction du gradient 1 Calcul du gradient : ∂ 2 P i αi − 1P αi αj yi yj hxi , xj i) 2 i ,j = ∂αi On change α dans la direction du gradient : Projection sur les contraintes Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 9 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Une solution naïve : une montée de gradient (suite) Montée dans la direction du gradient 1 Calcul du gradient : ∂ P i αi − 1P αi αj yi yj hxi , xj i) X 2 i ,j αj yj hxi , xj i. = 1 − yi ∂αi j 2 On change α dans la direction du gradient : Projection sur les contraintes Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 9 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Une solution naïve : une montée de gradient (suite) Montée dans la direction du gradient 1 Calcul du gradient : ∂ P i αi − 1P αi αj yi yj hxi , xj i) X 2 i ,j αj yj hxi , xj i. = 1 − yi ∂αi j 2 On change α dans la direction du gradient : αi ←− αi + η 1 − yi X αj yj hxi , xj i , j avec η une constante de réglage de la méthode. Projection sur les contraintes Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 9 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Une solution naïve : une montée de gradient (suite) Montée dans la direction du gradient 1 Calcul du gradient : ∂ P i αi − 1P αi αj yi yj hxi , xj i) X 2 i ,j αj yj hxi , xj i. = 1 − yi ∂αi j 2 On change α dans la direction du gradient : αi ←− αi + η 1 − yi X αj yj hxi , xj i , j avec η une constante de réglage de la méthode. Projection sur les contraintes αi ←− min C , max 0, αi + η 1 − yi Alexis Lechervy (UNICAEN) X j Fouille de données et apprentissage αj yj hxi , xj i 10 février 2014 9 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Algorithme naïve de résolution d’un SVM à marge souple sans biais Data: Un ensemble S d’apprentissage linéaire séparable et un taux η ∈ R+ Initialisation : α ←− 0; repeat for i = 1, · · · , n do P αi ←− αi + η 1 − yi j αj yj hxi , xj i , ; if αi < 0 then αi ←− 0; end if αi > C then αi ←− C ; end end until Critère d’arrêt satisfait; Result: le couple (α) Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 10 / 27 Résolution du problème d’optimisation d’un SVM dans le dual Inconvénient de cette approche Le biais doit être fixé. Le choix du taux η est délicat, si il est trop grand le système oscille autour de la valeur optimal, si il est trop petit la convergence est très lente. ⇒ Cette approche est simple conceptuellement et numériquement. C’est une bonne candidate pour une première implémentation des SVM mais à certaine limitation. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 11 / 27 Résolution du problème d’optimisation d’un SVM dans le dual L’algorithme SMO (Sequential Minimal Optimisation) Principes SMO est un algorithme itératif. A chaque itération on optimise la fonction de coût P 1P (L(α) = i αi − αi αj yi yj hxi , xj i)) selon uniquement deux 2 i,j multiplicateurs α1 , α2 . L’objectif de l’itération est d’augmenter le plus possible L(α) tout en satisfaisant les contrainte les long de α1 , α2 Les nouvelles valeurs α10 , α20 sont choisies de manière à satisfaire : y1 α10 + y2 α20 = y1 α1 + y2 α2 . Ainsi la contrainte P i αi yi = 0 reste inchangé. remarques Il est impossible de conserver la contrainte d’égalité si uniquement un seul multiplicateur est changé. C’est pour cette raison que l’on en modifie deux. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 12 / 27 Résolution du problème d’optimisation d’un SVM dans le dual L’algorithme SMO Algorithme On part du problème dual. On se déplace dans l’espace des α en faisant bouger uniquement deux coordonnées. On réécrit la fonction objective L(α) en ne prenant que deux αi et on suit le gradient (la plus forte pente). On fait attention à respecter la contrainte. On s’arrête lorsque l’on vérifie les conditions d’optimalité. En pratique les couples des α ne sont pas choisi au hasard pour accélérer la convergence. Bibliographie pour approfondir ces méthodes de résolution de SVM An Introduction to Support Vector Machines and other kernel-based learninf methodes, livres de Nello Cristianini et John Shawe-Taylor. The nature of statistical learning theory, livre de Vladimir Vapnik. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 13 / 27 Recherche d’une séparation non-linéaire Sommaire 1 Rappels des cours précédents 2 Résolution du problème d’optimisation d’un SVM dans le dual 3 Recherche d’une séparation non-linéaire Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 13 / 27 Recherche d’une séparation non-linéaire Différent catégories de problème de classification b b b b b b b b b b b b b b b b b b Problème linéaire =⇒ OK b b b b b b b b Problème quasi-linéaire =⇒ OK Fouille de données et apprentissage b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Alexis Lechervy (UNICAEN) b b b b b b b b b b b b b b b b b b b b b b b Problème non-linéaire ? 10 février 2014 14 / 27 Recherche d’une séparation non-linéaire Astuce pour résoudre un problème non-linéaire : changer d’espace Avant Alexis Lechervy (UNICAEN) Après Fouille de données et apprentissage 10 février 2014 15 / 27 Recherche d’une séparation non-linéaire Formulation mathématique de notre exemple Changement d’espace √ ϕ : (x1 , x2 ) 7−→ (x12 , 2x1 x2 , x22 ) Remarques En 2D, une surface de séparation non-linéaire est nécessaire pour séparer les données. En 3D, un hyperplan suffit. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 16 / 27 Recherche d’une séparation non-linéaire Cas général Théorème de Cover (1965) Dans un espace de dimension d , la probabilité que deux classes quelconques de n exemples ne soit pas linéairement séparable tend vers 0 lorsque d −→ ∞. Si n < d , il existe un hyperplan séparant les exemples d’apprentissages. =⇒ Si on augmente suffisamment le nombre de dimension, on peut se ramener à un problème de classification linéaire. =⇒ On va transformer l’espace d’entrée en un espace de plus grande dimensions. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 17 / 27 Recherche d’une séparation non-linéaire Séparation non linéaire Principe 1 On projette les exemples dans un nouvel espace de dimension d . (d étant souvent très grand, éventuellement infini). Cet espace est appelé l’espace des caractéristiques. ϕ1 (x) ϕ2 (x) ϕ(x) = .. . ϕd (x) 2 On effectue la séparation linéaire dans ce nouvel espace. =⇒ Attention si d devient trop grand (voir infini), les calculs peuvent devenir rapidement impossible numériquement. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 18 / 27 Recherche d’une séparation non-linéaire Les fonctions noyaux Définition Soit ϕ : X −→ H une fonction de changement d’espace à valeur dans un espace de Hilbert (H), on définit la fonction noyau associé à cette espace comme étant la fonction bilinéaire k(x1 , x2 ) : X × X −→ H, vérifiant k(x1 , x2 ) = hϕ(x1 ), ϕ(x2 )i Remarque Le produit scalaire est une fonction de noyau. Elle correspond à une fonction noyau associé à la fonction ϕ(x) = x. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 19 / 27 Recherche d’une séparation non-linéaire Retour sur notre exemple Retour sur notre exemple initial √ ϕ : (x1 , x2 ) 7−→ (x12 , 2x1 x2 , x22 ) Calcul de la fonction noyau associé hϕ(x), ϕ(z)i = = √ √ h(x12 , 2x1 x2 , x22 ), (z12 , 2z1 z2 , z22 )i (16) x12 z12 + 2x1 x2 z1 z2 (17) 2 (18) + x22 z22 = (x1 z1 + x2 z2 ) = hx, zi2 (19) Remarque Il n’est pas nécessaire de passer dans l’espace de redescription pour calculer la valeur de la fonction noyau. Le calcul peut etre fait dans l’espace initial. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 20 / 27 Recherche d’une séparation non-linéaire Non unicité de l’espace de représentation pour une fonction noyau donnée Une autre fonction de changement d’espace ϕ : (x1 , x2 ) 7−→ (x12 , x22 , x1 x2 , x2 x1 ) Calcul de la fonction noyau associé hϕ(x), ϕ(z)i = h(x12 , x22 , x1 x2 , x2 x1 ), (z12 , z22 , z1 z2 , z2 z1 )i = x12 z12 + x22 z22 + x1 x2 z1 z2 + x2 x1 z2 z1 = (x1 z1 + x2 z2 )2 (20) (21) (22) 2 = hx, zi (23) Remarque Différente fonction de redescription de l’espace peuvent engendré la même fonction noyau. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 21 / 27 Recherche d’une séparation non-linéaire Comparaison de la représentation de l’information Représentation classique des données Un exemple est décrit par un vecteur de caractéristique : x1 x2 x −→ . .. xd Représentation à l’aide d’un noyau Au lieu de représenter chaque exemple individuellement, on représente l’ensemble d’apprentissage à l’aide d’une matrice de similarité. Soit une fonction de similarité K , on représente l’ensemble d’apprentissage par la matrice [K ]ij = K (xi , xj ). La base d’apprentissage est donc maintenant représenté par une matrice de la taille nombre d’image x nombre d’image. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 22 / 27 Recherche d’une séparation non-linéaire Les deux représentations pour un exemple de séquence d’ADN Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 23 / 27 Recherche d’une séparation non-linéaire Remarques La représentation par matrice de similarité utilise toujours une matrice carrée réelle, quels que soient les objets (séquences, vecteurs, images, ...). Le même algorithme pourra traîter toutes ces données. Il y aura une complète modularité entre le choix de la fonction de similarité, d’une part, et le choix de l’algorithme qui sera appliqué à la matrice de similarité, d’autre part. La taille de la matrice de similarité est toujours n × n, quelles que soient la nature et la complexité des objets Il est parfois plus simple de comparer des objets complexes que de les transformer en une forme imposée par un algorithme. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 24 / 27 Recherche d’une séparation non-linéaire Autres exemples de fonctions noyaux Noyau linéaire : k(xi , xj ) = hxi , xj i. Noyaux polynomiaux : k(xi , xj ) = (hxi , xj i + c)q , avec c ∈ R et q ∈ R+ . kxi − xj k2 , σ ∈ R+ . σ2 kxi − xj k2 − 2σ 2 Noyaux Gaussiens : k(xi , xj ) = e , σ ∈ R+ .. Noyaux triangulaires : k(xi , xj ) = 1 − Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 25 / 27 Recherche d’une séparation non-linéaire L’astuce du noyau L’astuce du noyau Un algorithme utilisant un produit scalaire peut être "noyauté" en remplaçant tous ces produits scalaires par une fonction noyau. Étape d’utilisation 1 Exprimer l’algorithme uniquement avec des produits scalaires. 2 Remplacer tout les produits scalaires par une fonction noyau. Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 26 / 27 Recherche d’une séparation non-linéaire Application au SVM SVM linéaire dans le dual arg maxα X αi − i 1X αi αj yi yj hxi , xj i 2 (24) i,j ∀i C ≥ αi ≥ 0 X αi yi = 0 s.t (25) (26) i SVM non-linéaire dans le dual arg maxα X i s.t αi − 1X αi αj yi yj k(xi , xj ) 2 (27) i,j ∀i C ≥ αi ≥ 0 X αi yi = 0 (28) (29) i Alexis Lechervy (UNICAEN) Fouille de données et apprentissage 10 février 2014 27 / 27