Algorithme EM pour le clustering

L'algorithme EM est un outil de modélisation de données utile lorsqu'il n'est pas possible de maximiser la probabilité "sur le front" grâce à la différenciation. Le clustering est l'une des tâches où cet algorithme vient à la rescousse. L'article fournit une conclusion générale de l'algorithme EM pour le clustering.


Tâche


Beaucoup de points X={xi,i1..N}doivent être décomposés en Kclusters.


Idée de solution


Nous composons un modèle probabiliste de la distribution des points à travers les grappes. Trouvons les paramètres du modèle pour lesquels la probabilité d'observer l'ensembleXmaximum. Avec ces paramètres, nous serons en mesure de déterminer à quel cluster appartient le point le plus probable.x.


Modèle de données


Nous introduisons une série de notation empruntée au cours .


p(x)- la probabilité d'observer un point x.


p(X)=i=1Np(xi)- la probabilité d’observer plusieurs X.


pj(x)=φ(x;θj)- probabilité de rencontrer un point xdans un cluster j. Cette distribution est paramétrée par un paramètre (ou vecteur de paramètre)θjspécifique au cluster j.


wj- probabilité de cluster j, c'est à dire. la probabilité qu'un point sélectionné au hasard appartient à un clusterj. Un point sélectionné au hasard fait exactement référence à un cluster, doncj=1Kwj=1.


Il ressort des définitions ci-dessus que p(x)=j=1Kwjpj(x)=j=1Kwjφ(x;θj), c'est à dire. la distribution des points est modélisée comme un mélange de distributions de grappes.


En conséquence, le modèle probabiliste de l'ensemble de points X:


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


Recherche de paramètres


Paramètres du modèle wet θ, comme indiqué ci-dessus, devrait fournir la probabilité maximale pour nos données:


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


La somme sous le signe du logarithme interfère avec la résolution analytique du problème. Limitationj=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-)


: . :


  • gfixé;
  • paramètres wet θsous réserve d'optimisation.

Simplifiez avant l'optimisation 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)


Le deuxième terme est indépendant des paramètres wet θPar conséquent, nous n'optimiserons davantage que le premier terme:


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


Nous décomposons le logarithme du produit en la somme des logarithmes et obtenons:


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


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


Le premier problème est résolu par la méthode du multiplicateur de Lagrange. Résultat:


wj=1Ni=1Ngi(j)


La solution au deuxième problème dépend du type spécifique de distribution de cluster φ(xi;θj). Comme vous pouvez le voir, pour sa solution, vous n'avez plus à traiter la somme sous le signe du logarithme, donc, par exemple, pour les distributions gaussiennes, la solution peut être écrite analytiquement.


Total


Nous avons découvert l'essence des itérations de l'algorithme EM pour le clustering et vu comment leurs formules sont dérivées de manière générale.


All Articles