# hub.darcs.net :: oschwand -> libmef -> files

C library for mixtures of exponential families

## root

	   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LIBMEF – A LIBRARY FOR MIXTURES OF EXPONENTIAL
FAMILIES

Olivier Schwander
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

─────────────────

Description
What are exponential families?
Documentation
.. Algorithms
.. Families
.. Divergences
.. Examples
Installation
.. 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
════════════

─────────

• [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

• 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