Our attempt to give semantics to a core, functional probabilistic programming language uses computable distributions. The semantics uses largely standard techniques from denotational semantics. One nice property of computable distributions is that they are completely characterized by a sampling algorithm. Hence, it is possible to faithfully implement (in a Turing-complete language) a semantics based on computable distributions as a sampling library.… Read the rest
Monthly Archives: December 2015
We explore the use of parameterized monads for ensuring additional properties of distributions constructed by probabilistic programs. As a specific example we demonstrate how to statically ensure that conditioning in probabilistic programs does not depend on random choices made during execution.… Read the rest
For about an year or so, we have been working on the semantics of higher-order probabilistic programming languages that support continuous distributions, such as Church, Venture and Anglican. Our goal was to verify the correctness of program optimisations that we developed for Anglican, and to understand unusual programming concepts in Anglican, such as nested query and distribution object.… Read the rest
Probabilistic and nondeterministic choice are two standard examples of computational effect, and it is important for some problems to be able to use them in combination — for example, to model probabilistic systems that depend on nondeterministic inputs. However, the algebraic properties that characterise their interaction are tricky to get right (and we have ourselves got them wrong in the past).… Read the rest
We discuss semantic intricacies of conditioning, a main feature in probabilistic programming, and propose how to deal with these issues in an operational way and in a weakest pre-condition semantics. This includes the interplay between conditioning and possible non-termination as well as between conditioning and non-determinism.… Read the rest
In probabilistic programming languages, model construction and inference are separate tasks. The former is done by the language users and the latter by the language developers. Unfettered by concerns about inference, modelers will want to create big, complex probabilistic programs, which will present familiar problems: Models may become too big to comprehend, debug or validate as wholes.… Read the rest
We define a core calculus for the purpose of investigating reasoning principles of probabilistic programming languages. By using a variation of a technique called higher-order abstract syntax (HOAS), which is common in the implementation of domain-specific languages, the calculus captures the semantics of a stochastic language with observation while being agnostic to the details of its deterministic portions.… Read the rest
The goal of this paper is to show how semantics can be defined for a real-world probabilistic programming language. Figaro has had numerous applications in areas such as malware analysis, climate modeling, vehicle health maintenance, and intelligence analysis.
Avi Pfeffer and Brian Ruttenberg, Charles River Analytics… Read the rest
Authors: Johannes Borgström, Ugo Dal Lago, Andrew D. Gordon, Marcin Szymczak
We develop the operational semantics of a probabilistic lambda- calculus with continuous distributions, as a foundation for universal probabilistic programming languages such as Church, Anglican, and Venture. Our first contribution is to adapt the classic operational semantics of lambda-calculus to the continuous case, via creating a measure space on terms and defining step-indexed approximations.… Read the rest
Welcome to PPS, workshop on probabilistic programming semantics, on Saturday, 23 January 2016, colocated with POPL. This informal workshop aims to bring programming-language and machine-learning researchers together to advance the semantic foundations of probabilistic programming.