Bayes meets Dijkstra
Exact Inference by Program Verification Joost-Pieter Katoen Dagstuhl Seminar “Model Checking and ML Join Forces” 2018
Joost-Pieter Katoen Bayes meets Dijkstra 1/65
Bayes meets Dijkstra Exact Inference by Program Verification - - PowerPoint PPT Presentation
Bayes meets Dijkstra Exact Inference by Program Verification Joost-Pieter Katoen Dagstuhl Seminar Model Checking and ML Join Forces 2018 Joost-Pieter Katoen Bayes meets Dijkstra 1/65 Bayes meets Dijkstra Joost-Pieter Katoen Bayes
Joost-Pieter Katoen Bayes meets Dijkstra 1/65
Joost-Pieter Katoen Bayes meets Dijkstra 2/65
Joost-Pieter Katoen Bayes meets Dijkstra 3/65
1Ghahramani leads the Cambridge ML Group, and is with CMU, UCL, and Turing Institute. Joost-Pieter Katoen Bayes meets Dijkstra 4/65
Joost-Pieter Katoen Bayes meets Dijkstra 5/65
Joost-Pieter Katoen Bayes meets Dijkstra 6/65
Joost-Pieter Katoen Bayes meets Dijkstra 7/65
Joost-Pieter Katoen Bayes meets Dijkstra 8/65
Joost-Pieter Katoen Bayes meets Dijkstra 9/65
Joost-Pieter Katoen Bayes meets Dijkstra 10/65
Joost-Pieter Katoen Bayes meets Dijkstra 11/65
Joost-Pieter Katoen Bayes meets Dijkstra 12/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 13/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 14/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 15/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 16/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 17/65
Probabilistic weakest pre-conditions
2≠ expectations in probability theory. Joost-Pieter Katoen Bayes meets Dijkstra 18/65
Probabilistic weakest pre-conditions
Joost-Pieter Katoen Bayes meets Dijkstra 19/65
Probabilistic weakest pre-conditions
5⋅wp (x ∶= 5, x) + 1 5⋅wp (x ∶= 10, x) = 4 5⋅5 + 1 5⋅10 = 6
5⋅wp (x +∶= 5, x)+ 1 5⋅wp (x ∶= 10, x) = 4 5⋅(x+5)+ 1 5⋅10 = 4x 5 + 6
4 5 ⋅ wp (x ∶= x+5, [x=10]) + 1 5 ⋅ wp (x ∶= 10, [x=10])
4 5 ⋅ [x+5 = 10] + 1 5 ⋅ [10 = 10]
4⋅[x=5]+1 5
Joost-Pieter Katoen Bayes meets Dijkstra 20/65
Probabilistic weakest pre-conditions
[ P ] ] s
3Either both sides are equal or both sides are undefined. Joost-Pieter Katoen Bayes meets Dijkstra 21/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 22/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 23/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 24/65
Bayesian inference by program analysis
▶ Rejection Sampling ▶ Markov Chain Monte Carlo (MCMC) ▶ Metropolis-Hastings ▶ Importance Sampling ▶ . . . . . .
Joost-Pieter Katoen Bayes meets Dijkstra 25/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 26/65
Bayesian inference by program analysis
10p
i=0 10p
j=0
Joost-Pieter Katoen Bayes meets Dijkstra 27/65
Bayesian inference by program analysis
n−2
i=0
Joost-Pieter Katoen Bayes meets Dijkstra 28/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 29/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 30/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 31/65
Bayesian inference by program analysis
v∈V \O
v∈V \O
Joost-Pieter Katoen Bayes meets Dijkstra 32/65
Bayesian inference by program analysis
Joost-Pieter Katoen Bayes meets Dijkstra 33/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 34/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 35/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 36/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 37/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 38/65
Termination
▶ V (sn) ≥ E {V (sn+1) ∣ V (s0), . . . , V (sn)} ▶ Running body P on state s ⊧ G does not increase E(V (s)) ▶ Loop iteration ceases if V (s) = 0
▶ V (si) = v decreases by ≥ d(v) with probability ≥ p(v) ▶ with antitone p (“probability”) and d (“decrease”) on V ’s values
Joost-Pieter Katoen Bayes meets Dijkstra 39/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 40/65
Termination
▶ V = x ▶ p(v) = 1/2 and d(v) = 1
Joost-Pieter Katoen Bayes meets Dijkstra 41/65
Termination
▶ V = Hx, where Hx is x-th Harmonic number 1 + 1/2 + . . . + 1/x ▶ p(v) = 1/3 and d(v) = {
1/x
Joost-Pieter Katoen Bayes meets Dijkstra 42/65
Termination
Joost-Pieter Katoen Bayes meets Dijkstra 43/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 44/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 45/65
Runtime analysis
3-complete
Joost-Pieter Katoen Bayes meets Dijkstra 46/65
Runtime analysis
4Certified using the Isabelle/HOL theorem prover; see [Hölzl, ITP 2016]. Joost-Pieter Katoen Bayes meets Dijkstra 47/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 48/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 49/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 50/65
Runtime analysis
Joost-Pieter Katoen Bayes meets Dijkstra 51/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 52/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 53/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 54/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 55/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 56/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 57/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 58/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 59/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 60/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 61/65
How long to sample a Bayes’ network?
Joost-Pieter Katoen Bayes meets Dijkstra 62/65
Epilogue
Joost-Pieter Katoen Bayes meets Dijkstra 63/65
Epilogue
Joost-Pieter Katoen Bayes meets Dijkstra 64/65
Epilogue
5EATCS best paper award of ETAPS 2016. Joost-Pieter Katoen Bayes meets Dijkstra 65/65