Convex Optimization

Description

Optimization is, simply put, the minimization (or maximization) of functions. Optimization problems arise across many areas of mathematics, science, engineering, economics, and finance. This course is about continuous optimization, that is, when the objective functions to be minimized are real-valued functions over a vector space. For general continuous functions, optimization is a hard problem with few mathematical guarantees. In convex optimization, i.e., when the objective function is convex and defined over a convex domain, there is a rich mathematical development that has given us efficient algorithms with mathematical guarantees. In addition to convex optimization, this course will cover topics in gradient based methods, which lie at the heart of modern machine learning.

Logistics

Textbook

Convex Optimization, by Stephen Boyd and Lieven Vandenberghe

Prerequisites:

You should have basic knowledge (at the undergraduate level) of linear algebra, probability, and multivariate calculus. You should also be comfortable programming in Python.

Example Jupyter Notebooks

For those of you who are relatively new to Jupyter, here are a few notebooks that you might find useful (from my undergraduate course Foundations of Data Analysis.)