Skip to content

A Matlab library for solving optimization problems with forward-backward splitting

Notifications You must be signed in to change notification settings

tomgoldstein/fasta-matlab

Repository files navigation

FASTA (Fast Adaptive Shrinkage/Thresholding Algorithm) is an efficient, easy-to-use implementation of the Forward-Backward Splitting (FBS) method (also known as the proximal gradient method) for regularized optimization problems. Many variations on FBS are available in FASTA, including the popular accelerated variant FISTA (Beck and Teboulle ’09), the adaptive stepsize rule SpaRSA (Wright, Nowak, Figueiredo ’09), and other variants described in the review A Field Guide to Forward-Backward Splitting with a FASTA Implementation. Whether the problem you are solving is simple or complex, FASTA makes things easy by handling issues like stepsize selection, acceleration, and stopping conditions for you.

How to use FASTA?

Before using FASTA, please see the following:

The FASTA user's guide
A Field Guide to Forward-Backward Splitting with a FASTA Implementation

We also suggest seeing the main FASTA webpage for a more detailed overview of FASTA, and of forward-backward optimization methods in general.

What can FASTA solve?

FASTA targets problems of the form

minimize f(Ax)+g(x)

where "A" is a linear operator, "f" is a differentiable function, and "g" is a “simple” (but possibly non-smooth) function. Problems of this form including sparse least-squares (basis-pursuit), lasso, total-variation denoising, matrix completion, and many more. The FASTA implementation is incredibly flexible; users can solve almost anything by providing their own "f," g," and "A." However, for users that want quick out-of-the-box solutions, simple customized solvers are provided for the following problems. See the FASTA user’s manual for details.

For a more extensive list of problems, and their mathematical formulations, see the main FASTA webpage.

About the Authors

Fasta was developed by:

Tom Goldstein - University of Maryland
Christoph Studer - Cornell University
Richard Baraniuk - Rice University

How to cite FASTA

If you find that FASTA has contributed to your published work, please include the following citations:

@article{GoldsteinStuderBaraniuk:2014,
  Author = {Goldstein, Tom and Studer, Christoph and Baraniuk, Richard},
  Title = {A Field Guide to Forward-Backward Splitting with a {FASTA} Implementation},
  year = {2014},
  journal = {arXiv eprint},
  volume = {abs/1411.3406},
  url = {http://arxiv.org/abs/1411.3406},
  ee = {http://arxiv.org/abs/1411.3406}
}

@misc{FASTA:2014,
  Author = {Goldstein, Tom and Studer, Christoph and Baraniuk, Richard},
  title = {{FASTA}:  A Generalized Implementation of Forward-Backward Splitting},
  note = {http://arxiv.org/abs/1501.04979},
  month = {January},
  year = {2015}
}

About

A Matlab library for solving optimization problems with forward-backward splitting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages