混合高斯模型GMM和EM算法

时间:2021-08-21 09:52:02

一、    混合高斯模型

通过密度函数的线性合并获取未知的p(X)模型。形式如下:

混合高斯模型GMM和EM算法

混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法

即假设密度函数是由多个高斯密度函数组合而成,混合高斯模型GMM和EM算法为第z个高斯密度函数,混合高斯模型GMM和EM算法为第z个高斯密度函数占的权重(或者叫做概率)。用上述模型可以逼近任何连续密度函数,只要有足够的高斯密度函数和适当的参数。

在建立模型的时候,我们首先要确定的是混合高斯模型GMM和EM算法,其中混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法中的混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法是我们需要求得的参数。

通过最大似然法给出一个目标(此目标函数是取对数之后的似然函数):

混合高斯模型GMM和EM算法

需要求取当目标函数混合高斯模型GMM和EM算法达到最大值的时候对应的参数混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法的和混合高斯模型GMM和EM算法

假如已经知道x属于某个高斯分布混合高斯模型GMM和EM算法,参数混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法中的混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法的求取就会变得非常简单。不用最大似然估计一样能够算出来。混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法直接通过期望公式和协方差公式就可以求出来。而

 混合高斯模型GMM和EM算法

但是在实际上往往不知道属于哪个高斯分布。直接对似然函数求导来解会因为存在混合高斯模型GMM和EM算法项而变得十分麻烦。这时候就需要一个实际的算法对这个模型进行求解。下面的EM算法就是求解的一种常用的方法。EM的精髓就在利用Jensen不等式将混合高斯模型GMM和EM算法项消除进而进行求解。

二、    EM算法

对EM算法的理解参考自http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html,非常感谢JerryLead的详细讲解,但是感觉如果自己就是完全看明白、在草纸上推导一遍远没有自己详细的写出来记忆深刻,下面的内容多参考自JerryLead的(EM算法)The EM Algorithm。

1.     Jensen不等式

回顾优化理论中的一些概念。设f是定义域为实数的函数,如果对于所有的实数x,混合高斯模型GMM和EM算法,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的(混合高斯模型GMM和EM算法),那么f是凸函数。如果混合高斯模型GMM和EM算法或者混合高斯模型GMM和EM算法,那么称f是严格凸函数。

      Jensen不等式表述如下:

      如果f是凸函数,X是随机变量,那么

      混合高斯模型GMM和EM算法

      特别地,如果f是严格凸函数,那么混合高斯模型GMM和EM算法当且仅当混合高斯模型GMM和EM算法,也就是说X是常量。

      这里我们将混合高斯模型GMM和EM算法简写为混合高斯模型GMM和EM算法

      如果用图表示会很清晰:

      混合高斯模型GMM和EM算法

      图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到混合高斯模型GMM和EM算法成立。

      当f是(严格)凹函数当且仅当-f是(严格)凸函数。

      Jensen不等式应用于凹函数时,不等号方向反向,也就是混合高斯模型GMM和EM算法

2.     EM算法

混合高斯模型GMM和EM算法表示样本符合高斯分布混合高斯模型GMM和EM算法的概率,混合高斯模型GMM和EM算法,对最大似然函数做如下变化:

混合高斯模型GMM和EM算法

 

(2)(3)使用Jensen 不等式可得,混合高斯模型GMM和EM算法其中混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法

若要使得(2)(3)式完全相等,根据Jensen 不等式可知要求自变量为常数,即混合高斯模型GMM和EM算法。当看到这个结果混合高斯模型GMM和EM算法会感觉这个结果再正常不过了。因为混合高斯模型GMM和EM算法单单从数值大小来看,越大表示数据x属于高斯分布混合高斯模型GMM和EM算法可能性越大。所以用混合高斯模型GMM和EM算法来表示x属于高斯分布混合高斯模型GMM和EM算法的概率就再正常不过了。

 

下面EM算法的步骤就明确了

E步,对给定的参数混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法通过公式混合高斯模型GMM和EM算法求取混合高斯模型GMM和EM算法

M步,根据E步算出的混合高斯模型GMM和EM算法求取混合高斯模型GMM和EM算法,因为混合高斯模型GMM和EM算法固定不变,此时:

混合高斯模型GMM和EM算法

根据M步算得的参数继续进行重复EM步骤,直到混合高斯模型GMM和EM算法不再增大或者增大的幅度在接收的范围内。

3.     EM求解GMM

在上面已经讲到E步和M步分别要做哪些计算。其中E步骤,求混合高斯模型GMM和EM算法比较简单,直接按照公式进行计算就可以了。那么在看M步骤,

混合高斯模型GMM和EM算法

混合高斯模型GMM和EM算法

 混合高斯模型GMM和EM算法

 

计算混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法为0时的解,注意在求取的混合高斯模型GMM和EM算法时候,只有混合高斯模型GMM和EM算法是变量,其余的都是常量来计算。在求取混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法的时候道理也一样。

等式混合高斯模型GMM和EM算法等价混合高斯模型GMM和EM算法于,因而是不可以直接取得解的,参考自上面叙述的文献,引入拉格朗日成子

混合高斯模型GMM和EM算法

其中易知混合高斯模型GMM和EM算法部分恒为0

混合高斯模型GMM和EM算法

混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法为0时详细的求解暂时还不清楚如何对矩阵进行求导,所以后面没法给出具体的计算公式。

4.     EM与K-means的思考

通过观察EM算法,可以看出来E步骤很简单,用混合高斯模型GMM和EM算法代替某种分布,那么混合高斯模型GMM和EM算法,而在M步骤中对于Pz的求解可以发现Pz与分布没有关系,不管是高斯分布还是伯努利分布,计算方式都一样,不会变化。

混合高斯模型GMM和EM算法

剩下的就是对具体分布内部的参数进行计算,当然对于不同的分布有着不同的参数和表达方式,只需要按照混合高斯模型GMM和EM算法求解参数混合高斯模型GMM和EM算法即可。

仔细观察EM算法和K-means算法有很大相同的地方。他们的共同点都是在于分别有两部分信息未知,如果知道两部分信息中的任意部分,那么问题就可以轻易解出。EM算法第一部分未知的信息为混合高斯模型GMM和EM算法,第二部分未知的信息为混合高斯模型GMM和EM算法和分布函数的参数集(比如高斯分布的混合高斯模型GMM和EM算法混合高斯模型GMM和EM算法)。而在K-means算法中第一部分未知的信息为都哪些点为一类,第二部分未知的信息是每一类的中心点在哪。这两个算法面临的问题是,只要准确知道两部分信息中的任意一部分信息,就可以知道另一部分信息,也不用再通过迭代进行求解了。但是实际问题是:两部分信息往往都不知道,所以只能先提出假设,然后固定一部分信息,计算另一部分信息,然后再根据计算而来信息改进假设信息,如此迭代下去,直到假设已经非常完美不能再改进,算法结束。