Fantastic methods and where to find them: Automatic Differentiation

Bram De Jaegher

Fantastic methods and where to find them:

Automatic Differentiation

Bram De Jaegher

Derivatives

Derivatives

$$\frac{d}{dx}(log(x))$$

How many methods for taking derivatives by means of a computer?

(WIP)

Derivatives

  • Symbolic differentiation

Derivatives

  • Symbolic differentiation
  • Numerical differentiation

$$\frac{\partial f(x)}{\partial x} \approx \frac{f(x+\epsilon)-f(x)}{\epsilon}$$

Derivatives

  • Symbolic differentiation
  • Numerical differentiation
  • Algorithmic differentiation (automatic diff.)
Source: Günes A, et al. (2018)

Symbolic differentiation

Numeric differentiation

Numeric differentiation

Numeric differentiation

Source: Günes A, et al. (2018)

Numeric differentiation

Automatic differentiation (AD)

Working principle (AD)

Working principle (AD)

Working principle (AD)

Types of AD

$$ f\, : \,{\rm I\!R}^n \rightarrow {\rm I\!R}^m$$

Examples

Calibration of 1D-diffusion equation

Live session!

Examples

Calibration of 1D-diffusion equation

Examples

Calibration of my ED model (next seminar)

Six-times speed up!

Opportunities

Opportunities

Opportunities

Opportunities

Neural ODE

Fouling of electrodialysis stack

Neural ODE

Fouling of electrodialysis stack

$$\cfrac{\partial R(t)}{\partial t} = \mathrm{ANN}(R(t))$$

Neural ODE

Fouling of electrodialysis stack

References

  1. Günes A, et al. (2018) Automatic Differentiation in Machine Learning: a Survey
  2. JuliaDiff
  3. DiffEqFlux.jl – A Julia Library for Neural Differential Equations
  4. Reinforcement Learning vs. Differentiable Programming