LGPLMLOct 26, 2018

Automatic differentiation in ML: Where we are and where we should be going

arXiv:1810.11530v284 citations
Originality Incremental advance
AI Analysis

This work addresses the problem of efficient and flexible AD for array programming in ML, which is incremental by building on existing AD approaches.

The authors reviewed the state of automatic differentiation (AD) in machine learning and introduced a new graph-based intermediate representation (IR) that supports fully-general AD for array programming, enabling easier implementation of ML models with features like function calls and higher-order functions, and demonstrated it with a proof-of-concept compiler toolchain called Myia.

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.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes