YALL1-Group: A solver for group/joint sparse reconstruction
From Wikimization
Line 4: | Line 4: | ||
== Model == | == Model == | ||
- | (1) Group-sparse basis pursuit model: | + | (1) Group-sparse basis pursuit model with or without nonnegativity constraint: |
Minimize <math>\|x\|_{w,2,1}:=\sum_{i=1}^s w_i\|x_{g_i}\|_2,</math> | Minimize <math>\|x\|_{w,2,1}:=\sum_{i=1}^s w_i\|x_{g_i}\|_2,</math> | ||
- | subject to <math>Ax=b,</math> | + | subject to <math>Ax=b</math>, |
+ | <math>x\geq0</math> (optional), | ||
where <math>A\in \mathbb{R}^{m\times n}\,(m<n)</math>, <math>b\in \mathbb{R}^m</math>, <math>g_i</math> denotes the index set of the <math>i</math>-th group, and <math>w_i\geq0</math> is the weight for the <math>i</math>-th group. | where <math>A\in \mathbb{R}^{m\times n}\,(m<n)</math>, <math>b\in \mathbb{R}^m</math>, <math>g_i</math> denotes the index set of the <math>i</math>-th group, and <math>w_i\geq0</math> is the weight for the <math>i</math>-th group. | ||
- | (2) Joint-sparse basis pursuit model: | + | (2) Joint-sparse basis pursuit model with or without nonnegativity constraint: |
Minimize <math>\|X\|_{w,2,1}:=\sum_{i=1}^n w_i\|x^i\|_2,</math> | Minimize <math>\|X\|_{w,2,1}:=\sum_{i=1}^n w_i\|x^i\|_2,</math> | ||
subject to <math>AX=B,</math> | subject to <math>AX=B,</math> | ||
+ | <math>X\geq0</math> (optional), | ||
where <math>A\in \mathbb{R}^{m\times n}\,(m<n)</math>, <math>B\in \mathbb{R}^{m\times l}</math>, <math>x^i</math> denotes the <math>i</math>-th row of matrix <math>X</math>, and <math>w_i\geq0</math> is the weight for the <math>i</math>-th row. | where <math>A\in \mathbb{R}^{m\times n}\,(m<n)</math>, <math>B\in \mathbb{R}^{m\times l}</math>, <math>x^i</math> denotes the <math>i</math>-th row of matrix <math>X</math>, and <math>w_i\geq0</math> is the weight for the <math>i</math>-th row. | ||
Line 45: | Line 47: | ||
|- | |- | ||
| ''''GrpWeights'''' || nonnegetive n-vector || Weights for the groups/rows. | | ''''GrpWeights'''' || nonnegetive n-vector || Weights for the groups/rows. | ||
+ | |- | ||
+ | | ''''Nonnegative'''' || true or false || True for imposing nonnegativity constraints. | ||
|- | |- | ||
| ''''nonorthA'''' || true or false || Specify if matrix A has non-orthonormal rows (true) or orthonormal rows (false). | | ''''nonorthA'''' || true or false || Specify if matrix A has non-orthonormal rows (true) or orthonormal rows (false). |
Revision as of 18:05, 28 June 2011
YALL1-Group is a MATLAB software package for group/joint sparse reconstruction, written by Wei Deng, Wotao Yin and Yin Zhang at Rice University. Download
Contents |
Model
(1) Group-sparse basis pursuit model with or without nonnegativity constraint:
Minimizesubject to
,
(optional),
where ,
,
denotes the index set of the
-th group, and
is the weight for the
-th group.
(2) Joint-sparse basis pursuit model with or without nonnegativity constraint:
Minimizesubject to
![]()
(optional),
where ,
,
denotes the
-th row of matrix
, and
is the weight for the
-th row.
Syntax
- [x,Out] = YALL1_group(A,b,groups,'param1',value1,'param2',value2,...);
Input Arguments
- A: an m-by-n matrix with m < n, or a structure with the following fields:
- 1) A.times (required): a function handle for
;
- 2) A.trans (required): a function handle for
;
- 3) A.invIpAAt: a function handle for
;
- 4) A.invAAt: a function handle for
.
Note: Field A.invIpAAt is only required when (a) primal solver is to be used, and b) A is non-orthonormal, and (c) exact linear system solving is to be performed. Field A.invAAt is only required when (a) dual solver is to be used, and b) A is non-orthonormal, and (c) exact linear system solving is to be performed.
- b: an m-vector for the group-sparse model or an m-by-l matrix for the joint-sparse model.
- groups: an n-vector containing the group number of the corresponding component of
for the group-sparse model, or [] for the joint-sparse model.
- Optional input arguments:
Parameter Name | Value | Description |
---|---|---|
'StopTolerance' | positive scalar | Stopping tolerance value. |
'GrpWeights' | nonnegetive n-vector | Weights for the groups/rows. |
'Nonnegative' | true or false | True for imposing nonnegativity constraints. |
'nonorthA' | true or false | Specify if matrix A has non-orthonormal rows (true) or orthonormal rows (false). |
'ExactLinSolve' | true or false | Specify if linear systems are to be solve exactly (true) or approximately by taking a gradient descent step (false). |
'QuadPenaltyPar' | nonnegative 2-vector for primal solver or nonnegative scalar for dual solver | Penalty parameters. |
'StepLength' | nonnegative 2-vector for primal solver or nonnegative scalar for dual solver | Step lengths for updating the multipliers. |
'maxIter' | positive integer | Maximum number of iterations allowed. |
'xInitial' | an n-vector for group-sparse model or an n-by-l matrix for joint-sparse model | An initial estimate of the solution. |
'Solver' | 1 or 2 | Specify which solver to use: 1 for primal solver; 2 for dual solver. |
'Continuation' | true or false | Specify if continuation on the penalty parameters is to be used (true) or not (false). The continuation scheme is as follows: multiply the penalty parameters by a factor constraint violations, which lead to faster initial convergence, and it increases those parameters whenever the violation reduction slows down. It leads to overall speedups in most cases. |
'ContParameter' | scalar between 0 and 1 | The parameter |
'ContFactor' | scalar greater than 1 | The factor |
- Note: the parameter names are not case-sensitive.
Output Arguments
- x: last iterate (hopefully an approximate solution).
- Out: a structure with fields:
- Out.status—exit information;
- Out.iter—number of iterations taken;
- Out.cputime—solver CPU time.
Examples
Please see the demo files.
Technical Report
The description and theory of the YALL1-Group algorithm can be found in
- Wei Deng, Wotao Yin, and Yin Zhang, Group Sparse Optimization by Alternating Direction Method. (TR11-06, Department of Computational and Applied Mathematics, Rice University, 2011)