Module bpdn¶
This module includes the following classes:
-
Solve the BPDN problem
(1)¶\[\mathrm{argmin}_\mathbf{x} \; (1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2 + \lambda \| \mathbf{x} \|_1\] -
Solve the BPDN problem with an additional \(\ell_{2,1}\) norm term to promote joint sparsity
\[\mathrm{argmin}_X \; (1/2) \| D X - S \|_2^2 + \lambda \| X \|_1 + \mu \| X \|_{2,1}\] -
Solve the Elastic Net problem
\[\mathrm{argmin}_\mathbf{x} \; (1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2 + \lambda \| \mathbf{x} \|_1 + (\mu/2) \| \mathbf{x} \|_2^2\] -
Solve the problem with \(\ell_2\) objective and an \(\ell_1\) constraint
(2)¶\[\mathrm{argmin}_\mathbf{x} \; (1/2) \| D \mathbf{x} - \mathbf{s} \|_2^2 \; \text{such that} \; \| \mathbf{x} \|_1 \leq \gamma\] -
Solve the problem with \(\ell_1\) objective and an \(\ell_2\) constraint
(3)¶\[\mathrm{argmin}_\mathbf{x} \| \mathbf{x} \|_1 \; \text{such that} \; \| D \mathbf{x} - \mathbf{s} \|_2 \leq \epsilon\]
Usage examples are available.
A Note on Problem Naming¶
Unfortunately there is no consistent use of names for problems (1), (2), and (3) in the literature. Problem (1) is referred to here as Basis Pursuit DeNoising (BPDN) since this is the form of the problem to which this name was first applied [16], but one can also find problem (3) referred to as BPDN, and problem (1) referred to as the lasso, which is the name that was originally applied to problem (2) [46].