高斯混合模型(GMM)的贝叶斯推断:马尔可夫链蒙特卡洛(MCMC)采样算法原理与参数后验估计过程
题目描述
本题旨在详细讲解如何使用马尔可夫链蒙特卡洛(MCMC)采样方法,对高斯混合模型(GMM)的参数进行贝叶斯推断。与传统的期望最大化(EM)算法(点估计)不同,贝叶斯推断将模型参数视为随机变量,通过采样从参数的后验分布中获取完整的分布信息,从而量化参数的不确定性。我们将从GMM的模型设定、贝叶斯框架的构建、吉布斯采样(Gibbs Sampling)的具体步骤,以及如何从采样结果中获取参数估计等方面,进行循序渐进的细致讲解。
解题过程
第一步:理解高斯混合模型(GMM)的生成式模型与参数
- 模型定义:GMM假设观测数据 \(\{x_1, x_2, ..., x_N\}\) 是由 \(K\) 个高斯分布(或称“分量”)混合生成的。每个数据点 \(x_i\) 来自某个未知的分量 \(z_i\),其中 \(z_i \in \{1, 2, ..., K\}\) 是一个隐变量,表示该点所属的混合分量。
- 参数集合:
- 混合权重:\(\boldsymbol{\pi} = (\pi_1, ..., \pi_K)\),满足 \(\sum_{k=1}^{K} \pi_k = 1\) 且 \(\pi_k > 0\)。它表示一个数据点来自第 \(k\) 个分量的先验概率,即 \(P(z_i = k) = \pi_k\)。
- 分量参数:对于第 \(k\) 个高斯分量,其参数为均值 \(\mu_k\) 和协方差矩阵 \(\Sigma_k\)。因此,数据点 \(x_i\) 在其分量 \(z_i=k\) 下的条件分布是高斯分布:\(x_i | z_i=k \sim \mathcal{N}(\mu_k, \Sigma_k)\)。
- 模型简化为便于贝叶斯推断:为了使计算可行,通常假设协方差矩阵为对角矩阵 \(\Sigma_k = \text{diag}(\sigma_{k1}^2, ..., \sigma_{kd}^2)\) 甚至为各向同性标量 \(\Sigma_k = \sigma_k^2 I\)。这里我们以各向同性假设为例,即 \(\Sigma_k = \tau_k^{-1} I\),其中 \(\tau_k\) 是精度(precision,方差的倒数)。
第二步:建立贝叶斯框架——为所有未知量指定先验分布
在贝叶斯推断中,我们为所有未知参数 \((\boldsymbol{\pi}, \{\mu_k, \tau_k\}_{k=1}^K)\) 和隐变量 \(\boldsymbol{z} = (z_1, ..., z_N)\) 指定先验分布。
- 混合权重 \(\boldsymbol{\pi}\) 的先验:自然选择是狄利克雷分布,它是分类分布的共轭先验。
\[ \boldsymbol{\pi} \sim \text{Dirichlet}(\alpha_0, ..., \alpha_0) \]
其中 $\alpha_0$ 是一个超参数,常设为较小的正数(如1),表示对均匀分布的弱先验。
- 分量均值 \(\mu_k\) 的先验:选择高斯分布作为其先验。为了共轭性,假设已知精度 \(\tau_k\),则:
\[ \mu_k | \tau_k \sim \mathcal{N}(m_0, (\beta_0 \tau_k)^{-1}) \]
这里 $m_0$ 是先验均值(常设为数据的全局均值或0),$\beta_0$ 是先验的“伪观测”数量,控制了先验的强度。先验精度与 $\tau_k$ 成正比,意味着我们对 $\mu_k$ 的不确定性与分量方差成正比。
- 分量精度 \(\tau_k\) 的先验:选择伽马分布(Gamma distribution)作为其先验,它是高斯分布方差的共轭先验。
\[ \tau_k \sim \text{Gamma}(a_0, b_0) \]
其中 $a_0, b_0$ 是超参数。伽马分布的均值为 $a_0/b_0$,方差为 $a_0/b_0^2$。可以设置为弱先验,如 $a_0=1, b_0=1$。
- 隐变量 \(\boldsymbol{z}\) 的先验:给定混合权重 \(\boldsymbol{\pi}\),隐变量服从分类分布:
\[ z_i | \boldsymbol{\pi} \sim \text{Categorical}(\boldsymbol{\pi}) \]
- 观测数据的似然:给定所有参数和隐变量,数据是独立的:
\[ p(\boldsymbol{X} | \boldsymbol{z}, \{\mu_k, \tau_k\}) = \prod_{i=1}^N \mathcal{N}(x_i | \mu_{z_i}, \tau_{z_i}^{-1}I) \]
第三步:推导吉布斯采样(Gibbs Sampling)的全条件后验分布
吉布斯采样是一种MCMC方法,它通过从每个变量的全条件后验分布中依次采样来生成来自联合后验分布 \(p(\boldsymbol{z}, \boldsymbol{\pi}, \{\mu_k, \tau_k\} | \boldsymbol{X})\) 的样本。其核心优势在于,得益于共轭先验的选择,这些全条件后验分布都有解析形式。
- 采样隐变量 \(z_i\):
- 全条件:\(p(z_i = k | \text{其余变量}, \boldsymbol{X}) \propto p(z_i = k | \boldsymbol{\pi}) \cdot p(x_i | z_i = k, \mu_k, \tau_k)\)
- 计算:代入公式,得到:
\[ p(z_i = k | ...) \propto \pi_k \cdot \mathcal{N}(x_i | \mu_k, \tau_k^{-1}I) \]
* **操作**:对于每个数据点 $i$,计算其属于每个分量 $k$ 的**非归一化概率**:$\eta_{ik} = \pi_k \cdot (\tau_k^{d/2} \exp(-\frac{\tau_k}{2} ||x_i - \mu_k||^2))$。然后从这个多项分布中采样:$z_i \sim \text{Categorical}(\{\eta_{i1}, ..., \eta_{iK}\}/\sum \eta_{ik})$。
- 采样混合权重 \(\boldsymbol{\pi}\):
- 全条件:在给定 \(\boldsymbol{z}\) 后,\(\boldsymbol{\pi}\) 的先验是狄利克雷分布,似然是关于 \(\boldsymbol{z}\) 的多项式分布,共轭后验仍是狄利克雷分布。
- 计算:后验参数由先验参数加上每个分量的“观测计数” \(N_k = \sum_{i=1}^N \mathbb{I}(z_i = k)\) 更新得到。
\[ \boldsymbol{\pi} | \boldsymbol{z}, \alpha_0 \sim \text{Dirichlet}(\alpha_0 + N_1, ..., \alpha_0 + N_K) \]
* **操作**:从该狄利克雷分布中采样一个新的 $\boldsymbol{\pi}$。
- 采样分量精度 \(\tau_k\):
- 全条件:在给定属于该分量的数据 \(\{x_i: z_i = k\}\) 和均值 \(\mu_k\) 后,精度 \(\tau_k\) 的先验是伽马分布,似然是高斯分布的乘积,其共轭后验仍是伽马分布。
- 计算:定义属于第 \(k\) 个分量的数据集合为 \(D_k\),数量为 \(N_k\)。后验参数为:
\[ a_k = a_0 + \frac{N_k d}{2}, \quad b_k = b_0 + \frac{1}{2} \sum_{i \in D_k} ||x_i - \mu_k||^2 \]
其中 $d$ 是数据维度。$\tau_k | ... \sim \text{Gamma}(a_k, b_k)$。
* **操作**:对每个分量 $k$,从该伽马分布中采样一个新的 $\tau_k$。
- 采样分量均值 \(\mu_k\):
- 全条件:在给定属于该分量的数据和精度 \(\tau_k\) 后,均值 \(\mu_k\) 的先验是高斯分布,似然是高斯分布的乘积,其共轭后验仍是高斯分布。
- 计算:计算后验分布的参数:
- 后验精度:\(\lambda_k = \beta_0 \tau_k + N_k \tau_k\)
- 后验均值:\(m_k = \frac{\beta_0 \tau_k m_0 + \tau_k \sum_{i \in D_k} x_i}{\lambda_k}\)
因此,\(\mu_k | ... \sim \mathcal{N}(m_k, \lambda_k^{-1})\)。
- 操作:对每个分量 \(k\),从该高斯分布中采样一个新的 \(\mu_k\)。
第四步:执行吉布斯采样迭代与后处理
- 初始化:随机或通过K-means初始化参数 \(\{\mu_k, \tau_k, \pi_k\}\) 和隐变量 \(\boldsymbol{z}\)。设置超参数 \(\alpha_0, m_0, \beta_0, a_0, b_0\)。
- 迭代采样:进行 \(T\) 次迭代(例如 \(T=5000\)),每次迭代依次执行:
a. 根据当前参数,按步骤1采样所有 \(z_i\)。
b. 根据新的 \(\boldsymbol{z}\),按步骤2采样 \(\boldsymbol{\pi}\)。
c. 根据新的 \(\boldsymbol{z}\) 和 \(\boldsymbol{\mu}\),按步骤3对所有 \(k\) 采样 \(\tau_k\)。
d. 根据新的 \(\boldsymbol{z}\) 和 \(\boldsymbol{\tau}\),按步骤4对所有 \(k\) 采样 \(\mu_k\)。 - 老化与稀释:丢弃前 \(B\) 次迭代(如 \(B=1000\))作为“老化期”,以使链稳定到平稳分布。然后,在剩余的样本中每隔 \(L\) 个(如 \(L=5\))取一个样本,以降低自相关性,最终得到一组近似独立的样本 \(\{\boldsymbol{\pi}^{(t)}, \boldsymbol{\mu}^{(t)}, \boldsymbol{\tau}^{(t)}, \boldsymbol{z}^{(t)}\}_{t=1}^{M}\)。
- 参数估计与不确定性量化:
- 点估计:通常用后验样本的均值或中位数作为参数的点估计。例如,\(\hat{\mu}_k = \frac{1}{M} \sum_{t=1}^{M} \mu_k^{(t)}\)。
- 区间估计:可以使用后验样本的分位数(如2.5%和97.5%)构建参数的可信区间,直观反映参数的不确定性。
- 分量分配:对于每个数据点 \(i\),可以计算其属于每个分量 \(k\) 的后验概率估计:\(\hat{p}(z_i = k) = \frac{1}{M} \sum_{t=1}^{M} \mathbb{I}(z_i^{(t)} = k)\),从而得到“软”聚类结果。
第五步:算法总结与关键点
- 核心思想:MCMC(特别是吉布斯采样)通过构造一个马尔可夫链,使其平稳分布等于目标后验分布,从而通过采样获得关于参数的完整分布信息,而不仅仅是点估计。
- 优势:
- 量化不确定性:可以给出参数和聚类结果的可信区间。
- 模型选择:通过比较不同 \(K\) 下的模型证据(边缘似然),有助于选择分量数 \(K\)。
- 避免过拟合:先验起到了正则化的作用。
- 挑战:
- 计算成本:采样迭代通常比EM算法慢。
- 收敛诊断:需要监测马尔可夫链是否收敛到平稳分布(可使用轨迹图、自相关图、Gelman-Rubin统计量等)。
- 标签交换:在采样过程中,分量的标签可能会互换,需要对样本进行后处理对齐。
通过以上步骤,我们完成了使用MCMC(吉布斯采样)对高斯混合模型进行贝叶斯推断的完整过程。