变分贝叶斯高斯混合模型(VBGMM)聚类与推理系统
项目介绍
本项目实现了一个基于变分推理(Variational Inference)的高斯混合模型框架。与依赖最大似然估计的传统EM算法不同,本系统采用全贝叶斯方法,通过引入先验分布对模型参数进行约束。该系统不仅能够对数据进行分类,还能自动识别数据集中的有效聚类数量,有效解决了传统聚类算法中需要预先设定聚类数目的难题,并具有极强的抗过拟合能力和统计鲁棒性。
功能特性
- 全贝叶斯推断:为混合权重、均值向量和精度矩阵引入Dirichlet分布与Gauss-Wishart分布先验。
- 自动模型选择:通过变分剪枝机制,系统能够从设定的最大聚类数中自动剔除冗余分量,识别真实类别数。
- 数值稳定性优化:在计算响应度时采用Log-Sum-Exp技巧,防止大规模数据处理中的数值溢出问题。
- 后验信息提取:不仅提供各簇的中心点,还提供完整的后验分布参数,包括协方差矩阵的估计。
- 综合可视化:实时生成聚类空间分布图、95%置信椭圆、证据下界(ELBO)收敛曲线以及分量权重分布直方图。
使用方法
- 环境配置:确保计算机已安装MATLAB,并具备基础的数学函数库支持。
- 运行实验:执行主程序脚本,系统将自动生成包含三个预设高斯簇的模拟数据集(共600个样本)。
- 参数调整:用户可在代码初始化部分修改最大聚类数(K)、先验超参数(alpha0, beta0等)以及收敛阈值。
- 结果查看:程序运行完成后,将在控制台输出每个有效聚类的权重与均值,并弹出可视化窗口展示聚类效果。
系统要求
- MATLAB R2018b 或更高版本。
- 无需外部工具箱,核心算法基于MATLAB内置数学函数实现。
实现逻辑与功能细节
1. 数据生成与初始化
系统首先生成一个二维空间的合成数据集,由均值和协方差各异的三个高斯分布组成。随后,系统初始化Variational Prior参数,其中alpha0设为较小值(1e-3)以鼓励模型稀疏性。初始均值通过从训练样本中随机选取来设定。
2. 坐标上升变分推断 (CAVI)
系统通过迭代优化变分参数来逼近真实的后验分布,每轮迭代包含两个核心步骤:
计算各样本属于各聚类分量的负载概率(R)。该过程利用了digamma函数计算混合权重的对数期望,并结合Gauss-Wishart分布计算样本与各分量的马氏距离分布期望。通过Log-Sum-Exp技术对响应度进行归一化,确保算法在数值运算上的安全性。
基于当前的响应度R,计算各分量的统计量(Nk, x_bar, Sk)。随后根据变分更新公式调整Dirichlet后验参数(alpha)、高斯精度标量(beta)、后验均值(m)、以及Wishart精度矩阵(W)和自由度(nu)。
3. 收敛判定与自动剪枝
系统通过计算证据下界(ELBO)的能量变化来评估模型是否收敛。在迭代过程结束后,系统会检查各分量的混合权重。由于采用了稀疏Dirichlet先验,冗余分量的权重会被自动推向接近于零。系统筛选权重超过0.01的分量作为最终的有效聚类。
4. 统计结果导出与可视化
- 空间分布渲染:将数据点根据最大响应度分配到对应簇,并绘制不同颜色的散点。
- 置信区间绘制:基于Wishart分布的期望(inv(nu * W))计算各簇的后验协方差矩阵,并利用特征值分解绘制出代表95%置信区间的等概率椭圆。
- 性能评估:通过折线图展示ELBO随迭代次数的变化情况,验证算法的收敛性;通过柱状图展示所有分量的权重,直观展示模型选择的结果。
关键算法细节分析
- 狄利克雷-高斯-威沙特先验:这是一种共轭先验结构,允许系统以解析形式更新参数,极大地提高了计算效率。
- 自由度与精度更新:nu参数随分配给该分量的有效样本数Nk增加而增加,代表了模型对该簇参数估计的置信度提升。
- 后验均值平衡:更新后的均值m是先验均值m0与样本均值的加权平均,权重取决于先验强度beta0与样本量Nk,体现了贝叶斯框架在有限数据下的优势。