正向或逆向自动微分:有何区别?
摘要:自动微分(AD)已经成为许多学科研究者关注的话题,特别是在应用于机器学习和神经网络之后更加流行。尽管许多研究者喜欢并知道如何应用AD,但要真正理解其底层过程仍然是一个挑战。然而,从代数的角度来看,AD似乎非常自然:它源自微分法则。在这项工作中,我们使用编程代数技术来推理不同的AD变体,利用Haskell来说明我们的观察结果。我们的发现源于三个基本的代数抽象:(1)半环上的模的概念,(2)Nagata的“模的理想化”构造,以及(3)Kronecker的δ函数,它们共同使我们能够编写一行抽象定义AD。从这个一行定义,并通过以不同方式实例化我们的代数结构,我们得到了具有相同外延行为但不同内涵性属性的不同AD变体,主要在于(渐近)计算复杂性方面。我们通过Kronecker同构证明了这些不同的变体的等价性,这是我们Haskell基础设施的进一步完善,它通过构造保证了正确性。通过建立这个框架,本文试图从代数的角度使AD变体更易理解。
作者:Birthe van den Berg and Tom Schrijvers and James McKinna and Alexander Vandenbroucke
论文ID:2212.11088
分类:Programming Languages
分类简称:cs.PL
提交时间:2023-08-10