Cos'è un modello Gaussian Mixture?

Autore

Joshua Noble

Data Scientist

Modelli Gaussian Mixture, definizione

Un modello Gaussian Mixture (GMM) è un modello probabilistico che rappresenta i dati come una combinazione di diverse distribuzioni gaussiane, ciascuna con la propria media e varianza, ponderate da un coefficiente di miscelazione. I GMM sono comunemente usati per il cluster e la stima della densità, poiché possono acquisire distribuzioni complesse e multimodali in cui i punti dati possono naturalmente raggrupparsi attorno a centri diversi, anziché a un'unica media.

Una singola distribuzione gaussiana, detta anche "distribuzione normale", descrive molti tipi di fenomeni naturali. La distribuzione delle altezze degli studenti in una classe, il peso dei neonati e la durata operativa delle parti meccaniche sono spesso distribuzioni gaussiane.

Tuttavia, una singola distribuzione gaussiana non è adatta per modellare set di dati con più cluster di dati o con una distorsione significativa o una coda pesante. In questi casi, un GMM potrebbe essere più adeguato.

Un GMM utilizza l'apprendimento non supervisionato per generare un modello probabilistico che presuppone che i dati siano generati da una combinazione di diverse distribuzioni gaussiane. Invece di presupporre che tutti i dati provengono da un'unica distribuzione normale (un modello gaussiano), un GMM presuppone che ci siano più distribuzioni normali, ognuna delle quali rappresenta un "cluster" o "sottopopolazione" diverso nel set di dati, e ognuna delle quali ha la propria media e varianza.

Nel caso degli studenti, immagina le altezze con una distribuzione bimodale, sebbene l'identità di genere degli studenti sia sconosciuta. Nel caso di parti di macchine, immagina che le parti possano provenire da due fornitori diversi, uno dei quali produce parti di qualità superiore rispetto all'altro. In entrambi i casi, potrebbe essere utile calcolare a quale sottopopolazione appartiene un punto dati e le caratteristiche di tale sottopopolazione.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Come funzionano i modelli Gaussian Mixture 

I GMM hanno molte applicazioni reali oltre al cluster: segmentazione, stima della densità, rilevamento delle anomalie e riconoscimento dei pattern possono essere tutti approssimati da un GMM.

Ecco una distribuzione complessa che chiaramente non è gaussiana:

Una distribuzione non gaussiana Una distribuzione non gaussiana

Si potrebbe tentare di trovare l'equazione di questa curva utilizzando l'adattamento polinomiale o l'approssimazione trigonometrica, tuttavia i GMM offrono un'alternativa robusta che può essere meno impegnativa dal punto di vista computazionale. Questa distribuzione è in realtà composta da tre diverse distribuzioni gaussiane combinate:

La precedente distribuzione si è scomposta in tre distribuzioni gaussiane La precedente distribuzione si è scomposta in tre distribuzioni gaussiane

Un GMM scomporrebbe la distribuzione di cui sopra in tre diverse distribuzioni gaussiane e calcolerebbe i parametri per ciascuna di esse. Le distribuzioni mostrate sopra hanno una singola dimensione, ma un GMM funziona anche per distribuzioni dimensionali più elevate. Una miscela 2D di due gaussiane può essere scomposta in due diverse distribuzioni.

Una gaussiana bidimensionale tracciata utilizzando un grafico a contorno Una gaussiana bidimensionale tracciata utilizzando un grafico a contorno

 

Se usato come algoritmo di clustering, ogni gaussiana nel modello misto ha tre parametri chiave:

  • Vettore medio (μA): il centro del cluster. In una distribuzione 1D questo sarà un vettore a valore singolo. In una distribuzione n-dimensionale, questo sarà un vettore a n valori.

  • Matrice di covarianza (Σ): è la diffusione/forma della gaussiana stessa. In una distribuzione 1D questo sarà un valore singolo, mentre in una distribuzione n-dimensionale sarà una matrice n x n.

  • Peso di miscelazione (π): questa è la probabilità che un dato scelto a caso sia stato generato per componente. In realtà non è una caratteristica della distribuzione gaussiana in sé, quanto piuttosto del modello, poiché combina diverse distribuzioni gaussiane per rappresentare i dati a cui si adatta.

 

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Adattamento di una GMM

L'obiettivo di un GMM è stimare sia i parametri di ciascuna distribuzione gaussiana nel modello sia a quale di queste gaussiane appartenga ciascun punto dati. La variabile latente, spesso indicata come z, è il componente gaussiano che, tra tutti i componenti identificati nel modello, ha generato un determinato punto dati. Questa variabile è "latente" perché è una variabile nascosta (o non osservata) che può essere appresa dal modello.

Per ogni punto xn c'è un  zn  (dove n è il numero di componenti) che è la gaussiana che ha generato  xi  ( i in questo caso è il numero di punti dati).  zn  non viene mai osservato nei dati, solo il punto  xi . Inoltre, la componente gaussiana che ha prodotto  xi , non può essere osservata. Invece, l'algoritmo di massimizzazione delle aspettative del modello deduce una distribuzione di possibili valori z.

Ogni componente gaussiana è ponderata in base a un coefficiente di miscelazione, che rappresenta una stima di quanto ciascuna distribuzione influenzi la posizione di quel punto dato specifico. In uno scenario di cluster, il peso di miscelazione riflette la dimensione relativa di ciascun cluster. Il GMM afferma: per trovare la probabilità di x, immaginiamo che per prima cosa si scelga casualmente una gaussiana in base a  πk , quindi estrae x da quella gaussiana. Quindi  p(x) è una miscela delle densità dei componenti. Se x è vicino a più medie  μk , diverse gaussiane possono attribuirgli un'alta probabilità e i loro contributi si sommano. Il modello completo è la somma ponderata di queste distribuzioni di probabilità gaussiane.

Matematicamente, la funzione di densità di probabilità di un punto dati  x  sotto un GMM con componenti K è:

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

Per capire meglio:

 πk  : questo è il peso di miscelazione per il componente della miscela k, che è una stima di quanto la gaussiana k contribuisce al punto dati.

 N(xμk,Σk) : è la distribuzione gaussiana con:

  •  μk  il vettore medio, che può essere pensato come il centro di Gaussian  k
     
  •  Σk matrice di covarianza, che rappresenta la “diffusione e l’orientamento” della gaussiana  k     

La densità di probabilità totale a  x  è  p(x)  che è una somma ponderata di tutte le gaussiane.

Massimizzazione delle aspettative

Un GMM viene spesso adattato utilizzando l'algoritmo di massimizzazione delle aspettative (EM), che assegna iterativamente le probabilità appartenenti a ciascuna gaussiana, chiamata E-step, e aggiorna i parametri di ciascuna gaussiana, chiamata M-step.

L'EM è un modo potente per stimare i parametri quando algoritmi come la stima della massima verosimiglianza (MLE) sono difficili da utilizzare, ad esempio, nel caso di un GMM. Nel GMM, il modello viene quasi sempre adattato utilizzando una funzione di log-likehood. Questa log-likehood non è lineare ed è difficile da massimizzare analiticamente, il che significa che l'algoritmo MLE non può massimizzare direttamente. Inoltre, un GMM ha variabili latenti (i pesi della miscela), che non sono direttamente osservabili nei dati e l'algoritmo MLE non le scoprirà durante la permutazione delle etichette.

Un altro approccio, la discesa stocastica del gradiente (SGD), richiede che la funzione target sottostante sia differenziabile, il che potrebbe non essere sempre il caso. Inoltre, a differenza dell'EM, SGD non può essere facilmente parallelizzato e richiede risorse di calcolo significative per dati di grandi dimensioni. Parallelizzare l'EM utilizzando un approccio come map-reduce rappresenta una potente ottimizzazione.

Si compone di quattro fasi:

 1. Inizializzazione

L'algoritmo EM inizia con valori di parametri iniziali randomizzati e presuppone che i dati osservati provengano da un modello che può essere stimato. Molte implementazioni di GMM consentiranno ai professionisti di scegliere tra una varietà di inizializzazioni, come l'impostazione delle responsabilità iniziali utilizzando K-means, valori casuali o campionamento dai dati di addestramento.

2. E-Step (fase di attesa)

Calcoliamo la probabilità a posteriori, che è una "assegnazione morbida" di punti dati ai componenti. Questo chiede, di fatto, date le attuali ipotesi sui parametri, quanto ogni gaussiana 'possieda' ogni punto dati.

In primo luogo, la probabilità a posteriori di ciascuna variabile latente viene calcolata in base ai dati osservati. La probabilità che zi=k , cioè che xi appartenga alla k-esima componente, può essere calcolata utilizzando la regola di Bayes:

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

Successivamente, la log-likelihood dei dati osservati viene calcolata utilizzando le stime dei parametri correnti. La log-likelihood attesa rispetto alla distribuzione delle variabili latenti può ora essere scritta come segue:

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

La funzione Q è una somma ponderata delle log-likehood di tutti i punti dati sotto ciascuna componente gaussiana, dove i pesi sono le responsabilità. La log-likehood sta calcolando la probabilità, con i valori stimati per ogni componente gaussiana, che il punto dati possa derivare da quella distribuzione. Ciò è diverso dalla probabilità dei dati osservati nell'ambito del modello di miscela nel suo complesso. Questa funzione Q rappresenta invece una log-likehood prevista sia sui dati osservati che sulle distribuzioni stimate delle variabili latenti.

3. M-step (passo di massimizzazione)

L'M-Step aggiorna tre valori distinti per ogni distribuzione gaussiana:

  • Aggiornamento medio tipicamente rappresentato come  μknew 

  • Aggiornamento della matrice di covarianza, tipicamente rappresentato come  Σknew 

  • Aggiornamento del peso della miscela, tipicamente rappresentato come  wknew

Il passaggio successivo consiste nell'aggiornamento dei parametri del modello massimizzando la probabilità logaritmica del modello che produce i dati. Migliore è il modello, più alto sarà questo valore.

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

Questo significa che la nuova media del k -esimo componente è una media ponderata di tutti i punti dati, dove i pesi rappresentano le probabilità che questi punti appartengano al componente k .

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

Questo mostra come la nuova covarianza del componente  k  è una media ponderata delle deviazioni quadrate di ogni punto dati dalla media del componente, dove i pesi sono le probabilità dei punti assegnati a quel componente.

Infine, M-Step aggiorna i pesi della miscela:

 wknew=1ni=1nγ(zik)

Il nuovo peso del k -esimo componente è la probabilità totale dei punti appartenenti a questo componente, normalizzata dal numero di punti n .

4. Convergenza

Infine, EM verifica che i parametri del modello siano stabili e convergenti. Se le modifiche alla log-likelihood o ai parametri sono inferiori a una soglia impostata, l'algoritmo si interrompe. In caso contrario, EM ripete le iterazioni dei passaggi 2 e 3 fino a raggiungere la convergenza.

In breve, l'algoritmo EM consiste in due passaggi ripetuti iterativamente. Innanzitutto, l'E-step calcola i pesi della miscela di tutte le gaussiane per ogni punto dati. Quindi l'M-step utilizza i pesi delle miscele aggiornati per rivalutare i parametri per ogni gaussiana. L'EM confronta quindi la variazione della log-likelihood e, se è inferiore a una soglia stabilita, presume la convergenza e interrompe l'iterazione.

Confronto tra i GMM

I GMM sono potenti ma si basano su ipotesi gaussiane. Affinché i GMM rappresentino bene i dati, i cluster devono essere ellittici e le densità tra i cluster uniformi. I cluster con forme non ellittiche o dati con sezioni molto dense e sparse potrebbero non essere rappresentati bene da un GMM.

Quando utilizzati per il cluster, i GMM sono simili al cluster k-means pur presentando alcune differenze chiave. Innanzitutto, a differenza di k-means, che assegna ogni punto a un cluster, i GMM danno probabilità di appartenenza a ciascun cluster. Questo fenomeno è chiamato “soft cluster”. Poiché i cluster possono essere sia ellittici che sovrapposti, i GMM sono spesso più flessibili e consentono una maggiore incertezza nei boundary dei cluster.

Per i dati binari o categorici, i GMM non funzionano bene, ma un approccio simile che utilizza le distribuzioni di Bernoulli o le distribuzioni multinomiali può adattarsi bene ai dati. Al contrario, questi tipi di modelli non si adattano ai dati costituiti da variabili continue, mentre un GMM spesso si adatta bene ai dati.

Poiché i GMM cercano di stimare i parametri delle distribuzioni gaussiane, alcuni dati saranno meglio modellati utilizzando un metodo non parametrico come la stima della densità del kernel (KDE). Un KDE non fa alcuna ipotesi sulle distribuzioni di cluster o sulle sottopopolazioni, stimando invece la densità per piccoli kernel locali su ogni punto dati. Questo approccio è utile quando i dati sono costituiti da distribuzioni complesse senza assumere alcuna forma particolare.

Un'estensione di GMM è il variational autoencoder (VAE), un modello generativo che apprende distribuzioni latenti flessibili. In un VAE, l'obiettivo generale è lo stesso, ma un VAE non utilizza l'EM. Un VAE utilizza un framework probabilistico di codificatore-decodificatore per apprendere rappresentazioni latenti nello stesso modo in cui un GMM assegna pesi misti per ogni punto dati. La differenza principale è che l'EM richiede che la probabilità a posteriori possa essere calcolata, mentre in un VAE non è così, il che lo rende molto più flessibile. Il compromesso è che l'addestramento di un VAE è spesso più complesso e richiede molto tempo.
 

Casi d'uso dei GMM

Questo articolo si è concentrato molto sul cluster poiché fornisce un'introduzione intuitiva ai GMM, ma ci sono altri scenari in cui i GMM possono essere utili. Il feature engineering, il rilevamento delle anomalie e la stima della densità sono tutte attività comuni in cui i GMM possono essere efficaci.

Feature engineering: mentre alcuni algoritmi di machine learning come XGBoost possono consentire a un modello di apprendere una varietà di distribuzioni di caratteristiche di input, altri hanno requisiti più severi. La regressione lineare e logistica, l'analisi discriminante lineare (LDA) e la distribuzione gaussiana multivariata in genere si aspettano che le caratteristiche siano distribuite normalmente e potrebbero non funzionare bene se i dati sono multimodali. Ci sono altri motivi analitici e visivi utili per affrontare la multimodalità, dove il GMM può aiutare.

Classificazione senza supervisione: il GMM funziona in modo simile all'algoritmo K-means ma consente la determinazione probabilistica dell'appartenenza alla classe, a differenza di K-means, dove l'output è una metrica binaria. Ciò può essere particolarmente utile per i casi d'uso che richiedono soglie personalizzate per la categorizzazione o che richiedono un output probabilistico.

Rilevamento delle anomalie: una distribuzione gaussiana multivariata può essere utilizzata per identificare punti dati che hanno una bassa probabilità di seguire una o più distribuzioni gaussiane. In questo modo, un GMM può aiutare a individuare due tipi di dati anomali: anomalie che rappresentano outlier di una popolazione (ad esempio, un errore nell'inserimento dei dati) e anomalie che formano un gruppo a sé stante (ad esempio, comportamenti fraudolenti con carte di credito).

Il GMM è un modello adatto per un'ampia varietà di attività che può essere addestrato rapidamente e ottimizzato facilmente. Sebbene abbia alcune limitazioni in termini di tipi di dati che è adatto a gestire, può essere prezioso in un'ampia varietà di attività di machine learning e data science.

Implementazione dei GMM

In Python, è possibile utilizzare la libreria scikit-learn per creare rapidamente 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)

Visualizzazione dei risultati del clustering 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')

In R, un pacchetto chiamato mclust, che sta per model-based clustering, può essere utilizzato per creare i 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)

Sia in Python che in R, lo sviluppatore deve impostare l'iperparametro che specifica il numero di cluster come parametro per il GMM. Come per KNN, una strategia comunemente usata per selezionare questo numero di cluster consiste nell'addestrare modelli per diversi numeri di cluster e confrontarli tutti. Le metriche più utilizzate per confrontare i modelli sono:

Coefficiente di silhouette: è definito per ogni campione ed è composto da due punteggi, ovvero la distanza media tra un campione e tutti gli altri punti dello stesso cluster e la distanza media tra un campione e tutti gli altri punti del cluster più vicino.

Jensen-Shannon: misura la divergenza tra le distribuzioni e viene spesso calcolato calcolando prima la divergenza Kullback-Leibler, ovvero la media dei rapporti di log-likehood sui campioni, e poi facendo la media dei due valori di divergenza KL risultanti. Il concetto di similarità distributiva è rappresentato dalla metrica di Jensen-Shannon (JS). Più piccola è la distanza JS tra i due GMM, più questi GMM concordano su come adattarsi ai dati.

Criterio informativo bayesiano (BIC): fornisce una stima di quanto bene il modello prevede i dati, bilanciati dal numero di parametri contenuti nel modello. Se K è troppo piccolo, la log-likehood del modello sarà bassa e il valore BIC sarà grande. Se K è troppo grande, allora la probabilità può essere alta, ma la penalità contro valori più grandi (e quindi l'overfitting) crea anche un valore BIC più grande.

Criterio informativo Akaike (AIC):
funziona in modo molto simile al BIC ma calcola una penalità minore per il numero di parametri.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Esplora la libreria IBM dei foundation model nel portafoglio di IBM watsonx per scalare in sicurezza l'AI generativa per la tua azienda.

Esplora watsonx.ai Esplora le soluzioni AI