In-crowd algorithm explained
The in-crowd algorithm is a numerical method for solving basis pursuit denoising quickly; faster than any other algorithm for large, sparse problems.[1] This algorithm is an active set method, which minimizes iteratively sub-problems of the global basis pursuit denoising:
where
is the observed signal,
is the sparse signal to be recovered,
is the expected signal under
, and
is the regularization parameter trading off signal fidelity and simplicity. The simplicity is here measured using the sparsity of the solution
, measure through its
-norm. The active set strategies are very efficient in this context as only few coefficient are expected to be non-zero. Thus, if they can be identified, solving the problem restricted to these coefficients yield the solution. Here, the features are greedily selected based on the absolute value of their gradient at the current estimate.
Other active-set methods for the basis pursuit denoising includes BLITZ,[2] where the selection of the active set is performed using the duality gap of the problem, and The Feature Sign Search,[3] where the features are included based on the estimate of their sign.
Algorithm
It consists of the following:
- Declare
to be 0, so the unexplained residual
- Declare the active set
to be the empty set, and
to be its complement (the inactive set)
- Calculate the usefulness
for each component in
- If on
, no
, terminate
- Otherwise, add
components to
based on their usefulness
- Solve basis pursuit denoising exactly on
, and throw out any component of
whose value attains exactly 0. This problem is dense, so quadratic programming techniques work very well for this sub problem.
- Update
- n.b. can be computed in the subproblem as all elements outside of
are 0
- Go to step 3.
Since every time the in-crowd algorithm performs a global search it adds up to
components to the active set, it can be a factor of
faster than the best alternative algorithms when this search is computationally expensive. A theorem
[1] guarantees that the global optimum is reached in spite of the many-at-a-time nature of the in-crowd algorithm.
Notes and References
- See The In-Crowd Algorithm for Fast Basis Pursuit Denoising, IEEE Trans Sig Proc 59 (10), Oct 1 2011, pp. 4595 - 4605, https://ieeexplore.ieee.org/document/5940245/;jsessionid=8C87F84B1E82E90A4740FE46AF0BCCD2?arnumber=5940245, demo MATLAB code available http://molnargroup.ece.cornell.edu/files/InCrowdBeta1.zip
- Johnson T, Guestrin C. Blitz: A principled meta-algorithm for scaling sparse optimization. In proceedings of the International Conference on Machine Learning (ICML) 2015 (pp. 1171-1179).(http://proceedings.mlr.press/v37/johnson15.pdf)
- Lee H, Battle A, Raina R, Ng AY. Efficient sparse coding algorithms. In Advances in neural information processing systems 2007 (pp. 801-808). https://papers.nips.cc/paper/2979-efficient-sparse-coding-algorithms.pdf