Frank–Wolfe algorithm
The Frank–Wolfe algorithm is an iterative first-order optimization algorithm for constrained convex optimization. Also known as the conditional gradient method,[1] reduced gradient algorithm and the convex combination algorithm, the method was originally proposed by Marguerite Frank and Philip Wolfe in 1956.[2] In each iteration, the Frank–Wolfe algorithm considers a linear approximation of the objective function, and moves towards a minimizer of this linear function (taken over the same domain).
Problem statement
Suppose [math]\displaystyle{ \mathcal{D} }[/math] is a compact convex set in a vector space and [math]\displaystyle{ f \colon \mathcal{D} \to \mathbb{R} }[/math] is a convex, differentiable real-valued function. The Frank–Wolfe algorithm solves the optimization problem
- Minimize [math]\displaystyle{ f(\mathbf{x}) }[/math]
- subject to [math]\displaystyle{ \mathbf{x} \in \mathcal{D} }[/math].
Algorithm
- Initialization: Let [math]\displaystyle{ k \leftarrow 0 }[/math], and let [math]\displaystyle{ \mathbf{x}_0 \! }[/math] be any point in [math]\displaystyle{ \mathcal{D} }[/math].
- Step 1. Direction-finding subproblem: Find [math]\displaystyle{ \mathbf{s}_k }[/math] solving
- Minimize [math]\displaystyle{ \mathbf{s}^T \nabla f(\mathbf{x}_k) }[/math]
- Subject to [math]\displaystyle{ \mathbf{s} \in \mathcal{D} }[/math]
- (Interpretation: Minimize the linear approximation of the problem given by the first-order Taylor approximation of [math]\displaystyle{ f }[/math] around [math]\displaystyle{ \mathbf{x}_k \! }[/math] constrained to stay within [math]\displaystyle{ \mathcal{D} }[/math].)
- Step 2. Step size determination: Set [math]\displaystyle{ \alpha \leftarrow \frac{2}{k+2} }[/math], or alternatively find [math]\displaystyle{ \alpha }[/math] that minimizes [math]\displaystyle{ f(\mathbf{x}_k+\alpha(\mathbf{s}_k -\mathbf{x}_k)) }[/math] subject to [math]\displaystyle{ 0 \le \alpha \le 1 }[/math] .
- Step 3. Update: Let [math]\displaystyle{ \mathbf{x}_{k+1}\leftarrow \mathbf{x}_k+\alpha(\mathbf{s}_k-\mathbf{x}_k) }[/math], let [math]\displaystyle{ k \leftarrow k+1 }[/math] and go to Step 1.
Properties
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 in the objective function to the optimum is [math]\displaystyle{ O(1/k) }[/math] after k iterations, so long as the gradient is Lipschitz continuous with respect to some norm. The same convergence rate can also be shown if the sub-problems are only solved approximately.[3]
The iterations 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,[4] as well as for example the optimization of minimum–cost flows in transportation networks.[5]
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.
While the worst-case convergence rate with [math]\displaystyle{ O(1/k) }[/math] can not be improved in general, faster convergence can be obtained for special problem classes, such as some strongly convex problems.[6]
Lower bounds on the solution value, and primal-dual analysis
Since [math]\displaystyle{ f }[/math] is convex, for any two points [math]\displaystyle{ \mathbf{x}, \mathbf{y} \in \mathcal{D} }[/math] we have:
- [math]\displaystyle{ f(\mathbf{y}) \geq f(\mathbf{x}) + (\mathbf{y} - \mathbf{x})^T \nabla f(\mathbf{x}) }[/math]
This also holds for the (unknown) optimal solution [math]\displaystyle{ \mathbf{x}^* }[/math]. That is, [math]\displaystyle{ f(\mathbf{x}^*) \ge f(\mathbf{x}) + (\mathbf{x}^* - \mathbf{x})^T \nabla f(\mathbf{x}) }[/math]. The best lower bound with respect to a given point [math]\displaystyle{ \mathbf{x} }[/math] is given by
- [math]\displaystyle{ \begin{align} f(\mathbf{x}^*) & \ge f(\mathbf{x}) + (\mathbf{x}^* - \mathbf{x})^T \nabla f(\mathbf{x}) \\ &\geq \min_{\mathbf{y} \in D} \left\{ f(\mathbf{x}) + (\mathbf{y} - \mathbf{x})^T \nabla f(\mathbf{x}) \right\} \\ &= f(\mathbf{x}) - \mathbf{x}^T \nabla f(\mathbf{x}) + \min_{\mathbf{y} \in D} \mathbf{y}^T \nabla f(\mathbf{x}) \end{align} }[/math]
The latter optimization problem is solved in every iteration of the Frank–Wolfe algorithm, therefore the solution [math]\displaystyle{ \mathbf{s}_k }[/math] of the direction-finding subproblem of the [math]\displaystyle{ k }[/math]-th iteration can be used to determine increasing lower bounds [math]\displaystyle{ l_k }[/math] during each iteration by setting [math]\displaystyle{ l_0 = - \infty }[/math] and
- [math]\displaystyle{ l_k := \max (l_{k - 1}, f(\mathbf{x}_k) + (\mathbf{s}_k - \mathbf{x}_k)^T \nabla f(\mathbf{x}_k)) }[/math]
Such lower bounds on the unknown optimal value are important in practice because they can be used as a stopping criterion, and give an efficient certificate of the approximation quality in every iteration, since always [math]\displaystyle{ l_k \leq f(\mathbf{x}^*) \leq f(\mathbf{x}_k) }[/math].
It has been shown that this corresponding duality gap, that is the difference between [math]\displaystyle{ f(\mathbf{x}_k) }[/math] and the lower bound [math]\displaystyle{ l_k }[/math], decreases with the same convergence rate, i.e. [math]\displaystyle{ f(\mathbf{x}_k) - l_k = O(1/k) . }[/math]
Notes
- ↑ Levitin, E. S.; Polyak, B. T. (1966). "Constrained minimization methods". USSR Computational Mathematics and Mathematical Physics 6 (5): 1. doi:10.1016/0041-5553(66)90114-5.
- ↑ Frank, M.; Wolfe, P. (1956). "An algorithm for quadratic programming". Naval Research Logistics Quarterly 3 (1–2): 95–110. doi:10.1002/nav.3800030109.
- ↑ Dunn, J. C.; Harshbarger, S. (1978). "Conditional gradient algorithms with open loop step size rules". Journal of Mathematical Analysis and Applications 62 (2): 432. doi:10.1016/0022-247X(78)90137-3.
- ↑ Clarkson, K. L. (2010). "Coresets, sparse greedy approximation, and the Frank-Wolfe algorithm". ACM Transactions on Algorithms 6 (4): 1–30. doi:10.1145/1824777.1824783.
- ↑ Fukushima, M. (1984). "A modified Frank-Wolfe algorithm for solving the traffic assignment problem". Transportation Research Part B: Methodological 18 (2): 169–177. doi:10.1016/0191-2615(84)90029-8.
- ↑ Bertsekas, Dimitri (1999). Nonlinear Programming. Athena Scientific. p. 215. ISBN 978-1-886529-00-7.
Bibliography
- Jaggi, Martin (2013). "Revisiting Frank–Wolfe: Projection-Free Sparse Convex Optimization". Journal of Machine Learning Research: Workshop and Conference Proceedings 28 (1): 427–435. http://jmlr.csail.mit.edu/proceedings/papers/v28/jaggi13.html. (Overview paper)
- The Frank–Wolfe algorithm description
- Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization (2nd ed.). Berlin, New York: Springer-Verlag. ISBN 978-0-387-30303-1..
External links
- https://conditional-gradients.org/: a survey of Frank–Wolfe algorithms.
- Marguerite Frank giving a personal account of the history of the algorithm
See also
- Proximal gradient methods
Original source: https://en.wikipedia.org/wiki/Frank–Wolfe algorithm.
Read more |