Learning to Optimize by Differentiable Programming
This work introduces a new paradigm for optimization algorithm design, potentially benefiting researchers and practitioners in machine learning and engineering who rely on efficient large-scale optimization.
The tutorial addresses the challenge of designing scalable first-order optimization methods by using differentiable programming to learn algorithm designs, demonstrating improved convergence and solution quality in applications like linear programming and neural network verification.
Solving massive-scale optimization problems requires scalable first-order methods with low per-iteration cost. This tutorial highlights a shift in optimization: using differentiable programming not only to execute algorithms but to learn how to design them. Modern frameworks such as PyTorch, TensorFlow, and JAX enable this paradigm through efficient automatic differentiation. Embedding first-order methods within these systems allows end-to-end training that improves convergence and solution quality. Guided by Fenchel-Rockafellar duality, the tutorial demonstrates how duality-informed iterative schemes such as ADMM and PDHG can be learned and adapted. Case studies across LP, OPF, Laplacian regularization, and neural network verification illustrate these gains.