Differentiable Convex Optimization Layers
Akshay Agrawal, Brandon Amos, Shane Barratt, Stephen Boyd, Steven, Diamond, Zico Kolter

TL;DR
This paper introduces a flexible method for differentiating through disciplined convex programs, enabling their integration into deep learning models with end-to-end training and broad applicability.
Contribution
It proposes disciplined parametrized programming and an affine-solver-affine representation, facilitating efficient differentiation through convex optimization layers in popular frameworks.
Findings
Implementation in CVXPY, PyTorch, TensorFlow 2.0
Enables end-to-end training with convex optimization layers
Competitive execution time compared to specialized solvers
Abstract
Recent work has shown how to embed differentiable optimization problems (that is, problems whose solutions can be backpropagated through) as layers within deep learning architectures. This method provides a useful inductive bias for certain problems, but existing software for differentiable optimization layers is rigid and difficult to apply to new settings. In this paper, we propose an approach to differentiating through disciplined convex programs, a subclass of convex optimization problems used by domain-specific languages (DSLs) for convex optimization. We introduce disciplined parametrized programming, a subset of disciplined convex programming, and we show that every disciplined parametrized program can be represented as the composition of an affine map from parameters to problem data, a solver, and an affine map from the solver's solution to a solution of the original problem (a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsStochastic Gradient Optimization Techniques · Machine Learning and Algorithms · Adversarial Robustness in Machine Learning
