[论文解读] Provably Correct Automatic Subdifferentiation for Qualified Programs
本文提出了一种针对机器学习中常见的一类非光滑、分段定义函数的可证明正确的自动次微分方法,通过将自动微分扩展至计算广义(Clarke)次梯度。该研究建立了‘廉价次梯度原理’,表明在较弱的约束条件满足下,次梯度的计算成本最多仅为函数本身评估成本的6倍,从而确保在现有库无法处理的不可微点上仍能保持正确性。
The Cheap Gradient Principle (Griewank 2008) --- the computational cost of computing the gradient of a scalar-valued function is nearly the same (often within a factor of $5$) as that of simply computing the function itself --- is of central importance in optimization; it allows us to quickly obtain (high dimensional) gradients of scalar loss functions which are subsequently used in black box gradient-based optimization procedures. The current state of affairs is markedly different with regards to computing subderivatives: widely used ML libraries, including TensorFlow and PyTorch, do not correctly compute (generalized) subderivatives even on simple examples. This work considers the question: is there a Cheap Subgradient Principle? Our main result shows that, under certain restrictions on our library of nonsmooth functions (standard in nonlinear programming), provably correct generalized subderivatives can be computed at a computational cost that is within a (dimension-free) factor of $6$ of the cost of computing the scalar function itself.
研究动机与目标
- 为解决主流机器学习库(如TensorFlow和PyTorch)在不可微点处次梯度计算缺乏正确性的问题。
- 探究是否可为非光滑、局部Lipschitz函数建立类似光滑函数中‘廉价梯度原理’的‘廉价次梯度原理’。
- 开发一种计算模型与算法框架,可对满足条件的程序可证明地计算广义(Clarke)次梯度,确保在等价程序表示下结果的一致性。
- 将自动微分扩展至处理如ReLU、绝对值以及线性代数运算(如SVD、特征值)等非光滑函数,并保证次梯度计算的正确性。
- 为安全关键应用(如物理模拟器和在线学习系统)中实现数值稳定且可证明正确的次梯度计算奠定基础。
提出的方法
- 该方法将反向模式自动微分扩展至通过尊重分段函数结构的链式法则,计算极限总导数。
- 提出一种新计算模型,其中每个函数表示为由线性不等式定义的区域上的有限和,每个区域上具有光滑分量(多项式)。
- 对于每个函数,算法根据输入扰动的方向确定激活区域,并通过极限过程选择正确的次梯度。
- 核心算法(算法6)通过在输入扰动方向上评估激活多项式分量的梯度来计算次梯度。
- 通过算法7对库函数进行重载,该算法通过识别在扰动方向上被‘激活’的区域,返回函数值、方向导数和一个次梯度。
- 该方法依赖于约束条件(假设3.1),以确保激活区域定义良好,并且在等价程序表示下极限次梯度保持一致。
实验结果
研究问题
- RQ1能否为机器学习中广泛使用的非光滑、分段定义函数类设计一种可证明正确的自动次微分方法?
- RQ2是否存在一种‘廉价次梯度原理’,使得广义次梯度的计算成本最多仅为函数本身评估成本的常数倍(与维度无关)?
- RQ3为何现有库(如TensorFlow和PyTorch)在数学等价程序中产生不一致的次梯度?这一问题能否被形式化解决?
- RQ4该框架能否扩展至处理SVD、特征值和QR分解等非光滑线性代数运算,并保证次梯度计算的正确性?
- RQ5在存在舍入误差和近退化情形时,哪些条件能确保次梯度计算的数值稳定性和正确性?
主要发现
- 本文建立了‘廉价次梯度原理’,表明广义次梯度的计算成本最多仅为函数评估成本的6倍,且与输入维度无关。
- 该方法即使在不可微点(如ReLU(x)或|x|的原点)处也能正确计算次梯度,而当前库(如TensorFlow和PyTorch)在此类点上会失败。
- 对于数学等价的程序(如f1(x)=x,f2(x)=ReLU(x)−ReLU(−x),f3(x)=10f1(x)−9f2(x)),该方法产生一致的次梯度,而现有库则不一致。
- 该算法通过基于扰动方向的极限过程保证正确性,确保次梯度对应于正确的激活区域。
- 该框架可扩展至单变量分段多项式,并可在满足约束条件的前提下推广至更复杂的函数。
- 该方法为开发在物理模拟和在线学习等安全关键应用中数值稳定且可证明正确的次微分方法奠定了基础。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。