Classification, Apprentissage, Décision Classication, Apprentissage, Décision Chapitre cinquième : Perceptron Stéphane Ayache, Cécile Capponi, François Denis, Rémi Eyraud, Hachem Kadri, Liva Ralaivola Master 2 IS-IN Classification, Apprentissage, Décision Plan du cours Introduction Arbre de décision & k-ppv Théorie de l’apprentissage Clustering Perceptron Machines à vecteur de support Classification, Apprentissage, Décision Perceptron Plan Introduction Arbre de décision & k-ppv Théorie de l’apprentissage Clustering Perceptron Machines à vecteur de support Classification, Apprentissage, Décision Perceptron Classification linéaire binaire X ⊂ Rd , Y = {−1, +1} Définition. Un classifieur linéaire est une fonction de la forme +1 si hw, xi + b ≥ 0 f (x) = −1 sinon. où w ∈ Rd , b ∈ R, hw, xi désigne le produit scalaire entre w et x : si P w = (w1 , . . . , wn ) et x = (x1 , . . . , xn ), hw, xi = di=1 wi xi . Interprétation géométrique : hw, xi + b = 0 est l’équation d’un hyperplan qui sépare X en deux demi-espaces correspondant aux deux classes. Classification, Apprentissage, Décision Perceptron Un exemple X = R2 Classifieur linéaire f défini par w = (1, 2) et b = −1 : 1 si x1 + 2x2 − 1 ≥ 0 f (x1 , x2 ) = −1 sinon. Par exemple, f (0, 0) = −1 et f (1, 1) = 1. Hyperplan d’équation x1 + 2x2 − 1 = 0 (c-à-d x2 = − 21 x1 + 12 ) Classification, Apprentissage, Décision Perceptron Expressivité des perceptrons I Les classifieurs linéaires peuvent sembler a priori très peu expressifs : pourquoi des données naturelles se répartiraient-elles de part et d’autres d’un hyperplan ? I Cette intuition n’est pas forcément vérifiée en très grande dimension (cas de classification de vidéos, par exemple). I Cela suggère de plonger les données initiales dans un espace de grande dimension (voir chapitre suivant). A complex pattern-classification problem, cast in a high-dimensional space nonlinearly, is more likely to be linearly separable than in a low-dimensional space, provided that the space is not densely populated. (T.M. Cover, 1965) Classification, Apprentissage, Décision Perceptron Données linéairement séparables Un échantillon S = {(x1 , y1 ), . . . , (xn , yn )} ⊂ (X × Y )n est linéairement séparable s’il existe un classifieur linéaire qui classe correctement tous les exemples de S. Exemples : S = {((0, 0), −1), ((1, 0), 1), ((0, 1), −1)} est linéairement séparable. S = {((0, 0), −1), ((1, 0), 1), ((0, 1), 1), ((1, 1), −1)} n’est pas linéairement séparable (XOR). Classification, Apprentissage, Décision Perceptron Perceptrons I Perceptrons (Rosenblatt 1958, Minsky/Papert 1969) : généralisation d’un modèle plus simple proposé par (McCulloch/Pitts neurons, 1942) I un perceptron à d entrées est décrit par un vecteur de pondération − → w = (w1 , . . . , wd )> ∈ Rd , un seuil θ ∈ R et permet de calculer la fonction suivante : ( +1 if x1 w1 + x2 w2 + . . . + xd wd ≥ θ (x1 , . . . , xd ) 7−→ y = −1 if x1 w1 + x2 w2 + . . . + xd wd < θ Classification, Apprentissage, Décision Perceptron Perceptrons I I pour plus de commodité : remplacer le seuil par un poids supplémentaire (biais) b = −θ − → un perceptron avec un vecteur de pondération w et un biais b effectue le calcul suivant : (x1 , . . . , xd ) 7−→ y = f (b + d X − → − → (wi xi )) = f (b + h w , x i) i=1 avec f (z) = +1 if z ≥ 0 −1 if z < 0 Classification, Apprentissage, Décision Perceptron Perceptrons : Remarques I Les isométries et les homothéties preservent la séparabilité I En rajoutant une dimension, on peut ne plus avoir besoin du biais : ajouter une coordonnée xd+1 égale à 1 pour toutes les données et poser b = wd+1 I il existe une infinité d’hyperplans séparant des données séparables... Classification, Apprentissage, Décision Perceptron Perceptrons : interprétation géométrique I données (x1 , . . . , xn ) −→ ∈ un espace de dimension d I I − → − → points vérifiants b + h w , x i = 0 − → −→ hyperplan défini par b et w − → − → points vérifiants b + h w , x i > 0 −→ points d’un coté de l’hyperplan I − → − → points vérifiants b + h w , x i < 0 −→ points de l’autre coté de l’hyperplan I un perceptron divise l’espace des données en deux demi-espaces −→ situés de part et d’autre de l’hyperplan Classification, Apprentissage, Décision Perceptron algorithme d’apprentissage du perceptron I les perceptrons peuvent être automatiquement adaptés à des taches d’apprentissage ⇒ Apprentissage supervisé : Classification I algorithme d’apprentissage du perceptron : données : • un ensemble de données P ⊆ Rd : exemples positifs • un autre ensemble N ⊆ Rd : exemples négatifs tache : • générer un perceptron qui retourne 1 pour tous les exemples de P et −1 pour les exemples de N I évidemment, il y a des cas dans lesquels l’algo d’apprentissage du perceptron n’est pas T capable de résoudre le problème de classification −→ exemple : P N = 6 ∅ −→ données non linéairement séparables −→ solution potentielle : transférer les données dans un autre espace dans lequel les données sont linéairement séparables (plus de détail dans le chapitre suivant) Classification, Apprentissage, Décision Perceptron algorithme d’apprentissage du perceptron I Lemme (séparabilité stricte) : Si ∃ un perceptron qui classe parfaitement les données d’apprentissage, alors ∃ un perceptron qui classe ces données sans qu’aucune ne soit − → − → sur la frontière de décision, b + h w , x i 6= 0 Preuve : − → Soit (b, w ) un perceptron qui classe parfaitement toutes les données d’apprentissage. D’où ( − → ≥0 ∀ x ∈P − → − → b + hw , x i − → <0 ∀ x ∈N − → − → − → Soit = min{−(b + h w , x i)| x ∈ N }. Alors : − → ≥ >0 ∀ x ∈P − → − → 2 b + + hw , x i → ≤ − < 0 ∀ − 2 x ∈N 2 − → Ainsi le perceptron (b + , w ) prouve le lemme. 2 Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w0 Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w0 Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w0 Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I I − → Erreur de classification de x ∈ P − → − → −→ b + h w , x i < 0 − → Comment peut-on modifier b et w pour remédier à cette erreur − → − → −→ augmenter b + h w , x i • augmenter b • Si xi > 0 augmenter wi • Si xi < 0 diminuer wi I − → − → Algorithme : ajouter x à w et 1 à b −→ Procéder par analogie pour les − → exemples négatifs x ∈ N augmenter w Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron Entrées : données d’apprentissage positives P et négatives N Retourne : un perceptron, si existe, qui classe parfaitement toutes les données d’apprentissage − → 1. initialiser arbitrairement le vecteur de pondération w et le biais b S − → 2. Tant que il existe une donnée mal-classée x ∈ P N faire − → 3. Si x ∈ P alors − → − → − → 4. w ← w + x 5. b =b+1 6. Sinon − → − → − → 7. w ← w − x 8. b =b−1 9. Fin si 10. Fin tant que − → 11. Retourner b et w Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron : Exemple N = {(1, 0)> , (1, 1)> }, P = {(0, 1)> } −→ exercice Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron : Convergence I Lemme : − → Si l’algorithme du perceptron converge, alors le perceptron (b, w ) obtenu classe parfaitement tous les exemples d’apprentissage. I Théorème (Convergence) : Si ∃ un perceptron qui classe correctement toutes les données d’apprentissage, alors l’algorithme du perceptron converge. I Lemme : Si au cours de l’exécution de l’algorithme du perceptron on rencontre deux fois le même vecteur de pondération, alors les données d’apprentissage utilisées ne sont pas linéairement séparables. I Lemme : Si l’algorithme du perceptron avec un biais b = 0 est exécuté sur un jeu de données non linéairement séparable, alors le même vecteur de pondération se produira au moins deux fois . Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron : Convergence I Lemme (Complexité) : Si les données d’apprentissage sont linéairement séparables, alors le nombre d’itérations maximal de l’algorithme du perceptron est égale à (n + 1)2 2(n+1) log(n+1) I temps d’exécution : complexité exponentielle 7 → autres implémentations - complexité O(n 2 ) - Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du perceptron I comment peut-on déterminer un “bon" perceptron si la tâche d’apprentissage ne peut pas être résolu parfaitement I “bon" dans le sens d’un perceptron avec un nombre d’erreurs minimal I l’algorithme du perceptron : le nombre d’erreurs ne décroit pas de façon monotone durant la phase d’apprentissage I idée : mémoriser le meilleur vecteur de pondération rencontré au cours de l’exécution I les perceptrons peuvent apprendre que des problèmes linéairement séparables I contre-exemple : XOR(x1 , x2 ) P = {(0, 1)> , (1, 0)> }, N = {(0, 0)> , (1, 1)> } I un réseau de neurone associant plusieurs perceptrons est plus puissant Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du Perceptron (Rosenblatt, 1958) Soit S = SP ∪ SN ⊂ Rd+1 × {−1, 1} un échantillon linéairement séparable. Soit w le classifieur linéaire courant. I Si (x, y ) ∈ SP est mal classé, hw, xi < 0 et il faudrait augmenter hw, xi, I si (x, y ) ∈ SN est mal classé, hw, xi ≥ 0 et il faudrait diminuer hw, xi, Idée : prendre wnew = w + xy . Dans le premier cas, on a hwnew , xi = hw, xi + ||x||2 ; dans le second cas, on a hwnew , xi = hw, xi − ||x||2 . Classification, Apprentissage, Décision Perceptron Algorithme d’apprentissage du Perceptron Algorithme d’apprentissage du Perceptron Entrée : S = {(x1 , y1 ), . . . , (xn , yn )}, un échantillon complété linéairement séparable de Rd+1 × {−1, 1} w0 = 0 ∈ Rd+1 , k = 0 Répéter Pour i = 1 à n Si yi hwk , xi i ≤ 0 alors wk +1 = wk + yi xi k =k +1 FinPour Jusqu’à ce qu’il n’y ait plus d’erreurs Sortie : wk Classification, Apprentissage, Décision Perceptron Exercice Utilisez l’algorithme du perceptron pour séparer l’échantillon {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Dessinez l’hyperplan obtenu. k 0 1 ... wk 000 0 0 -1 ... xk mal classé 001 ... ... yk -1 ... ... Classification, Apprentissage, Décision Perceptron Propriétés I L’algorithme du Perceptron est une procédure on-line, par correction d’erreurs (error-driven). I L’algorithme est correct : lorsqu’il converge, l’hyperplan retourné sépare les données fournies en entrée I L’algorithme est complet : si S est linéairement séparable, l’algorithme converge. I Dans le pire des cas, le nombre d’itérations est égal à (n + 1)2 2(n+1) log(n+1) . Complexité exponentielle ! I Très mauvaise tolérance au bruit. Classification, Apprentissage, Décision Perceptron Entre ces deux solutions, laquelle est la meilleure ? Classification, Apprentissage, Décision Perceptron La notion de marge On peut multiplier l’équation hw, xi + b = 0 d’un hyperplan par un réel non nul sans modifier l’hyperplan qu’elle définit. On peut donc supposer que w vérifie ||w|| = 1. Dans ce cas, la distance d’un exemple (x, y ) à un hyperplan séparateur est égal à y (hw, xi + b). d(M, H) = yM hw, xM − xH i = yM (hw, xM i + b) puisque hw, xH i + b = 0. Classification, Apprentissage, Décision Perceptron Complexité de l’algorithme et marge Théorème (Novikoff) : Soit S = {(x1 , y1 ), . . . , (xn , yn )} un échantillon d’apprentissage non trivial (i.e. ∃i, j yi yj = −1). Supposons que I ∀i, ||xi || ≤ 1 et I ∃w, b, γ > 0 tels que ∀i, yi (hw, xi i + b) ≥ γ. Alors, le nombre d’erreurs (yi (hwk , xi i + bk ) ≤ 0) commises pendant l’exécution de l’algorithme est au plus égal à (2/γ)2 . Remarques : I γ est une borne inférieure de la marge du problème I Quelles que soient les données, on peut toujours se ramener au moyen d’une homothétie-translation au cas où Max||xi || = 1. Classification, Apprentissage, Décision Perceptron Complexité de l’algorithme et marge (suite) S = {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Au moyen d’une translation de vecteur (−1/2, −1/2) suivie d’une homothétie √ de rapport 2, on obtient l’échantillon équivalent √ S = {((− √ √ √ √ √ √ √ 2 , − 22 ), −1), ((− 22 , 22 ), 1), (( 22 , − 22 ), 1), (( 22 , 22 ), 1)}. 2 On a bien Max||xi || = 1. On vérifie que la marge du problème est égale à 1/2. Le théorème prédit que le nombre de corrections de l’algorithme est inférieur ou égal à 8. Classification, Apprentissage, Décision Perceptron Forme duale de l’algorithme du perceptron Remarque : l’hypothèse finale est une combinaison linéaire des exemples d’apprentissage. n X w= αi yi xi . i=1 Les nombres αi sont positifs et égaux au nombre de fois où une mauvaise classification de xi a entraîné une mise à jour du perceptron. Ils peuvent être vus comme une représentation duale de la solution : ! n X f (x) = sgn(hw, xi + b) = sgn αi yi hxi , xi + b . i=1 Classification, Apprentissage, Décision Perceptron Forme duale de l’algorithme du perceptron entrée : S = {(x1 , y1 ), . . . , (xn , yn )}, un échantillon complété linéairement séparable α = 0 ∈ Rn répéter Pour i = 1Pà n Si yi ( nj=1 αj hxj , xi i) ≤ 0 alors αi = αi + 1 k =k +1 FinSi FinPour Jusqu’à ce qu’il n’y ait plus d’erreurs Sortie : α Classification, Apprentissage, Décision Perceptron Exercice Utilisez l’algorithme du perceptron pour séparer l’échantillon {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Dessinez l’hyperplan obtenu. k 0 1 ... αk 0000 1000 ... xk mal classé 001 ... ... yk -1 ... ... Classification, Apprentissage, Décision Perceptron Propriétés de l’algorithme dual I dans la représentation duale, le nombre de paramètres de la solution ne dépend pas de la dimension de l’espace dans lequel les xi sont plongés, I les exemples d’apprentissage ne sont pris en compte par l’algorithme que par l’intermédiaire de leurs produits scalaires. I On appelle Matrice de Gram la matrice G = (hxi , xj i)1≤i,j≤l : elle suffit à trouver une solution. Classification, Apprentissage, Décision Perceptron Extensions 1. Plongements non linéaires 2. Perceptrons linéaires avec couches cachées 3. Perceptrons non linéaires (avec couches cachées) 4. Séparateurs linéaires optimaux - Machines à Vecteurs Supports ou Séparateurs à vaste Marge (SVM) 5. Méthodes à noyaux Classification, Apprentissage, Décision Perceptron Plongements non linéaires Classification, Apprentissage, Décision Perceptron Perceptron linéaire à seuil avec une couche cachée Entrée : (x1 , . . . , xd , xd+1 = 1) Couche cachée : h perceptrons y1 , . . . , yh (+ une entrée constante yh+1 = 1) où pour 1 ≤ i ≤ h, Pd+1 j 1 si j=1 αi xj ≥ 0 yi = 0 sinon. Sortie : un perceptron s défini par s = f (x1 , . . . , xd+1 ) = Ph+1 1 si i=1 βi yi ≥ 0 0 sinon. Classification, Apprentissage, Décision Perceptron Perceptron linéaire à seuil avec une couche cachée Théorème : toute fonction booléenne est calculable par un tel perceptron I bonne expressivité ; I pas d’algorithme d’apprentissage ! Classification, Apprentissage, Décision Perceptron La fonction sigmoïde σk (x) = 1/(1 + e−kx ) On peut voir les fonctions sigmoïdes comme des fonctions indéfiniment dérivables qui lissent la fonction linéaire à seuil et dont les dérivées sont très simples à calculer : σ 0 = σ(1 − σ) Classification, Apprentissage, Décision Perceptron Perceptron avec fonction d’activation sigmoïde et une couche cachée Entrée : x1 , . . . , xd , xd+1 = 1 Couche cachée : y1 , . . . , yh , yh+1 = 1 où pour 1 ≤ i ≤ h, d+1 X j yi = σ α xj i j=1 Sortie : s = f (x1 , . . . , xd+1 ) = σ h+1 X ! βi yi . i=1 Classification binaire : on attribue la classe 1 si s ≥ 1/2 et 0 sinon ; s peut s’interpréter comme un indice de confiance. Classification n-aire : n neurones normalisés en sortie. Classification, Apprentissage, Décision Perceptron Perceptron avec fonction d’activation sigmoïde et une couche cachée Théorème : Ces perceptrons permettent d’approcher d’aussi près qu’on le souhaite une classe très riche de fonctions. I très bonne expressivité ; I il existe un algorithme d’apprentissage : l’algorithme de rétropropagation du gradient. Classification, Apprentissage, Décision Machines à vecteur de support Séparateurs linéaires optimaux Soit S = {(x1 , y1 ), . . . , (xn , yn )}, xi ∈ R d et yi ∈ {−1, 1} un échantillon linéairement séparable. Il existe un unique hyperplan de marge maximale qui est solution du problème d’optimisation quadratique convexe suivant : Minimiser ||w||2 sous les contraintes yi f (xi ) ≥ 1 pour tout i = 1 . . . l où f (x) = hw, xi + b. Classification, Apprentissage, Décision Machines à vecteur de support Séparateurs linéaires optimaux Soit S = {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Minimiser w12 + w22 sous les contraintes −b ≥ 1, w2 + b ≥ 1, w1 + b ≥ 1, w1 + w2 + b ≥ 1 La seule solution est w1 = w2 = 2 et b = −1. Classification, Apprentissage, Décision Machines à vecteur de support Retour sur la notion de marge Soit S un échantillon linéairement séparable et soit H un hyperplan séparateur, d’équation hw, xi + b = 0. On peut modifier linairement w et b tel que le point M le plus proche de H satisfasse : 1 si M est positif . f (xM ) = hw, xM i + b = −1 sinon. Dans ce cas, I la marge de H est égale à 1/||w|| et I tous les points de S vérifient yf (x) ≥ 1. Classification, Apprentissage, Décision Machines à vecteur de support Calcul de la marge (exemple) Soit S = {((0, 1), +), ((2, 0), −)}. La droite d’équation f (x, y ) = −x + y − 1/2 = 0 sépare S. On a f (0, 1) = 1/2 et f (2, 0) = −5/2. On normalise l’équation en la multipliant par 2 : −2x + 2y − 1 = 0. w = (−2, 2)T , ||w|| = et la marge est égale à 1 √ 2 2 = √ 2 . 4 √ √ 8=2 2 Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal Soit S = {(x1 , y1 ), . . . , (xl , yl )} ⊂ Rn × {−1, 1} un échantillon linéairement séparable. Il existe un unique hyperplan de marge maximale qui est solution du problème d’optimisation suivant : f (x) = hw, xi + b yi f (xi ) ≥ 1 pour tout i = 1 . . . l Minimiser ||w||2 . Optimisation quadratique sous contraintes linéaires (convexes) Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal (exemple) Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}. Le problème d’optimisation à résoudre est : Minimiser w12 + w22 sous les contraintes 4w1 + 3w2 + b ≥ 1, 2w2 + b ≥ 1, −b ≥ 1. Les deux dernières équations impliquent w2 ≥ 1 et donc w12 + w22 ≥ 1. On en déduit la solution optimale : w1 = 0, w2 = 1, b = −1. Équation de l’hyperplan optimal : y = 1 Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal (cas général) Minimiser ||w||2 sous les contraintes yi (hw, xi i + b) ≥ 1 pour tout (xi , yi ) ∈ S Nouvelles variables (multiplicateurs de Lagrange) : αi ≥ 0 Nouvelle fonction : le Lagrangien n L(w, b, α) = 1 2 X w − αi [yi (hw, xi i + b) − 1] 2 i=1 La solution (unique grâce à la convexité) (w ∗ , b∗ , α∗ ) est un point selle du Lagrangien : L(w, b, α∗ ) est minimal en (w ∗ , b∗ ) et L(w ∗ , b∗ , α) est maximal en α∗ . Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal (cas général) n L(w, b, α) = 1 2 X w − αi [yi (hw, xi i + b) − 1] 2 i=1 La solution (unique grâce à la convexité) (w ∗ , b∗ , α∗ ) est un point selle du Lagrangien : L(w, b, α∗ ) minimal en (w ∗ , b∗ ) ; L(w ∗ , b∗ , α) maximal en α∗ . Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal (cas général) On a : P ∇ L(w, b, α) = w − ni=1 αi yi xi x ∂L(w, b, α) = Pn α y i=1 i i ∂b Ce qui donne les condition d’optimalité : P ∇ L(w, b, α) = 0 ⇒ w = ni=1 αi yi xi x ∂L(w, b, α) = 0 ⇒ Pn α y = 0 i=1 i i ∂b Classification, Apprentissage, Décision Machines à vecteur de support Hyperplans optimaux : problème dual Si l’on remplace w par Pn i=1 αi yi xi dans le Lagrangien n L(w, b, α) = 1 2 X w − αi [yi (hw, xi i + b) − 1] 2 i=1 On a L(α) = n n n n n n X X X X 1 XX αj αi yi yj hxj , xi i − αi yi αj yj hxj , xi i − b αi yi + αi 2 i=1 j=1 i=1 j=1 i=1 Ce qui donne n 1X yi yj αi αj hxi , xj i 2 i,j=1 i=1 P qu’on doit maximiser sous les contraintes ni=1 αi yi = 0 et αi ≥ 0. L(α) = I I I n X αi − Seuls les produits scalaires hxi , xj i sont nécessaires pour trouver l’hyperplan optimal. P Retrouver w ∗ à partir des αi∗ : w ∗ = ni=1 αi∗ yi xi Calcul de b∗ à partir d’un vecteur support : hw ∗ , xi i + b∗ = yi . i=1 Classification, Apprentissage, Décision Machines à vecteur de support Problème dual (exemple) Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}. L(α) = n X i=1 αi − n 1X yi yj αi αj hxi , xj i 2 i,j=1 = α1 + α2 + α3 − 1 (25α12 + 4α22 + 12α1 α2 ) 2 qu’on doit maximiser sous les contraintes α1 + α2 − α3 = 0 et αi ≥ 0 pour i = 1, 2, 3. Classification, Apprentissage, Décision Machines à vecteur de support Hyperplan optimal : propriétés On appelle vecteur support toute donnée xi telle que αi∗ 6= 0. Soit SV l’ensemble des vecteurs supports de S. Propriétés I Si xi ∈ SV , hw ∗ , xi i + b∗ = yi I Si xi 6∈ SV , la contrainte correspondante n’est pas active, I Les problèmes d’optimisation associés à S et à SV ont la même solution. I Le rapport #SV /#S est une borne supérieure de l’estimateur leave-one-out de l’erreur en généralisation de la solution. Pn ∗ i=1 αi yi = 0 Pn ∗ w = i=1 αi∗ yi xi I I La solution s’exprime en fonction des vecteurs supports Classification, Apprentissage, Décision Machines à vecteur de support Exemple Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}. On a trouvé Si l’on pose w ∗ = (0, 1) et b∗ = −1. Pn ∗ ∗ ∗ i=1 αi yi = 0 et w = i=1 αi yi xi , on trouve α1 + α2 − α3 = 0 4α1 =0 3α1 + 2α2 =1 Pn On trouve α1 = 0, α2 = 1/2 et α3 = 1/2 Les vecteurs supports sont x2 et x3 . Classification, Apprentissage, Décision Machines à vecteur de support Et lorsque les données ne sont pas séparables ? I Trouver le classifieur linéaire qui minimise le nombre d’erreurs est un problème NP-dur. I L’algorithme du Perceptron oscille, changeant d’hypothèses à chaque présentation d’un contre-exemple sans se stabiliser sur une solution intéressante. Idée : se soucier davantage de la confiance avec laquelle la plupart des exemples sont correctement classés plutôt que du nombre d’exemples mal classés. → maximiser la marge d’un séparateur linéaire en tolérant un nombre limité d’exceptions : notion de marge souple (soft margin). Classification, Apprentissage, Décision Machines à vecteur de support Comment réaliser un plongement des données ? Pour tout algorithme d’apprentissage ne faisant intervenir que le produit scalaire des données perceptron, séparateur optimal (avec marges dures ou souples) il suffit de connaître la matrice de Gram G = (hxi , xj i)1≤i,j≤n pour construire le classifieur linéaire correspondant : f : x 7→ signe( n X αi hx, xi i). i=1 Soit Φ : X → Y une fonction de plongement dans un espace Y avec produit scalaire. On obtiendra un classifieur linéaire (dans l’espace de plongement) défini par : n X f : x 7→ signe( αi hΦ(x), Φ(xi )i). i=1 Classification, Apprentissage, Décision Machines à vecteur de support Kernel trick On appelle noyau toute fonction k : X × X → R qui peut être interprétée comme un produit scalaire dans un plongement Φ : k (x, y ) = hΦ(x), Φ(y )i On peut appliquer les algorithmes du perceptron et de séparation optimale avec marges souples ou dures en remplaçant hxi , xj i par k (xi , xj ). On obtient alors un classifieur f : x 7→ signe( n X αi k (x, xi )) i=1 linéaire dans l’espace de plongement (avec toutes les garanties associées) et non linéaire dans l’espace initial. Classification, Apprentissage, Décision Machines à vecteur de support Perceptron à noyau entrée : S = {(x1 , y1 ), . . . , (xn , yn )}, un échantillon complété linéairement séparable α = 0 ∈ Rn répéter Pour i = 1Pà n Si yi ( nj=1 αj yj k (xj , xi )) ≤ 0 alors αi = αi + 1 FinSi FinPour Jusqu’à ce qu’il n’yPait plus d’erreurs Sortie : x 7→ signe( i αi yi k (x, xi )) Classification, Apprentissage, Décision Machines à vecteur de support Exemples de noyaux : Noyau polynomial homogène X = Rd , k (x, x 0 ) = n X !p xi xi0 i=1 Noyau polynomial d 0 X = R , k (x, x ) = 1+ n X !p xi xi0 . i=1 Noyau gaussien : ||x − x 0 ||2 k (x, x 0 ) = exp − 2σ 2 La dimension de l’espace de plongement est finie pour les noyaux polynomiaux et infini (espace de Hilbert) pour le noyau gaussien . . . mais le plongement est virtuel. Classification, Apprentissage, Décision Machines à vecteur de support Caractérisation des noyaux Théorème : une fonction k : X × X → R est un noyau ssi pour tout m-uplet x1 , . . . , xm d’éléments de X , la matrice de Gram k (xi , xj )1≤i,j≤m est définie positive, c’est-à-dire que pour tous réels c1 , . . . , cm , X ci cj k (xi , xj ) ≥ 0. i,j A retenir : on sait (théoriquement) caractériser les fonctions noyaux et déterminer un plongement correspondant. Classification, Apprentissage, Décision Machines à vecteur de support 402 points générés à partir de 2 paraboles parallèles avec bruit gaussien. Classification, Apprentissage, Décision Machines à vecteur de support Séparateur linéaire optimal avec marges souples : 104 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support Noyau quadratique : 38 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support Noyau polynomial de degré 3 : 35 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support Noyau Gaussien, σ = 1 : 62 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support Classification, Apprentissage, Décision Machines à vecteur de support Noyau Gaussien, σ = 0.1 : 321 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support Noyau Gaussien, σ = 0.05 : 390 vecteurs supports. Classification, Apprentissage, Décision Machines à vecteur de support The US Postal Service (USPS) database. I 9298 chiffres manuscrits (7291 pour apprendre, 2007 pour tester) provenant d’enveloppes postées ou reçues à Buffalo ; I Chaque chiffre est une image 16 × 16 représenté par un vecteur de [−1, 1]256 ; I Les jeu de tests est difficile : 2, 5% d’erreur en moyenne pour un humain ; I Données disponibles à http ://www.kernel-machines.org.data.html. Classification, Apprentissage, Décision Machines à vecteur de support Résultats (1) (Schölkopf, Smola) Classification par SVMs sur les données USPS. Noyau polynomial : k (x, y ) = (hx, y i/256)d . Construction de 10 classifieurs (méthode un contre tous). d erreur % Nb. moyen de VSs 1 8,9 282 2 4,7 237 3 4,0 274 4 4,2 321 5 4,5 374 6 4,5 422 7 4,7 491 Classification, Apprentissage, Décision Machines à vecteur de support Résultats (2) (Schölkopf, Smola) Classification par SVMs sur les données USPS. Noyau gaussien : k (x, y ) = exp(−||x − y ||2 /(256c)). Construction de 10 classifieurs (méthode un contre tous). c erreur % Nb. moyen de VSs 4,0 5,3 266 2,0 5,0 240 1,2 4,9 233 0,8 4,3 235 0,5 4,4 251 0,2 4,4 366 0,1 4,5 722 Classification, Apprentissage, Décision Machines à vecteur de support Comparaison des résultats (Schölkopf, Smola) USPS+ : USPS + un ensemble de chiffres imprimés. Classifieur Decision tree, C4.5 Best two layer neural network Five-layer network Linear SVM Hard margin SVM SVM Virtual SVM Virtual SV, local kernel Nearest neighbor Boosted neural net Human performance Ens. d’App. USPS USPS USPS USPS USPS USPS USPS USPS USPS+ USPS+ Erreur sur ens. test 16,2 5,9 5,1 8,9 4,6 4,0 3,2 3,0 5,9 2,6 2,5