C library for mixtures of exponential families
root
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LIBMEF – A LIBRARY FOR MIXTURES OF EXPONENTIAL
FAMILIES
Olivier Schwander
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Table of Contents
─────────────────
Description
What are exponential families?
Documentation
.. Algorithms
.. Families
.. Divergences
.. Examples
Installation
.. Downloads
.. Darcs repository
.. Compilation
Bibliography
Contacts
Description
═══════════
`libmef' is a C library allowing to manipulate, learn, simplify and
compare mixtures of exponential families. It is designed to ease the
use of various exponential families in mixture models.
See also [jMEF] for a Java implementation of the same kind of library
and [pyMEF] for a Python version.
The C implementation allows to easily binds the library to other
languages and thus to put mixtures of exponential families into /your/
application.
[jMEF] http://www.lix.polytechnique.fr/~nielsen/MEF/
[pyMEF] http://www.lix.polytechnique.fr/~schwander/pyMEF/
What are exponential families?
══════════════════════════════
An exponential family is a generic set of probability distributions
that admit the following canonical distribution:
\[ p_F(x; \theta) = \exp \left( \langle t(x) | \theta \rangle -
F(\theta) + k(x) \right) \]
Exponential families are characterized by the log normalizer function
F, and include the following well-known distributions: Gaussian
(generic, isotropic Gaussian, diagonal Gaussian, rectified Gaussian or
Wald distributions, lognormal), Poisson, Bernoulli, binomial,
multinomial, Laplacian, Gamma (incl. chi-squared), Beta, exponential,
Wishart, Dirichlet, Rayleigh, probability simplex, negative binomial
distribution, Weibull, von Mises, Pareto distributions, skew logistic,
etc.
Mixtures of exponential families provide a generic framework for
handling Gaussian mixture models (GMMs also called MoGs for mixture of
Gaussians), mixture of Poisson distributions, and Laplacian mixture
models as well.
Documentation
═════════════
Algorithms
──────────
• Bregman Soft Clustering
• Bregman Hard Clustering (soon)
• Kernel Density Estimator (soon)
• $k$-MLE
• $k$-MLE for Gamma mixtures
• $k$-MLE for generalized Gaussian mixtures
• Gaussian EM
• Gamma EM
• co-EM for co-mixtures of exponential families
Families
────────
• Univariate Gaussian
• Multivariate Gaussian
• Gamma
• Generalized Gaussian
Do not hesitate to contribute with your own family (tutorial to come)
Divergences
───────────
• Kullback-Leibler divergence (Monte-Carlo)
• Kullback-Leibler divergence (Variational approximation)
• Kullback-Leibler divergence (fast Variational approximation using
co-mixtures)
Examples
────────
See the `examples/' sub-directory inside the sources or browse online
at [http://hub.darcs.net/oschwand/libmef/examples].
Installation
════════════
Downloads
─────────
• [file:libmef-0.2.0.tar.gz]
• [file:libmef-0.1.tar.gz] (as used in the SIMBAD 2013 paper)
Darcs repository
────────────────
• Get: `darcs get
http://www.lix.polytechnique.fr/~schwander/darcs/libmef/'
• Browse: [http://hub.darcs.net/oschwand/libmef]
Compilation
───────────
You will need [cmake] and the [GNU Scientific Library] in order to
compile `libmef'.
┌────
│ mkdir build && cd build # out-of-sources build
│ cmake ..
│ make
│ cd examples; make # for the examples
│ make install # install in /usr/local
└────
[cmake] http://cmake.org/
[GNU Scientific Library] http://www.gnu.org/software/gsl/
Bibliography
════════════
• Olivier Schwander and Frank Nielsen, *Fast learning of Gamma mixture
models with k-MLE*, SIMBAD 2013
• Olivier Schwander, Frank Nielsen, Aurélien Schutz and Yannick
Berthoumieu, *k-MLE for mixtures of generalized Gaussians*, , ICPR
2012
• Olivier Schwander and Frank Nielsen, *Learning Mixtures by
Simplifying Kernel Density Estimators*, in [Matrix Information
Geometry], Springer, 2012
• Olivier Schwander and Frank Nielsen, *pyMEF - A framework for
Exponential Families in Python*, in *Proceedings of the 2011 IEEE
Workshop on Statistical Signal Processing*
• Vincent Garcia, Frank Nielsen, and Richard Nock, *Levels of details
for Gaussian mixture models*, in *Proceedings of the Asian
Conference on Computer Vision, Xi'an, China, September 2009*
• Frank Nielsen and Vincent Garcia, *Statistical exponential families:
A digest with flash cards*, arXiV, [http://arxiv.org/abs/0911.4863],
November 2009
• Frank Nielsen and Richard Nock, *Sided and symmetrized Bregman
centroids*, in *IEEE Transactions on Information Theory, 2009, 55,
2048-2059*
• Frank Nielsen, Jean-Daniel Boissonnat and Richard Nock, *On Bregman
Voronoi diagrams*, in *ACM-SIAM Symposium on Data Mining, 2007,
746-755*
• A. Banerjee, S. Merugu, I. Dhillon, and J. Ghosh, *Clustering with
Bregman divergences*, in *Journal of Machine Learning Research,
2005, 6, 234-245*
[Matrix Information Geometry]
http://www.springer.com/engineering/signals/book/978-3-642-30231-2
Contacts
════════
Please send any comment or bug report to [Olivier Schwander].
[Olivier Schwander] mailto:schwander@lix.polytechnique.fr