自动微分:理论与实践
本文提出了将反向模式自动微分分解为前向模式线性化和转置的方法,它既可以将二者的本质区别隔离出来,又简化了它们的联合实现。具体而言,一旦在源语言中定义了每个基本操作的前向模式自动微分规则,只有线性基元需要额外的转置规则才能得到完整的反向模式自动微分实现。这就是反向模式自动微分在 JAX 和 Dex 中的编写方式。
May, 2021
本文提出了一种由简单、自然的规范计算出的通用 AD 算法,通过使用 AD - 不可知编译器插件,这些算法可以直接从现有的编程语言中使用,无需新的数据类型或编程风格,并且不涉及任何图表、磁带、变量、偏导数或突变,从而更易于理解、改进和并行执行。
Apr, 2018
ForwardDiff 是一个使用 Julia 编写的自动微分软件包,它采用即时编译来转换 AD-unaware 用户代码,以实现高阶和自定义数类型的微分,包括复数,同时对于梯度和雅可比矩阵计算,提供了避免昂贵堆分配的矢量正向模式,并更好地利用了内存带宽,旨在与低级语言性能相竞争,可以更快地计算函数梯度,因此被广泛应用于优化模型、天文学、有限元分析、统计等各个领域。
Jul, 2016
本文提出一种新的自动求导方法 —— 一步法微分(Jacobian-free backpropagation),其性能可与隐式微分方法相媲美,并为快速算法(如超线性优化方法)提供了解决方案。其中使用特定的例子(如牛顿法和梯度下降法)对其进行全面的理论近似分析,并揭示了其在双层优化中的应用。通过多个数值示例,证明了这种一步估计器的正确性。
May, 2023
神经网络的反向传播过程利用了自动微分的基本要素,通过前向模式的自动微分或 Jacobian 向量乘积 (JVP) 来计算损失函数的方向导数,并使用随机采样的不同概率分布计算这些方向导数,本文对这些方法进行了严格的分析并给出了收敛速率,同时还进行了在科学机器学习中部署的计算实验,特别是应用于物理信息神经网络和深度算子网络。
Oct, 2023
自动微分在计算统计学中扮演关键角色,实现高效的算法微分包括运算重载、区域内存和表达式模板等计算技术以及半解析微分等数学技术。未来仍需要将当前包的推广和更高阶微分的高效方法应用于高级算法。
Nov, 2018
本文介绍了自动求导实现与非平滑函数导数求解之间的关系,提出了一种非平滑微积分方程,并阐明其在随机逼近方法中的应用,同时证明了算法求解导数可能产生的人工临界点问题,并演示了通常方法如何以概率为一避免这些点。
Jun, 2020