高斯混合模型
如果有c个高斯分布,并且这k个个高斯分布的选择都符合多项式分布,那么有下面的公式
那么样本x 是一个服从多元高斯分布的随机试验中产生的抽样
那么可以写出关于样本值(第i个样本)的概率密度函数,假设一共c个类别
那么我们可以定义m个观测样本的对数似然函数
对数复合函数求导公式
代入上面的值进一步可以写成下面的式子
由于对第k个正态分布的均值求偏导,因此除第k个正态分布外,其他分部不包含第k个正态分布均值的信息,
再利用对数复合函数求导得到
求和符号后面这一部分看出是什么了吗?这不是条件概率么?
整理得到
对多元正态分布函数取对数
对多元正态分布函数取对数后求第k个分量均值的偏导数
如果令,那么进一步得到
其中
将该结论代入上面的公式整理得到
我们要最大化释然函数,必然要求对各个估计参数的偏导要等于0
其中,那么得到
解出
下面对第K个分量的方差求偏导
第k个分量更其他的不相关,因此对第k个分量求方差的偏导有下面的公式
利用如下公式
由于是标量,因此标量的迹等于自己,得到下面的公式
再利用迹的性质
那么利用这个策略可以得到下面的结论
经过这么多的计算后,终于可以得到对第k个分量求协方差的偏导了
那么似然函数对第k个分量的协方差的偏导如下:
要使得似然函数取最大,就要使得对协方差的偏导为0,那么有如下结论:
因为对协方差的偏导为0,那么有下面结论
这里的协方差是一个实对称正,因此其转置等于自身,为什么是对称的呢?
对上面式子左乘和右乘一个协方差阵得到:
那么可以得到如下关于协方差的值,使得释然函数最大
到这里已经把混合高斯分布关于均值和协方差的参数值求出来了,下面还剩一个关于k个分量的比例的问题了
现在来看在各个分量的条件下要使得释然函数最大,这是一个优化问题
那么需要利用拉格朗日方法来求关于分量的估计
构造拉格朗日目标函数如下:
对拉格朗日目标函数求分量的偏导
上面是利用了对数求导的性质
那么要使得拉格朗日目标函数取得0,有下面的结论
整理得到
由于有条件,那么进一步得到
将这个结果带人第k个分量得到
其中
自此,得到了关于均值,协方差,和分量这三个参数的估计公式,总结如下
到这里,理论的推导似乎已经完成了,但是事情还没有结束
从上面的结论看,均值,方差阵,和分量概率的估计都用到了,这是估计一个点由某一个分量生成的概率
为了得到这个概率,我们又要用到
其中又包含了我们待估计的均值,方差阵等参数,这样就是会产生一个互相依赖的情况,鸡依赖蛋,蛋依赖鸡的问题,对这种问题,一般的解决办法先弄一个蛋来孵化一个鸡出来,然后在让这只鸡来孵化蛋,不管先出现那一个,后面的一个都是跟着相应的变化,最后得到答案来。
想一下坐标上升法里面的做法,先固定其他的量,求其中一个参数的最大值,然后依次轮换坐标来求最大,最后会得到一个
稳定的值,只不过这个极值是局部的,后面专门讲EM算法会专门讲这个问题,这里就先用这个思想来处理
现在来看看具体的求某一个点由某个分量生成的概率
为了让蛋孵鸡,鸡生蛋,我们需要先要弄一个蛋出来,这个蛋就是,均值,方差阵,分量概率的初始值
下面把流程总结一下
先构造一个鸡蛋出来
计算某个点由某个分量生成的概率(孵小鸡),直到收敛
重新构造鸡蛋(鸡生蛋)
跳转到第二步
但是为了理解上得方便,这里给出一个二维情况下得例子
假设有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