Differentiable Convex Optimization Layers

10/28/2019
by   Akshay Agrawal, et al.
78

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 new form we refer to as affine-solver-affine form). We then demonstrate how to efficiently differentiate through each of these components, allowing for end-to-end analytical differentiation through the entire convex program. We implement our methodology in version 1.1 of CVXPY, a popular Python-embedded DSL for convex optimization, and additionally implement differentiable layers for disciplined convex programs in PyTorch and TensorFlow 2.0. Our implementation significantly lowers the barrier to using convex optimization problems in differentiable programs. We present applications in linear machine learning models and in stochastic control, and we show that our layer is competitive (in execution time) compared to specialized differentiable solvers from past work.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/02/2019

Disciplined Quasiconvex Programming

We present a composition rule involving quasiconvex functions that gener...
research
06/10/2022

Flexible Differentiable Optimization via Model Transformations

We introduce DiffOpt.jl, a Julia library to differentiate through the so...
research
05/18/2023

Mode Connectivity in Auction Design

Optimal auction design is a fundamental problem in algorithmic game theo...
research
04/30/2020

Physarum Powered Differentiable Linear Programming Layers and Applications

Consider a learning algorithm, which involves an internal call to an opt...
research
03/12/2019

Linear Encodings for Polytope Containment Problems

The polytope containment problem is deciding whether a polytope is a con...
research
10/17/2014

Convex Optimization in Julia

This paper describes Convex, a convex optimization modeling framework in...
research
08/07/2019

Domain-Driven Solver (DDS) Version 2.0: a MATLAB-based Software Package for Convex Optimization Problems in Domain-Driven Form

Domain-Driven Solver (DDS) is a MATLAB-based software package for convex...

Please sign up or login with your details

Forgot password? Click here to reset