可微凸优化层
机器学习
2019-10-29 v1 最优化与控制
机器学习
摘要
近期工作展示了如何将可微优化问题(即其解可反向传播的问题)作为层嵌入深度学习架构中。该方法为某些问题提供了有用的归纳偏置,但现有的可微优化层软件僵化且难以应用于新场景。本文中,我们提出一种对规范凸程序(一类由凸优化领域特定语言(DSL)使用的凸优化问题)进行微分的方法。我们引入规范参数化规划,它是规范凸规划的一个子集,并证明每个规范参数化程序都可表示为从参数到问题数据的仿射映射、求解器以及从求解器解到原问题解的仿射映射的复合(我们称之为仿射-求解器-仿射形式的新形式)。随后我们展示如何对每个组件高效微分,从而实现整个凸程序的端到端解析微分。我们在流行的Python嵌入式凸优化DSL CVXPY的1.1版中实现了该方法,并在PyTorch与TensorFlow 2.0中额外实现了规范凸程序的可微层。我们的实现显著降低了在可微程序中使用凸优化问题的门槛。我们给出了在线性机器学习模型与随机控制中的应用,并表明我们的层在执行时间上可与既往工作的专用可微求解器竞争。
引用
@article{arxiv.1910.12430,
title = {Differentiable Convex Optimization Layers},
author = {Akshay Agrawal and Brandon Amos and Shane Barratt and Stephen Boyd and Steven Diamond and Zico Kolter},
journal= {arXiv preprint arXiv:1910.12430},
year = {2019}
}
备注
In NeurIPS 2019. Code available at https://www.github.com/cvxgrp/cvxpylayers. Authors in alphabetical order