Optimization

The Proximal Gradient Method: Splitting Smooth and Nonsmooth

The proximal gradient method lets you minimize a sum f + g where f is smooth but g is a nasty nonsmooth beast — an ℓ¹ norm, an indicator of a constraint set, a nuclear norm — by alternating one gradient step on f with one closed-form proximal step on g. When f has an L-Lipschitz gradient and g is convex, lower semicontinuous, and proper, the fixed step size 1/L drives the objective gap down at rate O(1/k), and Nesterov acceleration sharpens this to O(1/k²).

Formally: to minimize F(x) = f(x) + g(x) over ℝⁿ, iterate xₖ₊₁ = prox_{γg}(xₖ − γ∇f(xₖ)), where prox_{γg}(v) = argmin_x { g(x) + (1/2γ)‖x − v‖² }. The genius is that the intractable joint problem factors into a trivial gradient descent step and a proximal operator that, for well-chosen g, is a one-line formula — soft-thresholding, projection, or a scalar shrinkage.

  • FieldConvex optimization / nonsmooth analysis
  • Also known asForward–backward splitting; ISTA (accelerated: FISTA)
  • Key hypothesesf convex, ∇f L-Lipschitz; g proper, convex, l.s.c.; step γ ∈ (0, 1/L]
  • Convergence rateF(xₖ) − F* ≤ ‖x₀−x*‖²/(2γk); O(1/k²) with acceleration
  • Proof techniqueDescent lemma + firm nonexpansiveness of prox (fixed-point / Fejér monotonicity)
  • PopularizedCombettes–Wajs 2005; Beck–Teboulle FISTA 2009 (roots: Lions–Mercier 1979)

Interactive visualization

Press play, or step through manually. The visualization is yours to drive — try it before reading on.

Open visualization fullscreen ↗

Watch the 60-second explainer

A condensed visual walkthrough — narrated, captioned, under a minute.

The precise statement

Let f: ℝⁿ → ℝ be convex and differentiable with an L-Lipschitz gradient, i.e. ‖∇f(x) − ∇f(y)‖ ≤ L‖x − y‖ for all x, y. Let g: ℝⁿ → ℝ ∪ {+∞} be proper (not identically +∞), convex, and lower semicontinuous (l.s.c.). Assume F = f + g attains its minimum at some x* (guaranteed if F is coercive, or if the minimizer set is nonempty). The proximal gradient iteration with step γ ∈ (0, 1/L] is

xₖ₊₁ = prox_{γg}(xₖ − γ∇f(xₖ)).

Theorem. The iterates satisfy F(xₖ) − F(x*) ≤ ‖x₀ − x*‖² / (2γk). Hence for γ = 1/L the gap is at most L‖x₀ − x*‖²/(2k), an O(1/k) rate. If moreover f (or g) is μ-strongly convex, convergence becomes linear: ‖xₖ − x*‖² ≤ (1 − γμ)ᵏ ‖x₀ − x*‖². The prox operator is single-valued and well-defined here because g + (1/2γ)‖·−v‖² is strongly convex and l.s.c., so its argmin exists and is unique.

The picture: forward step, backward step

Read the iteration as forward–backward splitting. The forward half, v = xₖ − γ∇f(xₖ), is an explicit (forward) Euler step on the gradient flow ẋ = −∇f(x). The backward half, xₖ₊₁ = prox_{γg}(v), is an implicit (backward) Euler step on the subgradient flow of g: the optimality condition of the prox says xₖ₊₁ + γ∂g(xₖ₊₁) ∋ v, i.e. (I + γ∂g)⁻¹ v. So one iteration is (I + γ∂g)⁻¹ ∘ (I − γ∇f).

Why implicit on g? Because ∂g can be unbounded or set-valued (think of the corner of |x|), an explicit step would need a subgradient direction that oscillates; the proximal step instead resolves the nonsmooth part exactly by a small optimization you can solve in closed form. Geometrically prox_{γg}(v) pulls v toward the low-g region while penalizing overshoot — it is the resolvent of the maximal monotone operator ∂g, and it is firmly nonexpansive, which is what makes the whole scheme contract.

Key idea of the proof

Two engine parts. First, the descent lemma: L-Lipschitz ∇f gives f(y) ≤ f(x) + ⟨∇f(x), y − x⟩ + (L/2)‖y − x‖². Second, the prox step is a proximal minimization, so xₖ₊₁ minimizes the surrogate Q(x) = f(xₖ) + ⟨∇f(xₖ), x − xₖ⟩ + (1/2γ)‖x − xₖ‖² + g(x), a valid upper bound on F when γ ≤ 1/L. Optimality of xₖ₊₁ for the strongly convex Q yields, for any z, the key inequality

F(xₖ₊₁) ≤ F(z) + (1/2γ)(‖z − xₖ‖² − ‖z − xₖ₊₁‖²) − (1/2γ)‖z − xₖ₊₁... ‖² terms,

and setting z = x* telescopes: summing over k, the ‖z − xₖ‖² − ‖z − xₖ₊₁‖² collapses to ‖x₀ − x*‖², while monotone decrease of F(xₖ) lets us replace the running sum by k·(F(xₖ) − F*). Divide by k. Equivalently: T = prox_{γg}∘(I − γ∇f) is averaged (a composition of firmly nonexpansive and, for γ ≤ 2/L, nonexpansive maps), so Fejér monotonicity gives xₖ → x* even without strong convexity.

Worked example: LASSO and soft-thresholding (ISTA)

Take the LASSO: minimize F(x) = ½‖Ax − b‖² + λ‖x‖₁, with A ∈ ℝ^{m×n}. Split f(x) = ½‖Ax − b‖² (smooth, ∇f(x) = Aᵀ(Ax − b), L = ‖A‖² = σ_max(A)²) and g(x) = λ‖x‖₁ (convex, l.s.c., nondifferentiable at 0).

The prox of the ℓ¹ norm separates coordinatewise, and each 1-D problem min_t { λ|t| + (1/2γ)(t − v)² } has the explicit soft-thresholding solution S_{γλ}(v) = sign(v)·max(|v| − γλ, 0). So the iteration is

xₖ₊₁ = S_{γλ}( xₖ − γ Aᵀ(Axₖ − b) ),

with γ = 1/‖A‖². This is exactly ISTA (Iterative Shrinkage-Thresholding). Each step is a matrix–vector product plus a cheap threshold; no inner solver, no matrix inversion. The threshold zeroes out small coordinates — this is where sparsity comes from. FISTA adds a momentum term yₖ = xₖ + ((tₖ−1)/tₖ₊₁)(xₖ − xₖ₋₁) and evaluates the gradient at yₖ, upgrading the O(1/k) rate to O(1/k²).

Why the hypotheses matter

L-Lipschitz ∇f. The descent lemma needs it. If ∇f is not Lipschitz (e.g. f(x) = x⁴), a fixed step γ can overshoot and diverge; you must use a backtracking line search to estimate a local L, or the guarantee is void. γ ≤ 1/L. For γ > 2/L the map I − γ∇f fails to be nonexpansive and iterates can spiral out. g convex + l.s.c. ensures ∂g is maximal monotone, so the resolvent (I + γ∂g)⁻¹ = prox_{γg} is single-valued and firmly nonexpansive — the contraction backbone. Drop l.s.c. and the argmin may not be attained; drop convexity and prox becomes multivalued and the fixed-point argument collapses (though for some structured nonconvex g, e.g. the ℓ⁰ 'norm' with hard-thresholding prox, one still gets local/subsequential results). Properness rules out the vacuous g ≡ +∞. Existence of x* needs coercivity or compact sublevel sets; without a minimizer the O(1/k) statement is empty. These are the exact hypotheses under which forward–backward splitting is a genuine descent method.

Significance and connections

Proximal gradient is the workhorse behind sparse recovery and compressed sensing (LASSO, basis pursuit), low-rank matrix completion (nuclear-norm minimization via singular-value thresholding), total-variation image denoising, and ℓ¹-regularized logistic regression. It generalizes three classics as special cases: g ≡ 0 gives gradient descent; g = indicator of a convex set gives projected gradient descent; f ≡ 0 gives the proximal point algorithm. Its lineage traces to Lions–Mercier (1979) forward–backward and Passty splitting; the modern convex-analytic treatment is Combettes–Wajs (2005), and Beck–Teboulle's FISTA (2009) delivered the optimal O(1/k²) rate matching Nesterov's 1983 lower bound for first-order methods. It sits inside a family with ADMM and Douglas–Rachford splitting (which handle two nonsmooth terms), and the prox operator itself is the resolvent that makes the whole monotone-operator machinery — Moreau's envelope, Yosida regularization, operator splitting — computable.

Common g and their proximal operators (the backward step), with the resulting algorithm
Nonsmooth term g(x)prox_{γg}(v) closed formResulting method
0 (no g)vGradient descent
λ‖x‖₁soft-threshold: sign(vᵢ)·max(|vᵢ|−γλ, 0)ISTA / LASSO solver
ι_C(x) (indicator of convex C)P_C(v), Euclidean projection onto CProjected gradient descent
λ‖x‖₊ nuclear norm (matrices)singular-value soft-thresholding of vSVT / low-rank recovery
(λ/2)‖x‖²v / (1 + γλ)Shrinkage (ridge-type)
λ∑|xᵢ|₂ per group (group lasso)block soft-threshold on each groupGroup-sparse regression

Frequently asked questions

Why an implicit (proximal) step on g but an explicit (gradient) step on f?

f is smooth, so a cheap explicit gradient step is accurate and controllable. But ∂g of a nonsmooth g is set-valued and possibly unbounded, so an explicit subgradient step needs a diminishing step size and only gives O(1/√k). The implicit proximal step resolves g exactly — for many g it is a closed-form formula (soft-threshold, projection) — restoring the full O(1/k) rate.

What exactly is the proximal operator, and why is it single-valued here?

prox_{γg}(v) = argmin_x { g(x) + (1/2γ)‖x − v‖² }. When g is proper, convex, and lower semicontinuous, the objective is strongly convex (the quadratic dominates) and l.s.c., so a minimizer exists and is unique — that is why prox is single-valued. It equals the resolvent (I + γ∂g)⁻¹ of the subdifferential and is firmly nonexpansive: ‖prox(u) − prox(v)‖² ≤ ⟨prox(u) − prox(v), u − v⟩.

How large can the step size γ be?

For convergence of the objective at O(1/k) you need γ ∈ (0, 1/L], where L is the Lipschitz constant of ∇f. Iterate convergence to a minimizer holds for the broader range γ ∈ (0, 2/L), because there I − γ∇f is nonexpansive and the composed map is averaged. If L is unknown, use backtracking: shrink γ until the descent inequality f(x⁺) ≤ f(x) + ⟨∇f(x), x⁺−x⟩ + (1/2γ)‖x⁺−x‖² holds.

What does FISTA change, and is O(1/k²) optimal?

FISTA (Beck–Teboulle 2009) evaluates the gradient at an extrapolated point yₖ = xₖ + βₖ(xₖ − xₖ₋₁) with a specific momentum sequence, giving F(xₖ) − F* ≤ 2L‖x₀ − x*‖²/(k+1)². This O(1/k²) matches Nesterov's 1983 lower bound for first-order methods on smooth convex problems, so it is optimal in that oracle model. The cost per iteration is essentially unchanged — just one extra vector combination.

Does it work in infinite dimensions?

Yes. The entire construction lives in a real Hilbert space: with f convex and Fréchet-differentiable with L-Lipschitz gradient and g proper convex l.s.c., prox_{γg} is still the firmly nonexpansive resolvent, and forward–backward yields weak convergence of iterates to a minimizer (Combettes–Wajs 2005). Strong convergence generally requires extra structure (strong convexity, or a Haugazeau/Halpern modification). This is why the method underpins infinite-dimensional inverse problems and PDE-constrained regularization.

What breaks if g is nonconvex?

The prox min may have multiple minimizers, so prox becomes set-valued and the firm-nonexpansiveness / Fejér-monotonicity argument fails — global convergence to the true minimum is not guaranteed. However, for certain structured nonconvex g the method is still useful: with g = λ‖x‖₀ the prox is hard-thresholding (Iterative Hard Thresholding), and under restricted-isometry-type conditions on f one proves recovery. More generally, Kurdyka–Łojasiewicz theory (Attouch–Bolte) gives convergence to a critical point for semialgebraic F.