Automatic differentiation in ML: Where we are and where we should be going
arXiv:1810.11530
Abstract
We review the current state of automatic differentiation (AD) for array programming in machine learning (ML), including the different approaches such as operator overloading (OO) and source transformation (ST) used for AD, graph-based intermediate representations for programs, and source languages. Based on these insights, we introduce a new graph-based intermediate representation (IR) which specifically aims to efficiently support fully-general AD for array programming. Unlike existing dataflow programming representations in ML frameworks, our IR naturally supports function calls, higher-order functions and recursion, making ML models easier to implement. The ability to represent closures allows us to perform AD using ST without a tape, making the resulting derivative (adjoint) program amenable to ahead-of-time optimization using tools from functional language compilers, and enabling higher-order derivatives. Lastly, we introduce a proof of concept compiler toolchain called Myia which uses a subset of Python as a front end.
Cited by in corpus (12)
- The Deep Learning Compiler: A Comprehensive Survey
- Don't Unroll Adjoint: Differentiating SSA-Form Programs
- On the use of graph neural networks and shape-function-based gradient computation in the deep energy method
- Fuzzing Automatic Differentiation in Deep-Learning Libraries
- Physics Constrained Learning for Data-driven Inverse Modeling from Sparse Observations
- Solving the Discretised Multiphase Flow Equations with Interface Capturing on Structured Grids Using Machine Learning Libraries
- A parameter refinement method for Ptychography based on Deep Learning concepts
- I-FENN with Temporal Convolutional Networks: expediting the load-history analysis of non-local gradient damage propagation
- Higher Order Automatic Differentiation of Higher Order Functions
- Automatic Differentiation for ML-family languages: correctness via logical relations
- Machine Learning and System Identification for Estimation in Physical Systems
- A Brief Introduction to Automatic Differentiation for Machine Learning