Matching pursuit (MP) is a sparse approximation algorithm which finds the "best matching" projections of multidimensional data onto the span of an over-complete (i.e., redundant) dictionary D {\displaystyle D} . The basic idea is to approximately represent a signal f {\displaystyle f} from Hilbert space H {\displaystyle H} as a weighted sum of finitely many functions g γ n {\displaystyle g_{\gamma _{n}}} (called atoms) taken from D {\displaystyle D} . An approximation with N {\displaystyle N} atoms has the form
f ( t ) ≈ f ^ N ( t ) := ∑ n = 1 N a n g γ n ( t ) {\displaystyle f(t)\approx {\hat {f}}_{N}(t):=\sum _{n=1}^{N}a_{n}g_{\gamma _{n}}(t)}
where g γ n {\displaystyle g_{\gamma _{n}}} is the γ n {\displaystyle \gamma _{n}} th column of the matrix D {\displaystyle D} and a n {\displaystyle a_{n}} is the scalar weighting factor (amplitude) for the atom g γ n {\displaystyle g_{\gamma _{n}}} . Normally, not every atom in D {\displaystyle D} will be used in this sum. Instead, matching pursuit chooses the atoms one at a time in order to maximally (greedily) reduce the approximation error. This is achieved by finding the atom that has the highest inner product with the signal (assuming the atoms are normalized), subtracting from the signal an approximation that uses only that one atom, and repeating the process until the signal is satisfactorily decomposed, i.e., the norm of the residual is small, where the residual after calculating γ N {\displaystyle \gamma _{N}} and a N {\displaystyle a_{N}} is denoted by
R N + 1 = f − f ^ N {\displaystyle R_{N+1}=f-{\hat {f}}_{N}} . If R n {\displaystyle R_{n}} converges quickly to zero, then only a few atoms are needed to get a good approximation to f {\displaystyle f} . Such sparse representations are desirable for signal coding and compression. More precisely, the sparsity problem that matching pursuit is intended to approximately solve is
min x ‖ f − D x ‖ 2 2 subject to ‖ x ‖ 0 ≤ N , {\displaystyle \min _{x}\|f-Dx\|_{2}^{2}\ {\text{ subject to }}\ \|x\|_{0}\leq N,}
where ‖ x ‖ 0 {\displaystyle \|x\|_{0}} is the L 0 {\displaystyle L_{0}} pseudo-norm (i.e. the number of nonzero elements of x {\displaystyle x} ). In the previous notation, the nonzero entries of x {\displaystyle x} are x γ n = a n {\displaystyle x_{\gamma _{n}}=a_{n}} . Solving the sparsity problem exactly is NP-hard, which is why approximation methods like MP are used. For comparison, consider the Fourier transform representation of a signal - this can be described using the terms given above, where the dictionary is built from sinusoidal basis functions (the smallest possible complete dictionary). The main disadvantage of Fourier analysis in signal processing is that it extracts only the global features of the signals and does not adapt to the analysed signals f {\displaystyle f} . By taking an extremely redundant dictionary, we can look in it for atoms (functions) that best match a signal f {\displaystyle f} .
The algorithm
… excerpt ends here. Continue reading the full article.



