定义
先给出高斯混合模型的定义,高斯混合模型是指具有如下形式的概率分布模型:
(1)
其中,是系数,且,,而是高斯分布密度,,对于随机变量y是一维数据时,
(2)
称为第k个分模型。理论上只要分模型足够多,并且各分模型的系数设置合理,就能够产生任意分布的样本。
分析
高斯混合模型属于生成模型,可以设想观测数据,,是这样生成的:首先以概率选择第k个分模型,然后由第k个分模型的概率分布生成观测数据。这里我们先约定:表示为第i个样本的观测变量;表示第i个样本所属的分模型,是隐变量;为了方便,统一用表示模型参数、和(对于一维数据)。观测数据是能直接观测到的,已知的;而反映第i个样本来自第k个分模型的数据是未知的,称为隐随机变量。一般地,用x表示观测随机变量的数据;z表示隐随机变量的数据。x称为不完全数据,而y和z连在一起称为完全数据。
为求模型参数,先计算其似然函数:
(3)
对数似然为
(4)
可以看到,GMM通过求不完全数据的边缘概率来得到完全数据的似然函数。其中,对应于,对应于。因此
(4)
使用EM算法求解。
EM算法求解参数
接下来使用EM算法来求解参数,EM算法分为E步,求期望;和M步,求期望最大化时的参数值。
E-step
直接对(4)求导来求得参数解不太现实,想办法将它转化。先给转化后的形式,再给分析:
(5)
(5)中步骤二给每个样本i都引入了一个分布,满足
(6)
而步骤三是由Jensen不等式得到。Jensen不等式:对于一个凸(或凹)函数,其满足(或),当且仅当变量为常数时等号成立。对数函数为凹函数,因此
(7)
即期望的函数大于等于函数的期望。下一步是要使步骤三中的等号成立,使得对原优化问题转化为对步骤三的优化。前面说过,等号成立的条件是随机变量为常数,即
(8)
其实这里只要你眼睛够犀利,可以直接看出,看不出也没关系,可以简单证明:由(8)可知
两边同时求和可得,则
(9)
即在给定后,我们就能使用(9)求出,成为样本i对第k个分模型的响应度。GMM中这一步其实就是在对每个样本点聚类操作。确定了后,(5)就退化成只关于的函数。
M-step
求模型参数:固定后最大化求解模型参数,即
(10)
高斯混合模型参数估计的EM算法步骤
通过以上推导可以总结算法步骤如下:
(1)初始化模型的参数值。EM算法对初始值较敏感,不同的初始值可能得到不同的参数估计值。
(2)E-step:依据当前模型参数,计算分模型k对观测样本数据的响应度。
(3)M-step:计算新一轮迭代的模型参数
(4)重复步骤(2)(3),直至达到收敛。
reference
(1)《统计学习方法》,李航