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

an mcmc library for probabilistic programming
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

Special Thanks to Praveen

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

slide-3
SLIDE 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

slide-4
SLIDE 4

Acceptance ratios tricky to get right

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

slide-5
SLIDE 5

Reversible-jump: trickier still

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

slide-6
SLIDE 6

Split-merge proposals

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

slide-7
SLIDE 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

slide-8
SLIDE 8

Core Primitives

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

slide-9
SLIDE 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

slide-10
SLIDE 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

slide-11
SLIDE 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

slide-12
SLIDE 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

slide-13
SLIDE 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

slide-14
SLIDE 14

Demo

Demo!

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

Features we provide

  • Blocking proposals
  • Cyclic kernels
  • Mixture kernels

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

slide-17
SLIDE 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

slide-18
SLIDE 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

slide-19
SLIDE 19

Questions?

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