École Polytechnique Année 2 Mathématiques Appliquées TP6 MAP441 – Modal SNA Florent Benaych-Georges Stefano De Marco Stéphane Gaiffas Emmanuel Gobet Christelle Vergé Algorithme EM, mélanges gaussiens, clustering et sélection de modèle 1 Introduction Dans ce TP, nous proposons de mettre en oeuvre la méthode d’optimisation décrite en cours 5 : l’algorithme EM, appliqué à la maximisation de la vraisemblance dans le modèle de mélange gaussien, puis de s’en servir pour effectuer un clustering de points dans le plan. On pourra ensuite, si le temps le permet, utiliser la méthode BIC pour sélectionner automatiquement le nombre de clusters. Il faudra travailler entre 1h et 1h30 sur ce TP, pas plus, le but étant maintenant de travailler principalement sur votre projet. Pour vous faire gagner du temps, nous fournissons un code à trou, disponible sur la page http://www.cmap.polytechnique.fr/~gaiffas/index.php?main=teaching le but étant de compléter le code scilab pour traiter les questions, sans avoir à gérer les problèmes de programmation scilab associés. 2 Mélanges gaussiens La densité d’un mélange gaussien à K clusters, de paramètre θ = (p1 , . . . , pK , µ1 , . . . , µK , Σ1 , . . . , ΣK ) ∈ Θ s’écrit K X fθ (x) = pk φµk ,Σk (x), k=1 où φµk ,Σk est la densité de la loi gaussienne N (µk , Σk ) donnée par φµk ,Σk (x) = (2π)d/2 1 p 1 exp − (x − µk )> Σ−1 k (x − µk ) , 2 det(Σk ) et où l’ensemble de paramètres est K n o X Θ = (p1 , . . . , pK ) ∈ (R+ )K : pk = 1 × RK×d × (S0 )K , k=1 avec S0 = {Σ ∈ Rd×d : Σ> = Σ, Σ 0}. Question 1. Simuler n = 1000 réalisations d’un mélange gaussien de paramètres • K = 3, decal = 5, σ = 2 • p = (p1 , p2 , p3 ) = (0.3, 0.5, 0.2) • µ1 = (−decal, decal), µ2 = (decal, decal), µ3 = (0, −decal) • Σ1 = σ 2 I2 , Σ2 = σ 2 I2 , Σ3 = σ 2 I2 où Id est la matrice identité dans Rd . Compléter pour cela les trous dans le fichier sim_gauss_mixture_question.sce (qui contient la fonction de simulation) et lancer le calcul avec le fichier sim_gauss_mixture_main.sce. On pourra jouer sur les paramètres decal et σ, rajouter des clusters, etc, pour observer l’impact sur les points simulés. 1 3 Algorithme EM On suppose que l’on observe X = (X1 , . . . , Xn ) où les Xi ∈ Rd sont i.i.d de densité fθ0 , avec θ0 ∈ Θ inconnu. La fonction de log-vraisemblance de ce modèle est `(θ; X) = n X log K X i=1 pk φµk ,Σk (Xi ) , k=1 et un estimateur au maximum de vraisemblance (MLE) de θ0 vérifie θ̂ ∈ argmax `(θ; X). θ∈Θ On peut obtenir une approximation d’un MLE en utilisant l’algorithme EM, qui consiste dans ce cadre à itérer, pour t = 0, 1, . . ., les calculs suivants jusqu’à convergence : (t) πi,k (θ (t) pk φµ(t) ,Σ(t) (Xi ) ) = PK k k (t) k0 =1 pk0 φµ(t) ,Σ(t) (Xi ) k0 (t+1) pk (t+1) µk (t+1) Σk k0 n 1X = πi,k (θ(t) ) n i=1 Pn (t) i=1 πi,k (θ )Xi = P n (t) i=1 πi,k (θ ) Pn (t+1) (t+1) > πi,k (θ(t) )(Xi − µk )(Xi − µk ) Pn = i=1 . (t) i=1 πi,k (θ ) On note alors θ̂ = (p̂1 , . . . , p̂K , µ̂1 , . . . , µ̂K , Σ̂1 , . . . , Σ̂K ) l’approximation de l’estimateur au maximum de vraisemblance ainsi obtenue. Une fois qu’un estimateur θ̂ est calculé, on peut affecter les classes en utilisant la règle du MAP : i ∈ Ck si πi,k (θ̂) > πi,k0 (θ̂) pour tout k 0 6= k. Question 2. Ecrire une fonction qui utilise l’algorithme EM pour calculer le MLE dans le modèle de mélange gaussien. On complétera les trous du fichier fit_gauss_mixture_question.sce contenant la fonction de calcul de l’estimateur, on utilisera le fichier init_em_unif.sce contenant une fonction qui initialise aléatoirement l’algorithme EM et le fichier fit_gauss_mixture_main.sce pour lancer le calcul. On pourra observer l’évolution des affectations des points le long des étapes de l’algorithme (utilisant la règle du MAP) et le fait qu’il augmente effectivement la vraisemblance à chaque étape. 4 Sélection de modèle On peut choisir automatiquement le nombre de clusters K en utilisant le critère BIC : K̂ = argmin n − `(θ̂K ; X) + K≥1 df(K) log n o 2 où • θ̂K est l’estimateur MLE dans le modèle de mélange avec K clusters • df(K) est le nombre de degrés de libertés (degrees of freedom) du modèle de mélange utilisé avec K clusters. Question 3. Appliquer le critère BIC pour sélectionner automatiquement le nombre de clusters. On balaiera des valeurs de K allant de 2 à 10, et on observera le fait que le critère est bien minimal pour K = 3. On pourra considérer d’autres modèles simulés, avec plus de clusters, une forme plus complexe des matrices de covariance, etc. On complétera le fichier model_selection_question.sce pour répondre à cette question. On enlèvera tous les affichages effectués dans la fonction fit_gauss_mixture pour gagner du temps. 2