package prbnmcn-dagger
Install
Dune Dependency
Authors
Maintainers
Sources
md5=d3453c4f3dfe1b7b2e979e6ab03c7a1e
sha512=a0f3f9190b23a408724d24bf47fb5c5fd9b4fdefa4d3b19bbc67117aa20fb7799045d9046a535365772f131947c2bd931d756226a9571fba84201e713a87e8ca
Description
A library for probabilistic programming. It takes the form of a signature for a monadic language exposing sampling and scoring primitives together with inference algorithms implementing that signature.
Published: 27 Mar 2022
README
dagger†: a probabilistic programming library
The dagger library for probabilistic programming in OCaml. Currently implements:
Single-site Metropolis-Hastings, a.k.a. lightweight Metropolis-Hastings
Incrementalized single-site MH, similar to that implemented in Hakaru10
Sequential Monte-Carlo, with systematic and stratified resampling
The main package is prbnmcn-dagger
. Packages prbnmcn-dagger-gsl
and prbnmcn-dagger-stats
provide distributions implemented respectively through the GSL (GPL-licensed) and prbnmcn-stats
(MIT-licensed).
Look no further for the documentation.
Examples will be made available in the examples
subdirectory. For now, you'll find:
an implementation of a 2d ising model and a toy study of its behaviour around its critical temperature
an experiment on forecasting wind power production using an ad-hoc Kalman filter
Contributing
Contributions and issue reports are welcome. Development currently happen on https://gitlab.com/igarnier/monorepo/ but I can take care of cherry-picking pull requests submitted here.
Trivia
The name dagger refers to two things:
a good mathematical framework for giving a semantics to probabilistic programming is a certain dagger category of Markov kernels, see eg this or that paper; Bayesian inversion corresponds to a particular symmetry of a mathematical structure and this symmetry is denoted using the † symbol.
the underlying representation of the probabilistic model when using the incrementalized backend is as a directed acyclic graph (ie a DAG, which sounds exactly like the French translation of dagger)
Dependencies (3)
-
prbnmcn-cgrph
= "0.0.2"
-
pringo
>= "1.3"
-
dune
>= "2.8"
Dev Dependencies (1)
-
odoc
with-doc
Used by (3)
-
prbnmcn-dagger-gsl
= "0.0.2"
-
prbnmcn-dagger-stats
= "0.0.2"
-
prbnmcn-dagger-test
= "0.0.2"
Conflicts (2)
-
ocaml-compiler
= "5.3.0~alpha1"
-
ocaml-variants
= "4.12.0+domains+effects" | = "5.1.1+effect-syntax"