¿Qué es el algoritmo em, cómo se hace paso a paso?

Es muy similar al algoritmo de agrupamiento de k significa, en el que dado k máximo no. de racimos, k no. de las observaciones llamadas centros de grupo se seleccionan al azar. Asigne cada observación a los grupos calculando la distancia entre las observaciones y los centros de grupo de manera que la media entre los grupos sea lo más diferente posible entre sí.

En lugar de asignar observaciones a grupos para maximizar las diferencias en las medias para las variables continuas, el algoritmo de agrupación EM calcula las probabilidades de pertenencia a grupos.

Algoritmo de agrupamiento EM para variables continuas paso a paso:

  1. Seleccione k observaciones al azar. Estas son las medias iniciales del grupo.
  2. Calcular la varianza de cada grupo.
  3. El uso de la media y la varianza del grupo genera una distribución gaussiana multivariada para cada grupo
  4. Calcule la probabilidad de que cada observación caiga en cada grupo utilizando la Distribución Gaussiana, cada observación pertenece a cada grupo con una cierta probabilidad.
  5. Por último, las observaciones se asignarán al grupo en función de la mayor probabilidad de clasificación.

El algoritmo Expectation Maximization Aka EM es un algoritmo que se puede utilizar para encontrar parámetros óptimos de un modelo que involucra variables latentes. (No observado)

Tomemos el ejemplo de la mezcla del modelo gaussiano. Aquí las variables latentes son las z.

La optimización directa de la función de probabilidad da como resultado valores de parámetros que, en sí mismos, son funciones de la probabilidad posterior de las variables latentes.

Es decir, ¡no obtenemos una solución de forma cerrada!

Intuición detrás de EM

Aquí hay una caricatura que representa al EM
Cortesía de Andrew Ng.

Suponga que la función de probabilidad es cóncava. ¡Esto resulta ser cierto para la mayoría de los modelos con los que trabajamos! Por lo tanto, habrá un máximo único.

1) Primero inicializamos aleatoriamente los parámetros.
2) En el valor actual de theta, digamos theta 1, obtenemos una relación, digamos l (theta1) menor que la probabilidad de los datos. Es decir, obtener un límite inferior.
3) Hacemos que el límite inferior sea ajustado al valor actual de theta.
4) optimizar este límite inferior
5) Esto se repite hasta la convergencia.

Procedimiento EM

1.Inicialice los parámetros de los modelos, ya sea al azar o haciendo un paso previo (para el modelo de mezcla, es común ejecutar K significa primero inicializar los coeficientes de mezcla).

2. Paso E: Encuentre las probabilidades posteriores de la variable latente dados los valores actuales de los parámetros.

3. Paso M: Reestime los valores de los parámetros dadas las probabilidades posteriores actuales.

4. Repita 2-3 hasta que se note la convergencia. Esto se realiza mediante el Monitoreo de la probabilidad de la función de verosimilitud (theta).

Esencialmente, lo que hace el paso M es maximizar el valor esperado del registro de datos completo de probabilidad Ie log p (x, z | theta) donde se dibujan las expectativas con respecto a la distribución posterior de las variables latentes obtenidas del paso E.
¡Espero que esto ayude!

More Interesting

¿Aprender las estructuras de datos usando Python en lugar de C afectará mi comprensión de las estructuras de datos?

¿Cuál es la diferencia entre el algoritmo codicioso y la programación dinámica? ¿Es un programa codicioso un subconjunto de programación dinámica?

¿Cuántas repeticiones del algoritmo L, U, R, D en un cubo de Rubik se necesitarían para revertir el cubo a su permutación original?

En IA, ¿los datos son más importantes que los algoritmos?

¿Cuál es el algoritmo más eficiente y efectivo para la detección de anomalías / valores atípicos cuando los datos tienen un pico / valle estacional?

¿Por qué utilizar el árbol de búsqueda ternario en lugar de reemplazar cada nodo de Trie a un árbol BST?

He estado tratando de aprender el análisis de algoritmos usando el libro CLRS, sin embargo, encuentro que ese libro es difícil de entender. ¿Soy el único?

¿Es difícil seguir 100 días de algoritmos?

Tengo la cadena de entrada, también tengo la cadena encriptada. ¿Cómo averiguo qué algoritmo de cifrado se utilizó?

¿Cuál es la idea central detrás de los algoritmos genéticos?

¿Cómo lidiar con la gestión eficiente de versiones y la compresión de múltiples versiones para bases de datos científicas?

¿Qué algoritmo debo usar para codificar un solucionador de Sudoku usando la teoría de grafos?

¿Cuál es la diferencia entre el recorrido del gráfico dirigido y el no dirigido (específicamente en C)?

¿Cómo podemos implementar el algoritmo de Prim rápidamente en los concursos de programación?

Cómo memorizar los algoritmos del cubo de Rubik