Record Class BasisPursuit
java.lang.Object
java.lang.Record
smile.cs.BasisPursuit
- Record Components:
x- the recovered sparse signal vector (lengthn).iter- the total number of Newton (outer) iterations performed.
- All Implemented Interfaces:
Serializable
Basis Pursuit Denoising (BPDN) via a log-barrier interior-point method.
Given an underdetermined linear system y = A*x + noise, where
A is an m × n measurement matrix (m ≪ n), this
class recovers the sparsest signal x by solving the convex
L1-norm minimization known as Basis Pursuit Denoising:
minimise ‖x‖₁ subject to ‖Ax − y‖₂ ≤ ε
When ε = 0 the problem reduces to exact Basis Pursuit:
minimise ‖x‖₁ s.t. Ax = y.
The algorithm is a primal–dual log-barrier (interior-point) method that solves a sequence of unconstrained Newton sub-problems, each of which requires a linear solve. The inner linear system is solved with a preconditioned conjugate-gradient (PCG) method, making the overall approach suitable for large, sparse or implicit measurement matrices.
References
- E. J. Candès and T. Tao, "Near-optimal signal recovery from random projections: Universal encoding strategies?", IEEE Trans. Inf. Theory, 52(12):5406–5425, 2006.
- E. J. Candès, J. Romberg and T. Tao, "Robust uncertainty principles: Exact signal reconstruction from highly incomplete frequency information", IEEE Trans. Inf. Theory, 52(2):489–509, 2006.
- S. S. Chen, D. L. Donoho and M. A. Saunders, "Atomic decomposition by basis pursuit", SIAM Rev., 43(1):129–159, 2001.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordHyperparameters for the log-barrier interior-point solver. -
Constructor Summary
ConstructorsConstructorDescriptionBasisPursuit(double[] x, int iter) Creates an instance of aBasisPursuitrecord class. -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanIndicates whether some other object is "equal to" this one.static BasisPursuitRecovers a sparse signal using Basis Pursuit (ε = 0).static BasisPursuitfit(Matrix A, double[] y, BasisPursuit.Options options) Recovers a sparse signal using Basis Pursuit Denoising.final inthashCode()Returns a hash code value for this object.intiter()Returns the value of theiterrecord component.final StringtoString()Returns a string representation of this record class.double[]x()Returns the value of thexrecord component.
-
Constructor Details
-
BasisPursuit
-
-
Method Details
-
fit
Recovers a sparse signal using Basis Pursuit (ε = 0).- Parameters:
A- them × nmeasurement matrix.y- them-dimensional measurement vector.- Returns:
- the recovered signal.
-
fit
Recovers a sparse signal using Basis Pursuit Denoising.- Parameters:
A- them × nmeasurement matrix.y- them-dimensional measurement vector.options- solver hyperparameters.- Returns:
- the recovered signal.
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
x
-
iter
-