|The Libra Toolkit|
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 is released under a modified BSD license.
Algorithms in Libra
- 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 ID-SPN algorithm (Rooshenas & Lowd, 2014)
- Gibbs sampling
- Belief propagation
- 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)
- Forward sampling in BNs
- Likelihood and pseudo-likelihood model scoring
- Model conversion and conditioning on evidence
The latest public release of Libra is available here: libra-tk-1.1.0.tar.gz (3/26/2015)
An even more up-to-date development version can be obtained from the source code repository:
Version 1.1.0 includes library documentations and 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 details.
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 installed.
For more information, see the documents below:
- 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 Monday, March 23, 2015.