基于狄利克雷过程混合模型(Dirichlet Process Mixture Model, DPMM)的无参数聚类与贝叶斯推断过程
1. 题目描述
狄利克雷过程混合模型(DPMM)是一种非参数贝叶斯模型,用于解决聚类问题。与传统混合模型(如高斯混合模型GMM)需要预先指定聚类数量K不同,DPMM能够自动从数据中推断出合适的聚类数量,无需人工预设。题目要求详细解释:狄利克雷过程(DP)如何作为聚类中心(或混合分量)的先验分布;如何构造CRP(中国餐馆过程) 这一直观的聚类生成机制;如何通过吉布斯采样或变分推断从数据中后验推断出聚类结构、聚类数量以及每个数据点所属的聚类标签。整个过程需涵盖从先验设定、模型生成、到后验推断的完整贝叶斯框架。
2. 解题过程
2.1 核心思想与先验设定
DPMM的核心是将狄利克雷过程作为混合模型中无限个聚类中心(或混合分量参数)的先验分布。其关键特性是:虽然理论上存在无限个分量,但给定有限数据集,只有一部分分量会被分配到数据点,从而自动确定聚类数量。
- 模型表示:
假设我们有N个数据点 \(x_1, x_2, ..., x_N\),每个数据点 \(x_i\) 属于一个聚类 \(z_i\),该聚类对应一个参数 \(\theta_{z_i}\)。聚类参数从一个基础分布 \(H\) 中抽取,但聚类的分配由狄利克雷过程控制。
模型可写为:
\[ G \sim DP(\alpha, H) \quad \text{(狄利克雷过程先验)} \]
\[ \theta_i | G \sim G \quad \text{(每个数据点的参数从G中抽取)} \]
\[ x_i | \theta_i \sim F(\theta_i) \quad \text{(数据点由其参数生成,如高斯分布)} \]
其中:
- \(DP(\alpha, H)\) 是狄利克雷过程,由集中参数 \(\alpha > 0\) 和基分布 \(H\) 定义。α控制新聚类的生成概率,H是参数θ的先验(如高斯-逆Wishart分布)。
- \(F(\theta)\) 是观测数据的分布(如 \(\mathcal{N}(\mu, \Sigma)\))。
2.2 中国餐馆过程(CRP)的构造
由于狄利克雷过程本身较为抽象,通常用中国餐馆过程这一等价构造来直观描述聚类过程,它提供了数据点分配的直接概率模型。
-
过程描述:
想象一个餐馆有无限张桌子(每张桌子代表一个聚类):- 第一个顾客进来,坐在第一张桌子。
- 第n+1个顾客进入时:
- 以概率 \(\frac{n_k}{n + \alpha}\) 坐在已有的第k张桌子(已有 \(n_k\) 个顾客)。
- 以概率 \(\frac{\alpha}{n + \alpha}\) 坐在一张新桌子。
这里 \(n_k\) 是当前坐在桌子k的顾客数,α是集中参数。
-
数学对应:
CRP给出了数据点分配 \(z_i\) 的先验分布:
\[ P(z_{n+1} = k | z_1, ..., z_n) = \frac{n_k}{n + \alpha}, \quad \text{对已有类别k} \]
\[ P(z_{n+1} = K+1 | z_1, ..., z_n) = \frac{\alpha}{n + \alpha}, \quad \text{对新类别} \]
这体现了DP的“富者愈富”特性:规模大的聚类更容易吸引新数据点。
2.3 完整生成模型
结合CRP和参数生成,DPMM的生成过程为:
- 根据CRP先验,为每个数据点i生成聚类分配 \(z_i\)(取值1,2,...,但实际只有有限个值出现)。
- 对每个出现的聚类k,从其基分布H中生成参数 \(\theta_k \sim H\)。
- 对每个数据点i,从其所属聚类的分布生成观测: \(x_i | z_i, \theta \sim F(\theta_{z_i})\)。
2.4 后验推断:吉布斯采样算法
由于后验分布难以直接计算,常用吉布斯采样进行近似推断。步骤如下:
步骤1:初始化
随机或简单启发式初始化每个数据点的聚类标签 \(z_i^{(0)}\)。
步骤2:迭代采样(以第t次迭代为例)
对每个数据点i(随机顺序):
- 从当前聚类中移除 \(x_i\)。
- 计算 \(x_i\) 分配到每个已有聚类k的概率:
\[ P(z_i = k | z_{-i}, x_i, \theta_k) \propto n_{k,-i} \cdot p(x_i | \theta_k) \]
其中 \(n_{k,-i}\) 是除i外分配给聚类k的点数,\(p(x_i | \theta_k)\) 是给定聚类参数下 \(x_i\) 的似然。
- 计算 \(x_i\) 分配到新聚类的概率:
\[ P(z_i = \text{new} | z_{-i}, x_i) \propto \alpha \cdot \int p(x_i | \theta) H(\theta) d\theta \]
这个积分通常是可解析计算的(由于H与F共轭,如高斯-逆Wishart先验下,积分是多元t分布)。
- 根据上述概率(归一化后)采样新的 \(z_i^{(t)}\)。
步骤3:更新聚类参数
采样完所有数据点的 \(z_i^{(t)}\) 后,对每个存在的聚类k,根据其所有数据点 \(\{ x_i: z_i = k \}\) 更新参数 \(\theta_k\):
\[\theta_k | \{ x_i: z_i = k \} \sim p(\theta_k | \{ x_i: z_i = k \}) \propto H(\theta_k) \prod_{i: z_i = k} p(x_i | \theta_k) \]
由于共轭先验,这一步通常可以直接采样。
步骤4:收敛与收集样本
重复步骤2-3直到马尔可夫链收敛。丢弃前期样本(burn-in),收集后续样本作为后验近似。最终聚类结果可通过众数或一致性聚类从样本中汇总得到。
2.5 变分推断简介(作为可选优化)
吉布斯采样准确但较慢。变分推断是更快的替代方案,它通过优化一个近似分布 \(q(z, \theta)\) 来逼近真实后验 \(p(z, \theta | x)\)。常用截断的狄利克雷过程,假设最多有T个聚类(T足够大),然后使用坐标上升法优化变分参数,包括:
- 数据点i分配到聚类k的概率 \(\phi_{ik}\)。
- 聚类参数 \(\theta_k\) 的变分分布参数。
目标是最小化 \(q\) 与真实后验的KL散度。
3. 总结
DPMM通过狄利克雷过程先验实现了聚类数量的自动推断。其核心是:
- 用中国餐馆过程描述聚类生成的先验过程。
- 用吉布斯采样(或变分推断)从数据中后验推断聚类分配和参数。
- 通过共轭先验设计(如高斯-逆Wishart)简化计算。
整个过程体现了贝叶斯非参数方法的灵活性:模型复杂度(聚类数)随数据量自动调整,避免了过拟合与欠拟合的风险。