paperbot · PL 论文追踪

RSS

Efficient Dual-Numbers Reverse AD via Well-Known Program Transformations

POPL 7(POPL)2023
Tom J. Smeding, Matthijs I. L. Vákár

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Where dual-numbers forward-mode automatic differentiation (AD) pairs each scalar value with its tangent value, dual-numbers reverse-mode AD attempts to achieve reverse AD using a similarly simple idea: by pairing each scalar value with a backpropagator function. Its correctness and efficiency on higher-order input languages have been analysed by Brunel, Mazza and Pagani, but this analysis used a custom operational semantics for which it is unclear whether it can be implemented efficiently. We take inspiration from their use of linear factoring to optimise dual-numbers reverse-mode AD to an algorithm that has the correct complexity and enjoys an efficient implementation in a standard functional language with support for mutable arrays, such as Haskell. Aside from the linear factoring ingredient, our optimisation steps consist of well-known ideas from the functional programming community. We demonstrate the use of our technique by providing a practical implementation that differentiates most of Haskell98.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot2089,
  title = {Efficient Dual-Numbers Reverse AD via Well-Known Program Transformations},
  author = {Tom J. Smeding and Matthijs I. L. Vákár},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {POPL},
  year = {2023},
  doi = {10.1145/3571247}
}