Grupowanie VQ Kwantyzacja wektorowa (VQ Vector Quantization) k-średnich GLA Generalized Lloyd Algorithm ISODATA SOM Self-Organizing Maps Wstępny podział na grupy Walidacja grupowania Przykłady zastosowania
Kwantyzacja wektorowa 2 (Vector Quantization) Przykład ilustracyjny Dany jest obraz 24 bit/piksel, 16 mln kolorów Posiadamy urządzenie z ekranem 8 bit/piksel 256 kolorów Chcemy znaleźć taki zestaw 256 kolorów (mapa kolorów) spośród 16 mln, aby obraz był najbardziej podobny do oryginału (zadanie kwantyzacji kolorów) Ogólna wersja tego zadania nazywana kwantyzacją wektorową polega na odwzorowaniu z przestrzeni ciągłej do przestrzeni dyskretnej
3 Najprostsze rozwiązanie: kwantyzacja jednostajna, dzielimy przestrzeń na przedziały o równej długości Wady: niektóre kolory mogą nie być w ogóle używane, często pojawiające się odcienie są nielicznie reprezentowane Wniosek: rozkład kolorów w mapie powinien odzwierciedlać rozkład w oryginalnym obrazie.
4 Oryginalny 24-bitowy obraz reprezentuje próba x 1,x 2,,x n Mapa kolorów składa się z 256 wektorów kodowych z 1,z 2,,z g (g = 256), przy czym każdy wektor kodowy reprezentuje 24-bitowy kolor. Zbiór wektorów kodowych nazywany jest książką kodową. Każdy piksel oryginalnego obrazu zastępowany jest przez najbliższy wektor kodowy. Do przesłania pojedynczego piksela kanałem transmisyjnym wystarczy przesłać indeks jego wektora kodowego w książce kodowej.
z i... z i... 5 Kodowanie Dekodowanie x znajdź najbliższy i kanał transmisyjny i x = z i Kwantyzacja wektorowa dokonuje kompresji danych: zamiast 24- bitowych pikseli przekazujemy 8-bitowy indeks (256 elementów w książce kodowej) oraz dodatkowo samą książkę kodową, co daje współczynnik kompresji bliski 3
6 Błąd rekonstrukcji to suma różnic między kolorami oryginalnych pikseli a ich wektorami kodowymi: D = g n j= 1 i= 1 b ij d( x, z ), i j gdzie b ij = 1 dla przypadku. d ( x, z ) = min d( x, z ) i j l i l oraz b ij = 0 w przeciwnym Minimalizacja błędu rekonstrukcji prowadzi do najlepszej książki kodowej W celu rozwiązania tego zadania można użyć metod grupowania (np. k-średnich). Po dokonaniu podziału oryginalnego zbioru na grupy, dla każdej grupy należy określić reprezentanta.
7 VQ Sformułowanie problemu Dane: zbiór p-wymiarowych wektorów x 1,x 2,,x n kryterium jakości: miara zniekształcenia / błąd rekonstrukcji Szukane: zbiór p-wymiarowych wektorów z 1,z 2,,z g, dla których kryterium jakości przyjmuje wartość najmniejszą x z i i i x = z i Kodowanie Dekodowanie
Miary zniekształcenia 8 Średnie zniekształcenie (average distortion) ( x, x ) dx = D = p( x) d p( x) x x dx 2 Dla różnych postaci norm., otrzymujemy różne miary: norma L v : norma Minkowskiego: { } p v x x 1 v i = 1 max x x 1 i p i norma kwadratowa (dla dodatnio określonej symetrycznej macierzy Q): T ( x x) Q( x x) i Dla skończonej liczby obiektów w próbie: D = g n j= 1 i= 1 b ij d( x, z ), i j
9 Algorytm k-średnich Można zastosować wprost algorytm k-średnich grupowania danych 1) Wybierz początkowy zbiór wektorów kodowych (książkę kodową) 2) Na podstawie zbioru wektorów kodowych wyznacz taki podział na grupy, dla którego miara zniekształcenia przyjmuje wartość najmniejszą 3) Dla uzyskanego podziału na grupy znajdź najlepszy zbiór wektorów kodowych 4) Jeżeli warunek stopu nie jest spełniony, wróć do kroku 2)
10 wektory kodowe oryginalne wektory obszar Voronoi
11 Algorytm GLA Generalized Lloyd Algorithm Algorytm zaczyna działanie od pojedynczego wektora kodowego i pojedynczej grupy Po uzyskaniu rozwiązania, wektor kodowy dzielony jest na dwa, położone blisko siebie W kolejnej iteracji znajdywane jest rozwiązanie dla dwóch wektorów kodowych i dwóch grup Po uzyskaniu rozwiązania, każdy wektor dzielony jest na dwa potomne, dając w efekcie cztery wektory kodowe i cztery grupy Procedura powtarzana jest aż do wystąpienia warunku stopu
12 Z+ε Z-ε 1) Wybierz początkowy wektorów kodowy z 1 jako średnią zbioru; ustal ε; m := 1 2) Dla uzyskanego zbioru m wektorów kodowych, dokonaj rozbicia każdego wektora z i na dwa wektory z i + ε, z i - ε ; m := 2m
13 3) Wyznacz podział na grupy minimalizujący przyjętą miarę zniekształcenia 4) Dla uzyskanego podziału znajdź najlepszy zbiór wektorów kodowych 5) Powtarzaj kroki 3 i 4, dopóki nie zostanie spełniony warunek stopu 6) Jeżeli m N wróć do kroku 2
14 Algorytm ISODATA Jest rozszerzeniem algorytmu k-średnich o możliwość automatycznego doboru liczby grup Wymaga ustalenia wartości następujących parametrów: N MIN_EX minimalna liczba obiektów w grupie N D przybliżona, oczekiwana liczba grup σ S2 maksymalny rozrzut w grupie D MERGE minimalna dopuszczalna odległość między grupami N MERGE maksymalna liczba łączonych grup
15 Ogólny schemat algorytmu Grupowanie: dokonaj podziału na grupy algorytmem k-średnich Dzielenie grup (splitting): jeżeli w jakiejś grupie występują znaczne różnice między obiektami, rozdziel je do odrębnych grup Łączenie grup (merging): jeżeli jakieś grupy leżą bardzo blisko siebie, połącz je w jedną grupę Powtarzaj procedurę dopóki nie wystąpi warunek stopu
16 1) Ustal początkową liczbę grup N C ; przyjmij N C pierwszych obiektów ze zbioru za centra grup m i (i = 1,2,, N C ) 2) Przypisz obiekty do grup reprezentowanych przez najbliższe centra a) jeżeli przydział obiektów do grup nie zmienił się to zakończ algorytm 3) Usuń grupy zawierające mniej niż N MIN_EX obiektów oraz a) obiekty z usuniętych grup przypisz do najbliższych pozostałych b) zmniejsz N C o liczbę usuniętych grup 4) Dla każdej i-tej grupy wykonuj a) wyznacz centra m i (i = 1,2,, N C ) nowych grup b) wyznacz średnią odległość między obiektami a centrami grup: d AVG = 1 C n 1 n N n n = i= idi, d 1 i j= i 1 b ij x j m i
17 c) oblicz wariancję wzdłuż każdej osi układu współrzędnych i znajdź oś o* o maksymalnej wariancji σ i2 (o*) 5) Dla każdej i-tej grupy, dla której σ i2 (o*) > σ S2 wykonuj: jeżeli ( d i > d AVG i N i > 2 N MIN_EX +1 ) lub ( N C < N D /2 ) to: a) podziel tę grupę na dwie, których centra m i1 i m i2 różnią się tylko ze względu na współrzędną o* m i1 (o*) = m i (o*) + ε σ i (o*), m i2 (o*) = m i (o*) - ε σ i (o*), 0<ε<1, 0<ε<1, (pozostałe współrzędne pozostają niezmienione) b) zwiększ N C o liczbę dodanych grup c) obiekty z rozdzielonej grupy przyporządkuj do nowych grup
18 6) Jeżeli N C > 2 N D to wykonuj: a) oblicz wszystkie odległości d ij = d(m i, m j ) b) posortuj d ij malejąco c) dla każdej pary grup i,j wykonuj: jeżeli (żadna grupa nie została dotychczas podzielona) i (d ij < D MERGE ) i (nie więcej niż N MERGE par grup zostało połączonych w trakcie bieżącej iteracji) to: połącz i-tą i j-tą grupę wyznacz centrum nowej grupy: m' = zmniejsz N C o liczbę usuniętych grup 7) Wróć do kroku 1 n m i i n i + n + n j j m j
19 Algorytm ISODATA łatwo eliminuje grupy zawierające niewielką liczbę obiektów Grupy powinny być liniowo separowalne Wartości parametrów algorytmu trzeba dobrać metodą prób i błędów
SOM Self Organizing Maps 20 Do zbioru wektorów kodowych wprowadza się pewne uporządkowanie (topologię). Polega ono na określeniu tzw. sąsiedztwa (neighborhood). Wektory kodowe są ułożone w siatkę sąsiedztwa Wektory kodowe związane relacją sąsiedztwa reprezentują podobne grupy obiektów Najczęściej stosuje się siatki 1 i 2-wymiarowe Przykład siatki jednowymiarowej: Przykłady dwuwymiarowych siatek sąsiedztwa (kolejna strona):
sąsiedztwo 1 poziomu sąsiedztwo 1 i 2 poziomu 21
22 Ogólny schemat algorytmów SOM Wybierz wymiar siatki sąsiedztwa i rodzaj sąsiedztwa (liczba sąsiadów pojedynczego wektora kodowego) Wylosuj początkowy zestaw wektorów kodowych jako m + ε i, gdzie m to średnia z całego zbioru, a ε i jest wektorem losowym o małych wartościach Wybierz początkową wartość tzw. współczynnika uczenia η (learning rate) oraz ustal sposób jego zmniejszania w kolejnych iteracjach Ustal sposób zmniejszana zasięgu sąsiedztwa h
23 Dopóki nie wystąpi warunek stopu, powtarzaj następującą procedurę: Wylosuj wektor x i ze zbioru uczącego i znajdź najbliższy mu wektor kodowy z* (z* nazywany jest zwycięzcą) Dokonaj poprawek wektorów kodowych z l leżących w sąsiedztwie zwycięzcy z* (zwycięzca również należy do swojego sąsiedztwa): z l := z l + η h(z l,z*) (x i - z l ), gdzie h jest funkcją sąsiedztwa mającą maksimum dla h(z*,z*) = 1 Zmodyfikuj wartość η zgodnie z przyjętym schematem Zmniejsz zasięg sąsiedztwa, modyfikując wartość odpowiedniego parametru funkcji h)
Ilustracja pojedynczej iteracji 24 Często przyjmuje się, że w kolejnych iteracjach wartości współczynnika uczenia η tworzą szereg geometryczny lub są wartościami w kolejnych punktach funkcji wykładniczo malejącej W początkowych iteracjach sąsiedztwo obejmuje prawie całą siatkę wektorów kodowych, natomiast w końcowych iteracjach w zakres sąsiedztwa wchodzi tylko zwycięzca
25 Najczęściej stosowanymi realizacjami SOM są: Sieć Kohonena : wektory kodowe są powiązane regularną siatką sąsiedztwa Gaz neuronowy : możliwe jest dodawanie lub usuwanie wektorów kodowych w obrębie siatki sąsiedztwa
26 Przykład działania sieci Kohonena: dwuwymiarowe dane uczące wylosowane z rozkładu jednostajnego, sąsiedztwo jednowymiarowe
27 Przykład działania sieci Kohonena: dwuwymiarowe dane uczące wylosowane z rozkładu jednostajnego, sąsiedztwo dwuwymiarowe
28 Przykład działania gazu neuronowego: dwuwymiarowe dane uczące z określoną strukturą grup
Wstępny podział na grupy 29 Dana jest n-elementowa próba x 1, x 2,, x n Szukamy wstępnego podziału na k grup, lub k reprezentantów tych grup Wstępny podział powinien być uzyskany za pomocą algorytmu o niskiej złożoności obliczeniowej Rezultat stanowi rozwiązanie początkowe dla właściwego (bardziej złożonego obliczeniowo) algorytmu grupowania
30 Losowy wybór k reprezentantów Z całego zbioru n obiektów losujemy bez zwracania k obiektów Wylosowane obiekty są traktowane jako reprezentanci grup w kroku początkowym docelowego algorytmu grupowania x 2 x 1
31 Kwantyzacja cech Wybierana jest jedna z cech, oryginalna lub po transformacji (np. składowa główna metody PCA) Zakres możliwych wartości wybranej cechy dzielony jest na k równych przedziałów Z każdego przedziału wybierany jest reprezentant grupy Najczęściej reprezentantem grupy jest wektor średni x 2 x 1
32 Algorytm lidera 1) Ustal promień grupy T 2) Wybierz pierwszy obiekt x 1 ze zbioru X jako centrum pierwszej grupy (lider). 3) Dla kolejnych obiektów x i (i = 2,,n) wykonuj: a) Znajdź najbliższego lidera b) Jeżeli odległość x i od najbliższego lidera T, to przypisz x i do jego grupy c) Jeżeli odległość x i od najbliższego lidera > T, to x i zostaje uznane za lidera nowej grupy
33 T Środki grup są odległe od siebie co najmniej o T Algorytm jest szybki, gdyż wymaga jednorazowego przejścia przez zbiór Jako dane wejściowe algorytmu można zamiast zbioru podać macierz niepodobieństw między obiektami Rezultat zależy od kolejności obiektów w zbiorze Użytkownik nie podaje z góry liczby grup
Walidacja grupowania 34 Metody grupowania dokonują podziału nawet wówczas, gdy w danych nie ma naturalnie występujących grup (np. grupowanie danych wygenerowanych z rozkładu jednostajnego) Różne metody grupowania dają w rezultacie różne podziały Każda metoda grupowania wprowadza pewne założenia o strukturze zbioru (np. metody najmniejszych kwadratów na ogół zakładają nie wprost sferyczny kształt grup) Jak ocenić, czy podział na grupy odpowiada strukturze zbioru? Najprościej wykonać wizualizację zbioru w dwóch wymiarach, np. używając dwóch pierwszych składowych głównych metody PCA Jak ocenić, czy liczba grup została dobrana prawidłowo?
35 Modele zbiorów danych bez grup Model Poissona: obiekty są próbą ze zbioru o p-wymiarowym rozkładzie jednostajnym, rozpiętym nad pewnym obszarem A. Standardowo przyjmuje się obszar A w postaci hiperkostki lub hipersfery. Rozkład jednomodalny: zbiór jest opisany dowolnym rozkładem jednomodalnym (zazwyczaj przyjmuje się wielowymiarowy rozkład normalny o sferycznym kształcie).
36 Miara zniekształcenia (distortion measure) Analizowane są różnice pomiędzy macierzą niepodobieństwa D oraz odpowiadającą jej macierzą D*, zawierającą odległości wyznaczone na podstawie ultrametryki d ij to niepodobieństwa między obiektami x i i x j d ij * to odległości między grupami zawierającymi x i i x j = i< j d ij i< j d d Im mniejsza wartości miary zniekształcenia tym łatwiej klasyfikatorowi, który zwrócił macierz D*, klasyfikować dane ze zbioru X ij ij
37 Wybór liczby grup Kryterium Milligana i Coopera: liczba grup g jest tak dobrana, aby maksymalizować wyrażenie Preferowane są takie wartości g, które prowadzą do większych rozproszeń pomiędzy klasami i jednocześnie małych rozproszeń wewnątrz klas. n g g 1 Tr Tr ( S B ) ( S ) W
38 Zmodyfikowany test wiarygodności: opracowany dla mieszanin rozkładów (metoda EM) Hipoteza zerowa: g = g 0, przy hipotezie alternatywnej g = g 1 Wartość testowa to 2 g1 n 1 p log( λ), n 2 gdzie λ to współczynnik wiarygodności. Test chi-kwadrat z liczbą stopni swobody równej podwojonej różnicy pomiędzy liczbami parametrów w każdej hipotezie. W przypadku mieszaniny rozkładów Gaussa o zadanymi macierzami kowariancji, liczba stopni swobody jest równa: n p = ( g g ) 2 1 0 p ( p + 3) 2
Przykłady zastosowania 39 Produkcja leków Należy opracować związek chemiczny o pożądanych właściwościach Istotnym zadaniem jest przewidywanie własności chemicznych nowoopracowywanych cząsteczek Można wykonać to zadanie za pomocą technik komputerowych, co umożliwia wyselekcjonowanie tylko tych cząsteczek, których właściwości będą bliskie pożądanym Oszczędzany jest czas i pieniądze, ponieważ do badań laboratoryjnych trafią tylko obiecujące cząsteczki
40 Opracowane zostały bazy danych cząsteczek chemicznych wraz z ich właściwościami Dla nowoopracowywanej cząsteczki poszukuje się cząsteczki najbardziej do niej podobnej, licząc na to, że jej właściwości chemiczne również będą podobne Cząsteczki uznawane są za podobne, jeżeli ich powierzchnie Van der Waalsa (czyli powierzchnie potencjału elektrostatycznego) są podobne. Powierzchnia Van der Waalsa jest rozmaitością rozpiętą w 3- wymiarach
41 Problem: jak porównywać dwie rozmaitości trójwymiarowe? Pomysł: należy rozpiąć powierzchnie Van der Waalsa na dwóch wymiarach i porównywać dwuwymiarowe obrazy. Do wykonania tej transformacji najczęściej wykorzystywane są SOM-y, z sąsiedztwem kwadratowym i dużą liczbą neuronów (np. siatka 64x64) SOM Zupan J. and Gasteiger J. Neural Networks in Chemistry and Drug Design, Wiley, 1999
42 Inne zastosowania Wizualizacja danych wielowymiarowych Wstępne przetwarzanie danych w: rozpoznawaniu mowy, rozpoznawaniu mówcy, diagnostyce medycznej Kodowanie obrazu Kodowanie sygnału mowy Segmentacja obrazów medycznych Redukcja ciągu uczącego Detekcja awarii Grupowanie białek