Differentiating Through a Conic Program

We consider the problem of efficiently computing the derivative of the solution map of a convex cone program, when it exists. We do this by implicitly differentiating the residual map for its homogeneous self-dual embedding, and solving the linear systems of equations required using an iterative method. This allows us to efficiently compute the derivative operator, and its adjoint, evaluated at a vector. These correspond to computing an approximate new solution, given a perturbation to the cone program coefficients (i.e., perturbation analysis), and to computing the gradient of a function of the solution with respect to the coefficients. Our method scales to large problems, with numbers of coefficients in the millions. We present an open-source Python implementation of our method that solves a cone program and returns the derivative and its adjoint as abstract linear maps; our implementation can be easily integrated into software systems for automatic differentiation.

[1]  G. Polvani,et al.  Lezioni di Analisi Infinitesimale , 1924 .

[2]  R. E. Wengert,et al.  A simple automatic derivative evaluation program , 1964, Commun. ACM.

[3]  M. J. D. Powell,et al.  Nonlinear Programming—Sequential Unconstrained Minimization Techniques , 1969 .

[4]  Stephen M. Robinson,et al.  Strongly Regular Generalized Equations , 1980, Math. Oper. Res..

[5]  B. Speelpenning Compiling Fast Partial Derivatives of Functions Given by Algorithms , 1980 .

[6]  Michael A. Saunders,et al.  LSQR: An Algorithm for Sparse Linear Equations and Sparse Least Squares , 1982, TOMS.

[7]  Geoffrey E. Hinton,et al.  Learning representations by back-propagating errors , 1986, Nature.

[8]  Aharon Ben-Tal,et al.  Lectures on modern convex optimization , 1987 .

[9]  Griewank,et al.  On automatic differentiation , 1988 .

[10]  Michael I. Jordan,et al.  Advances in Neural Information Processing Systems 30 , 1995 .

[11]  Stephen P. Boyd,et al.  Linear Matrix Inequalities in Systems and Control Theory , 1994 .

[12]  Yurii Nesterov,et al.  Interior-point polynomial algorithms in convex programming , 1994, Siam studies in applied mathematics.

[13]  Shinji Mizuno,et al.  An O(√nL)-Iteration Homogeneous and Self-Dual Linear Programming Algorithm , 1994, Math. Oper. Res..

[14]  E. Yaz Linear Matrix Inequalities In System And Control Theory , 1998, Proceedings of the IEEE.

[15]  D. Kromhout Chapter V , 2000, Amino Acids.

[16]  Andreas Griewank,et al.  Evaluating derivatives - principles and techniques of algorithmic differentiation, Second Edition , 2000, Frontiers in applied mathematics.

[17]  Eric Jones,et al.  SciPy: Open Source Scientific Tools for Python , 2001 .

[18]  Johan Efberg,et al.  YALMIP : A toolbox for modeling and optimization in MATLAB , 2004 .

[19]  D. Ruppert The Elements of Statistical Learning: Data Mining, Inference, and Prediction , 2004 .

[20]  Dimitris Bertsimas,et al.  A Robust Optimization Approach to Supply Chain Management , 2004, IPCO.

[21]  J. Lofberg,et al.  YALMIP : a toolbox for modeling and optimization in MATLAB , 2004, 2004 IEEE International Conference on Robotics and Automation (IEEE Cat. No.04CH37508).

[22]  Boaz Golany,et al.  Retailer-Supplier Flexible Commitments Contracts: A Robust Optimization Approach , 2005, Manuf. Serv. Oper. Manag..

[23]  X. Yi On Automatic Differentiation , 2005 .

[24]  A. Nemirovski Advances in convex optimization : conic programming , 2005 .

[25]  Stephen P. Boyd,et al.  Convex Optimization , 2004, Algorithms and Theory of Computation Handbook.

[26]  R. Rockafellar,et al.  Implicit Functions and Solution Mappings , 2009 .

[27]  Omar Hernández Rodríguez,et al.  A semiotic reflection on the didactics of the Chain rule , 2010, The Mathematics Enthusiast.

[28]  Stephen P. Boyd,et al.  Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers , 2011, Found. Trends Mach. Learn..

[29]  Gaël Varoquaux,et al.  The NumPy Array: A Structure for Efficient Numerical Computation , 2011, Computing in Science & Engineering.

[30]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[31]  Stephen P. Boyd,et al.  Convex Optimization in Julia , 2014, 2014 First Workshop for High Performance Technical Computing in Dynamic Languages.

[32]  Stephen P. Boyd,et al.  Matrix-Free Convex Optimization Modeling , 2015, 1506.00760.

[33]  Yuan Yu,et al.  TensorFlow: A system for large-scale machine learning , 2016, OSDI.

[34]  Stephen P. Boyd,et al.  Conic Optimization via Operator Splitting and Homogeneous Self-Dual Embedding , 2013, Journal of Optimization Theory and Applications.

[35]  Benjamin Pfaff,et al.  Perturbation Analysis Of Optimization Problems , 2016 .

[36]  Stephen P. Boyd,et al.  CVXPY: A Python-Embedded Modeling Language for Convex Optimization , 2016, J. Mach. Learn. Res..

[37]  J. Zico Kolter,et al.  OptNet: Differentiable Optimization as a Layer in Neural Networks , 2017, ICML.

[38]  Stephen Boyd,et al.  A Rewriting System for Convex Optimization Problems , 2017, ArXiv.

[39]  Priya L. Donti,et al.  Task-based End-to-end Model Learning in Stochastic Optimization , 2017, NIPS.

[40]  Luca Antiga,et al.  Automatic differentiation in PyTorch , 2017 .

[41]  J. Zico Kolter,et al.  A Semismooth Newton Method for Fast, Generic Convex Programming , 2017, ICML.

[42]  Stephen P. Boyd,et al.  CVXR: An R Package for Disciplined Convex Optimization , 2017, Journal of Statistical Software.

[43]  Joshua B. Tenenbaum,et al.  End-to-End Differentiable Physics for Learning and Control , 2018, NeurIPS.

[44]  Michael Innes,et al.  Don't Unroll Adjoint: Differentiating SSA-Form Programs , 2018, ArXiv.

[45]  Byron Boots,et al.  Differentiable MPC for End-to-end Planning and Control , 2018, NeurIPS.

[46]  J. Zico Kolter,et al.  What game are we playing? End-to-end learning in normal and extensive form games , 2018, IJCAI.

[47]  Matthew Johnson,et al.  Compiling machine learning programs via high-level tracing , 2018 .

[48]  Ashish Agarwal,et al.  TensorFlow Eager: A Multi-Stage, Python-Embedded DSL for Machine Learning , 2019, SysML.

[49]  Stephen P. Boyd,et al.  Solution refinement at regular points of conic problems , 2018, Computational Optimization and Applications.

[50]  Stephen P. Boyd,et al.  Dynamic Energy Management , 2019, Springer Optimization and Its Applications.