¿Qué es un modelo de mezcla gaussiana?

Autor

Joshua Noble

Data Scientist

Modelos de mezcla gaussiana, definidos

Un modelo de mezcla gaussiana (GMM) es un modelo probabilístico que representa los datos como una combinación de varias distribuciones gaussianas, cada una con su propia media y varianza, ponderadas por un coeficiente de mezcla. Los GMM se utilizan habitualmente para el clustering y la estimación de la densidad, ya que pueden capturar distribuciones complejas y multimodales en las que los puntos de datos pueden agruparse de forma natural en torno a diferentes centros en lugar de una única media.

Una única distribución gaussiana, también denominada "distribución normal", describe muchos tipos de fenómenos naturales. La distribución de las alturas de los estudiantes en un aula, los pesos de los recién nacidos y la vida útil operativa de las piezas mecánicas suelen ser distribuciones gaussianas.

Sin embargo, una única distribución gaussiana no es adecuada para modelar conjuntos de datos con varios clústeres de datos o aquellos con un sesgo significativo o colas pesadas. En estos casos, un GMM podría ser más apropiado.

Un GMM utiliza el aprendizaje no supervisado para generar un modelo probabilístico que supone que los datos se generan a partir de una combinación de varias distribuciones gaussianas. En lugar de suponer que todos los datos provienen de una única distribución normal (un modelo gaussiano), un GMM supone que hay múltiples distribuciones normales, cada una de las cuales representa un "clúster" o "subpoblación" diferente en el conjunto de datos, y cada una de las cuales tiene su propia media y varianza.

En el caso de los estudiantes, imagine alturas con una distribución bimodal, pero se desconoce la identidad de género de los estudiantes. En el caso de las piezas de máquinas, imagine que las piezas pueden proceder de dos proveedores diferentes, uno de los cuales fabrica piezas de mayor calidad que el otro. En ambos casos, podría ser útil calcular a qué subpoblación pertenece un punto de datos y las características de esa subpoblación.

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Cómo funcionan los modelos de mezcla gaussiana 

Los GMM tienen muchas aplicaciones en el mundo real más allá del clustering: la segmentación, la estimación de densidad, la detección de anomalías y el reconocimiento de patrones pueden aproximarse mediante un GMM.

Esta es una distribución desafiante que claramente no es gaussiana:

Una distribución no gaussiana Una distribución no gaussiana

Se podría intentar hallar la ecuación de esta curva utilizando un ajuste polinómico o una aproximación trigonométrica, pero los GMM ofrecen una alternativa sólida que puede ser menos exigente desde el punto de vista computacional. Esta distribución es en realidad tres distribuciones gaussianas diferentes combinadas:

La distribución anterior se descompuso en tres distribuciones gaussianas La distribución anterior se descompuso en tres distribuciones gaussianas

Un GMM descompondría la distribución anterior en tres distribuciones gaussianas diferentes y calcularía los parámetros para cada una. Las distribuciones que se muestran arriba tienen una sola dimensión, pero un GMM también funciona para distribuciones de mayor dimensión. Una mezcla 2D de dos gaussianas se puede descomponer en dos distribuciones diferentes.

Una representación gaussiana bidimensional mediante un gráfico de contorno Una representación gaussiana bidimensional mediante un gráfico de contorno

 

Cuando se utiliza como algoritmo de clustering, cada gaussiano del modelo mixto tiene tres parámetros clave:

  • Vector medio (μ): el centro del clúster. En una distribución 1D, será un vector de un solo valor. En una distribución n-dimensional, será un vector de n valores.

  • Matriz de covarianza (Σ): esta es la dispersión/forma del propio gaussiano. En una distribución 1D, será un valor único, en una distribución n-dimensional, será una matriz nxn.

  • Peso de mezcla (π): esta es la probabilidad de que un punto de datos elegido aleatoriamente haya sido generado por componente. En realidad, no es una característica de la distribución gaussiana en sí, sino del modelo, ya que combina diferentes distribuciones gaussianas para representar los datos que ajusta.

 

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Montaje de un GMM

El objetivo de un GMM es estimar tanto los parámetros de cada distribución gaussiana en el modelo como a cuál de esas gaussianas pertenece cada punto de datos. La variable latente, a menudo denominada z , es qué componente gaussiano, de todos los componentes identificados en el modelo, generó un punto de datos determinado. Esta variable es "latente" porque es una variable oculta (o no observada) que se puede aprender del modelo.

Para cada punto xn, hay un  zn  (donde n es el número de componentes) que es el gaussiano que generó  xi  (i en este caso es el número de puntos de datos).  zn  nunca se observa en los datos, solo señala  xi . Además, el componente gaussiano que produjo  xi , no se puede observar. En su lugar, el algoritmo de maximización de expectativas del modelo infiere una distribución de posibles valores z.

Cada componente gaussiano se pondera mediante un coeficiente de mezcla, que representa una estimación de cuánto afecta cada distribución a la ubicación de ese punto de datos específico. En un escenario de clustering, el peso de mezcla refleja el tamaño relativo de cada clúster. El GMM establece: para encontrar la probabilidad de x, imagine que primero se elige aleatoriamente una gaussiana de acuerdo con  πk , a continuación, extrae x de esa gaussiana. Por lo que  p(x) es una mezcla de las densidades de los componentes. Si x está cerca de varias medias  μk , varios gaussianos pueden asignarle una alta probabilidad y sus contribuciones se suman. El modelo completo es la suma ponderada de estas distribuciones de probabilidad gaussianas.

Matemáticamente, la función de densidad de probabilidad de un punto de datos  x  bajo un GMM con componentes K es:

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

Para desglosar esto:

 πk  : este es el peso de mezcla para el componente de mezcla k, que es una estimación de cuánto gaussiano k contribuye al punto de datos.

 N(xμk,Σk) : es la distribución gaussiana con:

  •  μk  el vector medio, que puede considerarse como el centro de Gaussian  k
     
  •  Σk matriz de covarianza, que representa la "propagación y orientación" de Gaussian  k     

La densidad de probabilidad total en  x  es  p(x)  que es una suma ponderada de todas las gaussianas.

Maximización de expectativas

La mayoría de las veces, un GMM se ajusta utilizando el algoritmo de maximización de expectativas (EM), que asigna de forma iterativa las probabilidades pertenecientes a cada gaussiano, denominado paso E, y actualiza los parámetros de cada gaussiano, denominado paso M.

EM es una forma poderosa de estimar parámetros cuando algoritmos como la estimación de máxima verosimilitud (MLE) son difíciles de usar, por ejemplo, en el caso de un GMM. En GMM, el modelo casi siempre se ajusta utilizando una función de verosimilitud logarítmica. Esa probabilidad logarítmica no es lineal y es difícil de maximizar analíticamente, lo que significa que MLE no puede maximizar directamente. Además, un GMM tiene variables latentes (los pesos de la mezcla), que no son directamente observables en los datos y MLE no las descubrirá al permutar las etiquetas.

Otro enfoque, el descenso de gradiente estocástico (SGD), requiere que la función objetivo subyacente sea diferenciable, lo que puede no ser siempre el caso. Además, a diferencia del EM, el SGD no se puede paralelizar fácilmente y requiere importantes recursos informáticos para grandes volúmenes de datos. Paralelizar EM utilizando un enfoque como map-reduce es una optimización poderosa.

El EM consta de cuatro pasos:

 1. Inicialización

El algoritmo EM comienza con valores de parámetros iniciales aleatorios y asume que los datos observados provienen de un modelo que se puede estimar. Muchas implementaciones de GMM permitirán a los profesionales elegir entre una variedad de inicializaciones, como establecer responsabilidades iniciales utilizando medias k, valores aleatorios o muestreo de los datos de entrenamiento.

2. Paso E (paso de expectativa)

Calculamos la probabilidad posterior, que es una "asignación suave" de puntos de datos a componentes. Esto pregunta, en efecto, dadas las estimaciones actuales de los parámetros, "¿en qué medida cada gaussiana "posee" cada punto de datos?".

En primer lugar, la probabilidad posterior de cada variable latente se calcula en función de los datos observados. La probabilidad de que zi=k , es decir, que xi pertenezca al k-ésimo componente, se puede calcular utilizando la regla de Bayes:

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

A continuación, se calcula la verosimilitud logarítmica de los datos observados utilizando las estimaciones actuales de los parámetros. La verosimilitud logarítmica esperada con respecto a la distribución de las variables latentes ahora se puede escribir de la siguiente manera:

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

La función Q es una suma ponderada de las verosimilitudes logarítmicas de todos los puntos de datos bajo cada componente gaussiano, siendo los pesos las responsabilidades. La verosimilitud logarítmica calcula la probabilidad, con los valores estimados para cada componente gaussiano, de que el punto de datos pueda surgir de esa distribución. Esto difiere de la probabilidad de los datos observados en el modelo de mezcla en su conjunto. En su lugar, esta función Q representa una verosimulitud logarítmica esperada sobre los datos observados y las distribuciones de variables latentes estimadas.

3. Paso M (paso de maximización)

El paso M actualiza tres valores distintos para cada distribución gaussiana:

  • La actualización media suele representarse como  μknew 

  • Actualización de la matriz de covarianza, normalmente representada como  Σknew 

  • Actualización del peso de la mezcla, normalmente representado como  wknew

El siguiente paso es actualizar los parámetros del modelo maximizando la verosimilitud logarítmica del modelo que produce los datos. Cuanto mejor sea el modelo, mayor será este valor.

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

Es decir, la nueva media de la k -ésimo es una media ponderada de todos los puntos de datos, siendo los pesos las probabilidades de que estos puntos pertenezcan al componente k .

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

Esto representa cómo la nueva covarianza del componente  k  es una media ponderada de las desviaciones al cuadrado de cada punto de datos con respecto a la media del componente, donde los pesos son las probabilidades de los puntos asignados a ese componente.

Por último, el paso M actualiza los pesos de la mezcla:

 wknew=1ni=1nγ(zik)

El nuevo peso del k -ésimo es la probabilidad total de que los puntos pertenezcan a este componente, normalizada por el número de puntos n .

4. Convergencia

Por último, EM comprueba que los parámetros del modelo son estables y convergentes. Si los cambios en la probabilidad logarítmica o los parámetros están por debajo de un umbral establecido, el algoritmo se detiene. De lo contrario, EM repite las iteraciones de los pasos 2 y 3 hasta que se alcance la convergencia.

En resumen, el algoritmo EM consta de dos pasos repetidos iterativamente. En primer lugar, el paso E calcula los pesos de mezcla de todas las gaussianas para cada punto de datos. A continuación, el paso M utiliza esas ponderaciones de mezcla actualizadas para volver a estimar los parámetros de cada gaussiana. A continuación, EM compara el cambio en la verosimilitud logarítmica y, si está por debajo de un umbral establecido, asume la convergencia y detiene la iteración.

Comparación de GMM

Los GMM son potentes, pero se basan en suposiciones gaussianas. Para que los GMM representen bien los datos, los clústeres deben ser elípticos y las densidades entre los clústeres deben ser suaves. Los clústeres con formas no elípticas o datos con secciones muy densas y dispersas pueden no estar bien representados por un GMM.

Cuando se utilizan para el clustering, los GMM son similares al clustering de medias k, pero tienen varias diferencias clave. En primer lugar, a diferencia de los k-means, que asignan cada punto a un clúster, los GMM dan probabilidades de pertenecer a cada clúster. Esto se denomina "clustering suave". Dado que los clústeres pueden ser tanto elípticos como superpuestos, los GMM suelen ser más flexibles y permiten una mayor incertidumbre en los límites de los clústeres.

Para datos binarios o categóricos, los GMM no funcionan bien, pero un enfoque similar que utilice distribuciones de Bernoulli o distribuciones multinomiales puede ajustarse bien a los datos. Por el contrario, esos tipos de modelos no se ajustarán a los datos que consisten en variables continuas, mientras que un GMM a menudo se ajustará bien a los datos.

Dado que los GMM intentan estimar los parámetros de las distribuciones gaussianas, algunos datos se modelarán mejor utilizando un método no paramétrico como la estimación de la densidad del kernel (KDE). Un KDE no hace ninguna suposición sobre las distribuciones de clústeres o subpoblaciones, sino que estima la densidad sobre pequeños núcleos locales en cada punto de datos. Este enfoque es útil cuando sus datos consisten en distribuciones complejas sin asumir ninguna forma particular.

Una extensión de GMM es el autocodificador variacional (VAE), que es un modelo generativo que aprende distribuciones latentes flexibles. En un VAE, el objetivo general es el mismo, pero un VAE no utiliza EM. Un VAE utiliza un marco codificador-decodificador probabilístico para aprender representaciones latentes de la misma manera que un GMM asigna ponderaciones mixtas para cada punto de datos. La principal diferencia es que EM requiere que se pueda calcular la probabilidad posterior, mientras que en un VAE ese no es el caso, lo que lo hace mucho más flexible. La desventaja es que un VAE suele ser más complejo y requiere más tiempo para entrenarlo.
 

Casos de uso de GMM

Este artículo explicativo se ha centrado ampliamente en el clúster, ya que proporciona una introducción intuitiva a los GMM, pero hay otros escenarios en los que los GMM pueden ser útiles. La ingeniería de características, la detección de anomalías y la estimación de densidad son tareas comunes en las que los GMM pueden ser potentes.

Ingeniería de características: mientras que algunos algoritmos de machine learning como XGBoost pueden permitir que un modelo aprenda una variedad de distribuciones de características de entrada, otros son más estrictos en sus requisitos. La regresión lineal y logística, el análisis discriminante lineal (LDA) y la distribución gaussiana multivariante suelen esperar que las características se distribuyan normalmente y pueden no funcionar bien si los datos son multimodales. Hay otras razones analíticas y visuales útiles para abordar la multimodalidad y GMM puede ayudar.

Clasificación no supervisada: GMM funciona de manera similar al algoritmo de medias k, pero permite la determinación probabilística de la pertenencia a la clase, a diferencia de las medias k, donde el resultado es una métrica binaria. Esto puede ser especialmente beneficioso para casos de uso que requieren umbrales personalizados para la categorización o que requieren una output probabilística.

Detección de anomalías: se puede utilizar una distribución gaussiana multivariante para identificar puntos de datos que tienen baja probabilidad de seguir una o más distribuciones gaussianas. De esta manera, un GMM puede ayudar a encontrar dos tipos de datos anómalos: anomalías que son valores atípicos de una población (por ejemplo, un error en la entrada de datos) y anomalías que forman su propio grupo (como el comportamiento de fraude con tarjetas de crédito).

El GMM es un modelo adecuado para una amplia variedad de tareas que se pueden entrenar rápidamente y optimizar fácilmente. Aunque tiene algunas limitaciones en cuanto a los tipos de datos con los que es adecuado tratar, puede ser valioso en una amplia variedad de tareas de machine learning y ciencia de datos.

Implementación de GMM

En Python, se puede utilizar la biblioteca scikit-learn para crear rápidamente 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)

Visualización de los resultados del clustering de 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')

en R, se puede utilizar un paquete llamado mclust, que significa clustering basado en modelos, para crear 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)

Tanto en Python como en R, el desarrollador debe establecer el hiperparámetro que especifica el número de clústeres como parámetro para el GMM. Al igual que con KNN, una estrategia comúnmente utilizada para seleccionar este número de clústeres es entrenar modelos para diferentes números de clústeres y comparar cada uno. Las métricas más utilizadas para comparar modelos son:

Coeficiente de silueta: se define para cada muestra y se compone de dos puntuaciones: la distancia media entre una muestra y todos los demás puntos del mismo clúster, y la distancia media entre una muestra y todos los demás puntos del siguiente clúster más cercano.

Jensen-Shannon: mide la divergencia entre distribuciones y se calcula con mayor frecuencia calculando primero la divergencia de Kullback-Leibler, el promedio de las relaciones de logaritmo de verosimilitud sobre las muestras y luego haciendo la media de los dos valores de divergencia KL resultantes. El concepto de similitud de distribución está representado por la métrica de Jensen-Shannon (JS). Cuanto menor sea la distancia JS entre los dos GMM, más estarán de acuerdo esos GMM sobre cómo ajustar los datos.

Criterio de información bayesiano (BIC): proporciona una estimación de lo bien que el modelo predice los datos equilibrados por el número de parámetros que contiene el modelo. Si K es demasiado pequeño, la verosimilitud logarítmica del modelo será baja y el valor BIC grande. Si K es demasiado grande, la probabilidad puede ser alta, pero la penalización contra valores más grandes (y, por lo tanto,el sobreajuste) también creará un valor BIC mayor.

Criterio de información de Akaike (AIC):
funciona de forma muy similar al BIC, pero calcula una penalización menor por el número de parámetros.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

Explore watsonx.ai Solicite una demostración en directo
Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Explore la biblioteca de modelos fundacionales de IBM en la cartera de IBM watsonx para escalar la IA generativa para su negocio con confianza.

Explore watsonx.ai Explore las soluciones de IA