Fine-Grained Semantics for Probabilistic Programs
Benjamin Bichsel Timon Gehr Martin Vechev
Fine-Grained Semantics for Probabilistic Programs Benjamin Timon - - PowerPoint PPT Presentation
Fine-Grained Semantics for Probabilistic Programs Benjamin Timon Martin Bichsel Gehr Vechev Probabilistic models Security Networking Machine Learning Robotics Randomized Algorithms Probabilistic programming Probability density
Benjamin Bichsel Timon Gehr Martin Vechev
Networking Security Machine Learning Robotics Randomized Algorithms
x := uniform(0,1); y := uniform(0,1); return x+y;
Probability density function Cumulative distribution function
x := uniform(0,1); y := uniform(0,1);
return x+y;
Probability density function Cumulative distribution function
0.5
x := uniform(-1,1); x = sqrt(x); return x;
Probability density function Cumulative distribution function
0.5
x := 2; while x>0 { if x<4 { if flip(0.5) { x++; } else { x--; } } } return x;
1/2 1/2 1/2 1/2 1/2 1/2 1 return 0 start
0.5
x := 0; while 1 { x = x/x; } return x; Better:
x := 0; while x==0 { x = flip(0.5);
} return x; Better:
x := 10; d := gauss(0,1);
while x>=0 { x-=d; } return x; Better:
Explicitly distinguish exceptions:
Our semantics also support
probabilistic semantics
solvers (e.g. PSI)
probabilistic solvers
exceptions
1
1
x := uniform(-1,1); x = sqrt(x); return x;
lift lift lift lift
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
Dirac delta
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
sqrt(uniform(-1,1))
n := 0; while !flip(0.5) { n++; }
n := 0; while !flip(0.5) { n++; }
n := 0; while !flip(0.5) { n++; }
n := 0; while !flip(0.5) { n++; }
Theorem: The semantics of each expression and each statement is a probability kernel.
F() { while 1 { skip; } return 0; }
Proof: Relies on associativity of the product of kernels and composition of kernels.
x := gauss(0,1); score( ); return x;
i := 0; while 1 { if i==0 { score(2); } else { score(0.5); } i = 1-i; }
Theorem: After adding the score primitive and abolishing non- termination, the semantics of each expression and each statement is an s-finite kernel.
Informally:
errors mix discrete and continuous higher-order score loops recursion non-determinism