cr.sparse.sls.ista

cr.sparse.sls.ista(operator, b, x0, step_size, threshold_func=<function default_threshold>, basis=SimpleOp(times=<function <lambda>>, trans=<function <lambda>>), res_norm_rtol=0.001, x_norm_change_tol=1e-10, max_iters=1000)[source]

Solves the problem \(\widehat{x} = \text{arg} \min_{x} \frac{1}{2}\| b - A x \|_2^2 + \lambda \mathbf{R}(x)\) via iterative shrinkage and thresholding.

It supports the more general problem where \(x\) is sparse in a basis \(B\)

(1)\[\widehat{x} = \text{arg} \min_{x} \frac{1}{2}\| b - A x \|_2^2 + \lambda \mathbf{R} (B^H x)\]
Parameters
  • operator (cr.sparse.lop.Operator) – A linear operator \(A\)

  • b (jax.numpy.ndarray) – Data vector

  • x0 (jax.numpy.ndarray) – An initial estimate \(x_0\) of the model vector \(x\)

  • step_size (float) – Step size for ISTA iteration

  • threshold_func (Function) – A user defined thresholding function. See Thresholding for details.

  • basis (cr.sparse.lop.Operator) – A sparsifying basis \(B\) for \(x\)

  • res_norm_rtol (float) – Relative tolerance for norm of residual \(r = b - A x\) relative to norm of \(b\)

  • x_norm_change_tol (float) – Tolerance for change in \(x\) in each iteration

  • max_iters (int) – Maximum number of iterations

Returns

a named tuple containing the solution \(x\), the residual \(r\) and other details.

Return type

ISTAState

See Iterative Shrinkage and Thresholding Algorithm for an introduction to IST algorithm.

Both x0 and b can be multi-dimensional arrays.