¿Qué es el Algoritmo EM en Machine Learning? [Explicado con ejemplos]
Publicado: 2021-03-10El algoritmo EM o algoritmo de maximización de expectativas es un modelo de variable latente propuesto por Arthur Dempster, Nan Laird y Donald Rubin en 1977.
Un modelo de variable latente comprende variables observables y variables no observables. Las variables observadas son aquellas que se pueden medir, mientras que las variables no observadas (latentes/ocultas) se infieren de las variables observadas.
Como explicó el trío, el algoritmo EM se puede usar para determinar los parámetros locales de máxima verosimilitud (MLE) o los parámetros máximos a posteriori (MAP) para variables latentes (variables no observables que deben inferirse de variables observables) en un modelo estadístico. Se utiliza para predecir estos valores o determinar datos que faltan o están incompletos, siempre que conozca la forma general de distribución de probabilidad asociada con estas variables latentes.
En pocas palabras, el principio general detrás del algoritmo EM en el aprendizaje automático implica el uso de instancias observables de variables latentes para predecir valores en instancias que no son observables para el aprendizaje. Esto se hace hasta que se produce la convergencia de los valores.
El algoritmo es una herramienta bastante poderosa en el aprendizaje automático y es una combinación de muchos algoritmos no supervisados. Esto incluye el algoritmo de agrupamiento k-means, entre otras variantes del algoritmo EM.
Únase al curso de aprendizaje automático en línea de las mejores universidades del mundo: maestrías, programas ejecutivos de posgrado y programa de certificado avanzado en ML e IA para acelerar su carrera.
Tabla de contenido
El algoritmo de maximización de expectativas
Exploremos el mecanismo del algoritmo de maximización de expectativas en el aprendizaje automático:
Fuente
- Paso 1: Tenemos un conjunto de datos faltantes o incompletos y otro conjunto de parámetros iniciales. Suponemos que los datos observados o los valores iniciales de los parámetros se generan a partir de un modelo específico.
- Paso 2: Con base en el valor observable en las instancias observables de los datos disponibles, predeciremos o estimaremos los valores en las instancias no observables de los datos o los datos faltantes. Esto se conoce como el paso de Expectativa (E – paso).
- Paso 3: Utilizando los datos generados a partir del paso E, actualizaremos los parámetros y completaremos el conjunto de datos. Esto se conoce como el paso de Maximización (M – paso) que se utiliza para actualizar la hipótesis.
Los pasos 2 y 3 se repiten hasta la convergencia. Es decir, si los valores no convergen, repetiremos el paso E y el paso M.
.
Fuente
Ventajas y desventajas del algoritmo EM
Desventajas del algoritmo EM | |
1 | Cada iteración en el algoritmo EM da como resultado un aumento garantizado en la probabilidad. |
2 | El paso de expectativa y el paso de maximización son bastante fáciles y la solución para este último existe principalmente en forma cerrada. |
Ventajas del Algoritmo EM | |
1 | El algoritmo de maximización de expectativas tiene en cuenta las probabilidades hacia adelante y hacia atrás. Esto contrasta con la optimización numérica que solo tiene en cuenta las probabilidades futuras. |
2 | La convergencia del algoritmo EM es muy lenta y solo se realiza en los óptimos locales. |
Aplicaciones del Algoritmo EM
El modelo de variable latente tiene muchas aplicaciones del mundo real en el aprendizaje automático.
- Se utiliza en la agrupación de datos no supervisados y el análisis psicométrico.
- También se utiliza para calcular la densidad gaussiana de una función.
- El algoritmo EM encuentra un uso extensivo en la predicción de los parámetros del modelo oculto de Markov (HMM) y otros modelos mixtos.
- El algoritmo EM encuentra mucho uso en el procesamiento del lenguaje natural (NLP), la visión por computadora y la genética cuantitativa.
- Otras aplicaciones importantes del algoritmo EM incluyen la reconstrucción de imágenes en el campo de la medicina y la ingeniería estructural.
Comprendamos el algoritmo EM utilizando un modelo de mezcla gaussiana.
Algoritmo EM para el modelo de mezcla gaussiana
Para estimar los parámetros de un modelo de mezcla gaussiana, necesitaremos algunas variables observadas generadas por dos procesos separados cuyas distribuciones de probabilidad se conocen. Sin embargo, los puntos de datos de los dos procesos se combinan y no sabemos a qué distribución pertenecen.
Nuestro objetivo es estimar los parámetros de estas distribuciones utilizando la estimación de Máxima Verosimilitud del algoritmo EM como se explicó anteriormente.
Aquí está el código que usaremos:
# Dada una función para la cual tenemos que calcular la densidad de
# Gaussiana en el punto x_i dado mu, sigma: G(x_i, mu, sigma); y
# otra función para calcular las log-verosimilitudes: L(x, mu, sigma, pi)
def estimar_gmm(x, K, tol=0.001, max_iter=100):
”' Estimar parámetros GMM.
:param x: lista de variables reales observadas
:param K: número entero para el número de gaussianas
:param tol: cambio tolerado para log-verosimilitud
:return: parámetros mu, sigma, pi
”'
# 0. Inicializar theta = (mu, sigma, pi)
N = largo(x)
mu, sigma = [rand()] * K, [rand()] * K
pi = [rand()] * K
curr_L = np.inf
para j en el rango (max_iter):
anterior_L = actual_L
# 1. Paso E: responsabilidad = p(z_i = k | x_i, theta^(t-1))
r = {}
para i en el rango (N):
partes = [pi[k] * G(x_i, mu[k], sigma[k]) para i en rango(K)]
total = suma(partes)
para i en k:
r[(i, k)] = partes[k] / total
# 2. M-step: actualizar valores mu, sigma, pi
rk = [suma([r[(i, k)] para i en el rango (N)]) para k en el rango (K)]
para k en el rango (K):
pi[k] = rk[k] / N
mu[k] = sum(r[(i, k)] * x[i] for i in range(N)) / rk[k]
sigma[k] = suma(r[(i, k)] * (x[i] – mu[k]) ** 2) / rk[k]
# 3. Verifique la condición de salida
curr_L = L(x, mu, sigma, pi)
si abs(prev_L – curr_L) < tol:
descanso
volver mu, sigma, pi
En el E-Step, podemos usar el teorema de Bayes para determinar los valores esperados de los puntos de datos dados que se extraen de las iteraciones pasadas del algoritmo. En el M-Step, asumimos que los valores de las variables latentes son fijos para estimar los proxies en las instancias no observadas usando la Máxima Verosimilitud. Finalmente, usamos las fórmulas de media estándar y desviación estándar para estimar los parámetros del modelo de mezcla gaussiana.
Conclusión
Esto nos lleva al final del artículo. Para obtener más información sobre los conceptos de aprendizaje automático, póngase en contacto con los mejores profesores de IIIT Bangalore y la Universidad John Moores de Liverpool a través del programa de Maestría en Ciencias en Aprendizaje Automático e IA de upGrad .
Es un curso de 18 meses que ofrece más de 450 horas de contenido de aprendizaje, más de 12 proyectos industriales, 10 opciones de proyectos Capstone y más de 10 asignaciones de codificación. También disfruta de tutoría personalizada de expertos de la industria y asesoramiento de orientación profesional a través de sesiones en vivo. ¡El próximo lote comienza el 28 de febrero de 2021!
¿Qué se entiende por agrupamiento de EM?
Para optimizar la probabilidad de los datos observados, se utiliza el agrupamiento EM para estimar las medias y las desviaciones estándar para cada conglomerado (distribución). Basado en combinaciones de distintas distribuciones en diferentes grupos, el algoritmo EM intenta aproximar las distribuciones de valores observadas. EM utiliza el modelo de mezcla gaussiana finita para agrupar datos y estima iterativamente un conjunto de parámetros hasta que se alcanza un valor de convergencia deseado. El agrupamiento de EM produce hallazgos que difieren de los obtenidos por el agrupamiento de K-medias.
¿Cuáles son las aplicaciones de la vida real del algoritmo EM?
En el ámbito de la medicina, el algoritmo EM se utiliza para la reconstrucción de imágenes. También se utiliza para pronosticar los parámetros de los modelos ocultos de Markov (HMM) y otros modelos mixtos. También ayuda a completar los datos que faltan en una muestra en particular. Los parámetros de los ítems y las habilidades latentes en los modelos de la teoría de la respuesta a los ítems se estiman usando EM en psicometría. También es ampliamente utilizado en el campo de la ingeniería estructural.
¿En qué se diferencia el algoritmo MLE del algoritmo EM?
En presencia de variables ocultas, el proceso de estimación de máxima verosimilitud simplemente desafía los datos. MLE recopila inicialmente todos los datos y luego los utiliza para construir el modelo más probable. Con variables latentes, el algoritmo de maximización de expectativas proporciona una solución iterativa para la estimación de máxima verosimilitud. EM primero hace una estimación informada de los parámetros, luego verifica los datos faltantes y luego cambia el modelo para adaptarse a las conjeturas informadas y los datos observados.