Pattern recognition – Computer exercices V. Vigneron [email protected] Univ. Evry Val d’Essonne Feb.-March 2014 Les comptes-rendus de TP sont à rendre le 24/03 par mail. Si certaines questions vous sont posées dans le texte du TP, écrivez vos réponses personnelles dans le compte-rendu. Au début de ce TP, vous apprendrez quelques manipulations de base sous MATLAB que vous pourrez employer pour faciliter la rédaction de vos comptes-rendus. Un mot sur les comptes-rendus de TP 1 TP1 – Classification linéaire Exercice 1 Générer un échantillon qui suit une distribution normale spécifiée par 4 4 n = 2, N = 100, M = (1, 2) Σ = 0 9 Afficher l’échantillon généré. ˆ et Σ. ˆ Calculer le vecteur moyen et la matrice de variance-covariance estimés M Répéter l’expérience 10 fois en recalculant le vecteur moyen et la matrice de variance-covariance. Répéter pour N = 10, 20 et 40 et examiner les effets de la taille de l’échantillon. Exercice 2 classification binaire. Soient 2 distributions équiprobables (π1 =π2 = 1/2), de moyennes µ1 = (0, 0)T , µ2 = (2, −2)T , et de matrice 1.0 0. de variance-covariance Σ = . 0 0.5652 1. Générer des points appartenant aux 2 distributions (randn()). 2. Montrer que la frontière de décision a pour équation: 5.56 − 2.0x1 + 3.56x2 = 0.0 Exercice 3 suivant : Un éleveur de chats dispose de 2 races A et B. Il a noté les poids respectifs dans le tableau Poids en kg race A race A 3 1 4 2 5 2 6 4 7 5 1 8 9 3 9 10 4 10 8 7 11 5 10 12 4 7 13 1 5 14 15 3 1 1. Si on choisit un chat au hasard, quelle est la probabilité a priori qu’il soit de la race A (resp. de la race B). 2. Calculer le poids moyen pour chaque race ainsi que l’écart-type. 3. Est-il raisonnable de considérer les distributions de poids dans chaque race comme des distributions gaussiennes? 4. Si on choisit un chat au hasard, Comment estimer sa race d’appartenance ? Proposer un algorithme très simple. 5. Notons m1 , m2 les moyennes empiriques et σ1 , σ2 les écarts-types empiriques des 2 races A et B, calculées à la question 2). • Donner l’expression du rapport de vraisemblance Λ(x) = P (x|m2 ) P (x|m1 ) . • Représenter graphiquement les régions de décision X1 et X2 où X1 = {x|P (x|m1 ) > P (x|m2 )} et X2 = {x|P (x|m1 ) < P (x|m2 )}. • Est-il vraisemblable de décider qu’un chat de 10,5 kg est de race A ? 2 [email protected] Exercice 4 Ecrire un code qui génère un échantillon de Bernouilli de paramètre p, et le code qui calcule pˆ à partir de l’échantillon. Recommencer l’opération pour une distribution normale N(m, σ). Exercice 5 Que vaut le taux de vraisemblance p(x|w1 ) p(x|w2 ) dans le cas de densités Gaussiennes N2 (m2 , σ2 ) et N1 (m1 , σ1 ) univarié ? Exercice 6 En compression d’image, on peut utiliser les centres mobiles de la façon suivante. L’image est divisée en fenêtre sans recouvrement de dimensions c × c qui forment notre échantillon. On réalise un clustering de type centres mobiles pour former K classes, ou K ≈ 4 ou 6. Les vecteurs moyens c’està-dire les centres de ces classes sont nos vecteurs de références. Ils regroupent autour deux les vecteursimagettes. Les fenêtres se voient attribués un label en référence à leur centre de classe. Chaque imagette i est repérée par un indice qui correspond à une position (xi , yi ) dans l’image globale, par exemple la position du centre de l’imagette. Plutôt que d’envoyer l’image complète, trop lourde, nous n’enverrons qu’une partie de l’information: les indices des imagettes ainsi que leur label sur un canal de communication. A la réception, l’image est reconstruite en recomposant l’image avec les imagettes de reférence selon leurs position dans l’image. • Écrire le programme informatique qui réalise ceci. • Pour chaque cas, calculer l’erreur de reconstruction et le taux de compression (proposer votre critère d’erreur) • tester votre algorithme en faisant varier c, K. Figure 1: Principe des centres mobiles. 3 [email protected] TP2 – RÉGRESSION LINÉAIRE Exercice 7 Supposons qu’on dispose de 2 variables x1 et x2 et qu’on veut faire un ajustement quadratique à partir de ces variables : f (x1 , x2 ) = w0 + w1 x1 + w2 x2 + w3 x1 x2 + w4 x21 + w3 w22 • Comment trouver wi , i = 1, . . . , 5 à partir d’un échantillon X = (xi1 , xi2 ; ri ). Proposer un programme. • transformer cette implémentation en un algorithme itératif adaptatif. Exercice 8 Récupérer les données Computer-activity1 et disponibles dans l’archive Dataset.data.gz. Préparer les données en normalisant les variables pour éviter des problèmes numériques dans le calcul des coefficients. Ecrire une fonction Matlab : function [X Y] = extraction(data,liste_variables,nb_exemples) qui extrait de la matrice data précédente les variables fournies par la liste liste_variables pour nb_exemples tirés au hasard dans la base. (la matrice X devra prendre en compte la “variable constante” de la régression. Programmer un code qui calcule : 1. Les coefficients de régression du modèle multivarié Pn ∗ 1 2. Les paramètres (moyenne et variance) de l’erreur s2 = n−2 ˆi )2 , où y ∗ est la valeur attendue i (yi − y et yˆ la valeur calculée (estimée) Pn ∗ Pn ˆi )2 (ˆ yi − y¯)2 variance expliquée i (yi − y i 2 2 P ou R = 1 − 3. Le coefficient de corrélation R = Pn ∗ = n ∗ variance des points ¯)2 ¯)2 i (yi − y i (yi − y 4. La courbe des résidus r = y ∗ − yˆ = f (X), 5. La courbe yˆ (y calculé) vs. y ∗ (y attendu), 6. Testez ce programme. Pour un nombre fixé d’exemples, avec chaque variable fournie par les données du début. S’il fallait choisir une variable, laquelle prendriez vous ? Exercice 9 Dear Sir, Our geology students have collected the following data: ` = thickness of a local bed of sedimentary rock, d = diameter of the area. 1 Measures of a of system activity in a multi-processor, multiuser computer system. 4 [email protected] ` 960 564 261 1227 284 89 705 168 431 104 1184 907 117 104 284 1322 449 615 1479 143 d 35 27 21 36 24 17 30 19 24 18 38 32 16 36 23 40 27 31 49 18 Could you suggest a suitable way of predicting ` from d ? Yours Sincerely, Trevor Jones 5 [email protected] TP3 – Perceptron multicouches Exercice 10 Rétropropagation du gradient Générez un ensemble d’apprentissage de taille n = 100 constitué de deux classes en dimension d = 2 avec le programme generation_dataBP.m : • La première est une classe Gaussienne de dimension deux, de moyenne µ = (0; 6). • La seconde est une classe en forme de banane avec la première variable x1 tirée suivant une loi uniforme sur [−3, 3], et la seconde variable x2 égale au carré de la première plus un bruit gaussien réduit (cf. Fig. 2) Figure 2: Le problème “jouet”. Définition du MLP et de l’algorithme de rétropropagation. Construisez les fonctions : 1. function [w1 w2] = mlpinit(m) qui initialise les poids d’un perceptron multicouche à m neurones dans la couche cachée, 2. function [y] = mlpval(x, w1, w2) qui calcule la sortie d’un perceptron multicouche défini par ces matrices de paramètres w1 et w2, 3. function [w1 w2] = mlpfit(xi, yi, w1, w2) qui estime les paramètres d’un perceptron multicouche à partir de l’échantillon (xi, yi). Estimez les paramètres du réseau avec m variant de 1 à 10. Que concluez vous2 ? 4. Pour le problème de classification, calculer le Lambda de Wilks : Λk = 2 Affichez det(W ) det(W + B) à chaque fois: le nombre d’itérations, l’erreur quadratique moyenne et le taux de bonne classification 6 [email protected] où W = J X X j (xi − µj )T (xi − µj ) est la corrélation intraclasse et B = xi ∈Cj J X nj (µ − µj )T (µ − µj ) est j la corrélation interclasses. Calculer la spécificité et la sensibilité du modèle. Programmer les équations de mise a jour des poids pour Figure 3: Algorithme de la backpropagation. des unités cachées qui utilisent tanh au lieu de la fonction sigmoidal. Utiliser le fait que tanh0 = (1 − tanh2 ) Figure 4: Perceptron multi-couches capable de résoudre le problème du XOR. Problème du XOR • Simuler la fonction ET avec des poids fixes et sans apprentissage. Les paramètres du Perceptron sont les suivants : w1 = 0.2, w2 = 0.1etS = −0.2. Les exemples de comportement à vérifier (ET) sont rappelés 7 [email protected] sur la table suivante : x1 0 0 1 1 x2 0 1 0 1 y 0 0 0 1 • Pour la même base d’apprentissage, réaliser l’apprentissage (ne pas oublier la modification du seuil). Le choix des conditions initiales est confié au hasard. • Essayer d’apprendre le XOR. • calculer une matrice de confusion. Générer 2 nuages de points gaussiens autours les 4 points précédents avec une matrice de variance Enfin, appliquer la rétropropagation à la classification de cellules collagènes ou PAI. 8 [email protected] TP4 –Carte de Kohonen Exercice 11 Programmer une carte de Kohonen La quantification vectorielle est l’une des méthodes de compression d’image parmi les plus employées. Nous allons réaliser cette quantification en utilisant des cartes auto-organisatrices. Les images qui proviennent de la télévision, de visioconférence, de satellite, ou d’applications médicales . . . quelles qu’elles soient, représentent une quantité énorme de données après digitalisation. Diminuer les coûts de transmission ou de stockage est d’un intérêt très ancien (par exemple, le code Morse). En ce qui concerne les applications aux communications, le but recherché est alors de minimiser la durée de transmission d’un certain volume d’informations. Ceci apporte à la fois une économie sur le coût, une diminution des risques d’erreurs, une plus grande ergonomie et une plus grande performance, puisque les données sont acheminées en un temps plus court. Les diverses méthodes de compression sont basées sur les techniques de prédiction, de transformation, ou de quantification vectorielle, avec des possibilités de combinaisons entre elles. Elles sont de deux types. Si la transformation réalisée est réversible, la réduction utilise la redondance d’informations et aucune information n’est perdue. Dans l’autre cas, la transformation est irréversible. C’est une réduction d’entropie et il y a perte d’informations. Les performances de la compression sont mesurées par la MSE (Mean Square Error) qui représente la différence entre l’image initiale et l’image reconstituée. La quantification vectorielle est l’une des méthodes de compression d’image parmi les plus employées. Nous allons réaliser cette quantification en utilisant des cartes auto-organisatrices. Les images qui proviennent de la télévision, de visioconférence, de satellite, ou d’applications médicales . . . quelles qu’elles soient, représentent une quantité énorme de données après digitalisation. Diminuer les coûts de transmission ou de stockage est d’un intérêt très ancien (par exemple, le code Morse). En ce qui concerne les applications aux communications, le but recherché est alors de minimiser la durée de transmission d’un certain volume d’informations. Ceci apporte à la fois une économie sur le coût, une diminution des risques d’erreurs, une plus grande ergonomie et une plus grande performance, puisque les données sont acheminées en un temps plus court. Les diverses méthodes de compression sont basées sur les techniques de prédiction, de transformation, ou de quantification vectorielle, avec des possibilités de combinaisons entre elles. Elles sont de deux types. Si la transformation réalisée est réversible, la réduction utilise la redondance d’informations et aucune information n’est perdue. Dans l’autre cas, la transformation est irréversible. C’est une réduction d’entropie et il y a perte d’informations. Les performances de la compression sont mesurées par la MSE (Mean Square Error) qui représente la différence entre l’image initiale et l’image reconstituée. Le nombre de mots du dictionnaire est égal à la taille du réseau (nombre de neurones). Le dictionnaire est donc composé des blocs les plus représentatifs de l’image. Tester sur les images de cellules qui vous seront fournies et démontrer qu’on améliorer la quantiifcation. 9 [email protected] Figure 5: Principe de la quantification vectorielle par carte auto-organisatrice.(1) Construction du dictionnaire : la carte sélectionne les mots du dictionnaire à partir des blocs les plus représentatifs de l’image. (2) Codage de l’image (par le dictionnaire) : la carte sélectionne pour le bloc de l’image qui lui est présenté le numéro du mot du dictionnaire le plus proche. (3) Transmission : le numéro des vecteurs est transmis par le canal. (4) Décodage (reconstitution). 10 [email protected]
© Copyright 2024 ExpyDoc