Algorithme du perceptron Algorithme du perceptron Un exemple X ⇢ Rn , Y = { 1, 1} X = R2 Classifieur linéaire 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 Définition. Un classifieur linéaire (ou perceptron) est une fonction de la forme ⇢ 1 si hw, xi + b 0 f (x) = 1 sinon. où w 2 Rn , b 2 R, et hw, xi désigne le produit scalaire entre w et x : si w = (w1 , . . . , wn ) et P x = (x1 , . . . , xn ), hw, xi = ni=1 wi xi . Interprétation géométrique : hw, xi + b = 0 est l’équation d’un hyperplan affine qui sépare X en deux demi-espaces correspondant aux deux classes. f (0, 0, 1) = February 3, 2017 2 / 16 Algorithme du perceptron 0 −0.5 −1 −0.5 0 0.5 x1 1 1.5 2 x3 0 et -1 sinon ; 1 et f (1, 1, 1) = 1 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 3 / 16 Algorithme du perceptron Expressivité des perceptrons Données linéairement séparables 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 ? Cette intuition n’est pas forcément vérifiée en très grande dimension (cas de classification de textes, par exemple). S = {((0, 0), 1), ((1, 0), 1), ((0, 1), 1), ((1, 1), 1)} n’est pas linéairement séparable (XOR). 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) February 3, 2017 Un échantillon S = {(x1 , y1 ), . . . , (xl , yl )} ⇢ (X ⇥ Y )l 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. Nous verrons par la suite que plonger les données initiales dans un espace de grande dimension au moyen d’une transformation non linéaire accroı̂t leur séparabilité. François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) 0.5 On peut toujours supposer que b = 0 en rajoutant une coordonnée, égale à 1 pour tous les exemples : f (x1 , x2 , x3 ) = 1 si x1 + 2x2 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) 1 x2 Classification linéaire binaire 4 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 5 / 16 Algorithme du perceptron Algorithme du perceptron Données linéairement séparables Remarques Lemme : Si des données S = SP [ SN sont linéairement séparables, on peut trouver un hyperplan séparateur tel qu’aucune donnée ne soit sur la frontière de décision. Preuve: Soit (w, b) tel que 8x 2 SP , hw, xi + b Les isométries et les homothéties préservent la séparabilité. En rajoutant une dimension, on peut supposer que les hyperplans séparateurs passent par l’origine : ajouter une coordonnée xn+1 = 1 à tous les exemples et poser wn+1 = b. On parlera d’échantillon complété. 0 et 8x 2 SN , hw, xi + b < 0 Séparer des données linéairement séparables peut être résolu en temps polynomial par un algorithme de programmation linéaire : chaque exemple (xi , yi ) fournit une contrainte linéaire yi (hw, xi i + b) > 0. et soit ✏ = min{ (hw, xi + b)|x 2 SN }. Alors: 8 ✏ > 0 8 x 2 SP < ✏ 2 hw, xi + b + 2 : ✏ < 0 8 x 2 S N 2 Il existe une infinité d’hyperplans séparant un échantillon séparable : ils ne sont pas équivalents du point de vue de l’apprentissage. Ainsi le classifieur linéaire (w, b + 2✏ ) satisfait le lemme. François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 6 / 16 Algorithme du perceptron 0 et il faudrait diminuer hw, xi, si y = 1, hwnew , xi = hw, xi 2 February 3, 2017 9 / 16 Algorithme d’apprentissage du Perceptron Entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété linéairement séparable de Rn+1 ⇥ { 1, 1} w0 = 0 2 Rn+1 , k = 0 Répéter Pour i = 1 à l 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 Si (x, y ) 2 SP est mal classé, hw, xi < 0 et il faudrait augmenter hw, xi, si y = 1, hwnew , xi = hw, xi + ||x||2 7 / 16 Algorithme d’apprentissage du Perceptron Soit S = SP [ SN ⇢ Rn+1 ⇥ { 1, 1} un échantillon complété linéairement séparable. Soit w le classifieur linéaire courant. Idée : prendre wnew = w + xy. February 3, 2017 Algorithme du perceptron Algorithme d’apprentissage du Perceptron (Rosenblatt, 1958) si (x, y ) 2 SN est mal classé, hw, xi François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) hw, xi ; ||x|| hw, xi. François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 8 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) Algorithme du perceptron Algorithme du perceptron Exercice Propriétés 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 ... ... L’algorithme du Perceptron est une procédure on-line, par correction d’erreurs (error-driven). L’algorithme est correct : lorsqu’il converge, l’hyperplan retourné sépare les données fournies en entrée yk -1 ... ... L’algorithme est complet : si S est linéairement séparable, l’algorithme converge. Dans le pire des cas, le nombre d’itérations est égal à (n + 1)2 2(n+1) log(n+1) . Complexité exponentielle ! Très mauvaise tolérance au bruit. François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 10 / 16 Algorithme du perceptron François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 11 / 16 February 3, 2017 13 / 16 Algorithme du perceptron Forme duale de l’algorithme du perceptron Forme duale de l’algorithme du perceptron Remarque : l’hypothèse finale est une combinaison linéaire des exemples d’apprentissage. l X w= ↵i yi xi . entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété linéairement séparable ↵ = 0 2 Rl répéter Pour i = 1 à l P Si yi ( lj=1 ↵j yj hxj , xi i) 0 alors ↵i = ↵i + 1 FinSi FinPour Jusqu’à ce qu’il n’y ait plus d’erreurs Sortie : ↵ 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 : ! l X f (x) = sgn(hw, xi + b) = sgn ↵i yi hxi , xi + b . i=1 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 12 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) Algorithme du perceptron Algorithme du perceptron Exercice Propriétés de l’algorithme dual 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 ... ... 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, les exemples d’apprentissage ne sont pris en compte par l’algorithme que par l’intermédiaire de leurs produits scalaires. yk -1 ... ... François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) On appelle Matrice de Gram la matrice G = (hxi , xj i)1i,jl : elle suffit à trouver une solution. February 3, 2017 14 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) Algorithme du perceptron February 3, 2017 15 / 16 Algorithme du perceptron Plongements non linéaires Séparation linéaire après plongement non linéaire Soit S = {(0, 0), 1; (0, 1), 1; (1, 0), 1; (1, 1), 1}. On considère le plongement de R2 dans R3 défini par (x (1) , x (2) ) = (x (1) , x (2) , x (1) x (2) ). S = {( (x), y )|(x, y ) 2 S} = {(0, 0, 0), 1; (1, 0, 0), 1; (0, 1, 0), 1; (1, 1, 1), 1}. S = {(0, 0, 0, 1), 1; (1, 0, 0, 1), 1; (0, 1, 0, 1), 1; (1, 1, 1, 1), 1}. Algorithme du perceptron k 0 1 2 3 ... 17 wk 0000 0 0 0 -1 1000 0 -1 -1 -1 ... 1 1 -3 -1 xk mal classé 0001 1001 1111 1001 ... yk -1 1 -1 1 ... ce qui conduit au plan séparateur d’équation x (1) + x (2) 3x (3) à la courbe séparatrice d’équation x (1) + x (2) François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 16 / 16 1 = 0 dans R3 et 3x (1) x (2) 1 = 0 dans R2 . François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 17 / 16 Algorithme du perceptron Algorithme du perceptron Séparation linéaire après plongement non linéaire (suite) Kernel trick de R2 dans H, espace muni d’un produit scalaire, vérifiant On considère un plongement h (x), (y)iH = 1 + x (1) y (1) + x (2) y (2) + x (1) y (1) x (2) y (2) . Matrice de Gram de S : (h (xi ), (xj )iH )1i,j|S| 0 1 B 1 =@ 1 1 1 2 1 2 1 1 2 2 Algorithme dual du perceptron k 0 1 2 3 ... 17 f (x) = sgn( 4 X i=1 (xk ) mal classé x1 x2 x4 x2 ... nk 0000 1000 1100 1101 ... 6443 On appelle noyau toute fonction k : X ⇥ X ! R qui peut être interprétée comme un produit scalaire dans un plongement : 1 1 2 C 2 A 4 k (x, y ) = h (x), (y)i Tout algorithme d’apprentissage qui n’utilise que les produits scalaires des données (matrice de Gram) peut être kernelisé. Le perceptron à noyau est un classifieur yk -1 1 -1 1 ... f : x 7! signe( l X ↵i yi k (x, xi )) i=1 qui est linéaire dans l’espace de plongement (avec toutes les garanties associées) et ni yi h (xi ), (x)iH ) non linéaire dans l’espace initial. = sgn( 6 + 4(1 + x (1) ) + 4(1 + x (2) ) = sgn( 1 + x (1) +x (2) 3x (1) (2) x 3(1 + x (1) + x (2) + x (1) x (2) )) ) François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 18 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) Algorithme du perceptron February 3, 2017 19 / 16 Algorithme du perceptron Perceptron à noyau Exemples de noyaux : Noyau polynomial homogène n entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété ↵ = 0 2 Rl répéter Pour i = 1 à l P Si yi ( lj=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 )) François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) X = R , k (x, y) = n X xi yi i=1 !d Noyau polynomial n X = R , k (x, y ) = 1+ n X xi yi i=1 Noyau gaussien : k (x, y ) = exp ✓ ||x 2 y ||2 2 !d . ◆ 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. February 3, 2017 20 / 16 François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) February 3, 2017 21 / 16 Algorithme du perceptron Algorithme du perceptron Caractérisation des noyaux Séparation linéaire après plongement non linéaire (suite) 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 )1i,jm est définie positive, c’est-à-dire que pour tous réels c1 , . . . , cm , X ci cj k (xi , xj ) 0. Sur l’exemple précédent, on considère le noyau Gaussien ✓ ◆ ||x y ||2 k(x, y) = exp . 2 2 Matrice de Gram de S : (h (xi ), (xj )iH )1i,j|S| i,j A retenir : on sait (théoriquement) caractériser les fonctions noyaux et déterminer un plongement correspondant. February 3, 2017 22 / 16 February 3, 2017 24 / 16 Algorithme du perceptron Exercice Soit S = {( 1, 0), 1; (0, 1), 1; (1, 0), 1; (0, 0), 1} et k (x, y ) = 1 + x (1) y (1) + x (2) y (2) + (x (1) y (1) )2 . 1 Dessinez S, 2 Appliquez le perceptron à noyau à ce jeu de données, 3 Dessinez la courbe séparatrice dans l’espace initial. François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) 1.00 B 0.61 =@ 0.61 0.37 0.61 1.00 0.37 0.61 0.61 0.37 1.00 0.61 Algorithme du perceptron à noyau : n = [1, 1, 1, 1] convergence en 4 étapes 1 0.37 0.61 C 0.61 A 1.00 chaque exemple a été mal classé une et une seule fois ce qui conduit au classifieur f (x) = sg( e François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) 0 ||x||2 /2 +e ((x (1) 1)2 +(x (2) )2 )/2 +e ((x (2) 1)2 +(x (1) )2 )/2 e ((x (1) François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction d’Informatique à l’apprentissage Fondamentale automatique de Marseille Université d’Aix-Marseille) 1)2 +(x (2) February 3, 2017 1)2 )/2 ) 23 / 16