Średnia zmiana - Mean shift

Przesunięcie średniej jest nieparametryczną techniką analizy przestrzeni cech , służącą do lokalizowania maksimów funkcji gęstości , tzw. algorytmem poszukiwania modów. Domeny aplikacji obejmują analizę skupień w wizji komputerowej i przetwarzaniu obrazów .

Historia

Procedura zmiany średniej jest zwykle przypisywana pracy Fukunagi i Hostetlerowi w 1975 roku. Przypomina jednak wcześniejsze prace Schnella z 1964 roku.

Przegląd

Przesunięcie średniej to procedura lokalizowania maksimów — trybów — funkcji gęstości przy danych dyskretnych próbkowanych z tej funkcji. Jest to metoda iteracyjna i zaczynamy od wstępnego oszacowania . Niech zostanie podana funkcja jądra . Funkcja ta określa wagę pobliskich punktów do ponownego oszacowania średniej. Zazwyczaj używa się jądra Gaussa na odległość do aktualnego oszacowania, . Średnia ważona gęstości w oknie wyznaczona przez wynosi

gdzie jest sąsiedztwo , zbiór punktów dla których .

Różnica nazywana jest średnim przesunięciem w Fukunaga i Hostetler. Algorytm średni-shift teraz ustawia i powtarza oszacowanie aż zbieżny.

Chociaż algorytm przesunięcia średniej jest szeroko stosowany w wielu aplikacjach, sztywny dowód na zbieżność algorytmu wykorzystującego ogólne jądro w przestrzeni wielowymiarowej nadal nie jest znany. Aliyari Ghassabeh wykazał zbieżność algorytmu przesunięcia średniej w jednym wymiarze z różniczkowalną, wypukłą i ściśle malejącą funkcją profilu. Jednak jednowymiarowa obudowa ma ograniczone zastosowania w świecie rzeczywistym. Wykazano również zbieżność algorytmu w wyższych wymiarach ze skończoną liczbą (lub izolowanych) punktów stacjonarnych. Nie zapewniono jednak wystarczających warunków, aby ogólna funkcja jądra miała skończone (lub izolowane) punkty stacjonarne.

Gaussian Mean-Shift to algorytm maksymalizacji oczekiwań .

Detale

Niech dane będą zbiorem skończonym osadzonym w -wymiarowej przestrzeni euklidesowej, . Niech będzie płaskim jądrem, które jest funkcją charakterystyczną -kulki w ,

W każdej iteracji algorytmu wykonywane jest dla wszystkich jednocześnie. Pierwsze pytanie brzmi zatem, jak oszacować funkcję gęstości przy rzadkim zestawie próbek. Jednym z najprostszych podejść jest po prostu wygładzenie danych, np. poprzez splot ich ze stałym jądrem o szerokości ,

gdzie są próbki wejściowe i jest funkcją jądra (lub oknem Parzen ). jest jedynym parametrem algorytmu i nazywa się przepustowością. Takie podejście jest znane jako szacowanie gęstości jądra lub technika okna Parzena. Po obliczeniu z powyższego równania możemy znaleźć jego lokalne maksima za pomocą gradientu lub innej techniki optymalizacji. Problem z tym podejściem „brute force” polega na tym, że dla wyższych wymiarów obliczeniowo niemożliwe staje się ocenianie w całej przestrzeni poszukiwań. Zamiast tego, mean shift wykorzystuje wariant tego, co jest znane w literaturze optymalizacyjnej jako wielokrotne opadanie gradientu restartu . Zaczynając od pewnego przypuszczenia dla lokalnego maksimum , które może być losowym punktem danych wejściowych , średnie przesunięcie oblicza gradient oszacowania gęstości przy i robi krok w górę w tym kierunku.

Rodzaje jąder

Definicja jądra: Niech będzie -wymiarową przestrzenią euklidesową, . Normą jest liczba nieujemna, . Funkcja nazywa się jądro jeśli istnieje profil , tak, że

oraz

  • k jest nieujemne.
  • k nie rośnie: jeśli .
  • k jest odcinkowo ciągła i

Dwa najczęściej używane profile jądra do zmiany średniej to:

Płaskie jądro

Jądro Gaussa

gdzie parametr odchylenia standardowego działa jako parametr przepustowości, .

Aplikacje

Grupowanie

Rozważ zbiór punktów w przestrzeni dwuwymiarowej. Załóżmy okrągłe okno wyśrodkowane w C i mające promień r jako jądro. Mean shift to algorytm wspinania się po wzgórzach, który polega na iteracyjnym przesuwaniu tego jądra do regionu o większej gęstości, aż do zbieżności. Każde przesunięcie jest zdefiniowane przez średni wektor przesunięcia. Wektor przesunięcia średniego zawsze wskazuje kierunek maksymalnego wzrostu gęstości. W każdej iteracji jądro przesuwane jest do środka ciężkości lub średniej punktów w jego obrębie. Sposób obliczenia tej średniej zależy od wyboru jądra. W tym przypadku, jeśli zostanie wybrane jądro Gaussa zamiast jądra płaskiego, to każdemu punktowi zostanie najpierw przypisana waga, która będzie zanikać wykładniczo wraz ze wzrostem odległości od środka jądra. Przy zbieżności nie będzie kierunku, w którym przesunięcie mogłoby pomieścić więcej punktów wewnątrz jądra.

Śledzenie

Algorytm zmiany średniej można wykorzystać do śledzenia wzrokowego. Najprostszy taki algorytm utworzyłby mapę ufności na nowym obrazie w oparciu o histogram koloru obiektu na poprzednim obrazie i wykorzystałby przesunięcie średniej do znalezienia szczytu mapy ufności w pobliżu starego położenia obiektu. Mapa ufności to funkcja gęstości prawdopodobieństwa na nowym obrazie, przypisująca każdemu pikselowi nowego obrazu prawdopodobieństwo, które jest prawdopodobieństwem wystąpienia koloru piksela w obiekcie na poprzednim obrazie. Kilka algorytmów, takich jak śledzenie obiektów oparte na jądrze, śledzenie zespołowe, CAMshift rozwija tę ideę.

Wygładzanie

Niech i będzie -wymiarowym wejściem i przefiltrowanymi pikselami obrazu we wspólnej domenie zakresu przestrzennego. Dla każdego piksela

  • Zainicjuj i
  • Oblicz według aż do zbieżności, .
  • Przypisz . Indeksy górne s i r oznaczają odpowiednio składową przestrzenną i składową wektora. Przypisanie określa, że ​​filtrowane dane na osi lokalizacji przestrzennej będą miały składową zasięgu punktu zbieżności .

Silne strony

  1. Mean shift to narzędzie niezależne od aplikacji, odpowiednie do analizy danych rzeczywistych.
  2. Nie przyjmuje żadnego predefiniowanego kształtu na klastrach danych.
  3. Jest w stanie obsługiwać dowolne przestrzenie funkcji.
  4. Procedura polega na wyborze jednego parametru: przepustowości.
  5. Szerokość pasma/rozmiar okna 'h' ma znaczenie fizyczne, w przeciwieństwie do k -średnich .

Słabości

  1. Wybór rozmiaru okna nie jest trywialny.
  2. Nieodpowiedni rozmiar okna może powodować łączenie trybów lub generowanie dodatkowych „płytkich” trybów.
  3. Często wymaga zastosowania adaptacyjnego rozmiaru okna.

Dostępność

Warianty algorytmu można znaleźć w pakietach uczenia maszynowego i przetwarzania obrazu:

  • ELKI . Narzędzie do eksploracji danych Java z wieloma algorytmami klastrowania.
  • ObrazJ . Filtrowanie obrazu przy użyciu filtru przesunięcia średniego.
  • mlpack . Wydajna implementacja oparta na algorytmach dwudrzewowych.
  • OpenCV zawiera implementację zmiany średniej za pomocą metody cvMeanShift
  • Przybornik Orfeo . Implementacja w C++.
  • Implementacja Scikit-learn Numpy/Python wykorzystuje drzewo kulkowe do wydajnego wyszukiwania punktów sąsiednich

Zobacz też

Bibliografia