pylops.optimization.sparsity.FISTA¶
-
pylops.optimization.sparsity.FISTA(Op, data, niter, eps=0.1, alpha=None, eigsiter=None, eigstol=0, tol=1e-10, returninfo=False, show=False)[source]¶ Fast Iterative Soft Thresholding Algorithm (FISTA).
Solve an optimization problem with \(L1\) regularization function given the operator
Opand datay. The operator can be real or complex, and should ideally be either square \(N=M\) or underdetermined \(N<M\).Parameters: - Op :
pylops.LinearOperator Operator to invert
- data :
numpy.ndarray Data
- niter :
int Number of iterations
- eps :
float, optional Sparsity damping
- alpha :
float, optional Step size (\(\alpha \le 1/\lambda_{max}(\mathbf{Op}^H\mathbf{Op})\) guarantees convergence. If
None, estimated to satisfy the condition, otherwise the condition will not be checked)- eigsiter :
int, optional Number of iterations for eigenvalue estimation if
alpha=None- eigstol :
float, optional Tolerance for eigenvalue estimation if
alpha=None- tol :
float, optional Tolerance. Stop iterations if difference between inverted model at subsequent iterations is smaller than
tol- returninfo :
bool, optional Return info of FISTA solver
- show :
bool, optional Display iterations log
Returns: - xinv :
numpy.ndarray Inverted model
- niter :
int Number of effective iterations
- cost :
numpy.ndarray, optional History of cost function
See also
ISTA- Iterative Soft Thresholding Algorithm (FISTA).
Notes
Solves the following optimization problem for the operator \(\mathbf{Op}\) and the data \(\mathbf{d}\):
\[J = ||\mathbf{d} - \mathbf{Op} \mathbf{x}||_2^2 + \epsilon ||\mathbf{x}||_1\]using the Fast Iterative Soft Thresholding Algorithm (FISTA) [1]. This is a modified version of ISTA solver with improved convergence properties and limitied additional computational cost.
[1] Beck, A., and Teboulle, M., “A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems”, SIAM Journal on Imaging Sciences, vol. 2, pp. 183-202. 2009. - Op :