ADEV: Sound Automatic Differentiation of Expected Values of Probabilistic Progra...
summary
ADEV is a source-to-source extension of forward-mode AD that transforms a probabilistic program into another whose expected return equals the derivative of the original program’s expectation, enabling unbiased Monte Carlo gradient estimates usable inside SGD. It handles discrete and continuous primitives by translating the probability monad to a continuation-like monad, implements many estimators (reinforce, reparameterization, measure-value/Phantom), proves correctness via logical relations, provides a concise Haskell prototype (few dozen lines, github.com/probcomp/adev), and exposes trade-offs while guarding correctness with a type-based analysis.
AI-written summary · about
chapters (5)
- 0:00Start
- 7:28Dual number versions of primitives
- 7:58Dual number program transformation
- 8:31What goes wrong with probabilistic programs?
- 12:39Addressing Challenge 1: Random Primitives
related talks
10mReverse mode ADEV via YOLO: tangent estimators transpose to gradient estimators
05mPartial Evaluation of Forward-Mode Automatic Differentiation
11mAbstract Interpretation for Automatic Differentiation
36mProgramming Languages for Automatic Differentiation: What Now?
39mDifferentiable Functional Programming
29mPartial Evaluation of Automatic Differentiation for Differential-Algebraic Equati...
26mAdding AD to Scheme by Differentiating the Interpreter
19mTowards Denotational Semantics of AD for Higher-Order, Recursive, Probabilistic
