atlas

Research map / Optimization / Optimizers

BPQP: A Differentiable Convex Optimization Framework for Efficient End-to-End Learning

NeurIPS 2024 · Optimization › Optimizers · approach: Randomized gradient estimation · 5 citations (OpenAlex)

Read the paperCheck your idea against 108,967 papers

AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.

Proposes BPQP, which reformulates the backward pass of a differentiable convex optimization layer as a decoupled equality-constrained QP solved with OSQP (ADMM), giving large speedups over implicit-differentiation baselines.

Problem

Differentiating through convex optimization layers via implicit differentiation of KKT conditions requires costly Jacobian/linear-system solves, which scale poorly to large-scale problems with many constraints.

Approach

Rewrite the KKT-based backward linear system as an equality-constrained QP over the active set (decoupled from the forward solver), so any first-order solver such as OSQP can compute gradients without differentiating through the solver or inverting the KKT matrix.

Key results

Measured effects reported in the paper

What was changedWhereMeasuredEffect
Use BPQP instead of qpth/OptNetQP backward pass, 10×5 · QP 10×5runtime: 70.6(±13.3) -> 2.0(±0.5)Helped
Use BPQP instead of qpth/OptNetQP backward pass, 500×100 · QP 500×100runtime: 1872.8(±1254.0) -> 571.6(±130.7)Helped
Use BPQP instead of Exactlarge QP · QP 5000×2000runtime: 489.4 (±22.5) -> 262.8(±17.0)Helped
Use BPQP instead of ExactLP backward pass · LP 500×100runtime: 2949.1 (±378.5) -> 318.7(±106.4)Helped
Use BPQP instead of ExactSOCP backward pass · SOCP 500×100runtime: 300.2 (±119.5) -> 242.9(±2.7)Helped
Use BPQP instead of CVXPYsimulated QP backward pass · QPCosSim: 0.924(±0.15) -> 0.992(±0.09)Helped
Train with BPQP rather than Two-Stageportfolio optimization · Portfolio optimizationSharpe: 0.65(±0.25) -> 1.28(±0.43)Helped
Train with BPQP rather than qpth/OptNetportfolio optimization · Portfolio optimizationtraining time per epoch (minute): 21.2 -> 7.7Helped
Train with BPQP rather than Two-Stageportfolio optimization · Portfolio optimizationIC: 0.033(±0.004) -> 0.026(±0.002)Hurt
Train with BPQP rather than Two-Stageportfolio optimization · Portfolio optimizationAnnualized return (%): 9.28(±3.46) -> 17.67(±6.11)Helped
Use BPQP rather than DC3portfolio optimization · Portfolio optimizationSharpe: -0.16 (±0.60) -> 1.28(±0.43)Helped

Surprising findings

Limitations

Experimental setup

Datasets: simulated QP/LP/SOCP instances Qlib CSI 500 stock data

Benchmarks: simulated QP, LP, SOCP datasets Qlib CSI 500 portfolio optimization

Metrics: runtime (s) cosine similarity of gradients IC ICIR annualized return Sharpe ratio regret training time per epoch

Baselines: CVXPY qpth/OptNet Alt-Diff JAXOpt Exact Two-Stage DC3

Builds on: OptNet OSQP CvxpyLayers Alt-Diff JAXOpt

Closest papers by meaning

Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.

Open scime draft

Get the next scime Dispatch and a monthly field update

Free. We send a confirmation link first; every email has a one-click unsubscribe. Privacy