本部分内容是《模式识别与机器学习》第九章,主要回答了2个问题:
1 什么是EM期望最大化算法
2 EM算法在混合模型中的应用,如高斯混合、伯努利混合以及贝叶斯混合
目录
看目录的话,本章节分为四个小节:
1 K-means聚类:作为理解EM算法的简单例子
2 高斯混合:主要是梯度固定和后验概率的概念
3 EM算法的另一观点:EM算法能够使用使用潜在变量补全数据
4 EM算法的一般形式:将EM理解为坐标上升法
介绍
- 若我们定义了关于观测值和潜在变量的联合分布,引入潜在变量和扩展空间能够从简单分布中表达出相对复杂的边缘分布。
- 最大似然估计在该空间中就理解为期望最大化算法,但最大似然法也有很大的限制。
- 第10章将会介绍更有效的变分推断的贝叶斯处理方式
K-means聚类
失真度
给定数据集{
x1,...,xNx_1, ..., x_Nx1,...,xN}, 我们想要将它分割为K个簇。
根据K-means的原理,我们将使用每个簇的中心点μk\mu_kμk替代整个簇的(即数据集中的真实点,使簇中所有其他数据点到μk\mu_kμk的距离平方和为最小的那个点)
然后对每个数据点xnx_nxn,使用二元指示变量(即1-K的编码策略,one-hot)rnk∈(0,1)r_{nk} \in(0, 1)rnk∈(0,1),即rnkr_{nk}rnk=1 且rnj=1,j≠0r_{nj}=1, j \neq 0rnj=1,j̸=0,k=1,…,K,(它只有两种类型的值)用来描述该数据点所属簇。
然后介绍失真度公式如下:
J=∑n=1N∑k=1Krnk∣∣xn−μk∣∣2J=\sum^N_{n=1}\sum^K_{k=1}r_{nk}||x_n - \mu_k||^2J=n=1∑Nk=1∑Krnk∣∣xn−μk∣∣2 (式9.1)
我们计算每个簇中的数据点和作为簇中心点距离的平方和,也称为欧氏距离。
期望最大化
- 找出{ rnkr_{nk}rnk}和{ μk\mu_kμk}的值用于最小化失真度(式9.1)
- 迭代过程:
- 1 求期望(确定属于哪个簇):固定μk\mu_kμk,根据rnkr_{nk}rnk最小化J
rnk=(1,若k=argminj∣∣xn−μk∣∣20,其他)r_{nk}={1,若k = arg min_j||x_n - \mu_k||^2 \choose 0,其他}rnk=(0,其他1,若k=argminj∣∣xn−μk∣∣2) (式9.2)
即确定每个数据点所属簇。 - 2 最大化(重新找出簇中心点):固定rnkr_{nk}rnk,根据μk\mu_kμk最小化J
2∑n=1Nrnk(xn−μk)=02\sum^N_{n=1}r_{nk}(x_n - \mu_k) = 02n=1∑Nrnk(xn−μk)=0 (式9.3)
要使J为最小值,需要对J的函数求导,使其导数为0的点就是最小值点。
μk=∑nrnkxn ∑nrnk\mu_k=\sum_nr_{nk}x_n \ \sum_nr_{nk}μk=n∑rnkxn n∑rnk(式9.4)
即,根据第1步分好的簇来重新选择作为中心的点。
- 1 求期望(确定属于哪个簇):固定μk\mu_kμk,根据rnkr_{nk}rnk最小化J
示例
- 每个E或M步骤都会降低目标函数J的值。
- 则会收敛到局部或全局最大值。
结束
直接实现K-Means算法可能会运行缓慢,可以使用在线随机算法替代:
μknew=μkold+ηn(xn−μkold)\mu_k^{new}=\mu_k^{old} + \eta_n(x_n - \mu_k^{old})μknew=μkold+ηn(xn−μkold) (式9.5)
此处的ηn为学习速率,考虑数据点增加时仍能够单调减的情况\eta_n为学习速率,考虑数据点增加时仍能够单调减的情况ηn为学习速率,考虑数据点增加时仍能够单调减的情况
K-mediods(中心点),一般的失真度量为:
J~=∑n=1N∑k=1Krnkv(xn,μk)\widetilde{J} = \sum^N_{n=1}\sum^K_{k=1}r_{nk}\mathcal{v}(x_n, \mu_k)J
=∑n=1N∑k=1Krnkv(xn,μk) (式9.6)
此处的v\mathcal{v}v(., .)表示任意相异度测量,如欧氏距离、曼哈顿距离、余弦距离等。
K-Means算法可以用于图像分割和压缩的例子:
高斯混合
潜在变量
-
潜在变量与可观测变量相反,不能直接观察,但可以通过观察到的其他变量通过数学模型进行推断得到。
-
高斯混合分布可写为一般高斯分布(正态分布)的线性叠加(第二章提过):
p(x)=∑k=1KπkN(x∣μk,∑k)p(x) = \sum^K_{k=1}\pi_k\mathcal{N}(x|\mu_k, \sum_k)p(x)=∑k=1KπkN(x∣μk,∑k) -
引入潜在变量z
- z是二元1-of-K编码变量
- 联合分布:p(x, z) = p(z) p(x|z)
-
混合系数πk\pi_kπk有:
当使潜在变量的为1时的概率值,p(zkz_kzk = 1) = πk\pi_kπk,显然可得概率值的限制条件是:0≤πk≤10 \leq \pi_k \leq 10≤πk≤1 且 ∑kπk=1\sum_k \pi_k = 1∑kπk=1。
因为z为one-hot型变量,该分布也可以写为:p(z)=∏kπkzkp(z) = \prod_k\pi_k^{z_k}p(z)=∏kπkzk (式9.10) -
对特定潜在变量zkz_kzk,x的条件分布为:
p(x∣zk=1)=N(x∣μk,∑k)p(x | z_k = 1) = \mathcal{N}(x | \mu_k, \sum_k)p(x∣zk=1)=N(x∣μk,∑k)同理也可以写为:p(x∣z)=∏kN(x∣μk,∑k)zkp(x | z) = \prod_k\mathcal{N}(x | \mu_k, \sum_k)^z{_k}p(x∣z)=∏