sporco.fista.bpdn

Classes for FISTA algorithm for the BPDN problem

Classes

BPDN(*args, **kwargs)

Class for FISTA algorithm for the Basis Pursuit DeNoising (BPDN) [16] problem.


Class Descriptions

class sporco.fista.bpdn.BPDN(*args, **kwargs)[source]

Bases: sporco.fista.fista.FISTA

Class for FISTA algorithm for the Basis Pursuit DeNoising (BPDN) [16] problem.


Inheritance diagram of BPDN


The problem form is

\[\mathrm{argmin}_\mathbf{x} \; (1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2 + \lambda \| \mathbf{x} \|_1\]

where \(\mathbf{s}\) is the input vector/matrix, \(D\) is the dictionary, and \(\mathbf{x}\) is the sparse representation.

After termination of the solve method, attribute itstat is a list of tuples representing statistics of each iteration. The fields of the named tuple IterationStats are:

Iter : Iteration number

ObjFun : Objective function value

DFid : Value of data fidelity term \((1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2\)

RegL1 : Value of regularisation term \(\lambda \| \mathbf{x} \|_1\)

Rsdl : Residual

L : Inverse of gradient step parameter

Time : Cumulative run time

Parameters
Darray_like

Dictionary array (2d)

Sarray_like

Signal array (1d or 2d)

lmbdafloat

Regularisation parameter

optBPDN.Options object

Algorithm options

class Options(opt=None)[source]

Bases: sporco.fista.fista.FISTA.Options

BPDN algorithm options

Options include all of those defined in fista.FISTA.Options, together with additional options:

L1Weight : An array of weights for the \(\ell_1\) norm. The array shape must be such that the array is compatible for multiplication with the X/Y variables. If this option is defined, the regularization term is \(\lambda \| \mathbf{w} \odot \mathbf{x} \|_1\) where \(\mathbf{w}\) denotes the weighting array.

Parameters
optdict or None, optional (default None)

BPDN algorithm options

setdict(D)[source]

Set dictionary array.

getcoef()[source]

Get final coefficient array.

eval_grad()[source]

Compute gradient in spatial domain for variable Y.

eval_proxop(V)[source]

Compute proximal operator of \(g\).

eval_objfn()[source]

Compute components of objective function as well as total contribution to objective function.

obfn_reg()[source]

Compute regularisation term and contribution to objective function.

obfn_f(X=None)[source]

Compute data fidelity term \((1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2\).

reconstruct(X=None)[source]

Reconstruct representation.