基于狄利克雷过程混合模型(Dirichlet Process Mixture Model, DPMM)的无参数聚类原理与推断过程
题目描述
在许多实际的聚类问题中,我们往往无法预先确定数据中存在的类别(簇)的数量。传统聚类算法(如K-means、高斯混合模型GMM)需要预先指定聚类个数K,这在许多场景下是一个难以做出的强假设。基于狄利克雷过程混合模型(DPMM)的聚类方法通过引入狄利克雷过程(Dirichlet Process, DP)作为基分布的先验,使得模型能够从数据中自动推断出聚类数量,是一种非参数贝叶斯(Nonparametric Bayesian)聚类方法。本题目将详细讲解DPMM的数学模型、生成过程、以及两种核心的推断算法(Gibbs采样与变分推断)的原理与计算步骤。
解题过程
第一步:理解问题与核心思想
- 核心问题:如何在聚类数量未知的情况下,从数据中自动发现合理的簇结构?
- 核心思想:
- 使用狄利克雷过程(DP)作为聚类分配(混合分量权重)的先验分布。
- 狄利克雷过程具有“富者愈富”(rich-get-richer)的性质,能够自动生成任意多个聚类,但只倾向于为数据生成必要数量的聚类。
- 将每个聚类看作一个生成数据的概率模型(如高斯分布),通过贝叶斯推断同时得到聚类数量、每个数据点的类别标签以及每个聚类的模型参数。
第二步:狄利克雷过程(Dirichlet Process, DP)的定义
狄利克雷过程是定义在分布上的分布,记为:
\[G \sim \text{DP}(\alpha, H) \]
其中:
- \(\alpha > 0\) 是集中参数(concentration parameter),控制新聚类产生的倾向。
- \(H\) 是基分布(base distribution),通常是模型参数(如高斯分布的均值、协方差)的先验分布。
- 从 \(G\) 中独立采样得到的任意有限划分 \((A_1, \dots, A_k)\) 的概率满足:
\[(G(A_1), \dots, G(A_k)) \sim \text{Dirichlet}(\alpha H(A_1), \dots, \alpha H(A_k)) \]
第三步:DPMM的生成过程
假设我们有 \(N\) 个观测数据点 \(x_1, \dots, x_N\),每个数据点 \(x_i\) 来自一个混合模型,其混合分量(即聚类)的数量未知。生成过程如下:
- 从DP中采样一个随机分布 \(G \sim \text{DP}(\alpha, H)\)。
- 对每个数据点 \(i = 1, \dots, N\):
a. 从 \(G\) 中采样模型参数 \(\theta_i \sim G\)。
b. 从给定参数 \(\theta_i\) 的分布中生成观测:\(x_i \mid \theta_i \sim F(\theta_i)\),其中 \(F\) 是指数族分布(如高斯分布)。
由于 \(G\) 是离散分布(几乎必然),不同的 \(\theta_i\) 可能取值相同,因此相同的 \(\theta_i\) 值对应于同一个聚类。
第四步:DPMM的另一种等价构造(Chinese Restaurant Process, CRP)
为了便于计算,常用CRP构造来描述DPMM的聚类分配。其思想是:
- 将数据点看作依次进入餐馆的顾客,每个顾客选择一个餐桌(即聚类)坐下。
- 第 \(i\) 个顾客选择已有餐桌 \(k\) 的概率为 \(\frac{n_k}{i-1+\alpha}\),其中 \(n_k\) 是餐桌 \(k\) 上已有的顾客数。
- 选择新餐桌(即创建新聚类)的概率为 \(\frac{\alpha}{i-1+\alpha}\)。
- 每个餐桌 \(k\) 对应一个参数 \(\phi_k \sim H\),该餐桌的所有顾客共享此参数。
因此,CRP隐含地定义了聚类标签分配的先验分布。
第五步:推断目标
给定观测数据 \(X = \{x_1, \dots, x_N\}\),我们想要推断:
- 聚类分配 \(z = (z_1, \dots, z_N)\),其中 \(z_i = k\) 表示第 \(i\) 个点属于第 \(k\) 个聚类。
- 每个聚类 \(k\) 的参数 \(\phi_k\)。
- 聚类数量 \(K\)(由 \(z\) 决定)。
这是一个联合后验推断问题:
\[p(z, \{\phi_k\}, K \mid X) \propto p(X \mid z, \{\phi_k\}) \, p(z) \, p(\{\phi_k\}) \]
第六步:吉布斯采样(Gibbs Sampling)推断
吉布斯采样是一种马尔可夫链蒙特卡洛(MCMC)方法,通过迭代采样每个变量的条件后验分布来逼近联合后验分布。对DPMM的吉布斯采样步骤如下:
- 初始化:随机分配每个数据点的聚类标签 \(z_i\),并采样每个聚类的参数 \(\phi_k\)。
- 迭代更新:对每个数据点 \(i = 1, \dots, N\),依次执行:
a. 从当前聚类中移除 \(x_i\),如果其原聚类变为空,则删除该聚类。
b. 根据 \(x_i\) 被分配到每个已有聚类 \(k\) 或新聚类的条件概率重新分配 \(z_i\):- 分配到已有聚类 \(k\) 的概率:
\[ p(z_i = k \mid z_{-i}, X, \phi_k) \propto n_k^{-i} \cdot p(x_i \mid \phi_k) \]
其中 $n_k^{-i}$ 是除点 $i$ 外聚类 $k$ 的点数,$p(x_i \mid \phi_k)$ 是给定聚类参数下 $x_i$ 的似然。
- 分配到新聚类(设为 $k_{\text{new}}$)的概率:
\[ p(z_i = k_{\text{new}} \mid z_{-i}, X) \propto \alpha \cdot \int p(x_i \mid \phi_{\text{new}}) \, H(\phi_{\text{new}}) \, d\phi_{\text{new}} \]
这个积分有时可解析计算(如共轭先验下)。
c. 如果分配到新聚类,从其后验分布 \(p(\phi_{\text{new}} \mid x_i, H)\) 采样新参数。
3. 每隔若干迭代,从每个聚类参数 \(\phi_k\) 的后验分布采样更新(若使用共轭先验,这一步可省略,因为 \(\phi_k\) 在步骤2中已被边缘化)。
4. 重复步骤2-3直到收敛,然后从后验样本中获取聚类的后验估计。
第七步:变分推断(Variational Inference, VI)推断
由于MCMC可能收敛慢,变分推断是一种确定性近似方法,通过优化一个变分分布 \(q(z, \{\phi_k\})\) 来逼近真实后验。常用截断的(truncated)DPMM,假设聚类数量不超过某个上界 \(T\)。
- 变分分布假设:通常假设:
\[ q(z, \{\phi_k\}, v) = \prod_{i=1}^N q(z_i) \prod_{k=1}^{T-1} q(v_k) \prod_{k=1}^T q(\phi_k) \]
其中 \(v_k\) 是Stick-breaking构造中的权重变量,满足 \(\pi_k = v_k \prod_{l=1}^{k-1} (1-v_l)\),且 \(v_k \sim \text{Beta}(1, \alpha)\)。
2. 优化目标:最大化证据下界(ELBO):
\[ \mathcal{L}[q] = \mathbb{E}_q\left[\log p(X, z, \{\phi_k\}, v)\right] - \mathbb{E}_q\left[\log q(z, \{\phi_k\}, v)\right] \]
- 坐标上升更新:迭代更新每个因子的变分参数。
a. 更新 \(q(z_i)\):\(q(z_i = k) \propto \exp\left( \mathbb{E}_{q(v)}[\log \pi_k] + \mathbb{E}_{q(\phi_k)}[\log p(x_i \mid \phi_k)] \right)\)。
b. 更新 \(q(v_k)\):\(q(v_k) = \text{Beta}(\gamma_{k,1}, \gamma_{k,2})\),其中:
\[ \gamma_{k,1} = 1 + \sum_{i=1}^N q(z_i = k), \quad \gamma_{k,2} = \alpha + \sum_{i=1}^N \sum_{l=k+1}^T q(z_i = l) \]
c. 更新 \(q(\phi_k)\):若使用共轭先验,其后验形式已知,只需更新自然参数。
4. 迭代至ELBO收敛。最终,每个点被分配到使 \(q(z_i)\) 最大的聚类,聚类数量由非空聚类数确定。
第八步:总结与应用
- 优点:DPMM自动确定聚类数量,避免了模型选择的麻烦;且具有坚实的概率理论基础,可自然处理不确定性。
- 缺点:推断过程复杂,计算成本较高,特别是MCMC可能需要大量迭代才能收敛。
- 应用场景:图像分割、文档主题建模、基因表达数据分析等聚类数量未知的领域。
- 扩展:DPMM可与多种观测模型(如高斯、多项式)结合,并可扩展为层次DP(Hierarchical DP)处理多组数据。
通过上述步骤,我们完成了对DPMM从动机、数学模型、生成过程到推断算法的全面讲解。