Classification linéaire binaire Un exemple X R n, Y = { 1, 1} 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 R n, b 2 R, et hw, xi désigne le produit scalaire entre w et x : si w =(w 1,...,w n) et x =(x 1,...,x n), hw, xi = P n w ix i. X = R 2 Classifieur linéaire défini par w =(1, 2) et b = 1: 1 si x1 + 2x f (x 1, x 2 )= 2 1 0 1 sinon. Par exemple, f (0, 0) = 1 et f (1, 1) =1. Hyperplan d équation x 1 + 2x 2 1 = 0 x2 1 0.5 0 0.5 1 0.5 0 0.5 1 1.5 2 x1 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. On peut toujours supposer que b = 0 en rajoutant une coordonnée, égale à 1 pour tous les exemples : f (x 1, x 2, x 3 )=1 si x 1 + 2x 2 x 3 0 et -1 sinon ; f (0, 0, 1) = 1 et f (1, 1, 1) =1 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 2 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 3 / 16 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). 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é. 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) Un échantillon S = {(x 1, y 1 ),...,(x l, y l )} (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. S = {((0, 0), 1), ((1, 0), 1), ((0, 1), 1), ((1, 1), 1)} n est pas linéairement séparable (XOR). François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 4 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 5 / 16
Données linéairement séparables Remarques Lemme : Si des données S = S P [ S N 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 S P, hw, xi + b 8x 2 S N, hw, xi + b < 0 et soit = min{ 0 et (hw, xi + b) x 2 S N }. Alors: 8 hw, xi + b + < 2 > 0 8 x 2 S P 2 : apple 2 < 0 8 x 2 S N 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 x n+1 = 1 à tous les exemples et poser w n+1 = b. On parlera d échantillon complété. 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 (x i, y i ) fournit une contrainte linéaire y i (hw, x i i + b) > 0. 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 + ) satisfait le lemme. 2 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 6 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 7 / 16 Algorithme d apprentissage du Perceptron (Rosenblatt, 1958) Algorithme d apprentissage du Perceptron Soit S = S P [ S N R n+1 { 1, 1} un échantillon complété linéairement séparable. Soit w le classifieur linéaire courant. Si (x, y) 2 S P est mal classé, hw, xi < 0 et il faudrait augmenter hw, xi, si (x, y) 2 S N est mal classé, hw, xi 0 et il faudrait diminuer hw, xi, Idée : prendre w new = w + xy. si y = 1, hw new, xi = hw, xi + x 2 hw, xi ; si y = 1, hw new, xi = hw, xi x 2 applehw, xi. Algorithme d apprentissage du Perceptron Entrée : S = {(x 1, y 1 ),...,(x l, y l )}, un échantillon complété linéairement séparable de R n+1 { 1, 1} w 0 = 0 2 R n+1, k = 0 Répéter Pour i = 1 à l Si y i hw k, x i iapple0 alors w k+1 = w k + y i x i k = k + 1 FinPour Jusqu à ce qu il n y ait plus d erreurs Sortie : w k François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction 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 ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 9 / 16
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 w k x k mal classé y k 0 000 001-1 1 0 0-1...... 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 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 ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 10 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 11 / 16 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. lx w = i y i x i. Les nombres i sont positifs et égaux au nombre de fois où une mauvaise classification de x i a entraîné une mise à jour du perceptron. Ils peuvent être vus comme une représentation duale de la solution :! lx f (x) =sgn(hw, xi + b) =sgn i y i hx i, xi + b. entrée : S = {(x 1, y 1 ),...,(x l, y l )}, un échantillon complété linéairement séparable = 0 2 R l répéter Pour i = 1 à l Si y i ( P l j=1 jy j hx j, x i i) apple 0 alors i = i + 1 FinSi FinPour Jusqu à ce qu il n y ait plus d erreurs Sortie : François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction 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 ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 13 / 16
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 k x k mal classé y k 0 0000 001-1 1 1000...... 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 x i sont plongés, les exemples d apprentissage ne sont pris en compte par l algorithme que par l intermédiaire de leurs produits scalaires. On appelle Matrice de Gram la matrice G =(hx i, x j i) 1applei,japplel : elle suffit à trouver une solution. François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 14 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 15 / 16 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 R 2 dans R 3 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}. ce qui conduit k w k x k mal classé y k 0 0000 0001-1 1 0 0 0-1 1001 1 2 1000 1111-1 3 0-1 -1-1 1001 1 17 1 1-3 -1 au plan séparateur d équation x (1) + x (2) 3x (3) 1 = 0 dans R 3 et à la courbe séparatrice d équation x (1) + x (2) 3x (1) x (2) 1 = 0 dans R 2. François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 16 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 17 / 16
Séparation linéaire après plongement non linéaire (suite) On considère un plongement Matrice de Gram de S : de R 2 dans H, espace muni d un produit scalaire, vérifiant h (x), (y)i H = 1 + x (1) y (1) + x (2) y (2) + x (1) y (1) x (2) y (2). 0 B (h (x i ), (x j )i H ) 1applei,japple S = @ 1 1 1 1 1 2 1 2 1 1 2 2 1 2 2 4 Algorithme dual du perceptron k n k (x k ) mal classé y k 0 0000 x 1-1 1 1000 x 2 1 2 1100 x 4-1 3 1101 x 2 1 17 6443 4X f (x) =sgn( n i y i h (x i ), (x)i H ) = sgn( 6 + 4(1 + x (1) )+4(1 + x (2) ) 3(1 + x (1) + x (2) + x (1) x (2) )) = sgn( 1 + x (1) + x (2) 3x (1) x (2) ) François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 18 / 16 1 C A 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), 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 qui est f : x 7! signe( (y)i lx i y i k(x, x i )) linéaire dans l espace de plongement (avec toutes les garanties associées) et non linéaire dans l espace initial. François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 19 / 16 Perceptron à noyau Exemples de noyaux : Noyau polynomial homogène entrée : S = {(x 1, y 1 ),...,(x l, y l )}, un échantillon complété = 0 2 R l répéter Pour i = 1 à l Si y i ( P l j=1 jy j k(x j, x i )) apple 0 alors i = i + 1 FinSi FinPour Jusqu à ce qu il n y ait plus d erreurs Sortie : x 7! signe( P i iy i k(x, x i )) Noyau polynomial Noyau gaussien : X = R n, k(x, y) = X = R n, k(x, y) = 1 +! d nx x i y i! d nx x i y i. x y 2 k(x, y) =exp 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. 2 2 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 20 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 21 / 16
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 x 1,...,x m d éléments de X, la matrice de Gram k(x i, x j ) 1applei,japplem est définie positive, c est-à-dire que pour tous réels c 1,...,c m, X c i c j k(x i, x j ) 0. i,j A retenir : on sait (théoriquement) caractériser les fonctions noyaux et déterminer un plongement correspondant. 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 : 0 B (h (x i ), (x j )i H ) 1applei,japple S = @ à noyau : n =[1, 1, 1, 1] convergence en 4 étapes chaque exemple a été mal classé une et une seule fois ce qui conduit au classifieur 1.00 0.61 0.61 0.37 0.61 1.00 0.37 0.61 0.61 0.37 1.00 0.61 0.37 0.61 0.61 1.00 1 C A f (x) =sg( e x 2 /2 + e ((x(1) 1) 2 +(x (2) ) 2 )/2 + e ((x(2) 1) 2 +(x (1) ) 2 )/2 e ((x(1) 1) 2 +(x (2) 1) 2 )/2 ) François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 22 / 16 François Denis, Hachem Kadri, Cécile Capponi ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 23 / 16 Exercice Soit et S = {( 1, 0), 1;(0, 1), 1;(1, 0), 1;(0, 0), 1} 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 ( LaboratoireIntroduction d Informatique à l apprentissage Fondamentale automatique de Marseille Université d Aix-Marseille) February 3, 2017 24 / 16