¿Qué es un modelo de mezcla gaussiana?

Autor

Joshua Noble

Data Scientist

Definición de modelos de mezcla gaussiana

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 comúnmente para el clúster y la estimación de densidad, ya que pueden capturar distribuciones complejas y multimodales donde los puntos de datos pueden agruparse naturalmente en torno a diferentes centros en lugar de una única media.

Una única distribución gaussiana, también llamada “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 múltiples 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 asume 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 provenir 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 de IA presentadas por expertos

Obtenga insights curados 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! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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á de la agrupación en clústeres: la segmentación, la estimación de densidad, la detección de anomalías y el reconocimiento de patrones pueden aproximarse mediante un GMM.

Aquí hay una distribución desafiante que claramente no es gaussiana:

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

Se podría intentar encontrar la ecuación de esta curva mediante ajuste polinomial o 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 dimensiones más altas. Una mezcla 2D de dos gaussianas se puede descomponer en dos distribuciones diferentes.

Un gráfico gaussiano bidimensional trazado mediante un gráfico de contorno Un gráfico gaussiano bidimensional trazado mediante un gráfico de contorno

 

Cuando se utiliza como algoritmo de agrupamiento, cada gaussiano en el modelo mixto tiene tres parámetros clave:

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

  • Matriz de covarianza (Σ): esta es la dispersión/forma de la propia Gaussiana. 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 al azar 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 se ajustan.

 

Mixture of Experts | 28 de agosto, episodio 70

Decodificación de 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 revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Ajuste 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 está "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 cambio, 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 agrupamiento, 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 , luego dibuja x de esa gaussiana. Así que  p(x) es una mezcla de las densidades de los componentes. Si x está cerca de múltiples 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

Un GMM se ajusta con mayor frecuencia mediante el algoritmo de maximización de expectativas (EM), que asigna de forma iterativa las probabilidades que pertenecen a cada gaussiano, denominado paso E, y actualiza los parámetros de cada gaussiano, denominado paso M.

La 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 mediante 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 (las ponderaciones de mezcla), que no son directamente observables en los datos y MLE no las descubrirá al permutar etiquetas.

Otro enfoque, el descenso del 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 de EM, SGD no se puede paralelizar fácilmente y requiere recursos informáticos significativos para datos de gran tamaño. Paralelizar EM utilizando un enfoque como map-reduce es una optimización poderosa.

La 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 K-means, valores aleatorios o muestreo de los datos de entrenamiento.

2. E-Step (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 conjeturas actuales de parámetros, "¿cuánto 'posee' cada gaussiano cada punto de datos?"

Primero, 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 probabilidad logarítmica de los datos observados utilizando las estimaciones de parámetros actuales. El logaritmo de verosimilitud esperado 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 probabilidades logarítmicas de todos los puntos de datos en cada componente gaussiano, siendo los pesos las responsabilidades. El logaritmo de verosimilitud calcula la probabilidad, con los valores estimados de cada componente gaussiano, de que el punto de datos pueda surgir de esa distribución. Esto es diferente de la probabilidad de los datos observados bajo el modelo mixto en su conjunto. En cambio, esta función Q representa una probabilidad logarítmica esperada sobre los datos observados y las distribuciones estimadas de variables latentes.

3. M-step (paso de maximización)

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

  • La actualización media generalmente se representa 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 probabilidad 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, el nuevo medio de la k -th componente es un promedio ponderado 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 un promedio ponderado de las desviaciones al cuadrado de cada punto de datos de la media del componente, donde los pesos son las probabilidades de los puntos asignados a ese componente.

Finalmente, M-Step actualiza los pesos de la mezcla:

 wknew=1ni=1nγ(zik)

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

4. Convergencia

Finalmente, EM verifica que los parámetros del modelo sean 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 E-step calcula los pesos de mezcla de todas las gaussianas para cada punto de datos. Luego, el paso M utiliza esos pesos de mezcla actualizados para volver a estimar los parámetros para cada gaussiano. Luego, EM compara el cambio en la probabilidad de registro y, si está por debajo de un umbral establecido, asume la convergencia y deja de iterar.

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 en los clústeres deben ser suaves. Es posible que un GMM no represente bien los clústeres con formas no elípticas o datos con secciones muy densas y dispersas.

Cuando se utilizan para agrupación en clúster, los GMM son similares a la agrupación k-means, pero tienen varias diferencias clave. En primer lugar, a diferencia de k-means, que asigna cada punto a un clúster, los GMM dan probabilidades de pertenecer a cada clúster. Esto se denomina "clúster 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 datos que consisten en variables continuas donde 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 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 kernels 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 una infraestructura de 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 contrapartida es que un VAE suele ser más complejo y requiere más tiempo de entrenamiento.
 

Casos de uso de GMM

Este Documento explicativo se ha centrado ampliamente en 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 aprendizaje automático 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 lidiar con la multimodalidad y GMM puede ayudar.

Clasificación no supervisada: GMM funciona de manera similar al algoritmo K-means, pero permite la determinación probabilística de la pertenencia a la clase, a diferencia de K-means, 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 salida 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 que puede manejar, puede ser valioso en una amplia variedad de tareas de machine learning y ciencia de datos.

Implementación de GMM

En Python, se puede usar 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 de la agrupación en clústeres 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 usar un paquete llamado mclust, que significa agrupación en clústeres basada 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 en el siguiente clúster más cercano.

Jensen-Shannon: Esto mide la divergencia entre distribuciones y se calcula con mayor frecuencia calculando primero la divergencia de Kullback-Leibler, el promedio de las relaciones logarítmicas de verosimilitud sobre las muestras y luego promediando 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 qué tan bien el modelo predice los datos equilibrados por la cantidad de parámetros que contiene el modelo. Si K es demasiado pequeño, la probabilidad logarítmica del modelo será baja y el valor de BIC grande. Si K es demasiado grande, entonces 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 manera muy similar al BIC, pero calcula una penalización menor por la cantidad de parámetros.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe 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 en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

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

Conozca los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Reserve una demostración en vivo
Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe 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 en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

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

Conozca los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Explore las soluciones de IA