First Order Methods¶
This module aims to implement the first order methods for sparse signal recovery problems proposed in [BCandesG11]. The implementation is adapted from TFOCS [BCG12].
First order methods exploit information n values and gradients/subgradients (but not Hessians) of the functions comprising the models under consideration [Bec17].
API¶
Solvers
|
First order methods driver routine |
|
First order solver for smooth conic dual problems driver routine |
|
Solver for l1 regulated least square problem |
|
Solver for l1 regulated least square problem |
|
Solver for LASSO problem |
|
Solver for LASSO problem |
|
Solver for ordered weighted l1 norm regulated least square problem |
|
Solver for ordered weighted l1 norm regulated least square problem |
|
Solver for the (smoothed) Dantzig selector problem using smoothed conic dual formulation |
Data types
Options for FOCS driver routine |
|
State of the FOCS method |
Utilities
|
Returns an affine function for a matrix A and vector b |
First Order Methods¶
[BCandesG11] considers problems in the unconstrained form:
where:
Both
are convex functions. is a smooth convex function. is a non-smooth convex function.
Of particular interest are problems where
where
is a linear operator from is a translation vector is a smooth convex function
and the function
We can then rewrite
For a smooth function, its gradient
For a prox-capable function, it should have an efficient proximal operator:
for any
See the following sections for details:
The routine fom()
provides the solver for the minimization
problem described above.
Unconstrained smooth minimization problems can be handled by choosing
. Seecr.sparse.opt.prox_zero()
.Convex constraints can be handled by adding their indicator functions as part of
.
For solving the minimization problem, an initial solution
Smooth Conic Dual Problems¶
A number of sparse signal recovery problems can be cast as conic optimization problems. Then efficient first order methods can be used to solve the problem. This procedure often involves the following steps:
Cast the sparse recovery problem as a conic optimization problem
Augment the objective function with a strongly convex term to make it smooth.
Formulate the dual of the smooth problem.
Solve the smooth conic dual problem using a first order method.
Apply continuation to mitigate the effect of the strongly convex term added to the original objective function.
Our goal is to solve the conic problems of the form [BCandesG11]
where:
is the optimization variable is a convex objective function which is possibly extended valued but not necessarily smooth is a linear operator is a translation vector is a closed, convex cone
Dual Problem
The Lagrangian associated with the conic problem is given by:
where
The dual function is:
is the adjoint of the linear operator is the convex conjugate of defined by
Thus, the dual problem is given by:
Smoothing
The dual function
We perturb the original problem as follows:
is a fixed smoothing parameter is a strongly convex function obeying
A specific choice for
The new objective function
The Lagrangian becomes:
The dual function becomes:
First order methods may be employed to solve this problem with provable performance.
The smoothed conic dual problem is then given by:
Composite Forms
Often, it is convenient to split the dual variable
This is particularly useful, if the smoothed dual function
Since
Problem Instantiations
In the rest of the document, we will discuss how specific sparse signal recovery problems can be modeled and solved using this module as either primal problems or a smooth conic dual problem.
L1 regularized least square problem¶
We consider the problem:
Choose:
as the linear operator as the translate input
With these choices, it is straight-forward to use fom()
to solve
the L1RLS problem. This is implemented in the function l1rls()
.
LASSO¶
LASSO (least absolute shrinkage and selection operator) s a regression analysis method that performs both variable selection and regularization in order to enhance the prediction accuracy and interpretability of the resulting statistical model.
We consider the problem:
Choose:
as the indicator function for l1-ball , seecr.sparse.opt.prox_l1_ball()
as the linear operator as the translate input
With these choices, it is straight-forward to use fom()
to solve
the LASSO problem. This is implemented in the function lasso()
.
Ordered weighted L1 regularized least square problem¶
We consider the problem:
described in [lBvdBSC13].
Choose:
as the linear operator as the translate input
With these choices, it is straight-forward to use fom()
to solve
the ordered weighted L1 regularized least square problem. This is implemented in the function owl1rls()
.
The Dantzig selector¶
We wish to recover an unknown vector
where
is a known sized design matrix is the noise termThere are fewer observations/measurements than unknowns (
)
We consider the optimization problem
We are minimizing the
norm of the solution (thus promoting sparsity)We have an upper bound
on the correlation between the residual vector and the columns/atoms of .
This formulation is known as the Dantzig selector.
The conic form
We can rewrite the Dantzig selector problem as:
where
Then the Dantzig selector can be modeled as a standard conic form as follows:
is a mapping from ; note that
Note carefully that:
Thus:
Dual problem
The dual of the
The convex conjugate of the l1 norm function
The adjoint of the linear operator is given by:
Plugging into the dual problem definition:
We get:
For
Plugging this back, we get the unconstrained maximization problem: