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.