NaN 传播:一种用于黑盒计算函数稀疏性检测的新方法
机器学习
2025-08-04 v2 编程语言
摘要
在对函数的梯度进行数值评估时,稀疏性检测可以通过 Jacobian 着色和压缩实现大幅度的计算加速。然而,针对黑盒函数的稀疏性检测技术十分有限,且现有的基于有限差分的方法由于偶然的零梯度而存在假阴性问题。这些假阴性会悄无声息地破坏梯度计算,导致难以诊断的错误。我们引入了 NaN 传播,该方法利用 IEEE 754 非数值的普遍污染特性,通过浮点数值计算追踪输入-输出依赖关系。通过系统地用 NaN 污染输入并观察哪些输出变为 NaN,该方法重构了保守的稀疏模式,消除了假阴性的一个主要来源。我们在航空航天机翼重量模型上展示了该方法,实现了 1.52 倍的加速,同时发现了传统方法遗漏的数十个依赖关系——这是一项重大的实用改进,因为梯度计算往往是优化工作流中的瓶颈。该技术利用 IEEE 754 合规性,可跨编程语言和数学库工作,而无需修改现有的黑盒代码。此外,通过直接位操作进行 NaN 有效载荷编码等高级策略可实现快于线性的时间复杂度,从而比现有的黑盒稀疏性检测方法获得速度提升。我们还提出了实用算法,以缓解工程应用中常见的分支代码执行带来的挑战。
引用
@article{arxiv.2507.23186,
title = {NaN-Propagation: A Novel Method for Sparsity Detection in Black-Box Computational Functions},
author = {Peter Sharpe},
journal= {arXiv preprint arXiv:2507.23186},
year = {2025}
}