Poszukiwanie dopasowujące

Rekonstrukcja przykładowego sygnału algorytmem matching pursuit za pomocą programu mp4

Poszukiwanie dopasowujące (ang. matching pursuit) – rodzaj techniki numerycznej, która polega na znalezieniu „najlepszego dopasowania” funkcji z określonego słownika D {\displaystyle D} do wielowymiarowych danych. Podstawowa idea polega na reprezentacji sygnału f {\displaystyle f} z przestrzeni Hilberta H {\displaystyle H} jako ważonej sumy funkcji g γ n {\displaystyle g_{\gamma _{n}}} (zwanych atomami) ze słownika D : {\displaystyle D{:}}

f ( t ) = n = + a n g γ n ( t ) . {\displaystyle f(t)=\sum _{n=-\infty }^{+\infty }a_{n}g_{\gamma _{n}}(t).}

Przykładem podobnych reprezentacji jest rozwinięcie w szereg Fouriera, gdy słownik jest zbudowany tylko z podstawowych funkcji (najmniejszy możliwy kompletny słownik). Główną wadą analizy Fouriera w cyfrowym przetwarzaniu sygnałów jest to, że mówi nam ona tylko o globalnych cechach sygnałów i nie dostosowuje się do analizowanych sygnałów f . {\displaystyle f.} Używając redundantnego słownika możemy szukać w nim funkcji, które najlepiej pasują do sygnału f. Znalezienie takiej reprezentacji, gdzie większość współczynników w sumie jest zbliżone do 0 jest pożądane m.in. do kodowania sygnału i kompresji.

Algorytm

Przeszukiwanie bardzo dużych słowników dla najlepszego dopasowania jest nie do zaakceptowania przy obliczeniach w zastosowaniach praktycznych. W 1993 Mallat i Zhang[1] zaproponowali jako rozwiązanie algorytm zachłanny, znany od tego czasu jako Matching Pursuit. Jest to algorytm rekurencyjny, którego realizacja wygląda następująco:

  1. Wejście: Sygnał: f ( t ) . {\displaystyle f(t).}
  2. Wyjście: Lista współczynników: ( a n , g γ n ) . {\displaystyle \left(a_{n},g_{\gamma _{n}}\right).}
  3. Inicjalizacja: R f 1 f ( t ) . {\displaystyle Rf_{1}\leftarrow f(t).}
  4. Powtarzaj:
    1. znajdź g γ n D {\displaystyle g_{\gamma _{n}}\in D} z maksymalną wartością bezwzględną iloczynu skalarnego | R f n , g γ n | ; {\displaystyle |\langle Rf_{n},g_{\gamma _{n}}\rangle |;}
    2. a n R f n , g γ n ; {\displaystyle a_{n}\leftarrow \langle Rf_{n},g_{\gamma _{n}}\rangle ;}
    3. R f n + 1 R f n a n g γ n ; {\displaystyle Rf_{n+1}\leftarrow Rf_{n}-a_{n}g_{\gamma _{n}};}
    4. n n + 1 ; {\displaystyle n\leftarrow n+1;}
aż do stanu zatrzymania (na przykład: R f n < threshold {\displaystyle \|Rf_{n}\|<{\text{threshold}}} ).

Najczęściej używa się słownika składającego się z funkcji Gabora:

g γ n ( t ) = K ( γ ϕ ) e π ( t u s ) 2 sin ( ω ( t u ) + ϕ ) . {\displaystyle g_{\gamma _{n}}(t)=K(\gamma \phi )e^{-\pi ({\frac {t-u}{s}})^{2}}\sin(\omega (t-u)+\phi ).}

Taki dobór funkcji bazowych minimalizuje zasadę nieoznaczoności w przestrzeni czas-częstość.

Właściwości

  • Dla każdego m {\displaystyle m} spełniona jest zasada zachowania energii:
f 2 = n = 0 m 1 | a n | 2 + R f m 2 . {\displaystyle \|f\|^{2}=\sum _{n=0}^{m-1}{|a_{n}|^{2}}+\lVert Rf_{m}\rVert ^{2}.}
  • Błąd R f n {\displaystyle \|Rf_{n}\|} maleje monotonicznie (jego zanik jest wykładniczy).

Zobacz też

Przypisy

  1. S.G. Mallat and Z. Zhang, Matching Pursuits with Time-Frequency Dictionaries, IEEE Transactions on Signal Processing, December 1993, s. 3397–3415.

Linki zewnętrzne

  • Opis algorytmu. brain.fuw.edu.pl. [zarchiwizowane z tego adresu (2008-12-01)].