an mcmc library for probabilistic programming
play

An MCMC library for probabilistic programming Rob Zinkov June 13th, - PowerPoint PPT Presentation

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


  1. An MCMC library for probabilistic programming Rob Zinkov June 13th, 2014 Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 1 / 19

  2. Special Thanks to Praveen Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 2 / 19

  3. 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

  4. Acceptance ratios tricky to get right Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 4 / 19

  5. Reversible-jump: trickier still Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 5 / 19

  6. Split-merge proposals Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 6 / 19

  7. 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

  8. Core Primitives Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 8 / 19

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. Demo Demo! Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 14 / 19

  15. Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 15 / 19

  16. Features we provide • Blocking proposals • Cyclic kernels • Mixture kernels Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 16 / 19

  17. 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

  18. 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

  19. Questions? Rob Zinkov An MCMC library for probabilistic programming June 13th, 2014 19 / 19

Recommend


More recommend