partitionnement et mélanges gaussiens

70
Partitionnement et m´ elanges gaussiens Ange Tato Universit´ e du Qu´ ebec ` a Montr´ eal Cours inspir´ ee de [1]. 2 d´ ecembre 2021 Ange T. (Universit´ e du Qu´ ebec ` a Montr´ eal INF8100 2 d´ ecembre 2021 1 / 70

Upload: others

Post on 19-Jun-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Partitionnement et mélanges gaussiens

Partitionnement et melanges gaussiens

Ange Tato

Universite du Quebec a MontrealCours inspiree de [1].

2 decembre 2021

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 1 / 70

Page 2: Partitionnement et mélanges gaussiens

Plan

1 Introduction

2 Algorithme K-moyennes et probleme

3 Melanges gaussiens

4 Exemples

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 2 / 70

Page 3: Partitionnement et mélanges gaussiens

Plan

1 Introduction

2 Algorithme K-moyennes et probleme

3 Melanges gaussiens

4 Exemples

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 3 / 70

Page 4: Partitionnement et mélanges gaussiens

Introduction

Il existe differents types d’apprentissage.

Apprentissage supervise : il y a une cible a predire :

D = {(x1, t1), ..., (xN , tN)}

Apprentissage non supervise : la cible n’est pas fournie :

D = {x1, ..., xN}

Apprentissage par renforcement (non couvert ici).

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 4 / 70

Page 5: Partitionnement et mélanges gaussiens

Introduction

Apprentissage non supervise, estimation de la densite :

L’apprentissage non-supervise est lorsqu’une cible n’est pasexplicitement donnee.

estimation de densite : apprendre la loi de probabilite p(x) ayantgenere les donnees.

pour generer de nouvelles donnees realistes ;

pour distinguer les ≪vrais≫ donnees des ≪fausses≫ donnees (spamfiltering) ;

compression de donnees.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 5 / 70

Page 6: Partitionnement et mélanges gaussiens

Introduction

Apprentissage non supervise, estimation de la densite :

L’apprentissage non-supervise est lorsqu’une cible n’est pasexplicitement donnee.

Partitionnement des donnees / clustering.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 6 / 70

Page 7: Partitionnement et mélanges gaussiens

Introduction

Apprentissage non supervise, estimation de la densite :

Combien de groupe dans cette image ?

Nous allons apprendre a identifier automatiquement les groupescaches.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 7 / 70

Page 8: Partitionnement et mélanges gaussiens

Plan

1 Introduction

2 Algorithme K-moyennes et probleme

3 Melanges gaussiens

4 Exemples

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 8 / 70

Page 9: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

C’est l’un des algorithmes de clustering les plus repandus. Il permetd’analyser un jeu de donnees, afin de regrouper les donnees“similaires” en groupes (ou clusters).

Similarite evalue par la notion de “distance”.

Recherche des K “donnees prototypes” ou centroıdes, autourdesquelles peuvent etre regroupees les autres donnees.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 9 / 70

Page 10: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

L’algorithme associe chaque donnee a son centroıde le plus proche,afin de creer des clusters.

Les moyennes definissent la position des centroıdes dans l’espace :origine du nom de cet algorithme (K-moyennes ou K-means enanglais).

Apres avoir initialise au hasard des centroıdes (donnees au hasarddans le jeu), K-means alterne plusieurs fois les deux etapes pouroptimiser les centroıdes et leurs groupes :

Regrouper chaque objet autour du centroıde le plus proche.

Replacer chaque centroıde selon la moyenne des points de son groupe.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 10 / 70

Page 11: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

from sklearn.cluster import KMeans

kmeans = KMeans(4, random_state=0)

labels = kmeans.fit(X).predict(X)

plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis');

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 11 / 70

Page 12: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

On pourrait s’attendre a ce que l’affectation de cluster pour certainspoints soit plus certaine que pour d’autres.

Dans l’exemple ci-dessus : il semble y avoir un tres legerchevauchement entre les deux clusters du milieu, de sorte quenous pourrions ne pas avoir une confiance totale dans l’affectation decluster de points entre eux.

Le modele k-means n’a pas de mesure intrinseque de probabiliteou d’incertitude des affectations.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 12 / 70

Page 13: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

Un facon de voir : k-means place un cercle (ou, dans des dimensionsplus elevees, une hyper-sphere) au centre de chaque cluster, avec unrayon defini par le point le plus eloigne du cluster.

Ce rayon agit comme une coupure stricte pour l’affectation dans lecluster : tout point en dehors de ce cercle n’est pas considere commeun membre du cluster.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 13 / 70

Page 14: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

Une observation importante pour k-means est que ses modeles declusters sont circulaires : k-means n’a aucun moyen integre deprendre en compte les clusters elliptiques par exemple.

Exemple : On transforme un peu nos donnees :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 14 / 70

Page 15: Partitionnement et mélanges gaussiens

K-moyennes ou K-means

Les ’amas’ ne sont pas circulaires.

k-means n’est pas assez flexible pour en tenir compte et essaie deforcer l’ajustement des donnees dans quatre clusters circulaires.

2 desavantages :

Manque de flexibilite dans la forme des clusters ;

Manque d’assignation probabiliste aux clusters. Appartient oun’appartient pas (Assignation binaire !).

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 15 / 70

Page 16: Partitionnement et mélanges gaussiens

Plan

1 Introduction

2 Algorithme K-moyennes et probleme

3 Melanges gaussiens

4 Exemples

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 16 / 70

Page 17: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Un modele de melange gaussien (GMM : Gaussian Mixture Models)tente de trouver un melange de distributions de probabilitesgaussiennes multidimensionnelles qui modelisent au mieux toutensemble de donnees d’entree.

Dans le cas le plus simple, les GMM peuvent etre utilises pourrechercher des clusters de la meme maniere que les k-means :

from sklearn import mixture

gmm = mixture.GaussianMixture(n_components=4).fit(X)

labels = gmm.predict(X)

plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis');

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 17 / 70

Page 18: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Un melange de gaussiennes suppose que les donnees ont etegenerees comme suit :

Pour n = 1...N

choisir un entier k ϵ {1, ...,K} selon les probabilites π1, ... , πK ;

genere xn d’une loi de probabilite N (xn∣µk ,Σk) (loi normalemultidimensionnelle ou multivariee).

En mots : les entrees sont des echantillons d’une de K differentes loisgaussiennes, ayant chacune des moyennes et covariances differentes.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 18 / 70

Page 19: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Visuellement on a :

Figure – Melange gaussien : l’ensemble de plusieurs densites (normales) deprobabilites.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 19 / 70

Page 20: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Exemple de donnees generees d’un melange de gaussiennes (K=3)

Figure – La couleur indique de quelle gaussienne a ete echantillonnee le point.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 20 / 70

Page 21: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Probabilite a priori du choix de la gaussienne

On va noter z la variable aleatoire correspondant a l’identite de lagaussienne qui a genere une entree x .

format one-hot : zk=1 si x a ete generee par la kegaussienne.

La probabilite de choisir la kegaussienne est donc :

p(zk = 1) = πk

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 21 / 70

Page 22: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Probabilite a priori du choix de la gaussienne

La probabilite de choisir la kegaussienne est donc :

p(zk = 1) = πk

Puisque z est one-hot, on peut aussi ecrire :

p(z) =K

∏k=1

πzkk

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 22 / 70

Page 23: Partitionnement et mélanges gaussiens

Melanges Gaussiens

fonction de densite conditionnelle de l’entree

Sachant z la probabilite (fonction de densite) de x est :

p(x∣zk = 1) = N (x∣µk ,Σk)

N (x∣µ,Σ) = 1

(2π)N/21

∣Σ∣1/2exp {−1

2(x − µ)TΣ−1(x − µ)}

Que l’on peut aussi ecrire

p(x∣z) =K

∏k=1

N (x∣µk ,Σk)zk

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 23 / 70

Page 24: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Reseau bayesien

On peut illustrer un melange de gaussiennes sous la forme du reseaubayesien (modele graphique) suivant :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 24 / 70

Page 25: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Approche probabiliste generative

On va supposer que les donnees ont ete generees selon le processussuivant (cas binaire) :

Pour n = 1...N

assigne tn=1 avec la probabilite p(C1) = π et tn=0 avec la probabilitep(C2) = 1 − π

si tn=1, genere xn de la loi de probabilite p(xn∣C1) = N (xn∣µ1,Σ)sinon (tn=0), genere xn de la loi de probabilitep(xn∣C2) = N (xn∣µ2,Σ)

En mots : les entrees sont des echantillons d’une loi gaussienne, maisde moyennes differentes pour les differentes classes.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 25 / 70

Page 26: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Dans un melange de gaussienne, l’appartenance aux K gaussiennes(≪classes≫) n’est pas connue.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 26 / 70

Page 27: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Fonction de densite marginale des entrees

Puisqu’on ne connait pas l’appartenance aux gaussiennes (z), on vas’interesser a la probabilite marginale :

p(x) = ∑z

p(z)p(x∣z) =K

∑k=1

πkN (x∣µk ,Σk)

C’est de cette facon qu’on va mesurer la performance de notremodele.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 27 / 70

Page 28: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Partitionnement de donnees, clustering

A partir d’un melange de gaussiennes entraıne, on pourrait inferer aquelle gaussienne appartiennent les entrees :

on pourrait alors automatiquement categoriser nos donnees enfonction des probabilites d’appartenance a chacune des gaussiennes.

Partitionnement :

permet de ≪mettre de l’ordre≫ dans les donnees ;

permet de visualiser les donnees une partition a la fois.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 28 / 70

Page 29: Partitionnement et mélanges gaussiens

Melanges Gaussiens

probabilite d’appartenance, responsability

A l’aide de la regle de Bayes, on obtient la probabilited’appartenance a la k

egausssienne suivante :

γ(zk) ≡ p(zk = 1∣x) = p(zk = 1)p(x∣zk = 1)∑K

j=1 p(zj = 1)p(x∣zj = 1)

=πkN (x∣µk ,Σk)

∑Kj=1 πjN (x∣µj ,Σj)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 29 / 70

Page 30: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Partitionnement de donnees, clustering

Lors du partitionnement, on assigne chaque entree x a la gaussienneayant associee la plus grande probabilite d’appartenance.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 30 / 70

Page 31: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Partitionnement de donnees, clustering

On n’a pas de garanties qu’on va retrouver les ≪vraies≫ categories ?

1 les donnees de chaque categorie ne sont peut-etre pas gaussiennes ;

2 le modele de melange entraıne n’est peut-etre pas bon.

Plus les donnees des differentes categories seront bien separees (pasentrelacees), meilleurs seront les resultats.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 31 / 70

Page 32: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

Probabilite marginale :

p(x) = ∑z

p(z)p(x∣z) =K

∑k=1

πkN (x∣µk ,Σk)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

On va maximiser la (log-)vraisemblance marginale des donneesd’entraınement.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 32 / 70

Page 33: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas µk ∶ la solution doit satisfaire

0 = −N

∑n=1

πkN (xn∣µk ,Σk)∑j πjN (xn∣µj ,Σj)

Σk(xn − µk)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 33 / 70

Page 34: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas µk ∶ la solution doit satisfaire

0 = −N

∑n=1

γ(znk)Σk(xn − µk)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 34 / 70

Page 35: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas µk ∶ Si on suppose que les γ(znk sont fixes

µk =1

Nk

N

∑n=1

γ(znk)xn

Nk =

N

∑n=1

γ(znk)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 35 / 70

Page 36: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas πk ∶ on utilise le multiplicateur de Lagrange

ln p(X ∣π, µ,Σ) + λ(K

∑k=1

πk − 1)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 36 / 70

Page 37: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas πk ∶ Si on suppose que les γ(znk sont fixes

πk =Nk

N

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 37 / 70

Page 38: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Maximum de vraisemblance (EM)

On va entraıner un melange de gaussiennes par maximum devraisemblance.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Cas Σk ∶ Si on suppose que les γ(znk sont fixes

Σk =1

Nk

N

∑n=1

γ(znk)(xn − µk)(xn − µk)T

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 38 / 70

Page 39: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM

Les solutions pour µk , πk , Σk supposent que les γ(znk) sont fixes.

par contre, changer µk , πk , et Σk va changer γ(znk).la supposition que les γ(znk) ne changeront pas est donc fausse.

Solution : on alterne entre calculer γ(znk) et µk , πk , Σk .

1 Etape Estimation : calcul de tous les γ(znk).2 Etape Maximisation : calcul des µk , πk , et Σk .

On appelle cela l’algorithme EM.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 39 / 70

Page 40: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Pseudocode

1 Initialisation des moyennes µk , covariances σk et les coefficients πk .Evaluer la valeur initiale de la log de vraisemblance.

2 E step. Evaluations des ”responsabilities” a partir des valeurs desparametres courants.

γ(znk) =πkN (xn∣µk ,Σk)

∑Kj=1 πkN (xn∣µj ,Σj)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 40 / 70

Page 41: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Pseudocode

1 Initialisation.

2 E step.

3 M step. Re-estimer les parametres en utilisant les probabilitescourantes.

µNouvk =

1

Nk

N

∑n=1

γ(znk)xn

ΣNouvk =

1

Nk

N

∑n=1

γ(znk)(xn − µNouvk )(xn − µ

Nouvk )T

πNouvk =

Nk

N

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 41 / 70

Page 42: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Pseudocode

1 Initialisation.

2 E step.

3 M step.

4 Evaluation du log de vraissemblance et verifier la convergence desparametres ou du log lui meme. Si le critere de convergence n’est passatisfait, retourner a l’etape 2.

ln p(X ∣π, µ,Σ) =N

∑n=1

ln{K

∑k=1

πkN (xn∣µk ,Σk)}

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 42 / 70

Page 43: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Initialisation.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 43 / 70

Page 44: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Etape E.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 44 / 70

Page 45: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Etape M.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 45 / 70

Page 46: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Apres 2 iterations.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 46 / 70

Page 47: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Apres 5 iterations.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 47 / 70

Page 48: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Algorthme EM : Exemple d’execution

Apres 20 iterations.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 48 / 70

Page 49: Partitionnement et mélanges gaussiens

Melanges Gaussiens

Un modele de melange gaussien est tres similaire aux k-moyennes : ilutilise une approche EM qui effectue les operations suivantes :

E-step : pour chaque point, trouver des poids encodant la probabilited’appartenance a chaque cluster.

M-step : pour chaque cluster, mettre a jour son emplacement, saforme en fonction de tous les points de donnees, en utilisant les poids.

Chaque cluster est associe non pas a une sphere a bords rigide, maisa un modele gaussien lisse.

Tout comme les k-moyennes, cet algorithme peut parfois manquer lasolution optimale. En pratique plusieurs initialisations aleatoiressont utilisees.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 49 / 70

Page 50: Partitionnement et mélanges gaussiens

Plan

1 Introduction

2 Algorithme K-moyennes et probleme

3 Melanges gaussiens

4 Exemples

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 50 / 70

Page 51: Partitionnement et mélanges gaussiens

Exemples

Possible d’extraire les affectations de clusters probabilistes.

Dans Scikit-Learn, cela se fait a l’aide de la methodepredict proba .

Cela renvoie une matrice de taille [n samples, n clusters] qui mesurela probabilite qu’un point appartient au cluster donne.

Correspond a γ(znk).

from sklearn import mixture

gmm = mixture.GaussianMixture(n_components=4).fit(X)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 51 / 70

Page 52: Partitionnement et mélanges gaussiens

Exemples

On peut visualiser cette incertitude en rendant par exemple la taillede chaque point proportionnelle a la certitude de sa prediction ;

en regardant la figure suivante, nous pouvons voir que ce sontprecisement les points aux frontieres entre les clusters qui refletentcette incertitude d’affectation des clusters :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 52 / 70

Page 53: Partitionnement et mélanges gaussiens

Exemples

Que donne les clusters visuellement ?

gmm = mixture.GaussianMixture(n_components=4, random_state=42)

plot_gmm(gmm, X)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 53 / 70

Page 54: Partitionnement et mélanges gaussiens

Exemples

Essayons avec les donnees etirees :

gmm = mixture.GaussianMixture(n_components=4, covariance_type='full', random_state=42)

plot_gmm(gmm, X_stretched)

Figure – Avec les K-moyennes Figure – Avec les melanges gaussiens

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 54 / 70

Page 55: Partitionnement et mélanges gaussiens

Exemples

Choisir le type de covariance covariance type

Cet hyperparametre controle les degres de liberte de la forme dechaque cluster ;

La valeur par defaut est covariance type="diag" , ce qui signifieque la taille du cluster le long de chaque dimension peut etre definieindependamment, l’ellipse resultante etant contrainte de s’alignersur les axes.

covariance type="spherical" , contraint la forme du cluster detelle sorte que toutes les dimensions soient egales. Le clusteringresultant aura des caracteristiques similaires a celles de k-means.covariance type="full" ; plus complique et plus couteux en

calcul, permet a chaque cluster d’etre modelise comme une ellipseavec une orientation arbitraire.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 55 / 70

Page 56: Partitionnement et mélanges gaussiens

Exemples

Choisir le type de covariance covariance type

Visualisation d’une representation de ces trois choix pour un memecluster dans la figure suivante :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 56 / 70

Page 57: Partitionnement et mélanges gaussiens

Exemples

GMM comme un estimateur de densite

Bien que GMM soit souvent classe comme un algorithme declustering, il s’agit fondamentalement d’un algorithme d’estimationde la densite.

Le resultat d’un ajustement GMM a certaines donnees n’esttechniquement pas un modele de clustering, mais un modeleprobabiliste generatif decrivant la distribution des donnees.

Exemple : considerons certaines donnees generees a partir de lafonction make moons de Scikit-Learn :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 57 / 70

Page 58: Partitionnement et mélanges gaussiens

Exemples

GMM comme un estimateur de densite

from sklearn.datasets import make_moons

Xmoon, ymoon = make_moons(200, noise=.05, random_state=0)

plt.scatter(Xmoon[:, 0], Xmoon[:, 1]);

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 58 / 70

Page 59: Partitionnement et mélanges gaussiens

Exemples

GMM comme un estimateur de densite

gmm2 = mixture.GaussianMixture(n_components=2, covariance_type='full', random_state=0)

plot_gmm(gmm2, Xmoon)

Figure – Faire correspondre ces clusters a un GMM a deux composants.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 59 / 70

Page 60: Partitionnement et mélanges gaussiens

Exemples

GMM comme un estimateur de densite

Utilisons plus de composants et ignorons les etiquettes decluster, nous trouvons un ajustement beaucoup plus proche desdonnees d’entree :

gmm16 = mixture.GaussianMixture(n_components=16, covariance_type='full', random_state=0)

plot_gmm(gmm16, Xmoon, label=False)

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 60 / 70

Page 61: Partitionnement et mélanges gaussiens

Exemples

GMM comme un estimateur de densite

Le melange de 16 gaussiennes ne sert pas a trouver des groupes dedonnees separes, mais plutot a modeliser la distribution globaledes donnees d’entree.

Il s’agit d’un modele generatif de la distribution. Ex : voici 400

nouveaux points tires de cet ajustement GMM a 16 composants a nosdonnees :

Xnew, labels = gmm16.sample(400)

plt.scatter(Xnew[:, 0], Xnew[:, 1]);

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 61 / 70

Page 62: Partitionnement et mélanges gaussiens

Exemples

Combien de composants ?

Un modele generatif est intrinsequement une distribution deprobabilite pour l’ensemble de donnees.

Ajuster les vraisemblances du modele a l’aide d’un critere analytiquetel que le critere d’information d’Akaike (AIC) ou le critered’information bayesien (BIC).

L’estimateur GMM de Scikit-Learn comprend ces methodes integreesqui calculent ces deux elements :

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 62 / 70

Page 63: Partitionnement et mélanges gaussiens

Exemples

Combien de composants ?

n_components = np.arange(1, 21)

models = [mixture.GaussianMixture(n, covariance_type='full', random_state=0).fit(Xmoon)

for n in n_components]

plt.plot(n_components, [m.bic(Xmoon) for m in models], label='BIC')

plt.plot(n_components, [m.aic(Xmoon) for m in models], label='AIC')

plt.legend(loc='best')

plt.xlabel('n_components');

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 63 / 70

Page 64: Partitionnement et mélanges gaussiens

Exemples

Combien de composants ?

Le nombre optimal de clusters est la valeur qui minimise l’AIC ou leBIC, selon l’approximation que nous souhaitons utiliser.

L’AIC nous dit que notre choix de 16 composants ci-dessus etaitprobablement trop grand : environ 8 a 12 composants auraient ete unmeilleur choix.

Le BIC recommande un modele plus simple.

Remarque : ce choix du nombre de composants mesure a quel pointGMM fonctionne comme un estimateur de densite, et non a quelpoint il fonctionne comme un algorithme de clustering.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 64 / 70

Page 65: Partitionnement et mélanges gaussiens

Exemples

GMM pour generer de nouvelles donnees

Nous allons utiliser la meme idee que ci-dessus pour generer denouvelles images de faces (Olivetti faces).

from sklearn.datasets import fetch_olivetti_faces

from sklearn.datasets import fetch_olivetti_faces

faces = fetch_olivetti_faces()

(faces.images).shape #(400, 64, 64)

Figure – 100 visages affiches.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 65 / 70

Page 66: Partitionnement et mélanges gaussiens

Exemples

GMM pour generer de nouvelles donnees

400 images de taille 64×64 (400×4096), on veut construire un GMMpar-dessus pour en generer davantage.

Les GMM peuvent avoir des difficultes a converger dans un espace dedimension aussi elevee, nous allons reduire la dimension avec l’ACP.

On lui demandant de preserver 99% de la variance dans les donneesprojetees :

faces_new = (faces.images).reshape(400,-1) #400*4096

from sklearn.decomposition import PCA

pca = PCA(0.99)

data = pca.fit_transform(faces_new)

data.shape #400 * 260

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 66 / 70

Page 67: Partitionnement et mélanges gaussiens

Exemples

GMM pour generer de nouvelles donnees

Nombre de composants a utiliser :

n_components = np.arange(1, 50, 5)

models = [mixture.GaussianMixture(n, covariance_type='full', random_state=0)

for n in n_components]

aics = [model.fit(data).aic(data) for model in models]

plt.plot(n_components, aics);

Figure – 100 visages affiches.Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 67 / 70

Page 68: Partitionnement et mélanges gaussiens

Exemples

GMM pour generer de nouvelles donnees

On choisi 11 composants et on genere les nouvelles donnees :

gmm = mixture.GaussianMixture(11, covariance_type='full', random_state=0)

gmm.fit(data)

data_new,_ = gmm.sample(100)

faces_new = pca.inverse_transform(data_new)

faces_new2 = faces_new.reshape(100,64,64)

print_faces(faces_new2, faces.target, 10)

Figure – 10 visages generes.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 68 / 70

Page 69: Partitionnement et mélanges gaussiens

Exemples

GMM pour generer de nouvelles donnees

Les resultats ressemblent pour la plupart a des images de l’ensemblede donnees !

Travail effectue : etant donne un echantillon de faces, nous avonsmodelise la distribution de ces donnees de maniere a pouvoirgenerer de nouveaux echantillons de faces a partir des donnees.

Les faces generees ne sont pas des faces qui font parties de notre jeude donnees.

Elles capturent les caracteristiques generales des donnees d’entreetelles que modelisees par le modele de melange.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 69 / 70

Page 70: Partitionnement et mélanges gaussiens

References I

Hugo Larochelle.Apprentissage automatique : Melange de gaussiennes.Universite de Sherbrooke.

Ange T. (Universite du Quebec a Montreal Cours inspiree de [1].)INF8100 2 decembre 2021 70 / 70