Smoothing Methods for Automatic Differentiation Across Conditional Branches

要約

条件分岐などの制御フロー構造によって導入される不連続性を含むプログラムは、目的関数の応答曲面がある程度滑らかであることを前提とする数学的最適化手法に課題をもたらします。
スムーズ解釈 (SI) は、プログラムの出力とガウス カーネルの畳み込みを近似する抽象解釈の一種で、原則的な方法で出力を平滑化します。
ここでは、SI と自動微分 (AD) を組み合わせて、平滑化されたプログラムの勾配を効率的に計算します。
通常のプログラム実行における AD とは対照的に、これらの勾配は代替制御フロー パスの影響も捕捉します。
SI と AD を組み合わせることで、分岐プログラムの直接勾配ベースのパラメーター合成が可能になり、たとえば、シミュレーション モデルのキャリブレーションや、機械学習パイプラインでのニューラル ネットワーク モデルとの組み合わせが可能になります。
SI の扱いやすさのために行われた近似の影響を詳細に説明し、AD とサンプリングの組み合わせを通じて平滑化されたプログラムの勾配を推定することにより、基礎となる仮定を回避する新しいモンテカルロ推定器を提案します。
単純な C++ プログラムを滑らかに微分可能な形式に自動的に変換するツールである DiscoGrad を使用して、広範な評価を実行します。
古典的なシミュレーションベースの最適化からニューラルネットワーク駆動の制御に至るまで、4 つの非自明で元々不連続な問題について、SI と AD およびモンテカルロ推定器の組み合わせを既存の勾配のない確率的手法と比較します。
SI ベースの推定器による最適化の進行状況はプログラムの制御フローの複雑さに依存しますが、モンテカルロ推定器はすべての問題で競争力があり、最高次元の問題でかなりの余裕を持って最速の収束を示します。

要約(オリジナル)

Programs involving discontinuities introduced by control flow constructs such as conditional branches pose challenges to mathematical optimization methods that assume a degree of smoothness in the objective function’s response surface. Smooth interpretation (SI) is a form of abstract interpretation that approximates the convolution of a program’s output with a Gaussian kernel, thus smoothing its output in a principled manner. Here, we combine SI with automatic differentiation (AD) to efficiently compute gradients of smoothed programs. In contrast to AD across a regular program execution, these gradients also capture the effects of alternative control flow paths. The combination of SI with AD enables the direct gradient-based parameter synthesis for branching programs, allowing for instance the calibration of simulation models or their combination with neural network models in machine learning pipelines. We detail the effects of the approximations made for tractability in SI and propose a novel Monte Carlo estimator that avoids the underlying assumptions by estimating the smoothed programs’ gradients through a combination of AD and sampling. Using DiscoGrad, our tool for automatically translating simple C++ programs to a smooth differentiable form, we perform an extensive evaluation. We compare the combination of SI with AD and our Monte Carlo estimator to existing gradient-free and stochastic methods on four non-trivial and originally discontinuous problems ranging from classical simulation-based optimization to neural network-driven control. While the optimization progress with the SI-based estimator depends on the complexity of the program’s control flow, our Monte Carlo estimator is competitive in all problems, exhibiting the fastest convergence by a substantial margin in our highest-dimensional problem.

arxiv情報

著者 Justin N. Kreikemeyer,Philipp Andelfinger
発行日 2024-01-04 14:17:30+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.LG, cs.MS, math.OC パーマリンク