[论文阅读:NeurIPS 2024 Best Paper] Stochastic Taylor Derivative Estimator: Efficient amortization for arbitrary differential operators (Part 1)

我没有做过automatic differentiation这一方向。论文阅读嘛,就是要走出舒适区,拓宽认知边界的。这一篇以学习前置知识为主。

title

论文链接:https://openreview.net/pdf?id=J2wI2rCG2u

研究背景

自动微分(automatic differentiation, AD)的维度灾难

  • 神经网络可以被理解为一个多元的可微函数,损失函数亦然。在许多现实场景中,神经网络的优化需要求解多元可微函数的高阶自动微分。当函数的自变量数和微分的阶数很大时,会不可避免地遭遇维度灾难的问题。具体而言,对于元函数,其阶微分微分张量的空间复杂度是。这很好理解:
    • 时,微分张量是函数的梯度,规模为
    • 时,微分张量是Hessian阵,规模为
    • 时,微分张量的规模为
    • 时,需要对阶微分张量的每个元素求梯度,因此新微分张量规模为
  • 对应地,计算图的规模为,其中表示前向计算图的操作数(这一步不很清楚,或许是AD Community众所周知的结论)。

本文贡献

  • 本文提出一种随机泰勒微分估计器(Stochastic Taylor Derivative Estimator, STDE)用于高效地估计高阶AD。具体贡献包括:
  1. 本文阐释了泰勒AD(Taylor mode AD)如何能够对原始的高阶微分问题做摊还优化
  2. 本文提出了一套完整的使用STDE随机化任意微分算符的流程。这一操作主要关注拉普拉斯算符
  3. STDE的性能(效率)超过了已有方法,包括SDGD和HTE.
  4. 本文使用实验验证了STDE的效率。只用8分钟,就在一张英伟达A100 40GB GPU上就完成了维度级别的偏微分方程的求解。

前置知识

一阶自动微分

  • AD被广泛应用于神经网络的优化。一般地,一个神经网络函数可以被分解为L层的计算图,即。其中每一层被称为原始函数(primitive),如全连接神经网络的一个隐藏层。一般计算图可以被分解为有向无环图(directd acyclic graph, DAG)。但是这种层次化表征更方便分析。
  • 前向AD(Forward mode AD). 矩阵的一个重要性质:乘积的非对易性。因此一阶自动微分的向量乘积要分成两种情况处理。第一种情况是微分在前,任意向量在后。这种乘积称为雅可比-向量乘积(Jacobian-vector-product, JVP)。在这里, 们组成一个线性结构,用于计算整体的JVP:
  • 后向AD(Backward mode AD). 第二种情况是任意向量在前,微分在后。这种乘积称为向量-雅可比乘积(Vector-Jacobian-product, VJP)。在这种情况下,原始函数微分的计算顺序是与前向AD相反的:

注:我觉得这里用到了微分的算符化表示。此外,原始函数族的微分以及连接操作,可以和矩阵类比。在矩阵中,有;在一阶微分中,有

高阶自动微分

  • 传统方法中,高阶自动微分本质上就是重复使用一阶自动微分。其中后向AD用得最多。

推荐阅读

  1. Jesse Bettencourt, Matthew J. Johnson, & David Duvenaud (2019). Taylor-Mode Automatic Differentiation for Higher-Order Derivatives in JAX. In Program Transformations for ML Workshop at NeurIPS 2019. url: https://openreview.net/pdf?id=SkxEF3FNPH (STDE相当于将这篇文章发扬光大了)

参考资料