聚类
聚类同样是密度估计的一种。不同于前文所述的密度估计算法,聚类将数据分进多个分布中,每个分布即聚类所得的类。
如图所示,上图是著名的 Old Faithful 数据集。真实的数据分布往往难以用一个分布(左)去刻画,因而使用 GMM 等将数据用多个分布(右)进行刻画的算法往往在实际运用中更有意义。
本文中将介绍两种聚类算法:K-means 和 GMM,并给出 ELBO 与 EM 算法的推导,用于求解含隐变量的参数估计问题。
模型
K-means
- 目标:将数据集
分为 类,样本 被分入 类,并使用各类的代表元素 代表类。 - 算法
- 初始化:随机初始化
- 循环以下步骤,直到算法收敛
- E-step: 将每个样本分配给最近的代表元素所在类
- M-step: 更新每个类的代表元素为类内元素的均值
- 初始化:随机初始化
高斯混合模型 (Guassian Mixture Model, GMM)
- 目标:将数据集
分为 类,每个样本被分入 类的概率为 ,并使用 表示第 类服从高斯分布 。即样本服从高斯分布的线性组合: - 算法
- 初始化:随机初始化
- 循环以下步骤,直到算法收敛
- E-step: 计算隐变量分布
- M-step: 更新每个类的代表元素为类内元素的均值
- 初始化:随机初始化
EM 算法与 GMM 的解
要求 GMM 的参数,容易想到的方法使用 MLE 求解,即
但是此目标函数即难以求解闭式解,又因为在求导时容易出现
考虑其他方式进行求解,观察到事实上从混合高斯分布中采样数据时可以分为两步
- 从多项分布中采样得到类别
- 从类别对应的高斯分布中采样得到样本
其中
以及条件概率分布
则可得联合分布
如果我们可以观测到完整的样本
然而我们并不知道
E-step
首先计算
其中
于是有
M-step
最大化
代入求导求解,可得
EM算法和ELBO
在上一节中,我们仅仅给出了使用 EM 算法解带隐变量问题的一个实例,但是并没有给出完整的推导。在本节中,我们将从头开始给出完整的推导。
推导
考虑由可观测
但因为隐藏数据存在,有
如果将上式带入优化目标中,在
在 EM 算法中,一个重要的问题就是通过可观测的样本
两边同时取对数
引入
两把同时对
展开成积分形式,有
观察到最左边项
由于 KL 散度非负,因此得到了
通过迭代提高 ELBO 项,即可使得
展开得到
其中第二项与优化目标无关,忽略,因此得到
由此我们可以得到 EM 算法的两个步骤:
E-step 时令
,抬高 ELBO 至优化目标 ,计算 M-step 时迭代计算新的参数值
至此,我们理解了 EM 算法中 E 步和 M 步的具体数学含义。
- 从过程上说,我们实质上通过 E-M 的交替迭代来规避了 MLE 过程中隐变量的积分或求和:在 E 步通过固定待求参数
来估计隐变量分布;在 M 步通过固定隐变量分布来使用 MLE 求解参数。 - 从形式上说,我们将
拆分成为联合分布 与 KL 散度,计算 ELBO (也就是联合分布)的条件概率期望作为难以求导的原优化问题的替代,降低了计算难度。
收敛性
要证明 EM 算法的收敛性,首先要证明我们的对数似然函数在迭代过程中单调增,即
以下给出证明,考虑
同时取
其中
所以有
由
且
从而
得证。
但需要说明的是,这里的单调性并不能保证算法收敛到全局最优解,因此在实际使用过程中,需要一个较好的初始化才能收敛到一个较好的解。