“上帝的算法”——EM
写在前面:最近看完了吴军的《数学之美》,大赞!相比《统计学习方法》、《机器学习》来说,《数学之美》没有那么多的公式理论,全是科普性质的(开拓眼界),其中也不乏一些数学原理的解释,通俗易懂。作为一名数据挖掘爱好者,我觉得这本书是非常值得一读的,可以了解过去机器学习在自然语言处理、搜索广告以及大数据相关领域的发展。书中有一章节,吴军博士命名为:上帝的算法——期望最大化算法,可见作者对该算法的肯定。之前自己有了解过EM算法,但是没有细究,看完数学之美后决定认真学习下这个神奇的算法。
注:本文主要根据《数学之美》、《统计学习方法》以及《机器学习》以及一些大牛的博客讲解我对EM算法的初识,算法步骤的学习、推导以及公式的理解,现在并不能将EM算法通俗易懂的解释出来(功力不够),有兴趣的可以看下这位大神的EM算法讲解以及JerryLead的博客。
补充: 2017.02.26
最近看了K-Means与GMM相关的博文,其中都用到了EM的算法思想,以下几位大神已经总结非常好了,并且有代码实现,值得关注学习!推荐一波:
KMeans:
wepon:http://blog.csdn.net/u012162613/article/details/47811235
qll125596718:http://blog.csdn.net/qll125596718/article/details/8243404
GMM:
pluskid:http://blog.pluskid.org/?p=39
JerryLead:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
Rachel-Zhang:http://blog.csdn.net/abcjennifer/article/details/8198352
enjoyhot:http://blog.csdn.net/gugugujiawei/article/details/45583051
笔记:
事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其中某一个 cluster 了,而 GMM 则给出这些数据点被 assign 到每个 cluster 的概率,又称作 soft assignment 。
那么如何用 GMM 来做 clustering 呢?其实很简单,现在我们有了数据,假定它们是由 GMM 生成出来的,那么我们只要根据数据推出 GMM 的概率分布来就可以了,然后 GMM 的 K 个 Component 实际上就对应了 K 个 cluster 了。根据数据来推算概率密度通常被称作 density estimation ,特别地,当我们在已知(或假定)了概率密度函数的形式,而要估计其中的参数的过程被称作“参数估计”。
GMM 的 log-likelihood function :