GMM的EM算法推导

1、样本说明

对于一组样本X={xt,t=1,2,...,T},xt符合i.i.d(独立同分布),于是就有:
       --------------------1
       取对数(连乘的运算较联和复杂得多,所以用取对数进行简化): 
       --------------------2
       其中θ为xt的特征参数。


2、EM算法推导


对于样本,我们想找到每个样例隐含的类别z,能使得p(x,z)最大,直接对θ进行求解比较困难,对隐含变量z求解会简单的多。

EM是一种解决存在隐含变量优化问题的有效方法。既然不能直接最大化L(X;θ),我们可以不断地建立L(X;θ)的下界(E步),然后优化下界(M步)。具体如下:

对于每个样例,用Qt表示该样例的隐含变量z的某种分布,Qt满足∑Qt(z)=1,Qt(z)>=0(如果Qt是连续的概率密度函数,则求和变积分)。

上1、2式有:

  -------------------3,

对于上3式,利用了Jensen不等式:

{

如果f为凸函数(存在二阶导数且≤0),那么f(E[x])≤E[f(x)],当且仅当x为常数时等式成立。

上3式中,由于∑Qt(z)=1,Qt(z)>=0,则

即为的期望

}

我们想要等号成立,必须使

(C为常数)。

∑Qt(z)=1,Qt(z)>=0,再根据贝叶斯概率公式()得:


-------------------4,

得(已知xk情况下zk的后验概率):


这样就解决了Qt(z)的选值问题。

循环至收敛

{

E-step:选择Qt(z),建立L(X;θ)的下界,对于每个xt计算:-------------------5

M-step:给定Qt(z),调整θ去极大化L(X;θ)的下界:-------------------6

}

对于EM算法收敛的求证这里不做证明,主要参考博文请戳这里(EM算法)


3、GMM


GMM(Gaussian Mixture Model)高斯混合模型,是一种用有限个高斯混合模型进行概率密度函数逼近的方法,每个 Gaussian 称为一个“Component”,这些 Component 线性加成在一起就组成了 GMM 的概率密度函数:

--------------------7

--------------------8

其中,wk表示权值,uk表示均值,∑k表示方差,并:

得完整表达式:

-------------------9

由于在对数函数里面又有加和,我们没法直接用求导解方程的办法直接求得最大值。为了解决这个问题,我们采取EM算法。

循环至收敛
{

1、E-step:估计数据由每个 Component 生成的概率(并不是每个 Component 被选中的概率):对于每个数据 x_t来说,它由第 k 个 Component 生成的概率为:


由于式子里的 uk和∑k也是需要我们估计的值,采用迭代法,在计算r(t,k) 的时候我们假定uk和∑k均已知,取为上一次迭代所得的值(或者初始值)。

2、M-step:估计每个 Component 的参数:现在我们假设上一步中得到的r(t,k) 就是正确的”数据 xt由 Component k 生成的概率”,亦可以当做该 Component在生成这个数据上所做的贡献。由于每个 Component 都是一个标准的 Gaussian 分布,可以很容易分布求出最大似然所对应的参数值θ={Wk,Uk,∑k}

对于似然函数,对参数求偏导


(1)对于uk一阶导(省去无关项):


偏导等于0时解得:

(2)对于wk一阶导(省去无关项):


由于,Wk≥0,构造拉格朗日算子


偏导等于0时解得:

再次使用得到:

进而得到:


(3)对于∑k一阶导(同理,但矩阵运算过复杂):


(4)总结一下,M-step获得:

{

}

}

到此即求出GMM的EM的优化解法。


4、总结


(1)Fisher Vector多用GMM进行求解,GMM多用EM进行优化,一脉相承。

(2)此文中t=1--T表示样本的T个特征点,k=1--K表示某个特征点用K个高斯分布进行逼近。Wk表权值,Uk表均值,∑k表方差,r(t,k)表后验概率。

(3)此文内容来各大大牛的博文,独家整理,理解贯通,如有理解错误之处会努力更正。


5、参考文献


(1)EM算法:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

(2)GMM:http://blog.pluskid.org/?p=39

(3)GMM:http://blog.csdn.net/abcjennifer/article/details/8198352

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值