The in-crowd algorithm is a numerical method for solving basis pursuit denoising quickly; faster than any other algorithm for large, sparse problems. Basis pursuit denoising is the following optimization problem:
where
It consists of the following:
- Declare
x to be 0, so the unexplained residualr = y - Declare the active set
I to be the empty set - Calculate the usefulness
u j = | ⟨ r A j ⟩ | for each component inI c - If on
I c u j > λ , terminate - Otherwise, add
L ≈ 25 components toI based on their usefulness - Solve basis pursuit denoising exactly on
I , and throw out any component ofI whose value attains exactly 0. This problem is dense, so quadratic programming techniques work very well for this sub problem. - Update
r = y − A x - n.b. can be computed in the subproblem as all elements outside ofI are 0 - Go to step 3.
Since every time the in-crowd algorithm performs a global search it adds up to