O que é um modelo de mistura gaussiana?

Autora

Joshua Noble

Data Scientist

Modelos de mistura gaussiana, definidos

Um modelo de mistura gaussiana (GMM) é um modelo probabilístico que representa dados como uma combinação de várias distribuições gaussianas, cada uma com sua própria média e variância, ponderadas por um coeficiente de mistura. Os GMMs são comumente usados para agrupamento e estimativa de densidade, pois podem capturar distribuições complexas e multimodais em que os pontos de dados podem naturalmente se agrupar em torno de diferentes centros, em vez de uma única média.

Uma única distribuição gaussiana, também chamada de "distribuição normal", descreve muitos tipos de fenômenos naturais. A distribuição da altura dos alunos em uma sala de aula, o peso dos recém-nascidos e a vida útil operacional das peças mecânicas são frequentemente distribuições gaussianas.

No entanto, uma única distribuição gaussiana não é adequada para modelar conjuntos de dados com múltiplos clusters de dados ou aqueles com uma assimetria significativa ou caudas pesadas. Nesses casos, um GMM pode ser mais apropriado.

Um GMM usa o aprendizado não supervisionado para gerar um modelo probabilístico que pressupõe que os dados são gerados a partir de uma combinação de várias distribuições gaussianas. Em vez de assumir que todos os dados vêm de uma única distribuição normal (um modelo gaussiano), o GMM pressupõe que existem várias distribuições normais, cada uma representando um"cluster" ou "subpopulação" diferente no conjunto de dados, e cada uma delas com sua própria média e variância.

No caso de estudantes, imagine alturas com uma distribuição bimodal, mas a identidade de gênero dos estudantes é desconhecida. No caso de peças de máquinas, imagine que as peças podem ter vindo de dois fornecedores diferentes, um dos quais fabrica peças de qualidade superior à do outro. Em ambos os casos, pode ser útil calcular a qual subpopulação um ponto de dados pertence e as características dessa subpopulação.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Como funcionam os modelos de mistura gaussiana 

Os GMMs têm muitas aplicações do mundo real além do agrupamento: segmentação, estimativa de densidade, detecção de anomalias e reconhecimento de padrões podem ser aproximados por um GMM.

Aqui está uma distribuição desafiadora, que claramente não é gaussiana:

Uma distribuição não gaussiana Uma distribuição não gaussiana

Pode-se tentar encontrar a equação dessa curva usando ajuste polinomial ou aproximação trigonométrica, mas os GMMs oferecem uma alternativa robusta que pode ser menos exigente em termos computacionais. Esta distribuição é, na verdade, três distribuições gaussianas diferentes combinadas:

A distribuição anterior decomposta em três distribuições gaussianas A distribuição anterior decomposta em três distribuições gaussianas

Um GMM decomporia a distribuição acima em três distribuições gaussianas diferentes e calcularia os parâmetros para cada uma delas. As distribuições mostradas acima têm uma única dimensão, mas o GMM também funciona para distribuições de dimensões superiores. Uma mistura 2D de duas gaussianas pode ser decomposta em duas distribuições diferentes.

Uma gaussiana bidimensional plotada usando um gráfico de contorno Uma gaussiana bidimensional plotada usando um gráfico de contorno

 

Quando usada como um algoritmo de agrupamento, cada gaussiana no modelo de mistura tem três parâmetros principais:

  • Vetores de média (μ): o centro do cluster. Em uma distribuição 1D, esse será um vetor de valor único. Em uma distribuição n-dimensional, esse será um vetor com valor n.

  • Matriz de covariância (Σ): é a dispersão/forma da própria gaussiana. Em uma distribuição 1D, será um valor único. Em uma distribuição n-dimensional, será uma matriz n x n.

  • Peso da mistura (π): é a probabilidade de que um ponto de dados escolhido aleatoriamente tenha sido gerado por componente. Na verdade, não é uma funcionalidade da distribuição gaussiana em si, mas sim do modelo, pois combina diferentes distribuições gaussianas para representar os dados que está ajustando.

 

Mixture of Experts | 28 de agosto, episódio 70

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Ajuste de um GMM

O objetivo de um GMM é estimar os parâmetros de cada distribuição gaussiana no modelo e a qual dessas gaussianas cada ponto de dados pertence. A variável latente, geralmente chamada de z , é qual componente gaussiano, de todos os componentes identificados no modelo, gerou um determinado ponto de dados. Essa variável é "latente" porque é uma variável oculta (ou não observada), que pode ser aprendida com o modelo.

Para cada ponto xn , há uma  zn  (onde n é o número de componentes) que é a gaussiano que gerou  xi  ( i neste caso é o número de pontos de dados).  zn  nunca é observado nos dados, apenas ponto  xi . Além disso, o componente gaussiano que produziu  xi , não pode ser observado. Em vez disso, o algoritmo de maximização de expectativas do modelo infere uma distribuição de possíveis valores z.

Cada componente gaussiano é ponderado por um coeficiente de mistura, que representa uma estimativa de quanto cada distribuição afeta a localização desse ponto de dados específico. Em um cenário de agrupamento, o peso combinado reflete o tamanho relativo de cada cluster. O GMM afirma: para encontrar a probabilidade de x, imagine que primeiro se escolha aleatoriamente uma gaussiana de acordo com  πk , em seguida, extrai x dessa gaussiana. Então  p(x) é uma mistura das densidades dos componentes. Se x estiver próximo de várias médias  μk , várias gaussianas podem atribuir uma alta probabilidade a ela, e suas contribuições se somam. O modelo completo é a soma ponderada dessas distribuições de probabilidade gaussianas.

Matematicamente, a função de densidade de probabilidade de um ponto de dados  x  sob um GMM com K componentes é:

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

Para detalhar isso:

 πk  : é o peso de combinação para o componente da mistura k, que é uma estimativa de quanto a gaussiana k contribui para o ponto de dados.

 N(xμk,Σk) : é a distribuição gaussiana com:

  •  μk  o vetor médio, que pode ser considerado como o centro da gaussiana  k
     
  •  Σk matriz de covariância, que representa a "propagação e orientação" da gaussiana  k     

A densidade total de probabilidade em  x  é  p(x)  que é uma soma ponderada de todas as gaussianas.

Maximização das expectativas

Um GMM é mais frequentemente ajustado usando o algoritmo de maximização de expectativas (EM), que atribui iterativamente probabilidades pertencentes a cada gaussiana, chamadas de etapa E, e atualiza os parâmetros de cada gaussiana, chamados de etapas M.

O EM é uma forma poderosa de estimar parâmetros quando algoritmos como a estimativa de máxima verossimilhança (MLE) são difíceis de usar, por exemplo, no caso de um GMM. No GMM, o modelo quase sempre é ajustado usando uma função de probabilidade logarítmica. Essa probabilidade logarítmica é não linear e difícil de maximizar analiticamente, o que significa que o MLE não pode maximizar diretamente. Além disso, um GMM tem variáveis latentes (os pesos da mistura), que não são diretamente observáveis nos dados, e o MLE não as descobrirá ao trocar rótulos.

Outra abordagem, o gradiente descendente estocástico (SGD), exige que a função objetiva subjacente seja diferenciável, o que nem sempre é o caso. Além disso, ao contrário do EM, o SGD não pode ser facilmente paralelizado e requer recursos computacionais significativos para grandes quantidades de dados. Paralelizar o EM usando uma abordagem como map-reduce é uma otimização poderosa.

O EM consiste em quatro etapas:

 1. Inicialização

O algoritmo EM começa com valores de parâmetros iniciais aleatórios e assume que os dados observados vêm de um modelo que pode ser estimado. Muitas implementações do GMM permitirão que os profissionais escolham entre uma variedade de inicializações, como a definição de responsabilidades iniciais usando k-means, valores aleatórios ou amostragem dos dados de treinamento.

2. Etapa E (etapa de expectativa)

Calculamos a probabilidade posterior, que é uma "atribuição suave" de pontos de dados a componentes. Isso pergunta, em vigor, dadas as suposições atuais de parâmetros, "quanto cada gaussiana 'possui' cada ponto de dados?"

Primeiro, a probabilidade posterior de cada variável latente é calculada com base nos dados observados. A probabilidade de zi=k , ou seja, de  xi  pertencer ao componente k, pode ser calculada usando a regra de Bayes:

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

Em seguida, a probabilidade logarítmica dos dados observados é calculada usando as estimativas de parâmetros atuais. A probabilidade logarítmica esperada em relação à distribuição das variáveis latentes pode agora ser escrita da seguinte forma:

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

A função Q é uma soma ponderada das probabilidades logarítmicas de todos os pontos de dados sob cada componente gaussiano, com os pesos sendo as responsabilidades. A probabilidade logarítmica calcula a probabilidade de, com os valores estimados para cada componente gaussiano, que o ponto de dados possa surgir dessa distribuição. Isso é diferente da probabilidade dos dados observados no modelo de mistura como um todo. Em vez disso, essa função Q representa uma probabilidade logarítmica esperada sobre os dados observados e as distribuições de variáveis latentes estimadas.

3. Etapa M (etapa de maximização)

O M-Step atualiza três valores distintos para cada distribuição gaussiana:

  • Atualização média normalmente representada como  μknew 

  • A atualização da matriz de covariância, normalmente representada como  Σknew 

  • A atualização do peso da mistura, normalmente representada como  wknew

A próxima etapa é atualizar os parâmetros do modelo, maximizando a probabilidade logarítmica do modelo que produz os dados. Quanto melhor o modelo, maior será esse valor.

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

Ou seja, a nova média do k o. componente é uma média ponderada de todos os pontos de dados, com os pesos sendo as probabilidades de esses pontos pertencerem ao componente k .

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

Isso representa como a nova covariância do componente  k  é uma média ponderada dos desvios quadrados de cada ponto de dados da média do componente, onde os pesos são as probabilidades dos pontos atribuídos a esse componente.

Finalmente, o M-Step atualiza os pesos da mistura:

 wknew=1ni=1nγ(zik)

O novo peso do k o. componente é a probabilidade total dos pontos pertencentes a esse componente, normalizado pelo número de pontos n .

4. Convergência

Finalmente, o EM verifica se os parâmetros do modelo estão estáveis e convergindo. Se as alterações na probabilidade logarítmica ou nos parâmetros estiverem abaixo de um limite definido, o algoritmo será interrompido. Caso contrário, o EM será repetido nas iterações 2 e 3 até que a convergência seja alcançada.

Em resumo, o algoritmo EM consiste em duas etapas repetidas iterativamente. Primeiro, a etapa E calcula os pesos da mistura de todas as gaussianas para cada ponto de dados. Em seguida, a etapa M utiliza esses pesos da mistura atualizados para reestimar os parâmetros para cada gaussiana. O EM, então, compara a mudança na probabilidade logarítmica e, se estiver abaixo de um limite definido, assume a convergência e para de iterar.

Comparação de GMMs

Os GMMs são poderosos, mas dependem de suposições gaussianas. Para que os GMMs representem bem os dados, os clusters precisam ser elípticos, e as densidades entre os clusters precisam ser suaves. Clusters com formas não elípticas ou dados com seções altamente densas e esparsas podem não ser bem representados por um GMM.

Quando usados para agrupamento, os GMMs são semelhantes ao agrupamento k-means, mas têm várias diferenças importantes. Primeiro, diferentemente do k-means, que atribui cada ponto a um cluster, os GMMs fornecem probabilidades de pertencer a cada cluster. Isso é chamado de "agrupamento suave". Como os clusters podem ser tanto elípticos quanto sobrepostos, os GMMs são frequentemente mais flexíveis e permitem mais incertezas nos boundaries dos clusters.

Para dados binários ou categóricos, os GMMs não funcionam bem, mas uma abordagem semelhante usando distribuições de Bernoulli ou distribuições multinomiais pode ajustar bem os dados. Por outro lado, esses tipos de modelos não se ajustarão a dados que consistem em variáveis contínuas, onde um GMM muitas vezes ajustará bem os dados.

Como os GMMs tentam estimar os parâmetros das distribuições gaussianas, alguns dados serão mais bem modelados usando um método não paramétrico, como a estimativa de densidade kernel (KDE). Uma KDE não faz nenhuma suposição sobre as distribuições de clusters ou subpopulações; em vez disso, estima a densidade sobre pequenos kernels locais em cada ponto de dados. Essa abordagem é útil quando seus dados consistem em distribuições complexas sem assumir nenhuma forma específica.

Uma extensão do GMM é o autocodificador variacional (VAE), que é um modelo generativo que aprende distribuições latentes flexíveis. Em um VAE, o objetivo geral é o mesmo, mas um VAE não usa EM. Um VAE utiliza um framework probabilístico de codificador-decodificador para aprender representações latentes da mesma maneira que um GMM atribui pesos da mistura para cada ponto de dados. A principal diferença é que o EM exige que a probabilidade posterior possa ser calculada, enquanto em um VAE esse não é o caso, tornando-o muito mais flexível. A desvantagem é que um VAE geralmente é mais complexo e demorado de treinar.
 

Casos de uso de GMMs

Essa explicação tem se concentrado extensivamente no agrupamento, já que fornece uma introdução intuitiva aos GMMs, mas há outros cenários em que os GMMs podem ser úteis. Engenharia de funcionalidades, detecção de anomalias e estimativa de densidade são tarefas comuns nas quais os GMMs podem ser poderosos.

Engenharia de funcionalidades: enquanto alguns algoritmos de aprendizado de máquina como o XGBoost podem permitir que um modelo aprenda uma variedade de distribuições de funcionalidades de entrada, outros são mais rigorosos em seus requisitos. A regressão linear e a logística, a análise discriminante linear (LDA) e a distribuição gaussiana multivariada geralmente esperam que as funcionalidades sejam normalmente distribuídas e podem não funcionar bem se os dados forem multimodais. Há outras razões analíticas e visuais úteis para lidar com a multimodalidade, e o GMM pode ajudar.

Classificação não supervisionada: o GMM funciona de forma semelhante ao algoritmo k-means, mas permite a determinação probabilística de pertencimento à classe, ao contrário do k-means, onde a saída é uma métrica binária. Isso pode ser especialmente benéfico para casos de uso que exigem limites personalizados para categorização ou que exigem uma saída probabilística.

Detecção de anomalias: uma distribuição gaussiana multivariada pode ser usada para identificar pontos de dados com baixa probabilidade de seguir uma ou mais distribuições gaussianas. Dessa forma, um GMM pode ajudar a encontrar dois tipos de dados anômalos: anomalias que são valores discrepantes de uma população (por exemplo, um erro na entrada de dados) e anomalias que formam seu próprio grupo (como comportamento de fraude de cartão de crédito).

O GMM é um modelo adequado para uma ampla variedade de tarefas que podem ser treinadas de forma rápida e otimizadas de forma fácil. Embora tenha algumas limitações em termos dos tipos de dados com os quais é adequado para lidar, ele pode ser valioso em uma ampla variedade de tarefas de aprendizado de máquina e ciência de dados.

Implementação de GMMs

No Python, pode-se usar a biblioteca scikit-learn para criar um GMM rapidamente:

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)

Visualização dos resultados do agrupamento de GMMs:

# 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')

Em R, um pacote chamado mclust, que significa agrupamento baseado em modelo, pode ser usado para criar GMMs.

# 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 no Python quanto no R, o desenvolvedor precisa definir o hiperparâmetro que especifica o número de clusters como um parâmetro para o GMM. Assim como no KNN, uma estratégia comumente usada para selecionar esse número de clusters é treinar modelos para diferentes números de clusters e comparar cada um deles. As métricas mais usadas para comparar modelos são:

Coeficiente de silhueta: é definido para cada amostra e é composta por duas pontuações: a distância média entre uma amostra e todos os outros pontos no mesmo cluster e a distância média entre uma amostra e todos os outros pontos no cluster mais próximo.

Jensen-Shannon: mede a divergência entre as distribuições e é mais frequentemente calculada calculando primeiro a divergência de Kullback–Leibler, a média das razões de probabilidades logarítmicas sobre as amostras e, em seguida, tirando a média dos dois valores de divergência KL resultantes. O conceito de similaridade de distribuição é representado pela métrica de Jensen-Shannon (JS). Quanto menor a distância JS entre os dois GMMs, mais esses GMMs concordam sobre como ajustar os dados.

Critério de informação bayesiano (BIC): dá uma estimativa de quão bem o modelo prevê os dados equilibrados pelo número de parâmetros que o modelo contém. Se K for muito pequeno, a probabilidade logarítmica do modelo será baixa, e o valor BIC, grande. Se K for muito grande, então a probabilidade poderá ser alta, mas a penalidade contra valores maiores (e, portanto,overfitting) também criará um valor BIC maior.

O critério de informação de Akaike (AIC):
funciona de forma muito semelhante ao BIC, mas calcula uma penalidade menor para o número de parâmetros.

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Explore a biblioteca da IBM de modelos de base no portfólio do IBM® watsonx para escalar a IA generativa para os seus negócios com confiança.

Explore o watsonx.ai Explore as soluções de IA