forneylab.jl

Julia package for automatically generating Bayesian inference algorithms through message passing on Forney-style factor graphs.

https://github.com/biaslab/forneylab.jl

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, ieee.org
  • Committers with academic emails
    2 of 20 committers (10.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.1%) to scientific vocabulary

Keywords

bayesian-methods factor-graph machine-learning probabilistic-graphical-models probabilistic-programming state-space-models

Keywords from Contributors

bayesian-inference inference-engine message-passing variational-inference interpretability fluxes standardization hack
Last synced: 6 months ago · JSON representation ·

Repository

Julia package for automatically generating Bayesian inference algorithms through message passing on Forney-style factor graphs.

Basic Info
  • Host: GitHub
  • Owner: biaslab
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 33.3 MB
Statistics
  • Stars: 149
  • Watchers: 14
  • Forks: 34
  • Open Issues: 12
  • Releases: 10
Topics
bayesian-methods factor-graph machine-learning probabilistic-graphical-models probabilistic-programming state-space-models
Created over 7 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License Citation

README.md

ForneyLab.jl

Build Status Documentation Code coverage

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.

Documentation

Full documentation is available at BIASlab website.

It is also possible to build documentation locally. Just execute

bash $ julia make.jl

in the docs/ directory to build a local version of the documentation.

Installation

Install ForneyLab through the Julia package manager: jl ] 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.

Getting started

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

License

MIT License, Copyright (c) 2022 BIASlab http://biaslab.org see LICENSE.md file for details.

Owner

  • Name: BIASlab
  • Login: biaslab
  • Kind: organization
  • Email: info@biaslab.org
  • Location: Eindhoven, the Netherlands

Bayesian Intelligent Autonomous Systems lab

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  A factor graph approach to automated design of
  Bayesian signal processing algorithms
message: >-
  Please cite the ForneyLab software package as
  indicated below
type: software
authors:
  - given-names: Marco
    family-names: Cox
  - given-names: Thijs
    name-particle: van de
    family-names: Laar
  - given-names: Bert
    name-particle: de
    family-names: Vries
identifiers:
  - type: doi
    value: 10.1016/j.ijar.2018.11.002

GitHub Events

Total
  • Watch event: 2
  • Fork event: 1
Last Year
  • Watch event: 2
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,801
  • Total Committers: 20
  • Avg Commits per committer: 90.05
  • Development Distribution Score (DDS): 0.529
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Thijs t****r@h****m 849
Marco Cox m****l@m****m 429
Ivan Bocharov b****a@g****m 245
semihakbayrak s****k@g****m 75
AnoukvDiepen a****n@g****m 46
Martin Roa Villescas m****i@g****m 44
albertpod a****o@g****m 32
Dmitri Bagaev b****i@g****m 31
Bart van Erp b****p@t****l 14
bertdv b****v@g****m 10
Wouter van Roosmalen w****n@g****m 7
I. Senoz i****z@t****l 5
MagnusKoudahl m****l@g****m 4
wmkouw w****w@g****m 3
Kevin Murphy m****k@g****m 2
Jameson Nash v****h@g****m 1
KeithWM k****h@m****l 1
KristofferC k****9@g****m 1
Moritz Schauer m****r@w****e 1
github-actions[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 38
  • Total pull requests: 62
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 22
  • Total pull request authors: 8
  • Average comments per issue: 2.87
  • Average comments per pull request: 0.84
  • Merged pull requests: 43
  • Bot issues: 0
  • Bot pull requests: 16
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • erlebach (6)
  • ThijsvdLaar (5)
  • semihakbayrak (3)
  • albertpod (3)
  • quantumhub (2)
  • bvdmitri (2)
  • bartvanerp (2)
  • bcjr-hue (1)
  • jagiellonczyk14 (1)
  • pzeidman (1)
  • oliverdutton (1)
  • HoangMHNguyen (1)
  • wmkouw (1)
  • caxelrud (1)
  • HiroIshida (1)
Pull Request Authors
  • ThijsvdLaar (24)
  • github-actions[bot] (16)
  • bvdmitri (7)
  • bartvanerp (4)
  • semihakbayrak (4)
  • ivan-bocharov (4)
  • albertpod (2)
  • vtjnash (1)
Top Labels
Issue Labels
enhancement (3) bug (1)
Pull Request Labels
bug (2)

Dependencies

REQUIRE julia
  • SpecialFunctions *
  • julia 0.7
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite