This short tutorial covers the basics of automatic differentiation, a set of techniques that allow us to efficiently compute derivatives of functions implemented as programs. It is...
Show More
This short tutorial covers the basics of automatic differentiation, a set of techniques that allow us to efficiently compute derivatives of functions implemented as programs. It is based in part on Baydin et al., 2018: Automatic Differentiation in Machine Learning: A Survey (https://arxiv.org/abs/1502.05767).
Errata:
At 6:23 in bottom right, it should be v̇6 = v̇5*v4 + v̇4*v5 (instead of "-").
Additional references:
Griewank & Walther, 2008: Evaluating Derivatives: Principles and Techniques
of Algorithmic Differentiation (https://dl.acm.org/doi/book/10.5555/1455489)
Adams, 2018: COS 324 – Computing Gradients with Backpropagation (https://www.cs.princeton.edu/courses/archive/fall18/cos324/files/backprop.pdf)
Grosse, 2018: CSC 321 – Lecture 10: Automatic Differentiation (https://www.cs.toronto.edu/~rgrosse/courses/csc321_2018/slides/lec10.pdf)
Pearlmutter, 1994: Fast exact multiplication by the Hessian (http://www.bcl.hamilton.ie/~barak/papers/nc-hessian.pdf)
Alleviating memory requirements of reverse mode:
Griewank & Walther, 2000: Algorithm 799: revolve: an
implementation of checkpointing for the reverse or adjoint mode of computational differentiation (https://dl.acm.org/doi/10.1145/347837.347846)
Dauvergne & Hascoët, 2006. The data-flow equations of checkpointing in
reverse automatic differentiation (https://link.springer.com/chapter/10.1007/11758549_78)
Chen, T et al., 2016: Training Deep Nets with Sublinear Memory Cost (https://arxiv.org/abs/1604.06174)
Gruslys et al., 2016: Memory-efficient Backpropagation
Through Time (https://arxiv.org/abs/1606.03401)
Siskind & Pearlmutter. Divide-and-conquer checkpointing for arbitrary programs with no user annotation (https://arxiv.org/abs/1708.06799)
Oktay et al., 2020: Randomized Automatic Differentiation (https://arxiv.org/abs/2007.10412)
Example software libraries using various implementation routes:
If you'd like to help support the channel (completely optional), you can donate a cup of coffee via the following:
Venmo: https://venmo.com/ariseff
PayPal: https://www.paypal.me/ariseff