Algoritmo de maximização de expectativa | Explicação do algoritmo EM

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

Introdução

são observáveis. Uma vez que não temos os valores para as variáveis ​​não observadas (latente), a Expectativa-maximização O algoritmo tenta usar os dados existentes para determinar os valores ideais para essas variáveis e, em seguida, encontra o parametros do modelo.

Tabela de conteúdo

  • 👉 Qual é o algoritmo de maximização de expectativa (EM)?
  • 👉 Explicação detalhada do algoritmo EM
  • 👉 Diagrama de fluxo
  • 👉 Vantagens e desvantagens
  • 👉 Aplicações do algoritmo EM
  • 👉 Caso de uso do algoritmo EM
    • Introdução às distribuições gaussianas
    • Modelos de mistura gaussiana (GMM)
  • 👉 Implementação de modelos de mistura gaussiana em Python

Qual é o algoritmo de maximização de expectativa (EM)?

👉 É um modelo de variável latente.

Primeiro, Vamos entender o que significa modelo de variável latente.

Um modelo de variável latente consiste em observável variáveis ​​junto com inobservable variáveis. Variáveis ​​observadas são aquelas variáveis ​​no conjunto de dados que podem ser medidas, enquanto as variáveis ​​não observadas (latente / escondido) são inferidos das variáveis ​​observadas.

  • 👉 Pode ser usado para encontrar probabilidade máxima local (MLE) parâmetros ou máximo a posteriori (MAPA) parâmetros para variáveis ​​latentes
    em um modelo estatístico ou matemático.
  • 👉 Usado para prever esses valores ausentes no conjunto de dados, desde que saibamos a forma geral de distribuição de probabilidade associada a essas variáveis ​​latentes.
  • 👉 Em palavras simples, a ideia básica por trás deste algoritmo é usar as amostras observáveis ​​de variáveis ​​latentes para prever os valores das amostras que não são observáveis ​​para a aprendizagem. Este processo é repetido até que ocorra a convergência dos valores.

Explicação detalhada do algoritmo EM

👉 Aqui está o algoritmo que você precisa seguir:

  • Dado um conjunto de dados incompleto, comece com um conjunto de parâmetros inicializados.
  • Etapa de expectativa (passo E): Nesta etapa de expectativa, usando os dados observados disponíveis no conjunto de dados, podemos tentar estimar ou adivinhar os valores de dados ausentes. Finalmente, depois dessa etapa, obtemos dados completos sem valores ausentes.
  • Etapa de maximização (passo M): Agora, temos que usar os dados completos, que se preparam na etapa de expectativa, e atualizar os parâmetros.
  • Repita o passo 2 e o passo 3 até convergirmos para a nossa solução.

em11-3003210

Fonte da imagem: Ligação

👉

Objetivo do algoritmo de maximização da expectativa

O algoritmo de maximização de expectativa visa usar os dados observados disponíveis do conjunto de dados para estimar os dados perdidos para as variáveis ​​latentes e, em seguida, usar esses dados para atualizar os valores dos parâmetros na etapa de maximização..

Vamos entender o algoritmo EM em detalhes:

  • euEtapa de inicialização: Nesta etapa, nós inicializamos os valores dos parâmetros com um conjunto de valores iniciais, então, entregamos o conjunto de dados observados incompletos ao sistema com a suposição de que os dados observados vêm de um modelo específico. quer dizer, distribuição de probabilidade.
  • Etapa de expectativa: Nesta etapa, usar dados observados para estimar ou adivinhar valores de dados ausentes ou incompletos. Usado para atualizar variáveis.
  • Etapa de maximização: Nesta etapa, usamos os dados completos gerados no “Expectativa” etapa para atualizar os valores dos parâmetros, quer dizer, atualizar hipótese.
  • Verificando a etapa de convergência: Agora, nesta etapa, verificamos se os valores estão convergindo ou não, sim é assim, Pare, caso contrário, repita essas duas etapas, quer dizer, a “Expectativa” passo e “Maximização” passo até que a convergência ocorra.

Fluxograma para o algoritmo EM

em21-1546340

Fonte da imagem: Ligação

Vantagens e desvantagens do algoritmo EM

👉 Vantagem

  • As duas etapas básicas do algoritmo EM, quer dizer, E-step y M-step, são geralmente muito fáceis para muitos problemas de aprendizado de máquina em termos de implementação.
  • A solução para as etapas M muitas vezes existe de forma fechada.
  • O valor da probabilidade é sempre garantido para aumentar após cada iteração.

👉 Desvantagens

  • Tenho convergência lenta.
  • Convergir para o ótimo local só.
  • Ele leva em consideração as probabilidades de avanço e retrocesso. Isso contrasta com a otimização numérica que considera apenas chances de avanço.

Aplicações do algoritmo EM

O modelo de variável latente tem várias aplicações da vida real em aprendizado de máquina:

  • 👉 Usado para calcular o Densidade gaussiana de uma função.
  • 👉 Útil para completar o dados perdidos durante um show.
  • 👉 É muito útil em diferentes domínios, como Processamento de linguagem natural (PNL), Visão computacional, etc.
  • 👉 Usado na reconstrução de imagens na área de Medicina e engenharia estrutural.
  • 👉 É usado para estimar os parâmetros do Modelo de Markov oculto (HMM) e também para alguns outros modelos mistos, como Mistura gaussiana Modelosetc.
  • 👉 É usado para encontrar os valores das variáveis ​​latentes.

Caso de uso do algoritmo EM

Noções básicas de distribuição gaussiana

Tenho certeza de que você está familiarizado com as distribuições gaussianas (ou a distribuição normal), já que essa distribuição é muito usada no campo do aprendizado de máquina e estatística. Tem uma curva em forma de sino, com as observações distribuídas simetricamente em torno do valor médio (média).

A imagem apresentada tem algumas distribuições gaussianas com diferentes valores da média (μ) e a variação (σ2). Lembre-se de que quanto maior o valor de σ (Desvio padrão), quanto maior for a extensão ao longo do eixo.

gaussians-4499815

Fonte da imagem: Ligação

No espaço 1-D, a função densidade de probabilidade de uma distribuição gaussiana é dada por:

pdf_var-1-300x81-2941573

FIG. Função densidade de probabilidade (PDF)

onde μ representa a média e σ2 representa a variação.

Mas isso só seria verdade para uma variável em 1-D apenas. No caso de duas variáveis, teremos uma curva em forma de sino 3D em vez de uma curva em forma de sino 2D como mostrado abaixo:

gaussians-3d-300x224-8017062

A função de densidade de probabilidade seria dada por:

pdf_var-2-300x52-1077705

onde x é o vetor de entrada, μ é o vetor médio 2-D e Σ é a matriz de covariância 2 × 2. Podemos generalizar a mesma coisa para o dimensão d.

Portanto, para o modelo multivariado de Gauss, temos x e μ como vetores de comprimento d, e Σ seria um dxd Matriz de covariância.

Portanto, para um conjunto de dados que tem D caracteristicas, teríamos uma mistura de k Distribuições gaussianas (Onde k representa o número de clusters), cada um com um vetor médio e matriz de variância determinados.

Mas nossa pergunta é: “Como podemos encontrar a média e a variância de cada gaussiana?”

Para encontrar esses valores, usamos uma técnica chamada Expectation-Maximization (EM).

Modelos de mistura gaussiana

A principal suposição desses modelos de mistura é que há um certo número de distribuições gaussianas, e cada uma dessas distribuições representa um grupo. Portanto, um modelo de mistura gaussiana tenta agrupar observações que pertencem a uma única distribuição.

Os modelos de mistura gaussiana são modelos probabilísticos que usam o agrupamento Facilidade para distribuir observações em diferentes grupos, quer dizer, distribuições gaussianas diferentes.

Por exemplo, o modelo de mistura gaussiana de 2 Distribuições gaussianas

Temos duas distribuições gaussianas: N (𝜇1, 𝜎12) e n(𝜇2, 𝜎22)

Aqui, temos que estimar um total de 5 parametros:

𝜃 = (p, 𝜇1, 𝜎12,𝜇2, 𝜎22)

onde p é a probabilidade de que os dados venham da primeira distribuição gaussiana e 1-p de que venham da segunda distribuição gaussiana.

Então, a função de densidade de probabilidade (PDF) do modelo de mistura é dado por:

g (x |𝜃) = p1(x | 𝜇1, 𝜎12) + (1-p) g2(x | 𝜇2, 𝜎22 )

objetivo: Para ajustar melhor uma determinada densidade de probabilidade, encontrando 𝜃 = (p, 𝜇1, 𝜎12, 𝜇2, 𝜎22) por meio de iterações EM.

Implementação de GMM em Python

É hora de mergulhar no código! Aqui para implementação, nós usamos o Biblioteca Sklearn de Python.

De sklearn, usamos a classe GaussianMixture que implementa o algoritmo EM para ajustar uma mistura de modelos Gaussianos. Após a criação do objeto, usando o GaussianMixture.fit podemos aprender um modelo de mistura gaussiana a partir dos dados de Treinamento.

Paso 1: Importe os pacotes necessários

importar numpy como np
import matplotlib.pyplot as plt
de sklearn.mixture import GaussianMixture

Paso 2: criar um objeto da classe Gaussian Mixture

gmm = GaussianMixture(n_components = 2, pedágio = 0,000001)

Paso 3: ajusta o objeto criado a determinado conjunto de dados

gmm.fit(np.expand_dims(dados, 1))

Paso 4: Imprima os parâmetros de 2 gaussianos de entrada

Gaussian_nr = 1
imprimir('Entrada Normal_distb {:}: µ = {:.2}, σ = {:.2}'.format("1", Mean1, Standard_dev1))
imprimir('Entrada Normal_distb {:}: µ = {:.2}, σ = {:.2}'.format("2", Mean2, Standard_dev2))
Saída:

Entrada Normal_distb 1: µ = 2.0, σ = 4.0

Entrada Normal_distb 2: µ = 9.0, σ = 2.0

Paso 5: Parâmetros de impressão após a mistura 2 gaussianos

para mu, SD, p em zip(gmm.means_.flatten(), np.sqrt(gmm.covariances_.flatten()), gmm.weights_):
    imprimir('Normal_distb {:}: µ = {:.2}, σ = {:.2}, peso = {:.2}'.format(Gaussian_nr, mu, SD, p))
    g_s = stats.norm(mu, SD).pdf(x) * p
    plt.plot(x, g_s, rótulo ="sklearn gaussiano");
    Gaussian_nr + = 1

Produção:

Normal_distb 1: µ = 1,7, σ = 3,8, peso = 0,61

Normal_distb 2: µ = 8.8, σ = 2.2, peso = 0.39

Paso 6: Trace os gráficos de distribuição

sns.distplot(dados, bins = 20, kde = False, norm_hist = True)
gmm_sum = np.exp([gmm.score_samples(e.reshape(-1, 1)) para e em x]) 
plt.plot(x, gmm_sum, rótulo ="mistura gaussiana");
plt.legend();

Produção:

17891__resultados ___ 19_1-9512627

Isso conclui nossa implementação do GMM!!

Notas finais

Obrigado pela leitura!

Se você gostou e quer saber mais, visite meus outros artigos sobre ciência de dados e aprendizado de máquina clicando no Ligação

Sinta-se à vontade para entrar em contato comigo em Linkedin, Correio eletrônico.

Qualquer coisa não mencionada ou você deseja compartilhar suas idéias? Sinta-se à vontade para comentar abaixo e eu entrarei em contato com você.

Sobre o autor

Chirag Goyal

Atualmente, Estou cursando bacharelado em tecnologia (B.Tech) em Ciência da Computação e Engenharia da Instituto Indiano de Tecnologia de Jodhpur (IITJ). Estou muito animado com o aprendizado de máquina, a aprendizado profundo e inteligência artificial.

A mídia mostrada neste artigo sobre Algoritmo de maximização de expectativa não são propriedade da DataPeaker e são usados ​​a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker