Proceedings of the ACM on Programming Languages · 2021 · 48 citations · 19 references
ComputingComputer ScienceMathematicsAlgorithmsSet TheoryTheory Of ComputationArithmetic FunctionsDeductive VerificationAutomatic DifferentiationDifferentiationHigher-order ComputabilityPrimitive Recursive FunctionsReal NumbersRecursive Functions
We study the correctness of automatic differentiation (AD) in the context of a higher-order, Turing-complete language (PCF with real numbers), both in forward and reverse mode. Our main result is that, under mild hypotheses on the primitive functions included in the language, AD is almost everywhere correct, that is, it computes the derivative or gradient of the program under consideration except for a set of Lebesgue measure zero. Stated otherwise, there are inputs on which AD is incorrect, but the probability of randomly choosing one such input is zero. Our result is in fact more precise, in that the set of failure points admits a more explicit description: for example, in case the primitive functions are just constants, addition and multiplication, the set of points where AD fails is contained in a countable union of zero sets of polynomials.
19
Automatic differentiation in PyTorch
Adam Paszke, Sam Gross, Soumith Chintala et al. · 2017 · 11.1K citations
TensorFlow: A system for large-scale machine learning
Martı́n Abadi, Paul Barham, Jianmin Chen et al. · arXiv (Cornell University) · 2016 · 8.8K citations · Full text
TensorFlow: a system for large-scale machine learning
Martı́n Abadi, Paul Barham, Jianmin Chen et al. · Operating Systems Design and Implementation · 2016 · 6.4K citations
LCF considered as a programming language
Gordon Plotkin · Theoretical Computer Science · 1977 · 1.1K citations