Perturbation Confusion and Referential Transparency: Correct Functional Implementation of Forward-Mode AD
Siskind , Jeffrey Mark and Pearlmutter, Barak A. (2005) Perturbation Confusion and Referential Transparency: Correct Functional Implementation of Forward-Mode AD. In: 17th International Workshop, IFL'05 (2005).
It is tempting to incorporate dierentiation operators into functional-programming languages. Making them rst-class citizens, however, is an enterprise fraught with danger. We discuss a potential problem with forward-mode AD common to many AD systems, including all attempts to integrate a forward-mode AD operator into Haskell. In particular, we show how these implementations fail to preserve referential transparency, and can compute grossly incorrect results when the dierentiation operator is applied to a function that itself uses that operator. The underlying cause of this problem is perturbation confusion, a failure to distinguish between distinct perturbations introduced by distinct invocations of the dierentiation operator. We then discuss how perturbation confusion can be avoided.
Repository Staff Only: item control page