Énoncé Devoir 3
Transcription
Énoncé Devoir 3
Apprentissage et reconnaissance (GIF-4101 / GIF-7005) Département de génie électrique et de génie informatique Hiver 2013 Devoir 3 Instructions : – GIF-4101 : Le devoir est réalisé en équipe de deux à trois étudiants. – GIF-7005 : Le devoir est réalisé individuellement. – Utilisez Matlab et PRTools autant que possible. – Remise : copie papier du rapport durant le cours du mercredi. – Date limite : au plus tard le mercredi 10 avril, à 9h30, Pondération : Ce devoir compte pour 5% de la note finale. 1. Classement avec les k-plus proches voisins (5pt) Voici deux résultats classiques sur le classement avec les k-plus proches voisins (k-PPV) : – Lorsque l’on utilise un classifieur selon le plus proche voisin (k = 1) et que l’on a un ensemble de prototypes de très grande taille (N → ∞), le taux d’erreur de classement espéré ∗ (E(E1−PPV (x))) est borné par deux fois le taux d’erreur bayésien optimal (EBayes ): ∗ lim E(E1−PPV (x)) ≤ 2 EBayes . N →∞ – Lorsque l’on fait du classement avec les k-plus proches voisins, que l’on a un ensemble de prototypes de très grande taille (N → ∞), que l’on utilise un très grand nombre de voisins (k → ∞), mais que le nombre de voisins est significativement plus petit que le nombre de prototypes (k N ), alors le taux d’erreur classement espéré (E(Ek−PPV (x))) tend vers le taux ∗ d’erreur bayésien optimal (EBayes ): ∗ lim lim E(Ek−PPV (x)) = EBayes k→∞ N →∞ avec k N. ∗ ) comme étant le taux d’erreur obtenu avec un On définit le taux d’erreur bayésien optimal (EBayes classifieur bayésien pour lequel on connaı̂t parfaitement les véritables distributions des données. (a) Expliquez clairement le raisonnement menant aux deux résultats énoncés ci-haut avec vos propres mots, mais en faisant usage de formalismes mathématiques lorsque c’est possible. Indices : – Vous pouvez considérer le taux d’erreur de classement espéré comme étant égal à la probabilité d’un mauvais classement d’une donnée particulière avec le classifieur selon les k-PPV. – Vous n’avez pas besoin de développer les équations des lois de probabilités des données par classe pour répondre à cette question. Vous n’avez qu’à raisonner sur l’issue du vote selon les k-PPV, en utilisant la probabilité de classe de chacun des plus proches voisins obtenus. – Pour simplifier les développements, mais sans perdre de généralité, vous pouvez limiter vos explications au cas à deux classes. 1 (b) À l’aide de simulations numériques, illustrez par une figure les deux résultats présentés en préambule. Voici comment vous devez vous y prendre pour réaliser cette figure : – Générez des données selon deux classes, en une dimension. Les densités de probabilités de chaque classe suivent une loi normale. La variance σ 2 de ces densités est la même pour les deux classes et est fixée à une valeur pour toutes les expériences. Les probabilités a priori sont également les mêmes pour les deux classes. – Les différentes valeurs pour chaque courbe de la figure sont obtenues en faisant varier la distance entre les deux moyennes µ1 et µ2 , soit entre une valeur de distance pratiquement nulle jusqu’à une distance correspondant à plusieurs fois la valeur de l’écart-type σ. Générer des jeux de données comprenant quelques milliers d’échantillons par classe. – L’abscisse correspond au taux d’erreur bayésien optimal, qui est calculé analytiquement pour les différentes valeurs de moyennes µ1 et µ2 et d’écart-type σ utilisées pour générer les données. – L’ordonnée correspond au taux d’erreur de classement obtenu avec les k-plus proches voisins. – Tracez plusieurs courbes en faisant varier le nombre de voisins utilisés pour faire le classement, soit d’un voisin (k = 1) jusqu’à quelques dizaines. Dans votre rapport, présentez la figure obtenue et annexez votre code Matlab que vous avez utilisé pour la générer. Vous devriez normalement obtenir une figure similaire à ce qui suit (qui a été générée avec 5000 données par classe). Taux d’erreur de classement 0.5 0.4 0.3 0.2 Ebayes k=1 k=3 k=11 k=23 k=57 k=101 0.1 0 0 0.05 0.1 0.15 0.2 2 0.25 Ebayes 0.3 0.35 0.4 0.45 0.5 2. Discriminants linéaires (10pt) Soit un discriminant linéaire, avec lequel le classement est effectué selon : C1 h(x|w,w0 ) ≥ 0 T t h(x|w,w0 ) = w x + w0 , x ∈ . C2 autrement On effectue un entraı̂nement avec une descente du gradient basée sur le critère d’erreur suivant : 1 X [rt − h(xt |w,w0 )]2 E(w,w0 |X ) = , 2 t kxt k2 x ∈Y où rt ∈ {−1,1} et Y est l’ensemble des données de X mal classées, Y = {xt ∈ X | rt h(xt |w,w0 ) ≤ 0}. Si l’ensemble Y est vide, alors E(w,w0 |X ) = 0. Soit les jeux de données suivants : – Synthétique : jeu de 1000 données synthétiques en deux classes, représentées en deux dimensions. http://wcours.gel.ulaval.ca/2013/h/GIF4101/default/6travaux/synthetique.csv – Iris de Fisher : jeu de 150 données pour l’identification d’iris, avec données en quatre dimensions et trois classes. http://wcours.gel.ulaval.ca/2013/h/GIF4101/default/6travaux/iris.csv – Haberman’s survival : jeu de 306 données organisé en deux classes, soit une survie supérieure à 5 ans (classe 1) ou un décès dans les cinq premières années (classe 2) de patientes ayant eux une chirurgie pour traiter un cancer du sein, comprenant de 3 mesures numériques. http://wcours.gel.ulaval.ca/2013/h/GIF4101/default/6travaux/haberman.csv Effectuez les opérations suivantes. (a) Donnez le développement mathématique complet des équations permettant d’effectuer la mise à jour des poids w et w0 par descente du gradient, selon le critère d’erreur proposé. (b) Implémentez un mapping PRTools correspondant à ce discriminant linéaire. Incluez le code Matlab de votre mapping dans le rapport. (c) Testez la performance de ce discriminant linéaire sur les jeux de données synthétique, des Iris de Fishier et Haberman’s survival, avec une validation croisée à trois plis. Pour le jeu des Iris de Fisher, qui comporte trois classes, utilisez une approche un contre tous pour faire du classement multi classes avec des discriminants linéaires. (d) Comparez les résultats avec les discriminants linéaires suivants : – Méthode paramétrique multinormale (classifieur LDC de PRTools) ; – Analyse discriminante linéaire (FISHERC) ; – Descente du gradient avec le critère du perceptron (PERLC) ; – Classement logistique (LOGLC). Pour cette sous-question, limitez-vous à : – Rapporter les paramètres d’entraı̂nement utilisés pour chacun des algorithmes, s’il y a lieu ; – Rapporter les taux d’erreur sur les ensembles d’entraı̂nement et de test dans un tableau synthèse ; – Tracer des graphiques comparatifs des régions de décision des différents classifieurs testés pour le jeu de données synthétique ; – Discuter brièvement des résultats obtenus (performance en entraı̂nement, performance en généralisation et temps de calcul). 3 3. Sélection de prototypes (5pt) Soit les méthodes de sélection de prototypes pour le classement par la méthode des k-plus proches voisins (k-PPV), telles que présentées en classe. (a) Implantez l’algorithme d’édition de Wilson dans une fonction Matlab ayant la signature suivante. S = EDWILSON(A,K,D) Les paramètres d’entrée et sortie sont les suivants. – A : dataset PRTools utilisé pour effectuer la sélection. – K : nombre de voisins utilisés durant l’édition de Wilson. – D : matrice des distances entre les données de A (optionnel, par défaut la distance euclidienne est utilisée) – S : dataset PRTools comprenant les données de A sélectionnées par l’édition de Wilson. Donnez le code source de votre implantation de cette fonction dans votre rapport. (b) Implantez l’algorithme de la condensation de Hart dans une fonction Matlab ayant la signature suivante. S = CONHART(A,D) Les paramètres d’entrée et sortie sont les suivants. – A : dataset PRTools utilisé pour effectuer la sélection. – D : matrice des distances entre les données de A (optionnel, par défaut la distance euclidienne est utilisée) – S : dataset PRTools comprenant les données de A sélectionnées par la condensation de Hart. Donnez le code source de votre implantation de cette fonction dans votre rapport. (c) Testez votre implantation des fonctions d’édition de Wilson et de condensation de Hart sur les jeux de données de la question précédente (synthétique, Iris de Fisher et Haberman’s survival), en utilisant les configurations suivantes. i. Édition de Wilson avec k = 3 voisins avec une distance euclidienne (sans normalisation). ii. Condensation de Hart avec une distance euclidienne (sans normalisation). iii. Édition de Wilson avec k = 3 voisins suivi d’une condensation de Hart, les deux avec une distance euclidienne (sans normalisation). Pour le calcul du taux d’erreur, rapportez le taux d’erreur de classement en leave-one-out avec un classifieur de type k-PPV sur tout le jeu de données, en utilisant les prototypes sélectionnés comme données de référence, en employant le nombre de voisins et la distance correspondant à la configuration testée. Le taux de sélection de prototypes correspond au ratio entre le nombre de prototypes sélectionnés et le nombre d’observations dans le jeu de données. Dans votre rapport, contentez-vous de rapporter les taux d’erreur de classement et le taux de sélection de prototypes dans un tableau et de tracer quelques graphiques de régions de décision. Discutez brièvement des résultats obtenus. 26/03/2013 CG 4