Skip to main content
QUICK REVIEW

[论文解读] Denotational Correctness of Forward-Mode Automatic Differentiation for Iteration and Recursion

Matthijs Vákár|arXiv (Cornell University)|Jul 10, 2020
Numerical Methods and Algorithms参考文献 18被引用 8
一句话总结

本文为一种带有递归、迭代和非确定性(如未定义操作、惰性条件表达式、递归类型)的函数式语言中的前向模式自动微分(AD)提供了指称正确性证明。通过使用微分流形空间与具有层式关系的语义逻辑关系框架,证明了AD变换即使在复杂控制流和递归数据结构存在的情况下,仍能正确计算导数。

ABSTRACT

We present semantic correctness proofs of forward-mode Automatic Differentiation (AD) for languages with sources of partiality such as partial operations, lazy conditionals on real parameters, iteration, and term and type recursion. We first define an AD macro on a standard call-by-value language with some primitive operations for smooth partial functions and constructs for real conditionals and iteration, as a unique structure preserving macro determined by its action on the primitive operations. We define a semantics for the language in terms of diffeological spaces, where the key idea is to make use of a suitable partiality monad. A semantic logical relations argument, constructed through a subsconing construction over diffeological spaces, yields a correctness proof of the defined AD macro. A key insight is that, to reason about differentiation at sum types, we work with relations which form sheaves. Next, we extend our language with term and type recursion. To model this in our semantics, we introduce a new notion of space, suitable for modeling both recursion and differentiation, by equipping a diffeological space with a compatible $ω$cpo-structure. We demonstrate that our whole development extends to this setting. By making use of a semantic, rather than syntactic, logical relations argument, we circumvent the usual technicalities of logical relations techniques for type recursion.

研究动机与目标

  • 为扩展了递归、迭代和部分性操作的函数式语言中的前向模式自动微分(AD)提供形式化正确性证明。
  • 解决在指称语义框架中对具有部分性的程序(如在拐点处未定义的函数,例如ReLU,或发散计算)进行微分的挑战。
  • 将现有AD语义正确性结果扩展至包含项递归和类型递归,这些在真实世界函数式编程语言中至关重要。
  • 开发一种语义而非句法的逻辑关系论证,避免在类型递归中引入技术复杂性,同时保持正确性。
  • 为PyTorch、Stan和TensorFlow Eager等系统提供数学上严谨的AD基础,这些系统依赖于支持递归和部分性特性的AD。

提出的方法

  • 将前向模式AD宏定义为一种保持结构的变换,作用于带有原语光滑部分函数、实数条件表达式和迭代的值传递函数式语言。
  • 使用配备有部分性单子的微分流形空间来建模语言的语义,以处理未定义值和部分函数。
  • 通过在微分流形空间上构造一个子范畴(subsconing)来建立语义逻辑关系论证,其中关系形成层,以推理和求和类型上的微分。
  • 通过为微分流形空间配备ω-完全偏序(ω-cpo)结构,引入一类新空间——ω-微分流形空间,以建模项递归和类型递归。
  • 通过证明ω-微分流形空间范畴中的双极限(bilimits)保持AD正确性所需的结构,将正确性证明推广至包含递归的完整语言。
  • 使用余分配律和反射子范畴技术,确保语义模型中递归类型的解释尊重AD变换。

实验结果

研究问题

  • RQ1如何在存在部分函数(如log在零处或ReLU在零处)的情况下,形式化证明前向模式AD的正确性?
  • RQ2如何在同时支持微分和部分性的语义框架中建模递归数据类型和递归函数?
  • RQ3能否使用语义而非句法的逻辑关系论证,在类型递归存在的情况下证明AD的正确性?
  • RQ4需要哪些数学结构才能在一个统一的语义框架中同时建模微分和递归?
  • RQ5如何将AD正确性从一阶、非递归语言扩展到包含高阶函数、递归和和类型在内的完整函数式语言?

主要发现

  • 本文证明了前向模式AD宏能正确计算语言中所有程序的导数,包括具有部分操作和递归结构的程序。
  • 使用配备部分性单子的微分流形空间,为处理未定义值和ReLU等拐点函数提供了稳健的语义基础。
  • 将逻辑关系构造为层,使得能够对和类型上的微分进行正确推理,这对建模导数中的条件分支至关重要。
  • 引入ω-微分流形空间使得语义能够同时建模递归和微分,从而支持对递归类型的正确性扩展。
  • 正确性结果可推广至包含项递归和类型递归的完整语言,证明AD变换即使在实数列表和树等代数数据类型上也保持正确性。
  • 语义方法避免了在递归存在时句法逻辑关系带来的技术复杂性,提供了一种更简洁、更具普遍性的证明技术。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。