统计学习:EM算法及其在高斯混合模型(GMM)中的应用

1. EM算法的基本思想

我们在应用中所面对的数据有时是缺损的/观测不完全的[1][2]。我们将数据分为:

  • 可观测数据,用(Y)表示;
  • 缺失数据,用(Z)表示;
  • 完全数据,用(X=(Y, Z))表示。

我们尝试直接对可观测数据做极大似然估计:

[L(\theta | Y)=P(Y|\theta) ]

但是这样的似然函数可能非常复杂。我们发现完全数据的似然,即

[L(\theta | Y, Z)=P(Y, Z|\theta) ]

估计的难度要小得多。

除此之外对条件概率分布(P(Z |Y, \theta))进行估计的难度也要小得多。

事实上,在应用中缺失数据(Z)常常并不是真实存在,而是人为造出来的(为了方便概率分布的估计)。我们此时将缺失数据(Z)称为隐含数据(latent data)。

2. EM算法框架与解释

EM算法不是单指一个算法,而是指一种算法设计思想,它是一类算法的框架。它通过迭代求对数似然函数(\text{log}L(\theta | Y)=\text{log}P(Y|\theta))的极大似然估计。每次迭代包含两步:E步,求期望;M步,求极大化。下面是EM算法的描述:

那为什么EM算法的E步会求 (\sum_Z \text{log} P(Y,Z|\theta)P(Z | Y, \theta^{(t)}))这样一个期望呢?

我们知道,可观测数据(Y)是给定的,我们原本想对(\text{log} P(Y |\theta))做极大似然估计。而我们可以进一步得到

[\begin{aligned} \text{log} P(Y |\theta) &=\text{log}\sum_ZP(Y, Z|\theta)P(Z|\theta) \ &= \text{log}\sum_Z \frac{P(Y, Z|\theta)}{q(Z)}q(Z)P(Z|\theta)\ &\geqslant \sum_Z \text{log}[\frac{P(Y, Z|\theta)}{q(Z)}q(Z)] P(Z|\theta)(由\text{log}凹函数和\text{Jensen}不等式) \end{aligned} ]

其中(q(Z))为不等于0的关于(Z)的某个分布。不等式可以看做是一个找下界的过程。

在我们这个情境下设(q(Z)=P(Z|Y,\theta^{(t)})),就得到了下界为

[\sum_Z \text{log}[\frac{P(Y, Z|\theta)P(Z|Y, \theta^{(t)})}{P(Z|Y, \theta^{(t)})}]P(Z|\theta) ]

将(\text{log})函数内的部分展开为

[\sum_Z \left( \text{log}P(Y, Z|\theta)P(Z|Y, \theta^{(t))})-\text{log}P(Z|Y, \theta^{(t)}) \right) P(Z|\theta) ]

而(P(Z|Y, \theta^{(t)}))相对于(\theta)是常数不用管,而前一项(\sum_Z \text{log} P(Y,Z|\theta)P(Z | Y, \theta^{(t)}))就是我们的(Q)函数。

因此我们可以说(Q)函数在每次迭代中去逼近(\text{log} P(Y |\theta))的下界。多次迭代极大化(Q)函数就能起到极大化(\text{log} P(Y |\theta))的效果。

EM算法不断逼近函数下界的过程可以形象化解释为下图:

3. EM算法在高斯混合模型(GMM)中的应用

在高斯混合聚类模型中,我们假设(d)维样本空间中的观测数据样本点(\bm{y})服从高斯混合分布[3][4]

[p(\bm{y}|\bf{\Theta})= \sum_{k=1}^K\alpha_k \phi(\bm{y}|\bm{u}_k, \bf{\Sigma}_k) ]

其中(\phi(\bm{y}|\bm{u}_k, \bf{\Sigma}_k))为多元高斯分布

[\phi(\bm{y}|\bm{u}_k, \bf{\Sigma}_k)= \frac{1}{(2\pi)^{\frac{d}{2}}|\bf{\Sigma}|^{\frac{1}{2}}}e^{-\frac{1}{2}(\bm{y}-\bm{u})^T\bf{\Sigma}^{-1}(\bm{y}-\bm{u})} ]

且有(\alpha_k > 0),(\sum_{k=1}^K\alpha_k=1)。

高斯混合分布可以形象化地由下图表示:

我们假设样本的生成过程由高斯混合分布给出:首先,选择高斯混合成分,其中(\alpha_k)为选择第(k)个混合成分的概率;然后根据选择的混合成分的概率密度函数进行采样,从而生成相应的样本。

我们令随机变量(C_i\in {1,2,…,K})表示样本(\bm{y}_i)的高斯混合成分。而这个(C_i)也就对应了我们打算将样本(\bm{y}_i)聚为第几类,它的取值就是我们的聚类算法要求的。我们的模型需要按照贝叶斯定理估计(C_i)的后验分布

[\begin{aligned} p(C_i=k | \bm{y}i) & =\frac{p(C_i = k)p(\bm{y}_i|C_i = k) }{p(\bm{y}_i |\bf{\Theta})} \ & = \frac{\alpha_k \phi(\bm{y}|\bm{u}_k, \bf{\Sigma}_k)}{\sum{k=1}^K\alpha_k \phi(\bm{y}|\bm{u}_k, \bf{\Sigma}_k)} \end{aligned} ]

则我们按照以下法则确定样本(\bm{y}_i)被划分为的簇标记(c_i^*):

[ c_i^* = \underset{k\in{1,2…,K}}{\text{argmax}}p(C_i=k | \bm{y}_i) ]

我们前面提到按照贝叶斯定理估计概率分布(p(C_i=k | \bm{y}_i)),但我们需要先确定数据生成分布(p(\bm{y}_i |\bf{\Theta}))中的参数(\bf{\Theta} = {(\alpha_k, \bm{u}_k, \bf{\Sigma}_k)|1\leqslant k \leqslant K}),这时就可以套用我们前面的EM算法了。

我们设(\bm{y}i)为可观测数据,(\bm{z}{i}=(z_{i1}, z_{i2},…, z_{iK})^T)(one-hot向量,表示样本(i)的聚类结果)为未观测数据,(\bm{x}=(\bm{y_i}, \bm{z}_{i}))为完全数据。

按照EM算法的流程走:

(1)(\text{E}) 步,即写出(Q) 函数

[\begin{aligned} Q(\bf{\Theta}|\bf{\Theta}^{(t)}) & =\mathbb{E}_\bm{z}[\text{log} \space p(\bm{y},\bm{z}|\bf{\Theta})|\bm{y}, \bf{\Theta}^{(t)}] \end{aligned} ]

我么需要先写出完全数据的对数似然函数:

[\begin{aligned} \text{log}\space p(\bm{y},\bm{z}|\bf{\Theta}) & = \text{log} \prod_{i=1}^N p(\bm{y}i, \bm{z}_i | \bf{\Theta}) \ &= \text{log} \prod{k=1}^K\prod_{i=1}^N[\alpha_k \phi(\bm{y}i|\bm{\mu}_k, \bf{\Sigma}_k)]^{z{ik}} \ &= \text{log} \left(\prod_k^K \alpha_k^{n_k} \prod_{i=1}^N \phi(\bm{y}i|\bm{\mu}_k, \bf{\Sigma}_k)^{z{ik}} \right) \ & = \sum_{k=1}^K \left(n_k\text{log}\alpha_k + \sum_{i=1}^Nz_{ik} \text{log} \phi(\bm{y}_i|\bm{\mu}_k, \bf{\Sigma}_k)\right) \end{aligned} ]

然后按照Q函数的定义求条件期望得:

[\begin{aligned} Q(\bf{\Theta}|\bf{\Theta}^{(t)}) & =\mathbb{E}\bm{z}\left[\sum{k=1}^K \left( n_k\text{log}\alpha_k + \sum_{i=1}^Nz_{ik} \text{log} \phi(\bm{y}i|\bm{\mu}_k, \bf{\Sigma}_k)\right)|\bm{y}, \bf{\Theta}^{(t)}\right] \ & = \sum{k=1}^K \left( \sum_{i=1}^N\mathbb{E}(z_{ik}|\bm{y}, \bf{\Theta}^{(t)})\text{log}\alpha_k + \sum_{i=1}^N\mathbb{E}(z_{ik}|\bm{y}, \bf{\Theta}^{(t)})\text{log}\phi(\bm{y}_i|\bm{\mu}_k, \bf{\Sigma}_k)\right) \end{aligned} ]

这里(\mathbb{E}(z_{ik}|\bm{y}, \bf{\Theta}^{(t)}))就等于我们前面用贝叶斯定理求的 (p(C_i=k | \bm{y}i)),我们将其简写为(\hat{z}{ik})。进一步将(Q)
函数写为:

[Q(\bf{\Theta}|\bf{\Theta}^{(t)}) = \sum_{k=1}^K \left[ \sum_{i=1}^N\hat{z}{ik} \text{log}\alpha_k + \sum{i=1}^N\hat{z}_{ik} \left(\text{log}(\frac{1}{(2\pi)^{\frac{d}{2}}})-\text{log}|\bf{\Sigma_k}|^{\frac{1}{2}}-\frac{1}{2}(\bm{y}_i – \bm{\mu}_k)^T\bf{\Sigma}_k(\bm{y}_i-\bm{\mu}_k)\right)\right] ]

(2)(\text{M}) 步,求极大化(Q) 函数的新一轮迭代参数

我们只需将上式分别对(\bm{\mu}k)、(\bf{\Sigma_k}), (\alpha_k)(满足(\sum{k=1}^K\alpha_k = 1))求偏导并令其等于0,可得到:

[\begin{aligned} \bm{\mu}k^{(t+1)} &=\frac{\sum{i=1}^N\hat{z}{ik}\bm{y}_i}{\sum{i=1}^N\hat{z}{ik}} \ \bf{\Sigma}_k^{(t+1)} &=\frac{\sum{i=1}^N\hat{z}{ik}(\bm{y}_i – \bm{\mu}_k)(\bm{y}_i – \bm{\mu}_k)^T}{\sum{i=1}^N\hat{z}{ik}} \ \alpha^{(t+1)}_k &= \frac{\sum{i=1}^N\hat{z}_{ik}}{N} \end{aligned} ]

算法描述如下所示:

  • [1] 李航. 统计学习方法(第2版)[M]. 清华大学出版社, 2019.

  • [2] 周志华. 机器学习[M]. 清华大学出版社, 2016.

  • [3] Calder K. Statistical inference[J]. New York: Holt, 1953.

  • [4] 张志华《统计机器学习》在线视频36-EM算法1:https://www.bilibili.com/video/BV1rW411N7tD?p=36

Original: https://www.cnblogs.com/orion-orion/p/15984132.html
Author: orion-orion
Title: 统计学习:EM算法及其在高斯混合模型(GMM)中的应用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/807605/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球