期望最大化算法

上帝的算法——期望最大化算法

K-means算法实际过程和目标函数:

过程1:根据现有聚类结果,对所有数据进行重新划分。

过程2:根据重新划分的结果,得到新的聚类中心(模型)。

目标函数:点到聚类的距离总和d和聚类之间的距离D假设第一类到第k类中分别有n1,n2,...,nk个点,每一类中点到中心的距离是d1,d2,...,dk。则聚类距离总和为d=n1*d1+n2*d2+...+nk*dk。

设第i,j类中心的距离为Dij,加权D=∑(Dij*ni*nj/k(k-1))。


 

EM算法:

  1. 根据现有模型,计算各个观测数据输入到模型中的计算结果。Expectation 期望过程
  2. 重新计算模型参数,以最大化期望值。在上例中的D和-d。 Maximization 最大化过程

 

EM算法应用:

隐含马尔可夫模型  Baum-Welch算法

最大熵模型  GIS算法

K-Means算法

等等。。。


 

注意:

  1. 因为熵函数是一个凸函数,所以EM算法给出来的是全局最优解,但是很多情况,包括文本分类的余弦距离就不是凸函数,EM算法带来的就是局部最优解。
  2. EM算法只需要有训练数据和最大化函数,经过若干迭代,就能训练好模型。所以又称为上帝算法。

参考文献:

数学之美——吴军

posted @ 2017-03-09 15:57  zcbmxvn987  阅读(315)  评论(0编辑  收藏  举报