Expectation Programming
  Building on ideas from probabilistic programming, we introduce the concept of
an expectation programming framework (EPF) that automates the calculation of
expectations. Analogous to a probabilistic program, an expectation program is
comprised of a mix of probabilistic constructs and deterministic calculations
that define a conditional distribution over its variables. However, the focus
of the inference engine in an EPF is to directly estimate the resulting
expectation of the program return values, rather than approximate the
conditional distribution itself. This distinction allows us to achieve
substantial performance improvements over the standard probabilistic
programming pipeline by tailoring the inference to the precise expectation we
care about. We realize a particular instantiation of our EPF concept by
extending the probabilistic programming language Turing to allow so-called
target-aware inference to be run automatically, and show that this leads to
significant empirical gains compared to conventional posterior-based inference.
