HackerPapers

arXiv:1703.00443cs.LG

OptNet: Differentiable Optimization as a Layer in Neural Networks

Brandon Amos, J. Zico Kolter

Abstract

This paper presents OptNet, a network architecture that integrates optimization problems (here, specifically in the form of quadratic programs) as individual layers in larger end-to-end trainable deep networks. These layers encode constraints and complex dependencies between the hidden states that traditional convolutional and fully-connected layers often cannot capture. We explore the foundations for such an architecture: we show how techniques from sensitivity analysis, bilevel optimization, and implicit differentiation can be used to exactly differentiate through these layers and with respect to layer parameters; we develop a highly efficient solver for these layers that exploits fast GPU-based batch solves within a primal-dual interior point method, and which provides backpropagation gradients with virtually no additional cost on top of the solve; and we highlight the application of these approaches in several problems. In one notable example, the method is learns to play mini-Sudoku (4x4) given just input and output games, with no a-priori information about the rules of the game; this highlights the ability of OptNet to learn hard constraints better than other neural architectures.

arXiv comments
ICML 2017
Journal reference
DOI
Subjects
cs.LGMachine Learning cs.AIArtificial Intelligence math.OCOptimization and Control stat.MLMachine Learning (Statistics)

On Hacker News

Linked by 2 identifiable commenters in 2 comments across 2 threads, from Jun 2017 to Nov 2017.

Comments linking this paper, per year.

Discussed in comments2 threads

    • "just a bunch of weights and layers and parameters" -- I think you and the GP are agreeing. That's the definition of standard: If the model can be expressed using the currently-blessed set of layer definitions in CoreML, then yes. But if you're doing nonstandard stuff with weird…

      dgacmuView on HNParent context

    • Indeed. A simple solution is to add a differential optimization layer (see Amos et al): https://arxiv.org/abs/1703.00443

      shriphaniView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.