partitionnement et mélanges gaussiens
TRANSCRIPT
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