An MCMC library for probabilistic programming Rob Zinkov June 13th, 2014 Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 1 / 19
Special Thanks to Praveen Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 2 / 19
Why we need it? • Prototyping probabilistic programming inference solutions • Easier exploration of mcmc algorithms • Easier to combine multiple mcmc strategies Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 3 / 19
Acceptance ratios tricky to get right Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 4 / 19
Reversible-jump: trickier still Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 5 / 19
Split-merge proposals Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 6 / 19
Caveats • We are only talking MCMC and no other inference methods • We will not discuss how to use this library in a probabilistic programming system Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 7 / 19
Core Primitives Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 8 / 19
Providing a Density type Density a = a -> Probability data Target a = T (Density a) Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 9 / 19
Providing a Proposal Distribution type Sample a = Rand -> IO a data Proposal a = P (Density a) (Sample a) Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 10 / 19
Specifying a Step (Transition) Steps are how we transition from one state to another type Step x = Rand -> x -> IO x Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 11 / 19
Specifying a Kernel type Kernel x a = Target a -> (a -> Proposal a) -> Step x Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 12 / 19
Walking the MCMC chain walk :: Step x -> x -> Int -> Rand -> Action x a -> IO a Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 13 / 19
Demo Demo! Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 14 / 19
Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 15 / 19
Features we provide • Blocking proposals • Cyclic kernels • Mixture kernels Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 16 / 19
Further work • Langevin and Hamiltonian MC • Approximate MCMC (ABC, Noisy MALA) • Adaptive MC • Reversible Jump Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 17 / 19
Conclusions Let’s write our inference solutions in more modular ways Coming very soon to Hackage! Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 18 / 19
Questions? Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 19 / 19
Recommend
More recommend