Frank–Wolfe algorithm

This is an old revision of this page, as edited by Martinjaggi (talk | contribs) at 10:47, 14 December 2012 (minor fix in the algorithm, better linking). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Frank–Wolfe algorithm is an iterative first-order optimization algorithm for constrained convex optimization. Also known as the conditional gradient method, reduced gradient algorithm and the convex combination algorithm, the method was originally proposed by Marguerite Frank and Philip Wolfe in 1956[1]. In each iteration, the Frank-Wolfe algorithm considers linear approximation of the objective function, and moves slightly towards a minimizer of this linear function (taken over the same ___domain).

While competing methods such as gradient descent for constrained optimization require a projection step back to the feasible set in each iteration, the Frank–Wolfe algorithm only needs the solution of a linear-problem over the same set in each iteration, and automatically stays in the feasible set. The convergence of the Frank–Wolfe algorithm is sublinear in general, the error to the optimum is after k iterations. The iterates of the algorithm can always be represented as a sparse convex combination of the extreme points of the feasible set, which has helped to the popularity of the algorithm for sparse greedy optimization in machine learning and signal processing problems[2], as well as for example the optimization of minimum–cost flows in transportation networks.

Problem statement

Minimize  
subject to  .

Where the function f is convex and differentiable, and the ___domain or feasible set   is convex and bounded.

Algorithm

 
A step of the Frank-Wolfe algorithm

Initialization. Let   and let   be any point in  .

Step 1. Direction-finding subproblem. Find   solving

Minimize  
Subject to  

Interpretation: Minimize the linear approximation of the problem given by the first-order Taylor approximation of f around  .

Step 2. Step size determination. Set  , or alternatively find   that minimizes   subject to   .

Step 3. Update. Let  , let   and go back to Step 1.

Comments

If the feasible set is given by a set of linear constraints, then the subproblem to be solved in each iteration becomes a linear program.

The algorithm generally makes good progress towards the optimum during the first few iterations, but convergence often slows down substantially when close to the minimum point. For this reason the algorithm is perhaps best used to find an approximate solution. It can be shown that the worst case convergence rate is sublinear; however, in practice the convergence rate has been observed to improve in case of many constraints.[3]

References

Notes

  1. ^ Frank, M.; Wolfe, P. (1956). "An algorithm for quadratic programming". Naval Research Logistics Quarterly. 3 (1–2): 95–110. doi:10.1002/nav.3800030109.
  2. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1145/1824777.1824783, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1145/1824777.1824783 instead.
  3. ^ "Nonlinear Programming", Dimitri Bertsekas, 2003, page 222. Athena Scientific, ISBN 1-886529-00-0.