O que é o Algoritmo EM em Machine Learning? [Explicado com exemplos]

Publicados: 2021-03-10

O algoritmo EM ou algoritmo de maximização de expectativa é um modelo de variável latente que foi proposto por Arthur Dempster, Nan Laird e Donald Rubin em 1977.

Um modelo de variável latente compreende variáveis ​​observáveis ​​e variáveis ​​não observáveis. As variáveis ​​observadas são aquelas que podem ser medidas, enquanto as variáveis ​​não observadas (latentes/ocultas) são inferidas a partir das variáveis ​​observadas.

Conforme explicado pelo trio, o algoritmo EM pode ser usado para determinar os parâmetros de máxima verossimilhança local (MLE) ou parâmetros de máxima a posteriori (MAP) para variáveis ​​latentes (variáveis ​​não observáveis ​​que precisam ser inferidas de variáveis ​​observáveis) em um modelo estatístico. Ele é usado para prever esses valores ou determinar dados ausentes ou incompletos, desde que você conheça a forma geral de distribuição de probabilidade associada a essas variáveis ​​latentes.

Para simplificar, o princípio geral por trás do algoritmo EM no aprendizado de máquina envolve o uso de instâncias observáveis ​​de variáveis ​​latentes para prever valores em instâncias que não são observáveis ​​para aprendizado. Isso é feito até que ocorra a convergência dos valores.

O algoritmo é uma ferramenta bastante poderosa no aprendizado de máquina e é uma combinação de muitos algoritmos não supervisionados. Isso inclui o algoritmo de agrupamento k-means, entre outras variantes do algoritmo EM.

Participe do Curso de Aprendizado de Máquina on-line das principais universidades do mundo - Mestrados, Programas de Pós-Graduação Executiva e Programa de Certificado Avançado em ML e IA para acelerar sua carreira.

Índice

O algoritmo de maximização de expectativa

Vamos explorar o mecanismo do algoritmo Expectation-Maximization em Machine Learning:

Fonte

  • Etapa 1: temos um conjunto de dados ausentes ou incompletos e outro conjunto de parâmetros iniciais. Assumimos que os dados observados ou os valores iniciais dos parâmetros são gerados a partir de um modelo específico.
  • Etapa 2: Com base no valor observável nas instâncias observáveis ​​dos dados disponíveis, vamos prever ou estimar os valores nas instâncias não observáveis ​​dos dados ou dos dados ausentes. Isso é conhecido como a etapa de expectativa (E – etapa).
  • Etapa 3: Usando os dados gerados na etapa E, atualizaremos os parâmetros e completaremos o conjunto de dados. Isso é conhecido como o passo de maximização (M – step) que é usado para atualizar a hipótese.

As etapas 2 e 3 são repetidas até a convergência. Ou seja, se os valores não estiverem convergindo, repetiremos o passo E e o passo M.

.

Fonte

Vantagens e Desvantagens do Algoritmo EM

Desvantagens do Algoritmo EM
1 Cada iteração no algoritmo EM resulta em um aumento garantido na probabilidade.
2 A etapa de Expectativa e a etapa de Maximização são bastante fáceis e a solução para a última existe principalmente de forma fechada.
Vantagens do Algoritmo EM
1 O algoritmo de maximização de expectativa leva em conta as probabilidades para frente e para trás. Isso contrasta com a otimização numérica que leva em consideração apenas as probabilidades diretas.
2 A convergência do algoritmo EM é muito lenta e é feita apenas para o ótimo local.

Aplicações do Algoritmo EM

O modelo de variável latente tem muitas aplicações do mundo real em aprendizado de máquina.

  1. É usado em agrupamento de dados não supervisionado e análise psicométrica.
  2. Também é usado para calcular a densidade gaussiana de uma função.
  3. O algoritmo EM encontra uso extensivo na previsão dos parâmetros do Hidden Markov Model (HMM) e outros modelos mistos.
  4. O algoritmo EM encontra muito uso no processamento de linguagem natural (NLP), visão computacional e genética quantitativa.
  5. Outras aplicações importantes do algoritmo EM incluem a reconstrução de imagens no campo da medicina e engenharia estrutural.

Vamos entender o algoritmo EM usando um modelo de mistura gaussiana.

Algoritmo EM para Modelo de Mistura Gaussiana

Para estimar os parâmetros de um Modelo de Mistura Gaussiana, precisaremos de algumas variáveis ​​observadas geradas por dois processos separados cujas distribuições de probabilidade são conhecidas. No entanto, os pontos de dados dos dois processos são combinados e não sabemos a qual distribuição eles pertencem.

Nosso objetivo é estimar os parâmetros dessas distribuições usando a estimativa de máxima verossimilhança do algoritmo EM conforme explicado acima.

Segue o código que usaremos:

# Dada uma função para a qual temos que calcular a densidade de

# Gaussiana no ponto x_i dado mu, sigma: G(x_i, mu, sigma); e

# outra função para calcular as probabilidades logarítmicas: L(x, mu, sigma, pi)

def estimativa_gmm(x, K, tol=0,001, max_iter=100):

”' Estimar os parâmetros do GMM.

:param x: lista de variáveis ​​de valor real observadas

:param K: inteiro para o número de Gaussian

:param tol: alteração tolerada para probabilidade de log

:return: parâmetros mu, sigma, pi

''

# 0. Inicialize theta = (mu, sigma, pi)

N = len(x)

mu, sigma = [rand()] * K, [rand()] * K

pi = [rand()] * K

curr_L = np.inf

para j no intervalo (max_iter):

anterior_L = atual_L

# 1. E-passo: responsabilidade = p(z_i = k | x_i, theta^(t-1))

r = {}

para i no intervalo (N):

partes = [pi[k] * G(x_i, mu[k], sigma[k]) para i no intervalo(K)]

total = soma(partes)

para i em k:

r[(i, k)] = partes[k] / total

# 2. M-step: atualize os valores mu, sigma, pi

rk = [soma([r[(i, k)] para i no intervalo(N)]) para k no intervalo(K)]

para k no intervalo (K):

pi[k] = rk[k] / N

mu[k] = soma(r[(i, k)] * x[i] para i no intervalo(N)) / rk[k]

sigma[k] = soma(r[(i, k)] * (x[i] – mu[k]) ** 2) / rk[k]

# 3. Verifique a condição de saída

curr_L = L(x, mu, sigma, pi)

if abs(prev_L – curr_L) < tol:

pausa

retornar mu, sigma, pi

No E-Step, podemos usar o teorema de Bayes para determinar os valores esperados dos pontos de dados fornecidos que são extraídos das iterações anteriores do algoritmo. No M-Step, assumimos que os valores das variáveis ​​latentes são fixos para estimar as proxies nas instâncias não observadas usando a Máxima Verossimilhança. Finalmente, usamos as fórmulas de média padrão e desvio padrão para estimar os parâmetros do modelo de mistura gaussiana.

Conclusão

Isso nos leva ao final do artigo. Para obter mais informações sobre os conceitos de Machine Learning, entre em contato com os principais professores do IIIT Bangalore e da Liverpool John Moores University por meio do programa Master of Science in Machine Learning & AI do upGrad .

É um curso de 18 meses que oferece mais de 450 horas de conteúdo de aprendizado, mais de 12 projetos do setor, 10 opções de projetos Capstone e mais de 10 tarefas de codificação. Você também desfruta de orientação personalizada de especialistas do setor e aconselhamento de orientação de carreira por meio de sessões ao vivo. O próximo lote começa em 28 de fevereiro de 2021!

O que se entende por agrupamento EM?

Para otimizar a probabilidade dos dados observados, o agrupamento EM é usado para estimar as médias e desvios padrão para cada agrupamento (distribuição). Com base em combinações de distribuições distintas em diferentes clusters, o algoritmo EM tenta aproximar as distribuições de valores observadas. O EM usa o modelo de mistura gaussiana finita para agrupar os dados e estima iterativamente um conjunto de parâmetros até que um valor de convergência desejado seja alcançado. O agrupamento EM produz resultados que diferem daqueles obtidos pelo agrupamento K-means.

Quais são as aplicações reais do algoritmo EM?

No campo da medicina, o algoritmo EM é usado para reconstrução de imagens. Também é usado para prever os parâmetros dos Modelos de Markov Ocultos (HMMs) e outros modelos mistos. Também ajuda na conclusão de dados ausentes em uma amostra específica. Parâmetros de itens e habilidades latentes em modelos de teoria de resposta ao item são estimados usando EM em psicometria. Também é amplamente utilizado no campo da engenharia estrutural.

Como o algoritmo MLE é diferente do algoritmo EM?

Na presença de variáveis ​​ocultas, o processo de estimativa de máxima verossimilhança simplesmente desafia os dados. O MLE inicialmente coleta todos os dados e os utiliza para construir o modelo mais provável. Com variáveis ​​latentes, o algoritmo de maximização de expectativa fornece uma solução iterativa para a estimativa de máxima verossimilhança. O EM primeiro faz uma estimativa educada dos parâmetros, depois verifica os dados ausentes e, em seguida, altera o modelo para se adequar às suposições educadas e aos dados observados.