Algoritmo EM para agrupamiento

El algoritmo EM es una herramienta útil de modelado de datos cuando no es posible maximizar la probabilidad "en la frente" mediante la diferenciación. El agrupamiento es una de las tareas en las que este algoritmo viene al rescate. El artículo proporciona una conclusión general del algoritmo EM para la agrupación.


Tarea


Muchos puntos X={xi,i1..N}debe dividirse enK agrupaciones.


Idea de la solución


Componemos un modelo probabilístico de la distribución de puntos a través de grupos. Encontremos los parámetros del modelo para los cuales la probabilidad de observar el conjuntoX máximo. Con estos parámetros, podremos determinar a qué grupo pertenece el punto más probable.x .


Modelo de datos


Introducimos una serie de notación prestada del curso .


p(x)es la probabilidad de observar un puntox .


p(X)=i=1Np(xi)- probabilidad de observar el conjuntoX .


pj(x)=φ(x;θj)- probabilidad de cumplir el puntox en el clústerj . Esta distribución está parametrizada por un parámetro (o vector de parámetros)θj individual para el clústerj .


wjes la probabilidad del grupoj , es decir la probabilidad de que un punto seleccionado aleatoriamente pertenezca a un grupoj . Un punto seleccionado al azar se refiere exactamente a un grupo, por lo quej=1Kwj=1 .


De las definiciones anteriores se deduce que p(x)=j=1Kwjpj(x)=j=1Kwjφ(x;θj), .. .


, X:


p(X)=i=1N(j=1Kwjφ(xi;θj))



wθ, , :


w,θ=argmax p(X)=argmax logp(X)=argmaxw,θi=1Nlog(j=1Kwjφ(xi;θj))


. j=1Kwj=1(, TensorFlow PyTorch).


:


L :=   log p(X)
while log p(X)  :
     L  log p(X)
    w, theta = argmax L

, logp(X), . L:


  1. L: "" , logp(X).
  2. wθ, L.

, "" , .


L


:


logp(X)=i=1Nlog(j=1Kwjφ(xi;θj))


. gixi:


gi(j)p( j| i)


:


i=1Nlog(j=1Kwjφ(xi;θj))=i=1Nlog(j=1Kgi(j)gi(j)wjφ(xi;θj))


. :


log(iqixi)iqilogxi


, qi1.


gi(j): j=1Kgi(j)=1. :


i=1Nlog(j=1Kgi(j)gi(j)wjφ(xi;θj))i=1Nj=1Kgi(j)log(wjφ(xi;θj)gi(j))


:


L(g,w,θ)i=1Nj=1Kgi(j)log(wjφ(xi;θj)gi(j))


L(E-)


L(g,w,θ)logp(X). wθ, Lg.


logp(X)L, , :


logp(X)L(g,w,θ)=i=1Nlogp(xi)i=1Nj=1Kgi(j)log(wjφ(xi;θj)gi(j))=


=i=1N(logp(xi)j=1Kgi(j)j=1Kgi(j)logwjφ(xi;θj)gi(j))=i=1Nj=1Kgi(j)logp(xi)gi(j)wjφ(xi;θj)


, j:


p(j|xi)=φ(xi;θj)wjp(xi)


:


i=1Nj=1Kgi(j)logp(xi)gi(j)wjφ(xi;θj)=i=1Nj=1Kgi(j)loggi(j)p(j|xi)=i=1NEgigip(j|xi)


: . - ( KL-) "" .


, logp(X)L— KL-:


logp(X)L(g,w,θ)=i=1NKL(gi||p(j|xi))


KL- , , — KL- . : KL- , — . gi(j)p(j|xi):


gi(j)=p(j|xi)=wjφ(xi;θj)p(xi)


gi(j)Llogp(X).


L(M-)


: . :


  • g;
  • wθ.

L:


L(g,θ)=i=1N(j=1Kgi(j)logwjp(xi;θj)gi(j))=


=i=1Nj=1Kgi(j)log(wjp(xi;θj))i=1Nj=1Kgi(j)loggi(j)


El segundo término es independiente de los parámetros. wy θ, por lo tanto, optimizaremos aún más solo el primer término:


w,θ=argmaxw,θi=1Nj=1Kgi(j)log(wjφ(xi;θj))


Descomponemos el logaritmo del producto en la suma de los logaritmos y obtenemos:


w=argmaxwi=1Nj=1Kgi(j)logwj,   j=1wj=1


θj=argmaxi=1Ngi(j)logφ(xi;θj)


El primer problema se resuelve con el método multiplicador de Lagrange. Resultado:


wj=1Ni=1Ngi(j)


La solución al segundo problema depende del tipo específico de distribución del clúster. φ(xi;θj). Como puede ver, para su solución, ya no tiene que lidiar con la suma bajo el signo del logaritmo, por lo tanto, por ejemplo, para distribuciones gaussianas, la solución puede escribirse analíticamente.


Total


Descubrimos la esencia de las iteraciones del algoritmo EM para la agrupación y vimos cómo sus fórmulas se derivan de manera general.


All Articles