The simple essence of automatic differentiation (Differentiable functional programming made easy)

04/02/2018
by   Conal Elliott, et al.
0

Automatic differentiation (AD) in reverse mode (RAD) is a central component of deep learning and other uses of large-scale optimization. Commonly used RAD algorithms such as backpropagation, however, are complex and stateful, hindering deep understanding, improvement, and parallel execution. This paper develops a simple, generalized AD algorithm calculated from a simple, natural specification. The general algorithm can be specialized by varying the representation of derivatives. In particular, applying well-known constructions to a naive representation yields two RAD algorithms that are far simpler than previously known. In contrast to commonly used RAD implementations, the algorithms defined here involve no graphs, tapes, variables, partial derivatives, or mutation. They are inherently parallel-friendly, correct by construction, and usable directly from an existing programming language with no need for new data types or programming style, thanks to use of an AD-agnostic compiler plugin.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/02/2018

The simple essence of automatic differentiation

Automatic differentiation (AD) in reverse mode (RAD) is a central compon...
research
07/07/2023

Efficient CHAD

We show how the basic Combinatory Homomorphic Automatic Differentiation ...
research
05/13/2023

Automatic Differentiation in Prolog

Automatic differentiation (AD) is a range of algorithms to compute the n...
research
11/10/2016

Efficient Implementation of a Higher-Order Language with Built-In AD

We show that Automatic Differentiation (AD) operators can be provided in...
research
05/31/2022

Automatic differentiation of nonsmooth iterative algorithms

Differentiation along algorithms, i.e., piggyback propagation of derivat...
research
09/25/2021

AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia

No single Automatic Differentiation (AD) system is the optimal choice fo...
research
03/27/2018

Demystifying Differentiable Programming: Shift/Reset the Penultimate Backpropagator

Deep learning has seen tremendous success over the past decade in comput...

Please sign up or login with your details

Forgot password? Click here to reset