Differentiable Programming: Efficient Smoothing of Control-Flow-Induced Discontinuities

05/11/2023
by   Sebastian Christodoulou, et al.
0

We want to obtain derivatives in discontinuous program code, where default Algorithmic Differentiation may not perform well. Specifically, we consider discontinuities induced by control flow statements, where meaningful derivatives should ideally be capable of representing the resulting kinks in the trajectory. To achieve this, one can interpolate the trajectory at the control flow statements before taking the derivative. We formulate a method to efficiently interpolate between all boundaries induced by control flow in program code. Theoretically, code can be viewed as a series of piecewise continuous functions applied in succession. These functions are nested inside one another and result in a function composition with several cases. We interpret this function composition as a tree and devise a heuristic to identify paths that are relevant to the interpolation. This allows us to conceive a language that smoothly interpolates control-flow statements automatically and efficiently, making it fully differentiable.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/09/2020

Automatic Differentiation in ROOT

In mathematics and computer algebra, automatic differentiation (AD) is a...
research
11/30/2021

Towards Denotational Semantics of AD for Higher-Order, Recursive, Probabilistic Languages

Automatic differentiation (AD) aims to compute derivatives of user-defin...
research
07/12/2021

On the Computational Complexity of the Chain Rule of Differential Calculus

Many modern numerical methods in computational science and engineering r...
research
07/15/2021

An Optimised Flow for Futures: From Theory to Practice

A future is an entity representing the result of an ongoing computation....
research
08/03/2018

Data-Flow Guided Slicing

We propose a flow-insensitive analysis that prunes out portions of code ...
research
09/10/2020

Disjunctive Delimited Control

Delimited control is a powerful mechanism for programming language exten...
research
04/25/2014

Une approche CSP pour l'aide à la localisation d'erreurs

We introduce in this paper a new CP-based approach to support errors loc...

Please sign up or login with your details

Forgot password? Click here to reset