Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Nesting forward-mode AD in a functional framework

Published: 01 December 2008 Publication History

Abstract

We discuss the augmentation of a functional-programming language with a derivative-taking operator implemented with forward-mode automatic differentiation (AD). The primary technical difficulty in doing so lies in ensuring correctness in the face of nested invocation of that operator, due to the need to distinguish perturbations introduced by distinct invocations. We exhibit a series of implementations of a referentially-transparent forward-mode-AD derivative-taking operator, each of which uses a different non-referentially-transparent mechanism to distinguish perturbations. Even though the forward-mode-AD derivative-taking operator is itself referentially transparent, we hypothesize that one cannot correctly formulate this operator as a function definition in current pure dialects of Haskell .

References

[1]
Church, A.: The Calculi of Lambda Conversion. Princeton University Press, Princeton (1941).
[2]
Claessen, K., Sands, D.: Observable sharing for functional circuit description. In: Proc. of Asian Computer Science Conference (ASIAN). Springer, New York (1999).
[3]
Clifford, W.K.: Preliminary sketch of Bi-quaternions. Proc. Lond. Math. Soc. 4 , 381-95 (1873).
[4]
Flatt, M.: PLT MzScheme: language manual. Technical Report PLT-TR05-1-v300, PLT Scheme Inc. (2005).
[5]
Karczmarczuk, J.: Functional differentiation of computer programs. In: Proceedings of the III ACM SIGPLAN International Conference on Functional Programming. Baltimore, MD, pp. 195-203 (1998).
[6]
Karczmarczuk, J.: Lazy differential algebra and its applications. In: Workshop, III International Summer School on Advanced Functional Programming. Braga, Portugal (1998).
[7]
Karczmarczuk, J.: Functional coding of differential forms. In: Scottish Workshop on FP (1999).
[8]
Karczmarczuk, J.: Functional differentiation of computer programs. Higher-Order Symb. Comput. 14 , 35-57 (2001).
[9]
Leibnitz, G.W.: A new method for maxima and minima as well as tangents, which is impeded neither by fractional nor irrational quantities, and a remarkable type of calculus for this. Acta Eruditorum (1664).
[10]
Newton, I.: De quadratura curvarum. In Optiks, 1704 edition. Appendix.
[11]
Nilsson, H.: Functional automatic differentiation with Dirac impulses. In: Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming. Uppsala, Sweden, pp. 153-164. ACM Press, New York (2003).
[12]
Pearlmutter, B.A., Siskind, J.M.: Lazy multivariate higher-order forward- mode AD. In: Proceedings of the 2007 Symposium on Principles of Programming Languages. Nice, France, pp. 155-160 (2007).
[13]
Sussman, G.J., Wisdom, J., Mayer, M.E.: Structure and Interpretation of Classical Mechanics. MIT Press, Cambridge (2001).
[14]
Wengert, R.E.: A simple automatic derivative evaluation program. Commun. ACM 7 (8), 463-464 (1964).

Cited By

View all
  • (2021)Path replay backpropagationACM Transactions on Graphics10.1145/3450626.345980440:4(1-14)Online publication date: 19-Jul-2021
  • (2019)A simple differentiable programming languageProceedings of the ACM on Programming Languages10.1145/33711064:POPL(1-28)Online publication date: 20-Dec-2019
  • (2019)Efficient differentiable programming in a functional array-processing languageProceedings of the ACM on Programming Languages10.1145/33417013:ICFP(1-30)Online publication date: 26-Jul-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation  Volume 21, Issue 4
December 2008
82 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 December 2008

Author Tags

  1. Applicative (functional) languages
  2. Automatic differentiation
  3. Multiple transformation
  4. Referential transparency

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Path replay backpropagationACM Transactions on Graphics10.1145/3450626.345980440:4(1-14)Online publication date: 19-Jul-2021
  • (2019)A simple differentiable programming languageProceedings of the ACM on Programming Languages10.1145/33711064:POPL(1-28)Online publication date: 20-Dec-2019
  • (2019)Efficient differentiable programming in a functional array-processing languageProceedings of the ACM on Programming Languages10.1145/33417013:ICFP(1-30)Online publication date: 26-Jul-2019
  • (2019)Demystifying differentiable programming: shift/reset the penultimate backpropagatorProceedings of the ACM on Programming Languages10.1145/33417003:ICFP(1-31)Online publication date: 26-Jul-2019
  • (2018)Backpropagation with continuation callbacksProceedings of the 32nd International Conference on Neural Information Processing Systems10.5555/3327546.3327682(10201-10212)Online publication date: 3-Dec-2018
  • (2018)The simple essence of automatic differentiationProceedings of the ACM on Programming Languages10.1145/32367652:ICFP(1-29)Online publication date: 30-Jul-2018
  • (2017)Automatic differentiation in machine learningThe Journal of Machine Learning Research10.5555/3122009.324201018:1(5595-5637)Online publication date: 1-Jan-2017
  • (2017)Compiling to categoriesProceedings of the ACM on Programming Languages10.1145/31102711:ICFP(1-27)Online publication date: 29-Aug-2017
  • (2016)A Hitchhiker's Guide to Automatic DifferentiationNumerical Algorithms10.1007/s11075-015-0067-672:3(775-811)Online publication date: 1-Jul-2016
  • (2014)Unified form languageACM Transactions on Mathematical Software10.1145/256663040:2(1-37)Online publication date: 5-Mar-2014
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media