Jump to content

In-crowd algorithm: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
BG19bot (talk | contribs)
m WP:CHECKWIKI error fix for #61. Punctuation goes before References. Do general fixes if a problem exists. - using AWB (8853)
No edit summary
Line 11: Line 11:
# Calculate the usefulness <math>u_j = | \langle r A_j \rangle | </math> for each component in <math>I^c</math>
# Calculate the usefulness <math>u_j = | \langle r A_j \rangle | </math> for each component in <math>I^c</math>
# If on <math>I^c</math>, no <math>u_j > \lambda</math>, terminate
# If on <math>I^c</math>, no <math>u_j > \lambda</math>, terminate
# Otherwise, add <math>L \approx 25</math> components to <math>I</math>
# Otherwise, add <math>L \approx 25</math> components to <math>I</math> based on their usefulness
# Solve basis pursuit denoising exactly on <math>I</math>, and throw out any component of <math>I</math> whose value attains exactly 0. This problem is dense, so quadratic programming techniques work very well for this sub problem.
# Solve basis pursuit denoising exactly on <math>I</math>, and throw out any component of <math>I</math> whose value attains exactly 0. This problem is dense, so quadratic programming techniques work very well for this sub problem.
# Update <math> r = y - Ax</math> - n.b. can be computed in the subproblem as all elements outside of <math>I</math> are 0
# Update <math> r = y - Ax</math> - n.b. can be computed in the subproblem as all elements outside of <math>I</math> are 0

Revision as of 23:29, 14 October 2014

The in-crowd algorithm is a numerical method for solving basis pursuit denoising quickly; faster than any other algorithm for large, sparse problems.[1] Basis pursuit denoising is the following optimization problem:

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.

It consists of the following:

  1. Declare to be 0, so the unexplained residual
  2. Declare the active set to be the empty set
  3. Calculate the usefulness for each component in
  4. If on , no , terminate
  5. Otherwise, add components to based on their usefulness
  6. 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.
  7. Update - n.b. can be computed in the subproblem as all elements outside of are 0
  8. 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[2] guarantees that the global optimum is reached in spite of the many-at-a-time nature of the in-crowd algorithm.

Notes

  1. ^ See The In-Crowd Algorithm for Fast Basis Pursuit Denoising, IEEE Trans Sig Proc 59 (10), Oct 1 2011, pp. 4595 - 4605, [1], demo MATLAB code available [2]
  2. ^ See The In-Crowd Algorithm for Fast Basis Pursuit Denoising, IEEE Trans Sig Proc 59 (10), Oct 1 2011, pp. 4595 - 4605, [3]