中文

面向条件分支自动微分的平滑方法

机器学习 2024-01-05 v2 数学软件 最优化与控制

摘要

包含由条件分支等控制流结构引入的不连续性的程序,对假设目标函数响应面具有一定平滑度的数学优化方法提出了挑战。平滑解释(Smooth Interpretation, SI)是一种抽象解释形式,它近似程序输出与高斯核的卷积,从而以原则性方式平滑其输出。在此,我们将 SI 与自动微分(AD)相结合,以高效计算平滑后程序的梯度。与在常规程序执行上进行 AD 不同,这些梯度还捕获了替代控制流路径的影响。SI 与 AD 的结合使得能够直接对分支程序进行基于梯度的参数综合,例如允许校准仿真模型或将其与机器学习流水线中的神经网络模型相结合。我们详述了 SI 中为可处理性所做近似的影响,并提出了一种新颖的蒙特卡洛估计器,其通过 AD 与采样的结合来估计平滑程序的梯度,从而避免了底层假设。利用我们的工具 DiscoGrad(用于自动将简单 C++ 程序转换为平滑可微分形式),我们进行了广泛评估。我们将 SI 与 AD 的结合以及我们的蒙特卡洛估计器,在从经典基于仿真的优化到神经网络驱动控制的四个非平凡且原本不连续的问题上,与现有的无梯度及随机方法进行比较。虽然基于 SI 的估计器的优化进展取决于程序控制流的复杂度,但我们的蒙特卡洛估计器在所有问题中均具竞争力,并在我们的最高维问题中以显著优势展现出最快收敛。

关键词

引用

@article{arxiv.2310.03585,
  title  = {Smoothing Methods for Automatic Differentiation Across Conditional Branches},
  author = {Justin N. Kreikemeyer and Philipp Andelfinger},
  journal= {arXiv preprint arXiv:2310.03585},
  year   = {2024}
}

备注

21 pages, 17 figures, updated content to reflect journal version. Published in IEEE Access, available at https://ieeexplore.ieee.org/abstract/document/10356054