Reference. Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation
In this paper, we give a simple and efficient implementation of reverse-mode automatic differentiation, which both extends easily to higher-order functions, and has run time and memory consumption linear in the run time of the original program. In addition to a formal description of the translation, we also describe an implementation of this algorithm, and prove its correctness by means of a logical relations argument.
Cite
Cites 21 works (0 here)
External (21)
- Automatic differentiation in PCF (2021)
- λS: computable semantics for differentiable programming with higher-order functions and datatypes (2021)
- Reverse AD at Higher Types: Pure, Principled and Denotationally Correct (2021)
- ad: Automatic Differentiation (Haskell package) (2021)
- Backpropagation in the simply typed lambda-calculus with linear negation (2020)
- Correctness of Automatic Differentiation via Diffeologies and Categorical Gluing (2020)
- A Differential-form Pullback Programming Language for Higher-order Reverse-mode Automatic Differentiation (2020)
- A simple differentiable programming language (2020)
- Demystifying differentiable programming: shift/reset the penultimate backpropagator (2019)
- The simple essence of automatic differentiation (2018)
- The enriched effect calculus: syntax and semantics (2012)
- Beautiful Differentiation (2009)
- Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (second ed.) (2008)
- Reverse-mode AD in a functional framework: Lambda the ultimate backpropagator (2008)
- Automatic Differentiation, C++ Templates, and Photogrammetry (2004)
- Automatic Differentiation of Algorithms: From Simulation to Optimization (2002)
- Functional Differentiation of Computer Programs (1998)
- Definitional Interpreters for Higher-Order Programming Languages (1998)
- A new characterization of lambda definability (1993)
- Notions of Computation and Monads (1991)
- A simple automatic derivative evaluation program (1964)