FISTA#
- class cuqi.solver.FISTA(A, b, proximal, x0, maxit=100, stepsize=1.0, abstol=1e-14, adaptive=True)#
Fast Iterative Shrinkage-Thresholding Algorithm for regularized least squares problems.
Reference: Beck, Amir, and Marc Teboulle. “A fast iterative shrinkage-thresholding algorithm for linear inverse problems.” SIAM journal on imaging sciences 2.1 (2009): 183-202.
Minimize ||Ax-b||^2 + f(x).
- Parameters:
A (ndarray or callable f(x,*args).)
b (ndarray.)
proximal (callable f(x, gamma) for proximal mapping.)
x0 (ndarray. Initial guess.)
maxit (The maximum number of iterations.)
stepsize (The stepsize of the gradient step.)
abstol (The numerical tolerance for convergence checks.)
adapative (Whether to use FISTA or ISTA.)
Example
from cuqi.solver import FISTA, ProximalL1 import scipy as sp import numpy as np rng = np.random.default_rng() m, n = 10, 5 A = rng.standard_normal((m, n)) b = rng.standard_normal(m) stepsize = 0.99/(sp.linalg.interpolative.estimate_spectral_norm(A)**2) x0 = np.zeros(n) fista = FISTA(A, b, proximal = ProximalL1, x0, stepsize = stepsize, maxit = 100, abstol=1e-12, adaptive = True) sol, _ = fista.solve()
- __init__(A, b, proximal, x0, maxit=100, stepsize=1.0, abstol=1e-14, adaptive=True)#
Methods