GMM(Gaussian mixture model, 高斯混合模型)

GMM全称是Gaussian mixture model (高斯混合模型)。与k-means算法类似,GMM也是一种常见的聚类算法,它与k-means区别主要在于,GMM是一种“软聚类”算法,通过它我们可以得到每个样本属于每个中心点的概率。正是因为它的这种性质,GMM在图像分割和语音处理中都有着广泛的应用。
对N个样本数据执行k-means可以得到K个中心点,而对其执行GMM之后将会得到K个高斯分布。使用公式1表示一个高斯分布,其中 θ 表示一个与 ϕ(xθ) 相关的位置参数( θ 可以表示期望或者标准差)。

ϕ(xθ)=12πσe(xμ)22σ2            公式1

由于GMM得到的是K个高斯分布,因此可以将结果表示成公式2。

P(xθ)=Kk=1wkϕ(xθk)            公式2

wk ϕ(xθk) 被选中的概率,所以有 Kk=1wk=1 ; wk0 接下来的任务就是估计出一组最优的参数 μ θ w ,这里使用最大似然估计求解。求解之前,先要做一个比较强的假设,所有样本数据相互独立。那么可以得到公式3所示的对数似然估计。

L(θ)=Ni=1logP(xiθ)=Ni=1logKk=1wkϕ(xiθk)            公式3

将要估计的最优值记作 θ^=argmaxθL(θ) 对于公式3所示的方程,很难通过直接求导令倒数为零这种方式获取最大值。因此在这里使用EM算法求解,EM算法的原理可以参考附录A。
在这里使用Jensen不等式来寻找下界函数,关于Jensen不等式的描述可以参考附录B。由于函数 f(x)=log(x) 是一个凹函数,所以这里要对原始的Jensen不等式的符号取反。令 γik 表示样本 xi 属于第k个中心的概率如公式4所示。所以可以得到公式5所示的推导。

γik=wkϕ(xiθk)Kk=1wkϕ(xiθk)            公式4
L(θ)=Ni=1logKk=1wkϕ(xiθk)
=Ni=1logKk=1γikwkϕ(xiθk)γik
=Ni=1logE[wkϕ(xiθk)γik]
Ni=1E[logwkϕ(xiθk)γik]
=Ni=1Kk=1γiklogwkϕ(xiθk)γik            公式5

为了便于后面的推导使用公式6表示上面不等式右边的部分。

H(w,μ,σ)=Ni=1Kk=1γik[(xiμk)2σ3k1σk]            公式6

将H分别对 μk , σk 求偏导

H(w,μ,σ)σk=Ni=1γik[(xiμk)2σ3k1σk]
H(w,μ,σ)μk=Ni=1γikxiμkσ2k

令倒数为0可以得到当前迭代中的最大值,此时

σ2k=Ni=1γik(xiμk)2Ni=1γik
μk=Ni=1γikxiNi=1γik

对于 wk 来说可以使用拉格朗日乘子法求极大值,在这里不列计算过程直接给出结果

wk=1NNi=1γik

将计算出来的新的 μk , σk , wk 带入 H(w,μ,σ) 得到新的值,通过比较前后值得变化是否小于阈值来决定是否停止迭代。停止迭代后就得到了最终的满足条件的K个高斯分布及其参数。

附录A EM算法

对于一个严格的凹函数 F(θ) 要求其最大值,可以先在 θt 处定义一个下界函数 Gθt(θ)F(θ) ,当且仅当 θ=θt Gθt(θ)=F(θ) 。因此令 θt+1=argmaxθGθt(θ) ,那么一定有下式成立

F(θt+1)Gθt(θt+1)Gθt(θt)=F(θt)

接着在 θt+1 处再定义一个下界函数 Gθt+1(θ) ,如此下去反复迭代, θt 最终会趋近于 θ^

附录B Jensen不等式

f(x) 为凸函数,那么存在如下的不等式恒成立

E[f(x)]f[E(x)]


from: http://www.duzhongxiang.com/gmm/

你可能感兴趣的:(计算机视觉CV)