ForneyLab.jl is a Julia package for automatic generation of (Bayesian) inference algorithms. Given a probabilistic model, ForneyLab generates efficient Julia code for message-passing based inference. It uses the model structure to generate an algorithm that consists of a sequence of local computations on a Forney-style factor graph (FFG) representation of the model. For an excellent introduction to message passing and FFGs, see The Factor Graph Approach to Model-Based Signal Processing by Loeliger et al. (2007). Moreover, for a comprehensive overview of the underlying principles behind this tool, see A Factor Graph Approach to Automated Design of Bayesian Signal Processing Algorithms by Cox et. al. (2018).

We designed ForneyLab with a focus on flexible and modular modeling of time-series data. ForneyLab enables a user to:

- Conveniently specify a probabilistic model;
- Automatically generate an efficient inference algorithm;
- Compile the inference algorithm to executable Julia code.

The current version supports belief propagation (sum-product message passing), variational message passing and expectation propagation.

The ForneyLab project page provides more background on ForneyLab as well as pointers to related literature and talks. For a practical introduction, have a look at the demos.

Full documentation is available at BIASlab website.

It is also possible to build documentation locally. Just execute

```
$ julia make.jl
```

in the `docs/`

directory to build a local version of the documentation.

Install ForneyLab through the Julia package manager:

```
] add ForneyLab
```

If you want to be able to use the graph visualization functions, you will also need to have GraphViz installed. On Linux, just use `apt-get install graphviz`

or `yum install graphviz`

. On Windows, run the installer and afterwards manually add the path of the GraphViz installation to the `PATH`

system variable. On MacOS, use for example `brew install graphviz`

. The `dot`

command should work from the command line.

Some demos use the PyPlot plotting module. Install it using `] add PyPlot`

.

Optionally, use `] test ForneyLab`

to validate the installation by running the test suite.

There are demos available to get you started. Additionally, the ForneyLab project page contains a talk and other resources that might be helpful.

(c) 2019 GN Store Nord A/S. Permission to use this software for any non-commercial purpose is granted. See `LICENSE.md`

file for details.

Get A Weekly Email With Trending Projects For These Topics

No Spam. Unsubscribe easily at any time.

machine-learning (3,528)

julia (638)

probabilistic-programming (52)

bayesian-methods (27)