LGSEMLSep 25, 2018

Tangent: Automatic differentiation using source-code transformation for dynamically typed array programming

arXiv:1809.09569v234 citations
Originality Incremental advance
AI Analysis

This addresses the problem of derivative calculation for researchers using Python, offering a novel tool for dynamic languages, though it is incremental in the broader context of automatic differentiation.

The paper tackles the challenge of efficiently computing derivatives for complex Python models by introducing Tangent, the first automatic differentiation framework for a dynamic language using source-code transformation, which provides expressive power, performance, and usability.

The need to efficiently calculate first- and higher-order derivatives of increasingly complex models expressed in Python has stressed or exceeded the capabilities of available tools. In this work, we explore techniques from the field of automatic differentiation (AD) that can give researchers expressive power, performance and strong usability. These include source-code transformation (SCT), flexible gradient surgery, efficient in-place array operations, higher-order derivatives as well as mixing of forward and reverse mode AD. We implement and demonstrate these ideas in the Tangent software library for Python, the first AD framework for a dynamic language that uses SCT.

Foundations

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

Your Notes