定义
先给出高斯混合模型的定义,高斯混合模型是指具有如下形式的概率分布模型:
(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)《统计学习方法》,李航