[Haskell-cafe] Probabilistic programming in Haskell with bali-phy

dominic at steinitz.org dominic at steinitz.org
Mon Jun 19 15:37:33 UTC 2017


> While we're mentioning Haskell-embedded languages for probabilistic 
> programming, there is yet another, Hakaru.
> 
> github: https://github.com/hakaru-dev/hakaru
> docs: https://hakaru-dev.github.io/
> hackage: https://hackage.haskell.org/package/hakaru-0.4.0
> 
> It can be used either embedded or via an external syntax.  It can act as 
> a sampler, but also do code generation (to Haskell, to C, more coming), 
> simplification (via Maple if it is installed) and disintegration (aka 
> conditioning).
> 
> It uses quite a number of advanced Haskell features (though works in 7.8 
> onwards) to insure safety of the embedded language.  See 
> https://hackage.haskell.org/package/hakaru-0.4.0/docs/Language-Hakaru-Syntax-ABT.html 
> if you are curious about that.
> 
> Jacques

There are production strength PPLs like Stan and PyMC3. They aren’t Haskell but if you actually want to model something then they are my “go to” tools. There’s also LibBI which uses Sequential Monte Carlo rather than Hamiltonian Monte Carlo. Stan and LibBI are C++ with interfaces (I use the word very loosely) from e.g. R, Python, Matlab, etc. PyMC3 as you might guess is entirely Python. Both have very good communities.

In Haskell there is also monad-bayes https://github.com/adscib/monad-bayes <https://github.com/adscib/monad-bayes> and baysig, the latter sadly not publicly available (last time I checked). If you have a hidden state model (e.g. stochastic volatility) then there is also particle filtering (aka Sequential Monte Carlo) using https://hackage.haskell.org/package/kalman-1.0.0.2 <https://hackage.haskell.org/package/kalman-1.0.0.2>.

I just looked at the commit log for monad-bayes and it seems to use HMC these days :) and supports ADVI.

I spent a bit of time at the recent Zurihac with Alexander Vershilov making some very small steps towards a symplectic integrator package which could form the basis for HMC in Haskell.

Dominic Steinitz
dominic at steinitz.org
http://idontgetoutmuch.wordpress.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170619/4e949806/attachment.html>


More information about the Haskell-Cafe mailing list