Proximal gradient method
Proximal gradient methods are a generalized form of projection used to solve non-differentiable convex optimization problems. File:Frank Wolfe vs Projected Gradient.webm Many interesting problems can be formulated as convex optimization problems of the form
[math]\displaystyle{ \operatorname{min}\limits_{x \in \mathbb{R}^N} \sum_{i=1}^n f_i(x) }[/math]
where [math]\displaystyle{ f_i: \mathbb{R}^N \rightarrow \mathbb{R},\ i = 1, \dots, n }[/math] are possibly non-differentiable convex functions. The lack of differentiability rules out conventional smooth optimization techniques like the steepest descent method and the conjugate gradient method, but proximal gradient methods can be used instead.
Proximal gradient methods starts by a splitting step, in which the functions [math]\displaystyle{ f_1, . . . , f_n }[/math] are used individually so as to yield an easily implementable algorithm. They are called proximal because each non-differentiable function among [math]\displaystyle{ f_1, . . . , f_n }[/math] is involved via its proximity operator. Iterative shrinkage thresholding algorithm,[1] projected Landweber, projected gradient, alternating projections, alternating-direction method of multipliers, alternating split Bregman are special instances of proximal algorithms.[2]
For the theory of proximal gradient methods from the perspective of and with applications to statistical learning theory, see proximal gradient methods for learning.
Projection onto convex sets (POCS)
One of the widely used convex optimization algorithms is projections onto convex sets (POCS). This algorithm is employed to recover/synthesize a signal satisfying simultaneously several convex constraints. Let [math]\displaystyle{ f_i }[/math] be the indicator function of non-empty closed convex set [math]\displaystyle{ C_i }[/math] modeling a constraint. This reduces to convex feasibility problem, which require us to find a solution such that it lies in the intersection of all convex sets [math]\displaystyle{ C_i }[/math]. In POCS method each set [math]\displaystyle{ C_i }[/math] is incorporated by its projection operator [math]\displaystyle{ P_{C_i} }[/math]. So in each iteration [math]\displaystyle{ x }[/math] is updated as
- [math]\displaystyle{ x_{k+1} = P_{C_1} P_{C_2} \cdots P_{C_n} x_k }[/math]
However beyond such problems projection operators are not appropriate and more general operators are required to tackle them. Among the various generalizations of the notion of a convex projection operator that exist, proximal operators are best suited for other purposes.
Examples
Special instances of Proximal Gradient Methods are
- Projected Landweber
- Alternating projection
- Alternating-direction method of multipliers
See also
Notes
- ↑ Daubechies, I; Defrise, M; De Mol, C (2004). "An iterative thresholding algorithm for linear inverse problems with a sparsity constraint". Communications on Pure and Applied Mathematics 57 (11): 1413–1457. doi:10.1002/cpa.20042. Bibcode: 2003math......7152D.
- ↑ Details of proximal methods are discussed in Combettes, Patrick L.; Pesquet, Jean-Christophe (2009). "Proximal Splitting Methods in Signal Processing". arXiv:0912.3522 [math.OC].
References
- Rockafellar, R. T. (1970). Convex analysis. Princeton: Princeton University Press.
- Combettes, Patrick L.; Pesquet, Jean-Christophe (2011). Fixed-Point Algorithms for Inverse Problems in Science and Engineering. 49. pp. 185–212.
External links
- Stephen Boyd and Lieven Vandenberghe Book, Convex optimization
- EE364a: Convex Optimization I and EE364b: Convex Optimization II, Stanford course homepages
- EE227A: Lieven Vandenberghe Notes Lecture 18
- ProximalOperators.jl: a Julia package implementing proximal operators.
- ProximalAlgorithms.jl: a Julia package implementing algorithms based on the proximal operator, including the proximal gradient method.
- Proximity Operator repository: a collection of proximity operators implemented in Matlab and Python.
Original source: https://en.wikipedia.org/wiki/Proximal gradient method.
Read more |