The Libra Toolkit |
Overview
The Libra Toolkit is a collection of algorithms for learning and inference with discrete probabilistic models, including Bayesian networks (BNs), Markov networks (MNs), dependency networks (DNs), sum-product networks (SPNs), and arithmetic circuits (ACs). Compared to other toolkits, Libra focuses more on structure learning, especially for tractable models in which exact inference is efficient. Each algorithm in Libra is implemented as a command-line program suitable for interactive use or scripting, with consistent options and file formats throughout the toolkit.
Libra was written by Daniel Lowd and Amirmohammad (Pedram) Rooshenas.
Libra is released under a modified BSD license.
Algorithms in Libra
Learning algorithms:
- Chow-Liu algorithm for learning tree-structured BNs (Chow & Liu, 1968)
- Learning BNs with context-specific independence (Chickering & al., 1997)
- Learning DNs (Heckerman & al., 2000)
- Learning MNs from DNs (Lowd, 2012)
- BN structure learning of compact arithmetic circuits (Lowd & Domingos, 2008)
- MN structure learning of compact arithmetic circuits (Lowd & Rooshenas, 2013)
- Mixtures of trees (Meila & Jordan, 2000)
- Markov network weight learning
- Learning SPN structure using the ID-SPN algorithm (Rooshenas & Lowd, 2014)
- Discriminative structure learning of arithmetic circuits (Rooshenas &l Lowd, 2016) (Will be added in the next update)
Inference algorithms:
- Gibbs sampling
- Belief propagation
- Max-product
- Iterated conditional modes
- Mean field (Lowd & Shamaei, 2011) (for mean field in DNs)
- AC variable elimination (Chavira & Darwiche, 2007)
- Exact AC and SPN inference
- Variational optimization of ACs (Lowd & Domingos, 2010)
Utility methods:
- Forward sampling in BNs
- Likelihood and pseudo-likelihood model scoring
- Model conversion and conditioning on evidence
Citation
@article{lowd&rooshenas2015,
title = {The Libra Toolkit for Probabilistic Models},
author = {Lowd, Daniel and Rooshenas, Amirmohammad},
journal = {Journal of Machine Learning Research},
year = {2015},
volume = {16},
pages = {2459-2463}
}
Downloads
The latest public release of Libra is available here: libra-tk-1.1.2d.tar.gz (12/29/2015)
An even more up-to-date development version can be obtained from the source code repository:
https://bitbucket.org/libra-tk/libra-tk
Version 1.1.2 switches to the OASIS build system for cleaner building and installation. Version 1.1.2d updates the documentation to better describe installation using OPAM and fixes an incompatibility with some shell environments.
Version 1.1.1 includes many minor fixes.
Version 1.1.0 includes library documentation and the libra script, which calls the executables.
Version 1.0.1 introduces algorithms for learning tractable Markov networks with ACs (acmn), sum-product networks (idspn), and mixtures of trees (mtlearn), along with many more minor updates.
See the changelog for more details and history.
All methods are implemented in OCaml, in order to obtain the best possible speed while keeping the code compact and easy to work with. To compile the source code, you must have a UNIX-like environment (Linux, OS X) with a recent version of OCaml and ocamlfind installed. The recommended way to install OCaml and ocamlfind is through OPAM, the OCaml package manager.
For more information, see the documents below:
These are also present in the doc/ directory of the source distribution.Older versions:
- libra-tk-1.1.2.tar.gz (6/10/2015)
- libra-tk-1.1.1.tar.gz (5/21/2015)
- libra-tk-1.1.0.tar.gz (3/26/2015)
- libra-tk-1.0.1.tar.gz (3/30/2014)
- libra-tk-0.5.0.tar.gz (8/16/2012)
- libra-tk-0.4.0.tar.gz (7/06/2011)
- libra-tk-0.3.0.tar.gz (8/01/2010)
- libra-tk-0.2.0.tar.gz (6/08/2010)
- libra-tk-0.1.0.tar.gz (4/24/2010)
Please email Daniel Lowd or Amirmohammad (Pedram) Rooshenas with any questions, comments, or bug reports/fixes.
Last updated Tuesday, December 29, 2015.