本节主要讲 K-means 聚类、Gaussian Mixture Models。
1. K-means Clustering
1.1 问题设定
K-means 是一个 unsupervised learning 算法。监督学习中有
目标是把数据分成
1.2 核心变量
K-means 中有两个核心变量:
- Cluster assignment:
,表示第 个样本属于哪个 cluster。 - Cluster centroids:
,其中 表示第 个 cluster 的中心。
1.3 算法流程
初始化
第一步:Cluster assignment step
对每个样本
第二步:Move centroid step
对每个 cluster,重新计算它的中心:
即每个 cluster 的中心更新为该 cluster 内所有点的平均值。
1.4 K-means 在优化什么?
K-means 实际上是在最小化 distortion function:
其中
1.5 为什么每一步都会让目标函数下降?
K-means 可以看成一种 coordinate descent,交替优化
- Assignment step:固定
,对每个样本选择最近的中心——在固定中心的情况下让 关于 最小化, 不会增加。 - Centroid step:固定
,把每个 cluster center 更新为该 cluster 内样本的均值——在固定 的情况下让 关于 最小化, 也不会增加。
因此每轮迭代
1.6 为什么 centroid 是均值?
固定 cluster
令导数为 0:
这就是该 cluster 的均值。
1.7 K-means 的特点
优点:简单、速度快、容易实现、适合大规模数据。
缺点:
- 需要预先指定
- 对初始化敏感,容易陷入 local optimum
- 只能得到 hard assignment(每个样本只能属于一个 cluster,没有不确定性)
- 更适合近似球形、大小相近的 cluster
- 对 outlier 敏感
2. Gaussian Mixture Models(GMM)
K-means 的问题是只做硬分配,没有概率解释。GMM 则是一个概率模型,假设数据由多个 Gaussian component 混合生成。
2.1 生成过程
假设有
- 先选择它来自哪个 component:
,其中 是 latent variable。 - 根据选中的 component 生成样本:
。
模型可写为
2.2 参数
GMM 的参数是
:第 个 component 的先验概率(mixture weight)。 :第 个 Gaussian component 的均值。 :第 个 Gaussian component 的协方差矩阵。
2.3 为什么直接最大似然不好做?
如果我们能观察到
难点在于
3. EM Algorithm
EM(Expectation-Maximization)交替做两步:
- E-step:估计隐藏变量
的后验分布,即每个点属于每个 component 的概率。 - M-step:把这些概率当成 soft weights,重新估计模型参数。
3.1 E-step:计算 Responsibilities
定义 responsibility:
它表示第
并且
3.2 M-step:更新参数
将
这三个公式是 note7b 最核心的公式。
4. EM 和 K-means 的关系
两者结构非常相似,核心区别在于是 hard 还是 soft assignment:
- K-means:
,每个样本只属于一个 cluster(hard)。 - GMM/EM:
,一个点可以以不同概率属于多个 component(soft)。例如 表示样本更可能来自 component 1,但也有一定概率来自 component 2。
可以说 K-means 是 GMM 在
5. EM 的一般形式
对于有 hidden variables 的模型,EM 可以写成统一框架:
E-step:计算后验
M-step:更新
(分母
补充:关于 EM 为什么能保证 likelihood 单调不降的详细证明——Jensen’s inequality 构造 lower bound、E-step 如何让 bound 取等、M-step 如何最大化 bound、以及核心不等式链
——见 CS229-8 EM Algorithm。
6. 必须掌握的公式
K-means assignment
K-means centroid update
Distortion function
GMM model
Responsibility
EM update for GMM