pylops.optimization.sparsity.omp#
- pylops.optimization.sparsity.omp(Op, y, niter_outer=10, niter_inner=40, sigma=0.0001, normalizecols=False, show=False, itershow=(10, 10, 10), callback=None)[source]#
Orthogonal Matching Pursuit (OMP).
Solve an optimization problem with \(L^0\) regularization function given the operator
Op
and 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
- y
numpy.ndarray
Data
- niter_outer
int
, optional Number of iterations of outer loop
- niter_inner
int
, optional Number of iterations of inner loop. By choosing
niter_inner=0
, the Matching Pursuit (MP) algorithm is implemented.- sigma
list
Maximum \(L_2\) norm of residual. When smaller stop iterations.
- normalizecols
list
, optional Normalize columns (
True
) or not (False
). Note that this can be expensive as it requires applying the forward operator \(n_{cols}\) times to unit vectors (i.e., containing 1 at position j and zero otherwise); use only when the columns of the operator are expected to have highly varying norms.- show
bool
, optional Display iterations log
- itershow
tuple
, optional Display set log for the first N1 steps, last N2 steps, and every N3 steps in between where N1, N2, N3 are the three element of the list.
- callback
callable
, optional Function with signature (
callback(x)
) to call after each iteration wherex
is the current model vector
- Op
- Returns
- xinv
numpy.ndarray
Inverted model
- niter_outer
int
Number of effective outer iterations
- cost
numpy.ndarray
History of cost function
- xinv
See also
ISTA
Iterative Shrinkage-Thresholding Algorithm (ISTA).
FISTA
Fast Iterative Shrinkage-Thresholding Algorithm (FISTA).
SPGL1
Spectral Projected-Gradient for L1 norm (SPGL1).
SplitBregman
Split Bregman for mixed L2-L1 norms.
Notes