Qu’est-ce qu’un modèle de mélange gaussien ?

Auteur

Joshua Noble

Data Scientist

Modèles de mélange gaussien : définition

Un modèle de mélange gaussien (GMM) est un modèle probabiliste qui représente les données comme une combinaison de plusieurs distributions gaussiennes, chacune ayant sa propre moyenne et sa propre variance, pondérées par un coefficient de mélange. Les GMM sont couramment utilisées pour le partitionnement et l’estimation de la densité, car ils permettent de saisir des distributions multimodales complexes, où les points de données peuvent naturellement se regrouper autour de différents centres plutôt que d’une seule moyenne.

Une distribution gaussienne unique, également appelée « distribution normale », décrit de nombreux types de phénomènes naturels. La distribution de la taille des élèves dans une classe, le poids des nouveau-nés et la durée de vie opérationnelle des pièces mécaniques sont souvent des distributions gaussiennes.

Cependant, une distribution gaussienne unique ne convient pas pour modéliser des jeux de données comportant plusieurs clusters de données ou présentant un biais important ou des extrémités à forte probabilité. Dans ces cas, un GMM peut être plus approprié.

Un GMM utilise l’apprentissage non supervisé afin de générer un modèle probabiliste qui suppose que les données sont générées à partir d’une combinaison de plusieurs distributions gaussiennes. Au lieu de supposer que toutes les données proviennent d’une seule distribution normale (un seul modèle gaussien), un GMM suppose qu’il existe plusieurs distributions normales, chacune représentant un « cluster » différent ou une « sous-population » différente dans le jeu de données, et chacune ayant sa propre moyenne et sa propre variance.

Dans le cas des élèves, imaginez leur taille avec une distribution bimodale, mais sans connaître leur sexe. Dans le cas des pièces mécaniques, imaginez que les pièces proviennent de deux fournisseurs différents, l’un fabriquant des pièces de meilleure qualité que l’autre. Dans les deux cas, il pourrait être utile de calculer à quelle sous-population appartient un point de données et quelles sont les caractéristiques de cette sous-population.

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Fonctionnement des modèles de mélange gaussien

Les GMM ont de nombreuses applications concrètes au-delà du partitionnement : segmentation, estimation de la densité, détection des anomalies ou encore reconnaissance des formes.

Voici une distribution complexe qui n’est clairement pas gaussienne :

Une distribution non gaussienne Une distribution non gaussienne

On pourrait tenter de trouver l’équation de cette courbe à l’aide d’un ajustement polynomial ou d’une approximation trigonométrique, mais les GMM offrent une alternative efficace qui s’avère moins exigeante en calculs. Cette distribution est en fait la combinaison de trois distributions gaussiennes différentes :

La distribution précédente décomposée en trois distributions gaussiennes La distribution précédente décomposée en trois distributions gaussiennes

Un GMM décomposerait la distribution ci-dessus en trois distributions gaussiennes différentes et calculerait les paramètres de chacune d’elles. Les distributions présentées ci-dessus comportent une seule dimension, mais un GMM fonctionne également avec des distributions en comportant davantage. Un mélange 2D de deux gaussiennes peut être décomposé en deux distributions différentes.

Une gaussienne en deux dimensions représentée à l’aide d’un graphique de contours Une gaussienne en deux dimensions représentée à l’aide d’un graphique de contours

 

Lorsque le GMM est utilisé en tant qu’algorithme de partitionnement, chaque gaussienne du modèle de mélange possède trois paramètres clés :

  • Vecteur moyen (μ) : le centre du cluster. Dans une distribution 1D, il s’agira d’un vecteur à valeur unique. Dans une distribution en n dimensions, il s’agira d’un vecteur à n valeurs.

  • Matrice de covariance (Σ) : il s’agit de la dispersion/forme de la gaussienne elle-même. Dans une distribution 1D, il s’agira d’une valeur unique ; dans une distribution à n dimensions, il s’agira d’une matrice n x n.

  • Poids du mélange (π) : il s’agit de la probabilité qu’un point de données choisi au hasard ait été généré par une composante. Ce n’est pas réellement une caractéristique de la distribution gaussienne elle-même, mais plutôt du modèle, car il combine différentes distributions gaussiennes pour représenter les données qu’il ajuste.

 

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Ajustement d’un GMM

L’objectif d’un GMM est d’estimer à la fois les paramètres de chaque distribution gaussienne dans le modèle et à laquelle de ces gaussiennes appartient chaque point de données. La variable latente, souvent appelée « z » , est la composante gaussienne, parmi toutes les composantes identifiées dans le modèle, qui a généré un point de données particulier. Cette variable est « latente » car il s’agit d’une variable cachée (ou non observée) qui peut être apprise à partir du modèle.

Pour chaque point xn, il existe un  zn  (où n est le nombre de composantes) qui est la gaussienne qui a généré  xi  (i dans ce cas est le nombre de points de données).  zn  n’est jamais observé dans les données, seul le point  xi . De plus, la composante gaussienne qui a produit  xi  ne peut pas être observée. Au lieu de cela, l’algorithme d’espérance-maximisation du modèle déduit une distribution des valeurs z possibles.

Chaque composante gaussienne est pondérée par un coefficient de mélange, qui représente une estimation de l’influence de chaque distribution sur l’emplacement de ce point de données spécifique. Dans un scénario de partitionnement, le poids du mélange reflète la taille relative de chaque cluster. Le GMM stipule : pour trouver la probabilité de x , imaginez que l’on choisisse d’abord au hasard une gaussienne en fonction de  πk , puis que l’on tire x de cette gaussienne. On obtient ainsi  p(x) , qui est un mélange des densités des composantes. Si x est proche de plusieurs moyennes  μk , alors plusieurs gaussiennes peuvent lui attribuer une probabilité élevée, et leurs contributions s’additionnent. Le modèle complet est la somme pondérée de ces distributions de probabilité gaussiennes.

Mathématiquement, la fonction de densité de probabilité d’un point de données  x  sous un GMM avec K composantes est :

 p(x)=k=1KπkN(xμk,Σk)

Pour décomposer cela :

 πk  : il s’agit du poids du mélange pour la composante k du mélange, qui est une estimation de la contribution de la gaussienne k au point de données.

 N(xμk,Σk) : il s’agit de la distribution gaussienne avec :

  •  μk  le vecteur moyen, qui peut être considéré comme le centre de la gaussienne  k
     
  •  Σk la matrice de covariance, qui représente la dispersion et l’orientation de la gaussienne  k     

La densité de probabilité totale à  x  est  p(x)  qui est une somme pondérée de toutes les gaussiennes.

Espérance-maximisation

Un GMM est le plus souvent ajusté à l’aide de l’algorithme d’espérance-maximisation (EM), qui attribue de manière itérative des probabilités à chaque gaussienne, appelée étape E, et met à jour les paramètres de chaque gaussienne, appelée étape M.

L’EM est un moyen performant d’estimer les paramètres lorsque des algorithmes tels que l’estimation du maximum de vraisemblance (MLE) sont difficiles à utiliser, par exemple dans le cas d’un GMM. Dans le GMM, le modèle est presque toujours ajusté à l’aide d’une fonction de log-vraisemblance. Cette dernière est non linéaire et difficile à maximiser de manière analytique, ce qui signifie que la vraisemblance ne peut pas être maximisée directement. De plus, un GMM comporte des variables latentes (les poids du mélange), qui ne sont pas directement observables dans les données et que la MLE ne détectera pas lors de la permutation des étiquettes.

Une autre approche, la descente de gradient stochastique (SGD), nécessite que la fonction objective sous-jacente soit différentiable, ce qui n’est pas toujours le cas. De plus, contrairement à l’EM, la SGD est difficilement parallélisable et nécessite d’importantes ressources informatiques pour les données volumineuses. La parallélisation de l’EM à l’aide d’une approche telle que map-reduce constitue une optimisation puissante.

L’EM comprend quatre étapes :

 1. Initialisation

L’algorithme d’EM commence par des valeurs de paramètres initiales aléatoires et suppose que les données observées proviennent d’un modèle qui peut être estimé. De nombreuses implémentations du GMM permettent aux praticiens de choisir parmi diverses initialisations, telles que la définition des responsabilités initiales à l’aide de k-means, des valeurs aléatoires ou de l’échantillonnage à partir des données d’entraînement.

2. Étape E (étape d’espérance)

Nous calculons la probabilité a posteriori, qui est une attribution souple des points de données aux composantes. Cela revient en fait à se demander, compte tenu des estimations actuelles des paramètres, dans quelle mesure chaque gaussienne « possède » chaque point de données.

Tout d’abord, la probabilité a posteriori de chaque variable latente est calculée sur la base des données observées. La probabilité que zi=k, c’est-à-dire que xi appartienne à la k-ième composante, peut être calculée à l’aide du théorème de Bayes :

 P(Zi=kxi;θ)=p(xiZi=k;θ)P(Zi=k;θ)p(xi;θ)

Ensuite, la log-vraisemblance des données observées est calculée à l’aide des estimations actuelles des paramètres. On peut maintenant écrire la log-vraisemblance attendue relative à la distribution des variables latentes comme suit :

 Q(θ,θold)=i=1nk=1Kγ(zik)log[wkN(xi;μk,Σk)]

La fonction Q est une somme pondérée des log-vraisemblances de tous les points de données sous chaque composante gaussienne, les poids étant les responsabilités. La fonction de log-vraisemblance calcule la probabilité, avec les valeurs estimées pour chaque composante gaussienne, que le point de données provienne de cette distribution. Cela diffère de la vraisemblance des données observées dans le modèle de mélange dans son ensemble. Au contraire, cette fonction Q représente la log-vraisemblance attendue à la fois sur les données observées et sur les distributions estimées des variables latentes.

3. Étape M (étape de maximisation)

L’étape M met à jour trois valeurs distinctes pour chaque distribution gaussienne :

  • La mise à jour de la moyenne, généralement représentée par  μknew 

  • La mise à jour de la matrice de covariance, généralement représentée par  Σknew 

  • La mise à jour du poids du mélange, généralement représentée par  wknew

L’étape suivante consiste à mettre à jour les paramètres du modèle en maximisant la log-vraisemblance du modèle produisant les données. Plus le modèle est performant, plus cette valeur sera élevée.

 μknew=i=1nγ(zik)xii=1nγ(zik)

Autrement dit, la nouvelle moyenne de la k-ième composante est une moyenne pondérée de tous les points de données, les poids étant les probabilités que ces points appartiennent à la composante k .

 Σknew=i=1nγ(zik)(xi-μknew)(xi-μknew)i=1nγ(zik)

Cette formule montre que la nouvelle covariance de la composante  k  est une moyenne pondérée des écarts au carré de chaque point de données par rapport à la moyenne de la composante, les poids étant les probabilités des points attribués à cette composante.

Enfin, l’étape M met à jour les poids du mélange :

 wknew=1ni=1nγ(zik)

Le nouveau poids de la k-ième composante est la probabilité totale des points appartenant à cette composante, normalisée par le nombre de points n .

4. Convergence

Enfin, l’algorithme d’EM vérifie que les paramètres du modèle sont stables et convergents. Si les variations de la log-vraisemblance ou des paramètres sont inférieures à un seuil défini, l’algorithme s’arrête. Dans le cas contraire, il répète les étapes 2 et 3 jusqu’à convergence.

En résumé, l’algorithme d’EM consiste en deux étapes répétées de manière itérative. Tout d’abord, l’étape E calcule les poids du mélange de toutes les gaussiennes pour chaque point de données. Ensuite, l’étape M utilise ces poids mis à jour afin de réestimer les paramètres de chaque gaussienne. L’algorithme d’EM compare ensuite la variation de la log-vraisemblance et, si elle est inférieure à un seuil défini, suppose la convergence et arrête l’itération.

Comparaison des GMM

Les GMM sont puissants, mais ils reposent sur des hypothèses gaussiennes. Afin que les GMM représentent bien les données, les clusters doivent être elliptiques et les densités entre les clusters doivent être régulières. Les clusters de forme non elliptique ou les données comportant des sections très denses et parcimonieuses peuvent ne pas être bien représentés par un GMM.

Lorsqu’ils sont utilisés pour le partitionnement, les GMM sont similaires au clustering k-means, mais présentent plusieurs différences importantes. Tout d’abord, contrairement au k-means, qui attribue chaque point à un cluster, les GMM fournissent des probabilités d’appartenance à chaque cluster. C’est ce qu’on appelle le « partitionnement doux » (ou « soft clustering »). Étant donné que les clusters peuvent être à la fois elliptiques et se chevaucher, les GMM sont souvent plus flexibles et permettent une plus grande incertitude dans les limites des clusters.

Pour les données binaires ou catégorielles, les GMM ne donnent pas de bons résultats, mais une approche similaire utilisant des distributions multinomiales ou de Bernoulli peut s’avérer plus adaptée. À l’inverse, ces types de modèles ne conviennent pas aux données composées de variables continues, pour lesquelles un GMM donne souvent de bons résultats.

Puisque les GMM tentent d’estimer les paramètres des distributions gaussiennes, certaines données seront mieux modélisées à l’aide d’une méthode non paramétrique telle que l’estimation de densité par noyau (KDE). Une KDE ne fait aucune hypothèse sur les distributions des clusters ou des sous-populations, mais estime plutôt la densité sur de petits noyaux locaux pour chaque point de données. Cette approche est utile lorsque vos données sont constituées de distributions complexes sans forme particulière.

Une extension du GMM est l’auto-encodeur variationnel (VAE), qui est un modèle génératif qui apprend des distributions latentes flexibles. Dans un VAE, l’objectif global est le même, mais un VAE n’utilise pas l’EM. Un VAE utilise un cadre probabiliste d’encodeur-décodeur pour apprendre des représentations latentes de la même manière qu’un GMM attribue des poids du mélange à chaque point de données. La principale différence est que l’EM nécessite que la probabilité a posteriori puisse être calculée, alors que ce n’est pas le cas dans un VAE, ce qui le rend beaucoup plus flexible. En contrepartie, un VAE est souvent plus complexe et plus long à entraîner.
 

Cas d’utilisation des GMM

Cette présentation s’est largement concentrée sur le partitionnement, car il s’agit d’une introduction intuitive aux GMM, mais il existe d’autres scénarios dans lesquels les GMM peuvent être utiles. L’ingénierie des caractéristiques, la détection des anomalies et l’estimation de la densité sont autant de tâches courantes dans lesquelles les GMM peuvent s’avérer très efficaces.

Ingénierie des caractéristiques : alors que certains algorithmes de machine learning tels que XGBoost permettent à un modèle d’apprendre diverses distributions de caractéristiques d’entrée, d’autres sont plus stricts dans leurs exigences. La régression linéaire et la régression logistique, l’analyse discriminante linéaire (LDA) et la distribution gaussienne multidimensionnelle supposent généralement que les caractéristiques soient distribuées normalement et peuvent ne pas fonctionner correctement si les données sont multimodales. Il existe d’autres raisons analytiques et visuelles utiles pour traiter la multimodalité, et les GMM peuvent y contribuer.

Classification non supervisée : le GMM fonctionne de manière similaire à l’algorithme k-means, mais permet de déterminer de manière probabiliste l’appartenance à une classe, contrairement au k-means, dont le résultat est un indicateur binaire. Cela peut être particulièrement utile dans les cas d’utilisation qui nécessitent des seuils personnalisés pour la catégorisation ou qui nécessitent un résultat probabiliste.

Détection d’anomalies : une distribution gaussienne multidimensionnelle peut être utilisée pour identifier les points de données qui ont une faible probabilité de suivre une ou plusieurs distributions gaussiennes. De cette manière, un GMM permet de détecter deux types de données anormales : les anomalies qui sont des valeurs aberrantes d’une population (par exemple, une erreur dans la saisie des données) et les anomalies qui forment leur propre groupe (comme les comportements frauduleux liés aux cartes bancaires).

Les GMM sont des modèles adaptés à une grande variété de tâches, et qui peuvent être entraînés rapidement et optimisés facilement. Bien qu’ils présentent certaines limites concernant les types de données qu’ils sont capables de traiter, ils peuvent s’avérer précieux dans un large éventail de tâches de machine learning et de science des données.

Mise en œuvre des GMM

En Python, il est possible d’utiliser la bibliothèque scikit-learn afin de créer rapidement un GMM :

from sklearn.datasets import make_blobs
from sklearn.mixture import GaussianMixture
from sklearn.metrics import accuracy_score

# create some clusters
X, y = make_blobs(n_samples=400, centers=3, cluster_std=0.75, random_state=0)

# fit the GMM
gmm = GaussianMixture(n_components=3).fit(X)

Visualisation des résultats du partitionnement des GMM :

# predict the labels themselves
labels = gmm.predict(X)

# print the accuracy
print(f" Accuracy is {accuracy_score(y, labels)}")

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

Dans R, un package appelé mclust, qui signifie « partitionnement basé sur un modèle », peut être utilisé pour créer des GMM.

# Install and load the 'mclust' package
library(mclust)

# create a matrix of data from normal distributions
data <- rbind(matrix(c(rnorm(50, mean = 0, sd = 1), rnorm(50, mean = 1, sd = 1.25)), ncol=2),
              matrix(c(rnorm(50, mean = 4, sd = 1), rnorm(50, mean = 2, sd = 1.25)), ncol = 2),
              matrix(c(rnorm(50, mean = 8, sd = 1.25), rnorm(50, mean = 4, sd = 0.75)), ncol = 2))

# Perform GMM clustering, G represents the number of expected clusters
gmm_model <- Mclust(data, G = 3)  

# Get the cluster assignments
cluster_assignments <- predict(gmm_model)$classification

# Visualize the results
plot(data, col = cluster_assignments, main = "GMM Clustering Results")
points(gmm_model$parameters$mean, col = 1:3)

Dans Python et R, le développeur doit définir l’hyperparamètre qui spécifie le nombre de clusters en tant que paramètre pour le GMM. Comme pour le KNN, une stratégie couramment utilisée pour sélectionner ce nombre de clusters consiste à entraîner des modèles pour différents nombres de clusters et à les comparer entre eux. Les indicateurs les plus utilisés pour comparer les modèles sont les suivants :

Coefficient de silhouette : il est défini pour chaque échantillon et se compose de deux scores : la distance moyenne entre un échantillon et tous les autres points du même cluster, et la distance moyenne entre un échantillon et tous les autres points du cluster le plus proche.

Jensen-Shannon : il mesure la divergence entre les distributions et est le plus souvent obtenu en calculant d’abord la divergence de Kullback-Leibler (KL), la moyenne des rapports de log-vraisemblance sur les échantillons, puis en faisant la moyenne des deux valeurs de divergence KL obtenues. Le concept de similarité des distributions est représenté par l’indicateur Jensen-Shannon (JS). Plus la distance JS entre les deux GMM est faible, plus ces GMM s’accordent sur la manière d’ajuster les données.

Critère d’information bayésien (BIC) : il donne une estimation de la qualité des prévisions du modèle par rapport au nombre de paramètres qu’il contient. Si K est trop petit, la log-vraisemblance du modèle sera faible et la valeur BIC élevée. Si K est trop grand, la vraisemblance peut être élevée, mais la pénalité appliquée aux valeurs plus élevées (et donc au surapprentissage) créera également une valeur BIC plus élevée.

Critère d’information d’Akaike (AIC)
 : il fonctionne de manière très similaire au BIC, mais calcule une pénalité plus faible pour le nombre de paramètres.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Explorez la bibliothèque de modèles de fondation d’IBM dans le portefeuille IBM watsonx pour déployer l’IA générative dans votre entreprise en toute confiance.

Découvrir watsonx.ai Découvrir les solutions d’IA