长期以来收益各位csdn大神的博客良多,今天起开始尝试学习他们用博客记录自己的一些学习和coding经历,算是一个备份,以后忘了好补回来。
今天又把EM算法求解GMM过了一遍,讲下理解的大致过程:
目的:求关于一堆样本的GMM,但是GMM相关的参数信息也不知道,只知道高斯的个数k,剩下的就是这么一堆单纯的训练样本向量;(比如,高斯是128个,样本是N多个SIFT,可以是原始的也可以是降维的)
那么,EM算法的第一步是初始化:需要初始化的参数有三类,Wi,MUi,SIGMAi,分别代表每个高斯的权重(或者说是概率)、均值和方差。对于单个高斯Zi来说,Wi是标量,另外两个是向量,和向量空间的维度一致。初始化的方法可以随机初始化,比较好的方法可以是先对样本做一个K-means,同样得到k个类,然后就可以根据训练的结果得到初始化的每个Wi,MUi,SIGMAi,初始化的Wi=当前K-means这个类i所包含的样本个数/样本总数,MUi=这个类i的均值,SIGMAi=这个类i的方差;
然后,就是EM算法了,下面直接参考自:http://www.cnblogs.com/zhangchaoyang/articles/2624882.html
PS:下面的π和我说的权重W是一