EM算法之高斯混合模型详细推导过程

高斯混合模型



如果有c个高斯分布,并且这k个个高斯分布的选择都符合多项式分布,那么有下面的公式


那么样本x 是一个服从多元高斯分布的随机试验中产生的抽样


那么可以写出关于样本值(第i个样本)的概率密度函数,假设一共c个类别


那么我们可以定义m个观测样本的对数似然函数

对数复合函数求导公式

代入上面的值进一步可以写成下面的式子


由于对第k个正态分布的均值求偏导,因此除第k个正态分布外,其他分部不包含第k个正态分布均值的信息,  


再利用对数复合函数求导得到

求和符号后面这一部分看出是什么了吗?这不是条件概率么?


整理得到


对多元正态分布函数取对数

对多元正态分布函数取对数后求第k个分量均值的偏导数

如果令,那么进一步得到


其中    

将该结论代入上面的公式整理得到


我们要最大化释然函数,必然要求对各个估计参数的偏导要等于0




其中,那么得到



解出


下面对第K个分量的方差求偏导



第k个分量更其他的不相关,因此对第k个分量求方差的偏导有下面的公式





利用如下公式

由于是标量,因此标量的迹等于自己,得到下面的公式

再利用迹的性质

那么利用这个策略可以得到下面的结论




经过这么多的计算后,终于可以得到对第k个分量求协方差的偏导了


那么似然函数对第k个分量的协方差的偏导如下:



要使得似然函数取最大,就要使得对协方差的偏导为0,那么有如下结论:


因为对协方差的偏导为0,那么有下面结论


这里的协方差是一个实对称正,因此其转置等于自身,为什么是对称的呢?


对上面式子左乘和右乘一个协方差阵得到:



那么可以得到如下关于协方差的值,使得释然函数最大


到这里已经把混合高斯分布关于均值和协方差的参数值求出来了,下面还剩一个关于k个分量的比例的问题了




现在来看在各个分量的条件下要使得释然函数最大,这是一个优化问题


那么需要利用拉格朗日方法来求关于分量的估计

构造拉格朗日目标函数如下:


对拉格朗日目标函数求分量的偏导


上面是利用了对数求导的性质


那么要使得拉格朗日目标函数取得0,有下面的结论


整理得到



由于有条件,那么进一步得到

将这个结果带人第k个分量得到



其中


自此,得到了关于均值,协方差,和分量这三个参数的估计公式,总结如下


到这里,理论的推导似乎已经完成了,但是事情还没有结束

从上面的结论看,均值,方差阵,和分量概率的估计都用到了,这是估计一个点由某一个分量生成的概率

为了得到这个概率,我们又要用到

 

其中又包含了我们待估计的均值,方差阵等参数,这样就是会产生一个互相依赖的情况,鸡依赖蛋,蛋依赖鸡的问题,对这种问题,一般的解决办法先弄一个蛋来孵化一个鸡出来,然后在让这只鸡来孵化蛋,不管先出现那一个,后面的一个都是跟着相应的变化,最后得到答案来。


想一下坐标上升法里面的做法,先固定其他的量,求其中一个参数的最大值,然后依次轮换坐标来求最大,最后会得到一个

稳定的值,只不过这个极值是局部的,后面专门讲EM算法会专门讲这个问题,这里就先用这个思想来处理




现在来看看具体的求某一个点由某个分量生成的概率



为了让蛋孵鸡,鸡生蛋,我们需要先要弄一个蛋出来,这个蛋就是,均值,方差阵,分量概率的初始值

下面把流程总结一下


  1. 先构造一个鸡蛋出来


  2. 计算某个点由某个分量生成的概率(孵小鸡),直到收敛


  3. 重新构造鸡蛋(鸡生蛋)

    跳转到第二步



但是为了理解上得方便,这里给出一个二维情况下得例子

假设有3个分量,分别如下




注意事项:


1. 初始值的选择


分量要做归一化处理

均值可以随机产生

方差,需要保证是对称阵和行列式大于0,也就是正定阵,非奇异性

否则计算会错误


2. 样本点数小于特征数量

计算的协方差阵是奇异的,因此需要对协方差做相应的假设,比如是对角阵甚至是对角阵元素相同

这种假设过强,忽略了特征直接的依赖关系,当对角阵元素都相同的时候,就退化成特征直接是独立的了


因此可以考虑其他的如因子分析等方法

参考如下:

http://www.cnblogs.com/jerrylead/archive/2011/05/11/2043317.html



详细推导过程

http://www.cs.cmu.edu/~awm/doc/gmm-algebra.pdf

http://www.docin.com/p-110400201.html

http://en.wikipedia.org/wiki/Matrix_calculus

http://www.myexception.cn/software/968521.html

 








  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值