文章目录

  • 1.高斯混合模型
  • 2.Jensen不等式
  • 3.EM算法及推导过程
  • 4.EM算法的可行性
  • 5.EM算法的收敛性
  • 6.EM的另一种推导
  • 7.应用EM算法求解GMM


1.高斯混合模型

高斯拟合的参数python 高斯拟合公式_KL散度两个参数。
  如果是多组数据,多个模型呢?获取现在我们有全国多个省份的身高数据,但并不知道它们具体属于哪个省份,只知道每个省之间服从不同的高斯分布,此时的模型称为高斯混合模型(GMM),其公式为
高斯拟合的参数python 高斯拟合公式_极大似然估计_02
  此时用极大似然估计的方法并不能很好地求出模型里面的参数,因为模型中存在一个隐变量——样本的label。令其为Z,则可以写出似然函数的形式:
高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_03
  如果根据极大似然估计的算法对式子(2)进行求导,意味着我们要对高斯拟合的参数python 高斯拟合公式_EM_04的形式进行求导,这计算量简直爆炸。

2.Jensen不等式

  这里我们需要用到EM算法来进行求解,在介绍EM算法前,我们先来了解一个不等式——Jensen不等式,它的定义如下:

  如果X是一个随机变量,f(X)是一个凸函数(二阶导数大或等于0),那么有:

高斯拟合的参数python 高斯拟合公式_KL散度_05

  如果f(X)是凹函数,不等号反向

高斯拟合的参数python 高斯拟合公式_GMM_06

  当且仅当X是常数的时候等号成立。

高斯拟合的参数python 高斯拟合公式_KL散度_07


  结合图像我们可以对Jensen不等式有一个直观的理解,对于x=a和x=b两个点,E(f(x))可以看成是高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_08,f[E(x)]可以看成是高斯拟合的参数python 高斯拟合公式_极大似然估计_09,即ab中点对应的函数值。由于图像是凹图像,所以不难得出高斯拟合的参数python 高斯拟合公式_KL散度_10

3.EM算法及推导过程

  利用Jensen不等式,由于log函数是凹函数,式子(2)可以改写成:
高斯拟合的参数python 高斯拟合公式_KL散度_11
  由于高斯拟合的参数python 高斯拟合公式_KL散度_12是概率分布,所以满足
高斯拟合的参数python 高斯拟合公式_极大似然估计_13
  根据Jenson不等式,等式成立时,有
高斯拟合的参数python 高斯拟合公式_GMM_14
  根据4和5,有
高斯拟合的参数python 高斯拟合公式_GMM_15
  将(7)回代到(3),有
高斯拟合的参数python 高斯拟合公式_极大似然估计_16
  通过每次令
高斯拟合的参数python 高斯拟合公式_EM_17
  就可以不断迭代使得似然函数最大。因此EM算法本质上是一种令下界不断提高,从而使得似然函数也不断提高的迭代算法。
  因此,EM算法的流程如下:

  1. 初始化参数高斯拟合的参数python 高斯拟合公式_GMM_18,开始迭代
  2. E-Step:计算高斯拟合的参数python 高斯拟合公式_KL散度_19
  3. M-Step:根据计算得到的高斯拟合的参数python 高斯拟合公式_GMM_20,求使高斯拟合的参数python 高斯拟合公式_GMM_20极大化的高斯拟合的参数python 高斯拟合公式_极大似然估计_22,得到新的参数高斯拟合的参数python 高斯拟合公式_GMM_23
  4. 重复2和3直至收敛

4.EM算法的可行性

高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_24,希望新估计值高斯拟合的参数python 高斯拟合公式_EM_25可以使高斯拟合的参数python 高斯拟合公式_EM_26增大,即高斯拟合的参数python 高斯拟合公式_EM_27,则: 
高斯拟合的参数python 高斯拟合公式_KL散度_28
  令高斯拟合的参数python 高斯拟合公式_EM_29
  则有高斯拟合的参数python 高斯拟合公式_KL散度_30,因此可以认为高斯拟合的参数python 高斯拟合公式_极大似然估计_31高斯拟合的参数python 高斯拟合公式_EM_26的一个下界,且有高斯拟合的参数python 高斯拟合公式_KL散度_33,为了使高斯拟合的参数python 高斯拟合公式_EM_26尽可能地变大,我们解以下式子:
高斯拟合的参数python 高斯拟合公式_GMM_35
  而这正是EM中我们所做的一次迭代,由此可证EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。

5.EM算法的收敛性

高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_36为观测数据的似然函数,我们要证明递增性,即
高斯拟合的参数python 高斯拟合公式_EM_37
  证明如下:
高斯拟合的参数python 高斯拟合公式_极大似然估计_38
  令
高斯拟合的参数python 高斯拟合公式_GMM_39
  根据Q函数定义有,
高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_40
  于是对数似然函数可以写成
高斯拟合的参数python 高斯拟合公式_EM_41
  上式中分别取高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_24高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_43并相减,有
高斯拟合的参数python 高斯拟合公式_GMM_44
  由于高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_43使高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_46极大,所以有
高斯拟合的参数python 高斯拟合公式_EM_47
  而由式子13以及Jensen不等式,有
高斯拟合的参数python 高斯拟合公式_极大似然估计_48
  可知
高斯拟合的参数python 高斯拟合公式_EM_49
  又因为高斯拟合的参数python 高斯拟合公式_极大似然估计_50有界,可知高斯拟合的参数python 高斯拟合公式_GMM_51必定收敛。
  由于采用迭代的方式进行求解,EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标高斯拟合的参数python 高斯拟合公式_KL散度_52是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。初值的选择非常重要,常用的方法是选择多个初值尝试,比较结果选取较好的。

6.EM的另一种推导

高斯拟合的参数python 高斯拟合公式_极大似然估计_53
  左右两边同时对z积分,此时有
高斯拟合的参数python 高斯拟合公式_EM_54
  右边有
高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_55
  根据相对熵(KL散度)的定义,对于p(x)和q(x)两个分布,p对q的相对熵表示为
高斯拟合的参数python 高斯拟合公式_极大似然估计_56
  可以发现right等式右边第二项其实就是q(z)对高斯拟合的参数python 高斯拟合公式_极大似然估计_57的相对熵,即
高斯拟合的参数python 高斯拟合公式_GMM_58
  相对熵有两个性质,一个是不具有对称性,即高斯拟合的参数python 高斯拟合公式_极大似然估计_59,另一个性质是高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_60。当p和q的概率分布相同时,相对熵为0。也就是说,第一项其实就是高斯拟合的参数python 高斯拟合公式_极大似然估计_61的一个下界,我们称之为ELBO。我们想要让下界ELBO增大,从而使得高斯拟合的参数python 高斯拟合公式_极大似然估计_61增大,则
高斯拟合的参数python 高斯拟合公式_GMM_63
  因此得到高斯拟合的参数python 高斯拟合公式_EM_25的迭代公式。

7.应用EM算法求解GMM

  下面我们使用EM算法来求解GMM模型,GMM模型如下:
高斯拟合的参数python 高斯拟合公式_GMM_65
  联合概率为
高斯拟合的参数python 高斯拟合公式_KL散度_66
  后验概率为
高斯拟合的参数python 高斯拟合公式_KL散度_67
  在EM算法中,有
高斯拟合的参数python 高斯拟合公式_GMM_68
  对于其中一项
高斯拟合的参数python 高斯拟合公式_EM_69
  因此
高斯拟合的参数python 高斯拟合公式_高斯拟合的参数python_70
  接下来求解高斯拟合的参数python 高斯拟合公式_KL散度_71
高斯拟合的参数python 高斯拟合公式_极大似然估计_72
  通过展开之后求导得到最优解,其中高斯拟合的参数python 高斯拟合公式_极大似然估计_73的求解使用拉格朗日乘子法进行求解。重复以上E-step和M-step直至对数似然值不再有明显变化为止。