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/