Perturbation confusion in forward automatic differentiation of higher-order functions
summary
Fielded forward AD systems produce wrong results for derivatives of higher-order functions because tag creation is tied to invoking the derivative operator, not to each actual derivative calculation; the paper shows a simple curried example where a constructed operator D̂ yields a constant zero instead of the true second derivative. The work diagnoses the bug as perturbation confusion in dual-number/tagging machinery and evaluates two fixes: eta expansion to delay fresh tags and a tag-renaming wrapper, both correct but threatening forward-AD complexity guarantees.
AI-written summary · about
chapters (10)
- 0:00Intro
- 1:09Technical Background and Setup
- 2:04(1/4) Forward AD-Example
- 3:12(2/4) Nesting Derivatives - Perturbation Confusion
- 4:24(3/4) Higher-Order AD-What does it mean?
- 6:53(4/4) The Amazing Bug - Details Recall
- 8:38Solution Idea One: Eta Expansion
- 9:09Solution Idea Two: Tag Substitution
- 9:34Conclusion
- 10:48ACKNOWLEDGEMENTS
related talks
29mPartial Evaluation of Automatic Differentiation for Differential-Algebraic Equati...
11mAbstract Interpretation for Automatic Differentiation
36mProgramming Languages for Automatic Differentiation: What Now?
14mNominal Semantics for First-class Automatic Differentiation
30mAutomatic Differentiation in PCF
05mPartial Evaluation of Forward-Mode Automatic Differentiation
26mAdding AD to Scheme by Differentiating the Interpreter
29mAutomatic Differentiation via Effects and Handlers in OCaml
