Partitionnement et mélanges gaussiens

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended