Lecture 18 高斯混合模型和 EM 算法
主要内容
- 无监督学习
- 问题的多样性
- 高斯混合模型(GMM)
- 一种用于聚类的概率方法
- GMM 模型
- GMM 聚类作为一个优化问题
- 期望最大化(EM)算法
1. 无监督学习
机器学习中的一个大的分支,关注在标签缺失的数据上学习其结构
1.1 在此之前:监督学习
- 监督学习:总体目标是根据数据做出预测
- 为此,我们学习了诸如:随机森林、ANN 和 SVM 等算法
- 我们有实例 xi∈Rm(i=1,…,n),以及对应的标签 yi 作为输入,目标是预测新的实例的标签。
- 可以看作是一个函数逼近问题,但请注意:泛化能力很关键
- 老虎机:部分监督的设定
1.2 现在:无监督学习
- 接下来我们将介绍无监督学习方法
- 在无监督学习中,没有所谓叫做 “标签” 的专门变量
- 相应地,我们只有一个数据点的集合 xi∈Rm(i=1,…,n)
- 无监督学习的目的是 探索数据的结构(模式、规律等)
- “探索数据结构” 的目的是模糊的
1.3 无监督学习任务
- 无监督学习包括很多不同类别的任务:
- 聚类
- 降维
- 概率模型的参数学习
- 相关应用:
- 市场篮子分析。例如,使用超市的交易日志查找经常被一起购买的商品
- 离群值检测。例如,发现潜在的信用卡交易欺诈
- 经常用于(有监督)机器学习 pipeline 中的无监督任务
1.4 回顾:k-means 聚类
k-means 算法描述:
1.初始化: 随机选择 k 个集群 中心
2.更新:
a. 分配数据点 到最近的集群中心
b. 在当前的分配下,重新计算集群中心
3.终止: 如果集群中心没有发生变化,那么 算法停止
4.返回 步骤 2
选择典型的 L2 范数来表示距离。
K-means 仍然是最受欢迎的数据挖掘算法之一。
- 需要预先指定集群数 k
- 使用欧几里得距离衡量 “差异性”
- 寻找 “球形” 集群
- 迭代优化过程
2. 高斯混合模型(GMM)
从概率的视角看聚类算法
2.1 对数据聚类中的不确定性建模
- k-means 聚类将每个数据点都精确地分配到某一个集群
- 类似于 k-means,一个概率的混合模型同样需要预先指定集群数 k
- 不同于 k-means,概率模型让我们得以表达有关每个数据点 来源的不确定性
- 每个数据点来自集群 c 的概率为 wc,其中 c=1,…,k
- 也就是说,每个数据点仍然只来自某个特定的集群(又称 “组分”),但是我们不确定来自哪一个
- 接下来
- 将各个组分建模为高斯分布
- 拟合过程展示了一般的期望最大化(EM)算法
2.2 聚类:概率模型
数据点 xi 是来自 K 个分布(或者说 “组分”)的混合的独立同分布(i.i.d.)样本
原则上,我们可以将 组分 假设为任何分布,但是,正态分布是一种常见的建模选择 → 高斯混合模型(Gaussian Mixture Model, GMM)
2.3 正态(又称 “高斯”)分布
-
回忆 1-维 高斯分布:
N(x|μ,σ)≡1√2πσ2exp(−(x−μ)22σ2) -
然后,一个 d-维 高斯分布为:
N(x|μ,Σ)≡(2π)−d2|Σ|−12exp(−12(x−μ)TΣ−1(x−μ))- Σ 是 协方差矩阵,是一个 PSD(半正定)对称 d×d 矩阵
- |Σ| 表示行列式
- 不需要记住完整的公式
2.4 高斯混合模型(GMM)
-
高斯混合分布(对于单个数据点):
p(x)≡k∑j=1wjN(x|μj,Σj)≡k∑j=1p(Cj)p(x|Cj) - p(x|Cj)≡N(x|μj,Σj) 是类别 j 的类别 / 组分条件密度(建模为高斯分布)
- 这里,p(Cj)≥0,并且 ∑kj=1p(Cj)=1
- 模型的参数为 p(Cj),μj,Σj,其中 j=1,…,k
思考: 考虑一个 3D 数据的 GMM 模型,该模型包含 5 个组分。请问该模型有多少个独立的 标量参数?
请注意,这里要求独立的标量参数。
对于某个集群 Cj(j=1,...,5) 而言:
首先,3D 数据的协方差矩阵 Σj 是一个 3×3 的对称矩阵,所以有 6 个(对角线 + 某一侧的元素)不同的标量参数;
然后,均值 μj 是一个 3×1 的向量,所以有 3 个不同的标量参数;
最后,每个集群 Cj(j=1,...,5) 对应一个权重参数 wj(即该集群对应的概率),但是由于存在归一化约束 ∑5j=1wj=1,所以,权重的独立标量个数为 4 个(最后一个权重可以用 1 减去其余权重之和表示);
因此,该模型独立的标量参数的个数为 6×5+3×5+1×4=49
2.5 聚类的模型估计
- 给定一组数据点,我们假设数据点是由 GMM 生成的
- 我们数据集中的每个点来源于第 j 个正态分布组分的概率为 wj=p(Cj)
- 现在,聚类等同于寻找 “最佳解释” 观测数据的 GMM 参数
- 利用之前学过的 MLE 方法寻找能够最大化 p(x1,…,xn) 的参数
2.6 拟合 GMM
-
建模假设数据点之间互相独立,目标是找到 p(Cj),μj,Σj(j=1,…,k),使得最大化
p(x1,...,xn)=n∏i=1k∑j=1p(Cj)p(xi|Cj)其中, p(x|Cj)≡N(x|μj,Σj)
我们可以对其解析求解吗?
-
我们很难直接对原式求导,可以利用常见的 取对数技巧
logp(x1,...,xn)=n∑i=1log(k∑j=1p(Cj)p(xi|Cj))→ 期望最大化(EM)
3. 期望最大化(EM)算法
3.1 EM 的动机
- 考虑一个参数概率模型 p(X|θ),其中 X 表示数据,θ 表示一个参数向量
- 根据 MLE,我们需要最大化关于 θ 的函数 p(X|θ)
- 等价于最大化 logp(X|θ)
- 然而,存在一些问题:
- 有时我们 没有观测到 其中一些计算对数似然所需的变量
例如:我们并不能预先知道 GMM 集群归属 - 有时对数似然的形式处理起来不方便
例如:对一个 GMM 对数似然求导,会得到一个很麻烦的等式
- 有时我们 没有观测到 其中一些计算对数似然所需的变量
3.2 MLE vs EM
- MLE 是频率学家的做法,其建议在给定数据集的情况下,我们应该使用的 “最佳” 参数是使数据概率最大化的参数
- MLE 是一种正式提出问题的方法
- EM 是一种算法
- EM 是一种用来解决 MLE 所提出的问题的方法
- 尤其是存在未观测到的隐变量时,EM 算法非常便捷
- MLE 可以通过其他方法求解,例如:梯度下降(但是梯度下降并不总是最便捷的方法)
3.3 期望最大化(EM)算法
EM 算法描述:
1.初始化步骤:
初始化 K 个集群:C1,…,CK
对于每个集群 j,都有参数 (μj,Σj) 和 p(Cj)
2.迭代步骤:
a. 估计每个数据点的所属集群 p(Cj|xi) ⟹ 期望
b. 重新估计每个集群 j 的参数 (μj,Σj) 和 p(Cj) ⟹ 最大化
3.4 将 EM 算法用于 GMM 和泛化
- EM 是一种通用方法,不仅仅局限于 GMM
- 目的:在存在 隐变量 Z 的情况下,实现 MLE
- GMM 中的变量和参数分别是什么?
- 变量: 点的位置 X 和集群分配 Z
令 zi 表示每个数据点 xi 的真实集群归属,在 z 已知的情况下,计算似然函数很简单 - 参数: θ 表示集群的位置与大小
- 变量: 点的位置 X 和集群分配 Z
- EM 算法到底做了什么?
- 在对数似然的下界上的 坐标上升法
- M 步骤:在模型参数 θ 中的上升
- E 步骤:在边缘化似然 p(Z) 中的上升
- 每一步都朝着 局部 最优方向移动
- 可能中途会卡住,可能需要 随机重启
- 在对数似然的下界上的 坐标上升法
3.5 所需工具:Jensen 不等式
-
比较将平均函数作用在一个凸函数前后的影响:
f(Average(x))≤Average(f(x)) - 例子:
- 令 f 为某个凸函数,例如 f(x)=x2
- 考虑 x=[1,2,3,4,5]′,那么 f(x)=[1,4,9,16,25]′
- 输入的平均值为 Average(x)=3
- f(Average(x))=9
- 输出的平均值为 Average(f(x))=12.4
- 证明来自凸度的定义
- 归纳证明
- 一般表述:
- 如果 X 是一个随机变量,f 是一个凸函数
- 那么,f(E[X])≤E[f(X)]
3.6 利用隐变量
我们希望最大化 logp(X|θ),我们没有观测到 Z(这里为离散),但我们仍然可以引入它。
3.7 最大化下界
- logp(X|θ)≥EZ[logp(X,Z|θ)]−EZ[logp(Z)]
- 不等式右边的部分(Right Hand Side, RHS)是原始对数似然的一个 下界
- 这对于任何 θ 和任何非零 p(Z) 都满足
- 直觉上,我们希望将下界尽可能往上推进
- 这个下界是一个关于 两个 “变量” θ 和 p(Z) 的函数。我们希望最大化 RHS(不等式右边的部分),将其视为关于这两个 “变量” 的一个函数。
- 同时对两个 “变量” 进行优化是非常困难的,因此,EM 算法采用了一种迭代过程
- EM 本质上是 坐标上升:
- 固定 θ,优化关于 p(Z) 的下界函数
- 固定 p(Z),优化 θ
- EM 算法的方便之处在于:
- 对于任何点 θ∗,可以证明设定 p(Z)=p(Z|X,θ∗) 使得下界更紧(关于这点,我们将在后面给出简略证明)
- 对于任何 p(Z),不等式右边第二项与 θ 无关
- 当 p(Z)=p(Z|X,θ∗) 时,不等式右边第一项可以视为一个关于 θ 的函数,通常情况下,我们可以得到使得该函数最大化的 θ 的闭合解
- 如果不能,那么我们可能不会采用 EM 算法
3.8 示例
logp(X|θ)≥EZ[logp(X,Z|θ)]−EZ[logp(Z)]⏟≡G(θ,p(Z))3.9 EM 作为迭代优化
EM 算法描述:
1.初始化: 选择(随机)初始值 θ(1)
2.更新:
a. E 步骤:计算 Q(θ,θ(t))≡EZ|X,θ(t)[logp(X,Z|θ)]
b. M 步骤:θ(t+1)=argmaxθQ(θ,θ(t))
3.终止: 如果没有变化,那么 算法停止
4.返回 步骤 2
该算法最终将会停止(收敛),但最终得到的估计值可能只是一个局部最大值
3.10 设定一个紧的下界
现在,我们将证明之前 “3.7 最大化下界” 中提到的:
对于任何点 θ∗,可以证明设定 p(Z)=p(Z|X,θ∗) 使得下界更紧
回顾之前“3.6 利用隐变量” 中的推导过程:
logp(X|θ)=log∑Zp(X,Z|θ)=log∑Z(p(X,Z|θ)⋅p(Z)p(Z))=log∑Z(p(Z)⋅p(X,Z|θ)p(Z))=logEZ[p(X,Z|θ)p(Z)]≥EZ[logp(X,Z|θ)p(Z)]=EZ[logp(X,Z|θ)]−EZ[logp(Z)]我们将最终结果回退一步:
logp(X|θ)≥EZ[logp(X,Z|θ)p(Z)]=EZ[logp(Z|X,θ)p(X|θ)p(Z)]←概率的链式法则=EZ[logp(Z|X,θ)p(Z)+logp(X|θ)]=EZ[logp(Z|X,θ)p(Z)]+EZ[logp(X|θ)]←E[.]的线性性质=EZ[logp(Z|X,θ)p(Z)]+logp(X|θ)←常数的E[.]是其本身最后,我们得到:
最终目标:最大化⏞logp(X|θ)≥我们希望最大化的下界⏞EZ[logp(Z|X,θ)p(Z)]⏟首先,注意到该项≤0该项也称为p(Z)和p(Z|X,θ)之间的负的 KL (Kullback-Leibler) 散度+logp(X|θ)其次,注意到如果 p(Z)=p(Z|X,θ),那么
Ep(Z|X,θ)[logp(Z|X,θ)p(Z|X,θ)]=Ep(Z|X,θ)[log1]=0对于任何 θ∗,设定 p(Z)=p(Z|X,θ∗) 通过在 logp(X|θ∗) 上最大化下界,使得其更紧
4. 高斯混合模型的参数估计
EM 算法的一个经典应用
4.1 GMM 的隐变量
- 令 z1,…,zn 表示对应数据点 x1,…,xn 的 真实来源。每个 zi 都是一个取值在 1,…,k 之间的离散变量,其中,k 是集群的数量
-
现在,对比原始对数似然
logp(x1,...,xn)=n∑i=1log(k∑c=1wcN(xi|μc,Σc)) -
根据 完全对数似然(如果我们知道 z)
logp(x1,...,xn,z)=n∑i=1log(wziN(xi|μzi,Σzi)) - 回忆一下,对一个正态密度函数取对数,可以得到一个 容易处理 的表达式
4.2 处理关于 z 的不确定性
- 我们无法计算完全对数似然,因为我们不知道 z
- EM 算法处理这种不确定性的方法是:将 logp(X,z|θ) 用其期望 Ez|X,θ(t)[logp(X,z|θ)] 来替代
- 这反过来需要给定当前参数估计的 p(z|X,θ(t)) 的分布
- 假设 zi 成对独立,我们需要得到 p(zi=c|xi,θ(t))
-
例如:假设 xi=(−2,−2),请问这个数据点来自集群 1 的概率是多少?
-
设隐变量 Z 为真实来自的集群,根据贝叶斯规则,其满足
p(zi=c|xi,θ(t))=wcN(xi|μc,Σc)∑kl=1wlN(xi|μl,Σl) -
这个概率称为集群 c 对数据点 i 承担的 “责任”
ric≡p(zi=c|xi,θ(t))
4.3 GMM 的 E 步骤(期望)
为了简化表示,我们将 x1,…,xn 记为 X
Q(θ,θ(t))≡Ez|X,θ(t)[logp(X,z|θ)]=∑zp(z|X,θ(t))logp(X,z|θ)=∑zp(z|X,θ(t))n∑i=1logwziN(xi|μzi,Σzi)=n∑i=1∑zp(z|X,θ(t))logwziN(xi|μzi,Σzi)=n∑i=1k∑c=1riclogwziN(xi|μzi,Σzi)=n∑i=1k∑c=1riclogwzi+n∑i=1k∑c=1riclogN(xi|μzi,Σzi)4.4 GMM 的 M 步骤(最大化)
-
在 M(最大化)步骤中,将 Q(θ,θ(t)) 对每个参数取其对应的偏导数,并且将这些偏导数设为零,从而得到新的参数估计
w(t+1)c=1nn∑i=1ric μ(t+1)c=∑ni=1ricxirc这里,rc≡∑ni=1ric
Σ(t+1)c=∑ni=1rikxix′irk−μ(t)c(μ(t)c)′注意,这些是在第 (t+1) 步的估计
4.5 拟合高斯混合模型的例子
4.6 K-means 相当于在一个带约束的 GMM 上使用 EM
- 考虑一个 GMM 模型,其中所有的组分都有相同的固定概率 wc=1/k,并且每个高斯分布都具有相同的固定的协方差矩阵 Σc=σ2I,其中 I 是单位矩阵
- 在这样一个模型中,只有组分的中心 μc 需要被估计
- 接下来,近似一个概率集群的 “责任” ric=p(zi=c|xi,μ(t)c),其中,如果 μ(t)c 是距离数据点 xi 最近的集群中心,那么我们规定 ric=1,否则,ric=0
- 上面的公式相当于是一个 E 步骤,其中 μc 应该被设定为被分配到集群 c 的数据点的中心
- 换而言之,k-means 算法可以视为用于带约束的 GMM 模型的一种 EM算法
总结
- 无监督学习
- 问题的多样性
- 高斯混合模型(GMM)
- 一种聚类的概率方法
- GMM 模型
- GMM 聚类作为一个优化问题
- 期望最大化(EM)算法
下节内容:降维
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!
Related Issues not found
Please contact @yey11 to initialize the comment