-
- Description:
libDAI is a free/open source C++ library (licensed under GPL 2+) that provides implementations of various (approximate) inference methods for discrete graphical models. libDAI supports arbitrary factor graphs with discrete variables; this includes discrete Markov Random Fields and Bayesian Networks.
The library is targeted at researchers. To be able to use the library, a good understanding of graphical models is needed.
The best way to use libDAI is by writing C++ code that invokes the library; in addition, part of the functionality is accessibly by using the
* command line interface * (limited) MatLab interface * (experimental) python interface * (experimental) octave interface.libDAI can be used to implement novel (approximate) inference algorithms and to easily compare the accuracy and performance with existing algorithms that have been implemented already.
Currently, libDAI supports the following (approximate) inference methods:
* Exact inference by brute force enumeration; * Exact inference by junction-tree methods; * Mean Field; * Loopy Belief Propagation; * Tree Expectation Propagation; * Generalized Belief Propagation; * Double-loop GBP; * Various variants of Loop Corrected Belief Propagation; * Gibbs sampler; * Clamped Belief Propagation.These inference methods can be used to calculate partition sums, marginals over subsets of variables, and MAP states (the joint state of variables that has maximum probability).
In addition, libDAI supports parameter learning of conditional probability tables by Expectation Maximization.
- Changes to previous version:
New features include:
* complete doxygen documentation * parameter learning for conditional probabilities by expectation maximization/maximum likelihood (contributed by Charles Vaske) * experimental interface for python and octave (contributed by Patrick Pletscher) * exact and approximate MAP inference functionality * approximate inference method "Clamped Belief Propagation" (contributed by Frederik Eaton) * approximate inference method "Gibbs sampling" (contributed by Frederik Eaton)Apart from that, the build system has improved (supporting now GNU/ Linux, Cygwin, Mac OS X and Windows/Visual C++), the code has been cleaned up, bugs have been fixed, more examples have been added, and the documentation has been improved.
- BibTeX Entry: Download
- URL: Project Homepage
- Supported Operating Systems: Cygwin, Linux, Macosx, Windows
- Data Formats: Ascii
- Tags: Approximate Inference, Bayesian Networks, Factor Graphs, Generalized Belief Propagation, Graphical Models, Junction Tree, Loop Corrections, Loopy Belief Propagation, Markov Random Fields, Mean Field
- Archive: download here
Other available revisons
-
Version Changelog Date 0.2.3 New features include:
* complete doxygen documentation * parameter learning for conditional probabilities by expectation maximization/maximum likelihood (contributed by Charles Vaske) * experimental interface for python and octave (contributed by Patrick Pletscher) * exact and approximate MAP inference functionality * approximate inference method "Clamped Belief Propagation" (contributed by Frederik Eaton) * approximate inference method "Gibbs sampling" (contributed by Frederik Eaton)Apart from that, the build system has improved (supporting now GNU/ Linux, Cygwin, Mac OS X and Windows/Visual C++), the code has been cleaned up, bugs have been fixed, more examples have been added, and the documentation has been improved.
November 17, 2009, 12:06:07 0.2.2 Initial Announcement on mloss.org.
May 26, 2008, 17:58:14
Comments
-
- Joris Mooij (on September 30, 2008, 23:06:23)
I am pleased to announce a new version of libDAI. It features several optimizations of implementation details and improved doxygen documentation.
-
- Joris Mooij (on November 17, 2009, 12:10:26)
I am pleased to announce release 0.2.3 of libDAI, featuring contributions from Frederik Eaton, Charles Vaske and Patrick Pletscher (and myself).
Leave a comment
You must be logged in to post comments.
I've been using it for a long time. Nice architecture, pretty good features. Some aspects may need optimisation in the implementation. Total lack of documentation makes the use of the library a bit hard at the beginning.
The library can be used also as a stand-alone program specifying factors as raw files. This can be useful in case basic inference tasks are required. In this case, the presence of some commented examples makes the use of the program easier.