We'll consider the standard constrained minimisation problem in convex optimisation:
where is a non-empty convex subset of and a nice convex function. The following notions of nice are used (unless explicitly specified):
, i.e.: the domain of covers ,
, the set of convex functions that are proper and lower semi-continuous on (see further, though you can ignore this for now),
achieves its minimum on the interior of denoted , i.e.: there is a such that for all .
Roughly speaking, these conditions guarantee that there is a solution to the problem and that we can find one applying some simple iterative algorithm. We will come back to these assumptions as we get to use them throughout the notes.
We will also consider the unconstrained form of the problem, i.e.: when (and will then just write ). Constrained problems can always be interpreted as unconstrained problems: indeed, if we define the indicator of a convex set as
then the constrained problem (1) is equivalent to
This is not entirely pointless as will become apparent when deriving the projected gradient descent.
Before delving into the details it's useful to understand how algorithms for optimisation can often be constructed.
A big part of convex optimisation aims at defining clever iterative algorithms which, ideally, enjoy the following properties when started from a sensible initial point :
the iterations converge "quickly" to a minimiser,
the iterations are "cheap" to compute.
Often these iterative algorithms can be derived from some kind of fixed point equation that is satisfied by a minimiser , i.e.: an equation of the form
where is an appropriate operator. Provided we have such a fixed point equation, we can consider a fixed point algorithm with the simplest form being:
Under some conditions on the operator and possibly on , such an algorithm will provably converge to . This may seem reasonably straightforward but there are quite a few difficult questions that need be addressed and will be investigated in the notes:
how can we get a decent starting point? (quite a hard problem in general)
how can we pick an operator that is numerically stable and converges quickly?
how can we offer guarantees of how close we are to the true minimiser at a step ?
In the rest of these notes, we will show how to obtain the fixed point equations and useful fixed point algorithms for a variety of scenarios and, by doing so, will recover well known algorithms such as the classical gradient descent and the mirror descent.
More precise pointers will be given on subsequent pages but most of the content in these notes relates in some way or another to the following references (in particular the first one):
Rockafellar: Convex analysis, 1970. – A "must-read" in convex analysis, a reference of choice for technical details.
Nesterov: Introductory Lectures on Convex Optimization, 1998. – Another must-read with all the technical details and more focused on algorithms and convergence rates than Rockafellar's book.
Ben-Tal, Nemirovski, Lectures on Modern Optimization, 2013. – A recent perspective on optimisation methods.
Boyd and Vandenberghe: Convex Optimization, 2004. – More accessible and more oriented towards giving "tools" to the reader than the previous references.