Contribute Media
A thank you to everyone who makes this possible: Read More

Convex Optimization using CVXPY

Description

In a convex optimization problem, the goal is to find a numerical assignment to a variable that minimizes an objective function, while also satisfying some constraints. The variable might represent parameters in a machine learning model, trades in a financial portfolio, actuations for controllers of a physical system, or tunable parameters for the design of a physical device. In industry, convex optimization problems are solved to land rockets, allocate financial portfolios, fit machine learning models, and control self-driving cars, among other applications. By abstracting away numerical solvers, CVXPY makes it easy to specify and solve convex optimization problems. CVXPY is best understood as a rewriting system for convex optimization problems, with a user-facing front-end and a solver-facing back-end:

  • Front-end: CVXPY provides users with a large library of atomic functions, like exp, log, and norm. These atoms can be composed according to a simple rule that guarantees convexity of the composition, forming the grammar of CVXPY. Formulating problems using this rule is known as Disciplined Convex Programming.
  • Back-end: When the solve method on a problem is called, CVXPY transparently rewrites it into a terse numerical format expected by a solver; it will then call the solver, and return a solution to the user.

This tutorial will cover the basics of convex optimization with CVXPY, with an emphasis on real-world applications. Attendees will come away with: * A thorough understanding of what a convex optimization problem is. * The ability to model real-world problems as convex optimization problems, using CVXPY. * The ability to use CVXPY Parameters to solve many related convex optimization problems in a short amount of time. * An exposure to advanced features included in CVXPY, including quasiconvex programming, log-log convex programming, and differentiating through parametric convex optimization problems.

Target audience: * Computationally-minded scientists and engineers from any field who are interested in learning about a powerful tool for solving mathematically modeled problems.

Prerequisites: * Basic understanding of linear algebra and probability. * We do _not_ assume any familiarity with convex optimization or mathematical programming."

https://github.com/cvxgrp/cvx_short_course

Details

Improve this page