290 likes | 410 Vues
DEA PTI Perception et Traitement de l’Information. Reconnaissance des formes Les méthodes à base de noyaux S. Canu http://psichaud.insa-rouen.fr/~scanu/RdF. Buts de la RdF. D : Algorithme de Reconnaissance des Formes. C’est la forme « y=D(x) ». Une forme x (vecteur forme
E N D
DEA PTIPerception et Traitement de l’Information Reconnaissance des formes Les méthodes à base de noyaux S. Canu http://psichaud.insa-rouen.fr/~scanu/RdF
Buts de la RdF D : Algorithme de Reconnaissance des Formes C’est la forme « y=D(x) » Une forme x (vecteur forme des caractéristiques) Nous voulons un algorithme de RdF performant
1 RdF et apprentissage Les problèmes Ensemble d’apprentissage (échantillon) 3 A priori sur la nature de la solution 2 A : Algorithme d’apprentissage D : Algorithme de Reconnaissance des Formes C’est la forme « y=D(x) » Une forme x (vecteur forme des caractéristiques)
Les méthodes à base de Noyau Ensemble d’apprentissage (échantillon) Ce qui se ressemble s’assemble = zone d ’influence d’un exemple « si xressemble à un xi, il aura l ’étiquette yi »
Zone d’influence Définition : Si d(x,xi) < b x appartient à la zone d’influence du point xi b
Règle de décision • Définition : • 1-Si x appartient à la zone d’influence d’un seul point xi, • alors il a l’étiquette yi • 2-Si x appartient à la zone d’influence de plusieurs points de même étiquette, • alors il a cette étiquette • 3-Si x appartient à la zone d’influence de plusieurs point d’étiquette différentes, • alors il y a rejet d’ambiguité • 4-Si x appartient à la zone d’influence d’aucun point, • alors il y a rejet de distance 4 1 2 b 3 4
Mise en œuvre for i = 1:n d(i) = norm((x-xi(i,:))/b); end ind = find(d>seuil); b caractérise la zone d’influence d’un point
Pour b « grand » La zone d’ambiguïté est trop importante
Pour b plus petit x x La zone de rejet de distance est trop importante il faut cumuler les influences
Noyau Distance de la forme x à toutes les forme de l’ensemble d’apprentissage On peut aussi modifier la zone d ’influence d’un point au lieu d’avoir uniquement une influence de type « tout ou rien » on peut imaginer de nombreuses autres manières dont un point influence les autres : par exemple :
Noyau Frontière de décision d(x)=0 Classe 2 Classe 1 d(x)=0
Noyau « matlab » d = 0 for i = 1:n d = d + yi(i)*exp(-(norm(xi(i,:)-x).^2)/b); end D=sign(d);
Avec rejet Frontière de décision d(x)=r d(x)=-r Classe 2 Classe 1 rejet d(x) est petit si x est loin des xi ou si les rouges et les bleus se compensent rejet de distance et rejet d’ambiguïté ?????
Noyaux avec rejets Classe 2 Classe 1 Est-ce une bonne idée ? Comment interpréter d ? Comment choisir G ? Comment choisir b ? Comment choisir les seuils ? Rejet d’ambiguïté Rejet de distance
Est-ce une bonne idée ? Oui si c’est universellement consistant
Exemples de noyaux Noyaux positifs et les autres…
Universellement consistant • Définition : un noyau G est dit « régulier » si • il est non négatif • il existe une boule contrée B de rayon r et une constante k telle que : Théorème : Erreur de notre règle Erreur de Bayes
Comment interpréter le règle de décision ? Estimation de densité par des noyauxFenêtres de Parzen Consistance universelle Stratégie de RdF : C’est la règle du MAP
Discrimination avec les noyau de Parzen : règle du MAP (3 classes) d1 = 0; d2 = 0; d3 = 0; for i = 1:n if(yi(i)=1); d1 = d1 + exp(-(norm(xi(i,:)-x).^2)/b); end; % Vraisemblance if(yi(i)=2); d2 = d2 + exp(-(norm(xi(i,:)-x).^2)/b); end; if(yi(i)=3); d3 = d3 + exp(-(norm(xi(i,:)-x).^2)/b); end; end pc1=length(x1); pc2=length(x2); pc3=length(x3); nt = pc1+pc2+pc3; pc1=pc1/nt; pc2=pc2/nt; pc3=pc3/nt; % probabilité a priori p = pc1*d1+pc2*d2+pc3*d3; % p(x) (théorème des probabilité totales) map1 = pc1*d1./p; map2 = pc2*d2./p; map3 = pc3*d3./p; seuil = .15; rejetD = 0.025; if (map1>(map2+seuil)) & (map1>(map3+seuil))); classe = 1 elseif ((map2>(map1+seuil)) & (map2>(map3+seuil))); classe = 2 elseif (map3>(map1+seuil)) & (map3>(map2+seuil))); classe = 3 elseif (p<rejetD); classe = 4 % rejet de distance else classe = 0 % rejet d’ambiguïté end
Comment choisir b ? • Minimiser l’erreur en généralisation : • avec un ensemble de test • avec une technique de rééchantillonnage • avec une borne sur l ’erreur
Méthode linéaireméthode « des potentiels » Les ci traduisent l’influence du point dans le calcul de la solution Les ci sont recherchés de manière à minimiser la probabilité d’erreur
Méthodes non linéaires : les RBF • Casser la linéarité : adapter le noyau au problème • au lieu de choisir xi, optimiser la position du centre • adapter la largeur de bande du noyau • si on a de « bon » noyaux, on peu en réduire le nombre Les cimi et bi sont recherchés de manière à minimiser l’erreur : ATTENTION : on a maintenant un problème de minimisation non linéaire
Inconvénient des noyauxla malédiction de la dimensionnalité • n points pour d dimensions • Formulation géométrique, • Densité de l’échantillonnage, • Distance entre 2 points, • Tous les points sont à la frontière, • Borne de Stone, En grande dimension la notion de distance ne veut pas dire grand chose
Densité de l’échantillonnage • n points pour d dimensions • X ~ N(0,1)d • x = randn(10000,100) • proj = x * x(1,:)’; • hist(proj./proj(1)) • X ~ U(0,1)d • dist(n,d) = Ej(mini |xi-xj|) n
Conclusion • Noyau =distance • malédiction = représentation • flexibilité = largeur de bande • des noyaux pour battre la malédiction ? • vers la non linéarité pour battre la malédiction !
TP matlab • Aller rechercher les données sur le WEB : psichaud.insa-rouen.fr\~scau\RdF\DataAcor.txt • ouvrir Matlab : et charger les données • load 'DataAcor.txt' • Xi = DataAcor; • visualiser les données grâce au programme visu.m • écrire une programme matlab • 1. Netoyer les données (éliminer les codes -9999) • 2. Normaliser • 3. diviser les données en apprentissage / test • 4. réaliser l’analyse discriminante • 5. estimer les densités par la méthode de Parzen • 6. calculer et visualiser la matrice de confusion