Parece que tu pregunta tiene dos partes: la idea subyacente y un ejemplo concreto. Voy a empezar con la idea subyacente, un enlace a un ejemplo en la parte inferior.
EM es útil en Catch-22 de situaciones donde parece que usted necesita saber $A$ antes de poder calcular el $B$ y usted necesita saber $B$ antes de poder calcular el $A$.
El caso más común a las personas a lidiar con es, probablemente, la mezcla de distribuciones. Para nuestro ejemplo, vamos a ver un sencillo modelo de mezcla de Gaussianas:
Se tienen dos diferentes univariante de distribución Gausiana con diferentes medios y de la unidad de la varianza.
Usted tiene un montón de puntos de datos, pero no estás seguro de qué puntos de vino de la cual la distribución, y tampoco está seguro acerca de los medios de las dos distribuciones.
Y ahora usted está atascado:
Si usted supiera la verdad significa, usted podría averiguar los puntos de datos de vino a partir de la cual Gaussiano. Por ejemplo, si un punto de datos tenía un valor muy alto, es probable que provenía de la distribución con la media más alta. Pero usted no sabe lo que los medios están, así que esto no va a funcionar.
Si usted sabía que la distribución de cada punto de vino, entonces se podría estimar que las dos distribuciones de' medios a utilizar el ejemplo de los medios de los puntos relevantes. Pero en realidad no sabe que los puntos a asignar a la cual la distribución, por lo que este no funciona bien.
Así que, ni el enfoque que parece que funciona: usted necesitaría saber la respuesta antes de que usted puede encontrar la respuesta, y le pegan.
Lo que EM te permite hacer es alternar entre estos dos fáciles pasos, en lugar de abordar todo el proceso a la vez.
Usted necesita para comenzar con una estimación acerca de los dos medios (aunque su conjetura no necesariamente tiene que ser muy precisa, usted tiene que comenzar en alguna parte).
Si su conjetura acerca de los medios era la correcta, entonces usted tendría suficiente información para llevar a cabo la paso en mi primera viñeta de arriba, y usted podría (probabilísticamente) asignar a cada punto de datos para uno de los dos Gaussianas. Aunque sabemos que nuestra conjetura es malo, vamos a intentarlo de todos modos. Y entonces, dado que cada punto asignado distribuciones usted podría obtener nuevas estimaciones para los medios el uso de la segunda viñeta. Resulta que, cada vez que hacemos el bucle a través de estos dos pasos, usted está mejorando un límite inferior en el modelo de la probabilidad.
Que ya está bastante chulo: aunque los dos sugerencias en los puntos anteriores no parecía que habían de trabajar de forma individual, se pueden usar juntos para mejorar el modelo. La verdadera magia de la EM es que, después de bastante iteraciones, el límite inferior será tan alta que no habrá ningún espacio entre ella y el máximo local. Como resultado, y ha localmente optimizado de la probabilidad.
Así que no sólo mejora el modelo, usted ha encontrado el mejor modelo posible, uno puede encontrar con actualizaciones incrementales.
Esta página de la Wikipedia muestra un poco más complicado (de dos dimensiones Gaussianas y desconocido covarianza), pero la idea básica es la misma. También incluye bien-comentó R
código para implementar el ejemplo.
En el código, la "Expectativa" de paso (E-step) corresponde a mi primera viñeta: averiguar que Gaussiano llega la responsabilidad de cada punto de datos, dada la actual parámetros para cada uno de Gauss. La "Maximización" de paso (M-paso) actualizaciones de los medios y covarianzas, dadas estas tareas, como en mi segunda viñeta.
Como se puede ver en la animación, estas actualizaciones rápidamente permitir que el algoritmo para pasar de un conjunto de terrible estimaciones para un conjunto de muy buenos: no realmente parecen ser dos nubes de puntos que se centra en las dos distribuciones de Gauss que EM encuentra.