GMM全称是Gaussian mixture model (高斯混合模型)。与k-means算法类似,GMM也是一种常见的聚类算法,它与k-means区别主要在于,GMM是一种“软聚类”算法,通过它我们可以得到每个样本属于每个中心点的概率。正是因为它的这种性质,GMM在图像分割和语音处理中都有着广泛的应用。
对N个样本数据执行k-means可以得到K个中心点,而对其执行GMM之后将会得到K个高斯分布。使用公式1表示一个高斯分布,其中θ表示一个与ϕ(x∣θ)相关的位置参数(θ可以表示期望或者标准差)。
由于GMM得到的是K个高斯分布,因此可以将结果表示成公式2。
wk为ϕ(x∣θk)被选中的概率,所以有∑Kk=1wk=1;wk≥0接下来的任务就是估计出一组最优的参数μ、θ和w,这里使用最大似然估计求解。求解之前,先要做一个比较强的假设,所有样本数据相互独立。那么可以得到公式3所示的对数似然估计。
将要估计的最优值记作θ^=argmaxθL(θ)对于公式3所示的方程,很难通过直接求导令倒数为零这种方式获取最大值。因此在这里使用EM算法求解,EM算法的原理可以参考附录A。
在这里使用Jensen不等式来寻找下界函数,关于Jensen不等式的描述可以参考附录B。由于函数f(x)=log(x)是一个凹函数,所以这里要对原始的Jensen不等式的符号取反。令γik表示样本xi属于第k个中心的概率如公式4所示。所以可以得到公式5所示的推导。
为了便于后面的推导使用公式6表示上面不等式右边的部分。
将H分别对μk,σk求偏导
令倒数为0可以得到当前迭代中的最大值,此时
对于wk来说可以使用拉格朗日乘子法求极大值,在这里不列计算过程直接给出结果
将计算出来的新的μk,σk,wk带入H(w,μ,σ)得到新的值,通过比较前后值得变化是否小于阈值来决定是否停止迭代。停止迭代后就得到了最终的满足条件的K个高斯分布及其参数。
附录A EM算法
对于一个严格的凹函数F(θ)要求其最大值,可以先在θt处定义一个下界函数Gθt(θ)≤F(θ),当且仅当θ=θt时Gθt(θ)=F(θ)。因此令θt+1=argmaxθGθt(θ),那么一定有下式成立
接着在θt+1处再定义一个下界函数Gθt+1(θ),如此下去反复迭代,θt最终会趋近于θ^。
附录B Jensen不等式
设f(x)为凸函数,那么存在如下的不等式恒成立
from: http://www.duzhongxiang.com/gmm/