Variational Bayesian EM for Gaussian mixture models

Matlab code written by Emtiyaz Khan, June 2007. Based on Section 10.2 of Chris Bishop's book.

Bug fixes by Jonathan Bronson. Last updated: 22 October 2008.

Click here to download. Also needs netlab.

For other VBEM code, see VB.org and Bayes blocks by the Helsinki group.

Below we show the output of the algorithm on the old faithful dataset, using 15 mixture components and a symmetric Dirichlet prior with alpha =0.001. Only two components "survive"; the rest have posterior alphas all equal to 0.01; their posterior means are at (0,0), so they appear superimposed. These can easily be removed by a postprocessing step. Thus this method nicely solves the model selection problem, in addition to being much more numerically robust than maximum likelihood.