k -SVD
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
W matematyce stosowanej k -SVD jest algorytmem uczenia się słownika służącym do tworzenia słownika dla rzadkich reprezentacji za pomocą metody dekompozycji wartości osobliwych . k -SVD jest uogólnieniem metody grupowania k -średnich i działa poprzez iteracyjne naprzemienne kodowanie danych wejściowych w oparciu o bieżący słownik i aktualizowanie atomów w słowniku w celu lepszego dopasowania do danych. Jest strukturalnie powiązany z maksymalizacją oczekiwań algorytm (EM). k -SVD można znaleźć w wielu zastosowaniach, takich jak przetwarzanie obrazu, przetwarzanie dźwięku, biologia i analiza dokumentów.
Algorytm k -SVD
k -SVD jest rodzajem uogólnienia k -średnich w następujący sposób. Grupowanie k -średnich może być również traktowane jako metoda rzadkiej reprezentacji . znalezienie najlepszego możliwego próbek przez najbliższego
co jest prawie równoważne
czyli k- oznacza, że pozwala na „wagę”.
Litera F oznacza normę Frobeniusa . Rzadki termin reprezentacji wymusza algorytm k-średnich, aby tylko ) Aby złagodzić to ograniczenie, celem algorytmu k -SVD jest przedstawienie sygnału jako liniowej kombinacji .
Algorytm k -SVD podąża za przepływem konstrukcyjnym algorytmu k -średnich. w przeciwieństwie do k - oznacza, aby osiągnąć liniową kombinację atomów w rzadki składnik ograniczenia jest rozluźniony, tak że liczba niezerowych wpisów w każdej kolumnie jest może być większy niż 1, ale mniejszy niż liczba .
Tak więc funkcja celu staje się
lub w innej obiektywnej formie
W algorytmie k znajduje najlepszą macierz współczynników Ponieważ znalezienie naprawdę optymalnego , używamy metody dążenia do przybliżenia. Do obliczenia współczynników można użyć dowolnego algorytmu, takiego jak OMP, pogoń za dopasowaniem ortogonalnym , o ile może dostarczyć rozwiązanie ze stałą i z góry określoną liczbą niezerowych wpisów. .
rzadkim zadaniu kodowania następnym jest poszukiwanie lepszego . znalezienie całego słownika naraz jest niemożliwe, więc proces polega na aktualizacji tylko jednej kolumny słownika za razem, przy . Aktualizacja kary jako
gdzie oznacza k -ty rząd X .
Rozkładając mnożenie na sumę macierzy , możemy założyć, że inne k -ty pozostaje nieznany. Po kroku możemy rozwiązać problem minimalizacji przez przybliżenie z macierz za pomocą wartości osobliwe , a następnie zaktualizuj . Jednak nowe rozwiązanie wektora że zostanie wypełnione, ponieważ ograniczenie rzadkości nie jest wymuszane
Aby rozwiązać ten problem, zdefiniuj jako
wskazuje na _ wpisy które są niezerowe Następnie zdefiniuj o , z jedynkami na wpisy i zera w przeciwnym razie. Podczas mnożenia , to zmniejsza wektor wierszy zerowe Podobnie mnożenie podzbiorem przykładów, które użyciu zobaczyć _
Tak więc problem minimalizacji, jak wspomniano wcześniej, staje się
i można to zrobić bezpośrednio za pomocą SVD. SVD rozkłada się na \ Delta Rozwiązaniem dla jest pierwsza kolumna U, wektor współczynnika jako pierwsza kolumna . Po zaktualizowaniu całego słownika proces przechodzi następnie do iteracyjnego rozwiązania X, a następnie iteracyjnego rozwiązania D.
Ograniczenia
Wybór odpowiedniego „słownika” dla zbioru danych nie jest problemem wypukłym, a k -SVD działa na zasadzie iteracyjnej aktualizacji, która nie gwarantuje znalezienia globalnego optimum. Jest to jednak wspólne dla innych algorytmów do tego celu, a k -SVD działa całkiem dobrze w praktyce. [ potrzebne lepsze źródło ]
Zobacz też
- Rzadkie przybliżenie
- Rozkład według wartości osobliwych
- Norma macierzowa
- k - oznacza grupowanie
- Przybliżenie niskiego rzędu
- Bibliografia _ _ Michał Elad; Alfred Bruckstein (2006), „K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation” (PDF) , IEEE Transactions on Signal Processing , 54 (11): 4311–4322, Bibcode : 2006ITSP ... 54.4311A , doi : 10.1109/TSP.2006.881199 , S2CID 7477309
-
Referencje _ _ _
_ _ _ _ _ _ _ , doi : 10.1109/JPROC.2010.2040551 , S2CID 2176046
{{ cytat }}
: CS1 maint: wiele nazw: lista autorów ( link )