TRPA2: Algorithme EM et apprentissage des paramètres d’un GMM Réda Dehak 3 novembre 2009 Exercice 1 : Simulation d’une loi normale (utilisation de rand et randn A) Le but de cet exercice est d’écrire une fonction pour générer un ensemble de données en n dimension suivant une loi normale de moyenne µ et de matrice de variance covariance Σ. On va procéder par étapes pour écrire cette fonction : 1. Utiliser randn pour générer 1000 points en 1 dimension suivant la loi normale centrée réduite. Afficher l’histogramme et vérifier que c’est une gaussienne centrée réduite. 2. Générer 1000 points en 1 dimension suivant une loi normale de moyenne 3 et de variance 4. Vérifier que la moyenne et l’écart type des données correspondent aux paramètres de la gaussienne. 3. Générer 1000 points en 2 dimension une loi normale de moyenne µ = (3, −1)t suivant 0.5 0 et de matrice de covariance Σ = . Afficher les points sur le plan et vérifier que 0 2 c’est bien une gaussienne. Vérifier numériquement la moyenne et la matrice de variance covariance des données. t 4. Générer 1000 points en 2 dimension suivant une loi normale de moyenne µ = (3, −1) 1 −0.5 et de matrice de covariance Σ = , afficher les points sur le plan et vérifier −0.5 2 que c’est bien une gaussienne. Vérifier numériquement la moyenne et la matrice de variance covariance des données. B) Utiliser votre fonction de départ pour écrire une fonction pour générer un GMM d’ordre K, dont le vecteur de points est α, les vecteurs moyenne µ1 , ..., µK et les matrice de variance covariance Σ1 , ..., ΣK . 1 0 2 0.5 t t t Test : µ1 = (−1, 2) , µ2 = (1, 2) et µ3 = (0, −1) , Σ1 = , Σ2 = et 0 1 0.5 1 1 −0.5 Σ3 = −0.5 1 Exercice 2 : Algorithme EM Pour cette exercice, on va écrire un algorithme d’apprentissage qui permet d’apprendre les paramètres d’un ensemble de données X décrivant un GMM d’ordre K en dimension d. A) Hypothèse : matrice de variance covariance diagonale 1. Écrire la fonction permettant d’apprendre les paramètres d’un GMM. Subdiviser votre fonction en deux partie (E et M) afin de pouvoir faire facilement la suite. 1 2. Tester votre fonction sur un échantillon tiré au sort en utilisant la fonction écrite précédemment. Vérifier que le log de vraissemblance des données d’apprentissage s’améliore d’une itération à l’autre. (vous pouvez tester visuellement votre algorithme en affichant les centres des gaussiennes et leur matrice de covariance sous forme d’ellipse dans le plan avec les données d’apprentissage) 1 0 2 0 t t t Test : µ1 = (−1, 2) , µ2 = (1, 2) et µ3 = (0, −1) , Σ1 = , Σ2 = et 0 1 0 1 1 0 Σ3 = 0 2 3. Proposer et tester différentes méthodes d’initialisation et étudier la convergence de l’algorithme (vitesse et test d’arret). 4. Implementer les deux versions CEM et SEM vues en cours et comparer les algorithmes avec la version classique. B) Hypothèse : matrice de variance covariance pleine 1. Quel est le problème de l’algorithme EM dans le cas des matrices pleine. 2. Essayer votre algorithme sur les données tests de l’exercice 1-question B. 2