Adaptive Proximal Gradient Method For Convex Optimization

9 min read

Introduction

Convex optimization lies at the heart of modern machine learning, signal processing, and operations research. When the objective function can be split into a smooth part (f(x)) and a possibly non‑smooth but simple part (g(x)), the proximal gradient method becomes a work‑horse algorithm because it combines a gradient step on (f) with a proximal (or “prox”) step that handles (g) efficiently.

A classic drawback of the basic proximal gradient scheme is its reliance on a fixed step‑size that must be chosen smaller than the reciprocal of the Lipschitz constant (L) of (\nabla f). In practice, (L) is often unknown or overly conservative, leading to unnecessarily slow progress. The adaptive proximal gradient method addresses this issue by automatically adjusting the step‑size during iterations—typically via a back‑tracking line search or a Barzilai‑Borwein‑type rule—while preserving the convergence guarantees of the original scheme.

The official docs gloss over this. That's a mistake The details matter here..

In the following sections we unpack the method from intuition to implementation, illustrate it with concrete examples, discuss the underlying theory, highlight common pitfalls, and answer frequently asked questions. By the end you should have a clear picture of why adaptivity matters and how to employ the algorithm reliably in real‑world convex problems.

Easier said than done, but still worth knowing.


Detailed Explanation

From Gradient Descent to Proximal Gradient

Consider the convex composite problem

[ \min_{x\in\mathbb{R}^n}; F(x) ;:=; f(x) + g(x), ]

where

  • (f:\mathbb{R}^n\to\mathbb{R}) is convex and differentiable with an (L)-Lipschitz gradient ((|\nabla f(x)-\nabla f(y)|\le L|x-y|)),
  • (g:\mathbb{R}^n\to\mathbb{R}\cup{+\infty}) is convex, proper, lower‑semicontinuous, and possibly non‑smooth (e.g., an (\ell_1) norm or an indicator of a convex set).

If (g\equiv0), the problem reduces to smooth convex optimization and plain gradient descent with step‑size (\alpha_k\le 1/L) guarantees convergence. When (g\neq0), a naïve gradient step may leave the feasible region of (g); the proximal operator

[ \operatorname{prox}{\alpha g}(v) ;:=; \arg\min{u}\Bigl{ g(u) + \frac{1}{2\alpha}|u-v|^2 \Bigr} ]

acts as a “gradient step followed by a projection onto the set where (g) is cheap to evaluate.” The proximal gradient iteration with a fixed step‑size (\alpha) reads

[ x^{k+1} ;=; \operatorname{prox}_{\alpha g}\bigl(x^{k} - \alpha \nabla f(x^{k})\bigr). ]

Why Adaptivity?

The theory only requires (\alpha_k \le 1/L). If we pick a constant (\alpha) far below this bound, each iteration makes only tiny progress, inflating the total number of steps. Conversely, choosing (\alpha) too large can break the descent property and cause divergence.

An adaptive scheme seeks a step‑size (\alpha_k) that is as large as possible while still satisfying a sufficient‑decrease condition, such as the Armijo‑type condition

[ f\bigl(x^{k+1}\bigr) ;\le; f\bigl(x^{k}\bigr) + \langle \nabla f(x^{k}), x^{k+1}-x^{k}\rangle + \frac{1}{2\alpha_k}|x^{k+1}-x^{k}|^{2}. ]

Because the proximal step already accounts for (g), checking this inequality involves only the smooth part (f). , multiply by a factor (\beta\in(0,1))) and retry; if it succeeds, we may even try to increase (\alpha_k) for the next iteration. That's why if the condition fails, we shrink (\alpha_k) (e. g.This back‑tracking line search guarantees that (\alpha_k) stays within a safe interval ([ \alpha_{\min}, \alpha_{\max}]) where (\alpha_{\max}) can be much larger than (1/L) when the local curvature is small That's the whole idea..

The adaptive proximal gradient method therefore inherits the global convergence of the fixed‑step version while often enjoying empirically faster convergence because it automatically exploits local smoothness information It's one of those things that adds up..


Step‑by‑Step Concept Breakdown

Below is a typical algorithmic outline (back‑tracking version). Each block is explained in plain language Small thing, real impact..

1. Initialization

  • Choose a starting point (x^{0}) (often the zero vector or a warm‑start from a related problem).
  • Set algorithmic parameters:
    • Initial step‑size guess (\alpha_{0}>0) (e.g., (1) or (1/| \nabla f(x^{0})|)).
    • Shrink factor (\beta\in(0,1)) (commonly (0.5)).
    • Growth factor (\eta\ge1) (optional, e.g., (1.1)) for increasing the step after a successful step.
    • Tolerance (\varepsilon>0) for stopping criteria.

2. Gradient Step

Compute the gradient of the smooth part at the current iterate:

[ g^{k} ;:=; \nabla f(x^{k}). ]

Form the gradient‑descent candidate

[ y^{k} ;:=; x^{k} - \alpha_k g^{k}. ]

3. Proximal Step

Apply the proximal operator of (g) with step‑size (\alpha_k):

[ x^{k+1} ;:=; \operatorname{prox}_{\alpha_k g}\bigl(y^{k}\bigr). ]

Because many common (g) (e.g., (\ell_1) norm, indicator of a box) have closed‑form proxies, this step

The proximal operator is applied to the gradient‑descent candidate (y^{k}=x^{k}-\alpha_{k}g^{k}). For many popular regularizers the mapping has a simple analytic form, which makes the proximal step inexpensive. Here's one way to look at it: when (g) is the (\ell_{1}) norm the proximal map reduces to component‑wise soft‑thresholding:

[ \bigl[\operatorname{prox}{\alpha g}(y)\bigr]{i} =\operatorname{sign}(y_{i});\max\bigl{|y_{i}|-\alpha\lambda,,0\bigr}, ]

where (\lambda) is the regularization weight. If (g) is an indicator of a box (i.e.

[ \bigl[\operatorname{prox}{\alpha g}(y)\bigr]{i} =\begin{cases} l_{i} & \text{if } y_{i}<l_{i},\[4pt] u_{i} & \text{if } y_{i}>u_{i},\[4pt] y_{i} & \text{otherwise}. \end{cases} ]

In both cases the proximal step can be executed in linear time with respect to the dimension of (x^{k}).


Back‑tracking loop

About the Ar —mijo‑type sufficient‑decrease condition involves only the smooth component (f). After forming the candidate (y^{k}) we test

[ f\bigl(\operatorname{prox}{\alpha{k}g}(y^{k})\bigr) ;\le; f\bigl(x^{k}\bigr) +\langle \nabla f(x^{k}),,y^{k}-x^{k}\rangle +\frac{1}{2\alpha_{k}}|y^{k}-x^{k}|^{2}. ]

If the inequality holds, the current step size (\alpha_{k}) is acceptable and we may proceed to the next iteration (or optionally enlarge (\alpha_{k}) by a factor (\eta>1) for the subsequent step). If it fails, we shrink the step size by multiplying (\alpha_{k}) with a reduction factor (\beta\in(0,1)) — the most common choice is (\beta=0.5) — recompute (y^{k}) and the proximal update, and repeat the test. Because each reduction halves the step size, the loop is guaranteed to terminate after at most a few iterations, since the right‑hand side of the inequality is a continuous function of (\alpha_{k}) and the limit (\alpha_{k}\to 0) trivially satisfies the condition Most people skip this — try not to..


Full algorithmic outline

Putting the pieces together, a typical adaptive proximal‑gradient scheme proceeds as follows:

  1. Initialize (x^{0}), choose an initial guess (\alpha_{0}>0), set (\beta\in(0,1)) (e.g., 0.5) and a growth factor (\eta\ge 1) (e.g., 1.1). Define a tolerance (\varepsilon>0) and a maximum number of back‑tracking steps (K_{\max}).

  2. Repeat for (k=0,1,2,\dots) until (|g^{k}|<\varepsilon) or the maximum iteration count is reached:

    • Compute the gradient (g^{k}=\nabla f(x^{k})).
    • Set the candidate gradient step (y^{k}=x^{k}-\alpha_{k}g^{k}).
    • Back‑tracking:
      [ \text{for } j=0,\dots,K_{\max}:; x^{\text{trial}}=\operatorname{prox}{\alpha{k}g}(y^{k});; \text{if } f(x^{\text{trial}})\le f(x^{k})+\langle g^{k},x^{\text{trial}}-x^{k}\rangle+\frac{1}{2\alpha_{k}}|x^{\text{trial}}-y^{k}|^{2} \text{ then break;} \quad \alpha_{k}\gets\beta,\alpha_{k}. ]
    • Form the new iterate (x^{k+1}= \operatorname{prox}{\alpha{k}g}(y^{k})).
    • (Optional) If the Armijo condition was satisfied, increase the step size for the next iteration: (\alpha_{k+1}\gets \eta,\alpha_{k}).
  3. Terminate when the stopping criterion is met.

Because the back‑tracking uses the same proximal operator each time, the overall cost per outer iteration is dominated by a single gradient evaluation and one proximal evaluation; the extra inner iterations are typically negligible Worth keeping that in mind. Which is the point..


Convergence guarantees

Under the standard assumptions — (f) has an (L)-Lipschitz continuous gradient and (g) is proper, lower‑semicontinuous, and proximable — the Armijo condition implies the descent inequality

[ f(x^{k+1}) ;\le; f(x^{k}) - \frac{1-\beta}{2},\alpha_{k},|g^{k}|^{2}. ]

Summing this inequality over all iterations yields (\sum_{k}\alpha_{k}|g^{k}|^{2}<\infty). Here's the thing — since the step sizes are never allowed to become arbitrarily small (the back‑tracking never drives (\alpha_{k}) below a positive lower bound unless the gradient itself vanishes), the series (\sum_{k}\alpha_{k}) is bounded, which in turn forces (|g^{k}|\to 0). Hence any limit point of the sequence ({x^{k}}) is a stationary point of the composite objective, and for convex (f+g) the whole sequence converges to the unique minimizer Small thing, real impact..

Easier said than done, but still worth knowing.


Practical considerations

  • Choice of (\beta) and (\eta). A smaller (\beta) speeds up the descent when the curvature is large, while a larger (\eta) allows the step size to grow quickly when the local Lipschitz constant is low. In practice the defaults (\beta=0.5) and (\eta=1.1) work well across a broad range of problems.
  • Warm‑starting. When the algorithm is embedded in an iterative workflow (e.g., solving a sequence of LASSO problems with varying regularization), reusing the previous iterate as (x^{0}) often reduces the number of back‑tracking steps dramatically.
  • Adaptive scaling. For problems where the smooth part is rescaled (e.g., after preconditioning), one can replace (\alpha_{k}) by (\tilde\alpha_{k}= \alpha_{k}/|P\nabla f(x^{k})|) with an appropriate preconditioner (P), thereby keeping the effective step size within the safe interval.

Conclusion

The adaptive proximal‑gradient method endows the otherwise rigid fixed‑step framework with a dynamic step‑size that respects the local geometry of the smooth component while honoring the proximal structure of the nonsmooth term. So naturally, by automatically shrinking or expanding (\alpha_{k}) through a simple back‑tracking test, the algorithm retains the global convergence guarantees of the theoretical analysis and, in practice, delivers noticeably faster progress on problems ranging from sparse regression to image deblurring. This means adaptivity serves as a practical bridge between the clean convergence proofs of optimization theory and the heuristic choices that dominate modern machine‑learning implementations.

Up Next

Fresh Stories

Fits Well With This

Parallel Reading

Thank you for reading about Adaptive Proximal Gradient Method For Convex Optimization. We hope the information has been useful. Feel free to contact us if you have any questions. See you next time — don't forget to bookmark!
⌂ Back to Home