tensorly.solvers.nnls
.fista
- fista(UtM, UtU, x=None, n_iter_max=100, non_negative=True, sparsity_coef=0, ridge_coef=0, lr=None, tol=1e-08, epsilon=1e-08)[source]
Fast Iterative Shrinkage Thresholding Algorithm (FISTA), see [1]
Computes an approximate (nonnegative) solution for Ux=M linear system.
- Parameters:
- UtMndarray
Pre-computed product of the transposed of U and M
- UtUndarray
Pre-computed product of the transposed of U and U
- xinit
Default: None
- n_iter_maxint
Maximum number of iteration Default: 100
- non_negativebool, default is False
if True, result will be non-negative
- lrfloat
learning rate Default : None
- sparsity_coeffloat or None
- ridge_coeffloat or None
- tolfloat
stopping criterion for the l1 error decrease relative to the first iteration error
- epsilonfloat
Small constant such that the solution is greater than epsilon instead of zero. Required to ensure convergence, avoids division by zero and reset. Default: 1e-8
- Returns:
- xapproximate solution such that Ux = M
Notes
We solve the following problem
\[\frac{1}{2} \|m - Ux \|_2^2 + \lambda_1 \|x\|_1 + \lambda_2 \|x\|_2^2\]References
[1]Beck, A., & Teboulle, M. (2009). A fast iterative shrinkage-thresholding algorithm for linear inverse problems. SIAM journal on imaging sciences, 2(1), 183-202.