EM聚类算法

当无法通过差异最大化“额头”可能性时,EM算法是有用的数据建模工具。聚类是该算法的主要任务之一。本文提供了用于聚类的EM算法的一般结论。


任务


很多点 X={xi,i∈1..N}必须被分成K群集。


解决思路


我们组成了集群中点分布的概率模型。我们找到模型参数,可以观察到这些参数X最大值。使用这些参数,我们将能够确定最可能的点属于哪个群集。x。


资料模型


我们介绍了本课程中使用的一系列符号。


p(x)是观察一个点的概率x。


p(X)=∏i=1Np(xi)-观察集合的概率X。


pj(x)=φ(x;θj)-概率满足点x集群中的 xj。此分布通过参数(或参数向量)进行参数化θj个体为集群j。


wj是聚类的概率j,即 随机选择的点属于聚类的概率j。随机选择的点恰好是指一个簇,因此∑j=1Kwj=1。


从上面的定义可以得出: p(x)=∑j=1Kwjpj(x)=∑j=1Kwjφ(x;θj), .. .


, X:


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



wθ, , :


w,θ=argmax p(X)=argmax log⁡p(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

, log⁡p(X), . L:


  1. L: "" , log⁡p(X).
  2. wθ, L.

, "" , .


L


:


log⁡p(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)≥∑iqilog⁡xi


, qi1.


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


∑i=1Nlog⁡(∑j=1Kgi(j)gi(j)wjφ(xi;θj))≥∑i=1N∑j=1Kgi(j)log⁡(wjφ(xi;θj)gi(j))


:


L(g,w,θ)≡∑i=1N∑j=1Kgi(j)log⁡(wjφ(xi;θj)gi(j))


L(E-)


L(g,w,θ)log⁡p(X). wθ, Lg.


log⁡p(X)L, , :


log⁡p(X)−L(g,w,θ)=∑i=1Nlog⁡p(xi)−∑i=1N∑j=1Kgi(j)log⁡(wjφ(xi;θj)gi(j))=


=∑i=1N(log⁡p(xi)∑j=1Kgi(j)−∑j=1Kgi(j)log⁡wjφ(xi;θj)gi(j))=∑i=1N∑j=1Kgi(j)log⁡p(xi)gi(j)wjφ(xi;θj)


, j:


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


:


∑i=1N∑j=1Kgi(j)log⁡p(xi)gi(j)wjφ(xi;θj)=∑i=1N∑j=1Kgi(j)log⁡gi(j)p(j|xi)=∑i=1NEgigip(j|xi)


: . - ( KL-) "" .


, log⁡p(X)L— KL-:


log⁡p(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)Llog⁡p(X).


L(M-)


: . :


  • g;
  • wθ.

L:


L(g,θ)=∑i=1N(∑j=1Kgi(j)log⁡wjp(xi;θj)gi(j))=


=∑i=1N∑j=1Kgi(j)log⁡(wjp(xi;θj))−∑i=1N∑j=1Kgi(j)log⁡gi(j)


第二项与参数无关 w和 θ,因此,我们将仅进一步优化第一个术语:


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


我们将乘积对数分解为对数之和,得到:


w=argmaxw∑i=1N∑j=1Kgi(j)log⁡wj,   ∑j=1wj=1


θj=argmax∑i=1Ngi(j)log⁡φ(xi;θj)


第一个问题通过拉格朗日乘数法解决。结果:


wj=1N∑i=1Ngi(j)


第二个问题的解决方案取决于集群分布的特定类型 φ(xi;θj)。如您所见,对于其解决方案,您不再需要以对数的符号处理总和,因此,例如,对于高斯分布,该解决方案可以解析地编写。


总


我们发现了用于聚类的EM算法迭代的本质,并了解了它们的公式是如何以一般方式导出的。


All Articles