SOM i WebSOM - Zakład Systemów Informatycznychzsi.tech.us.edu.pl/~nowak/wi/som.pdf · Algorytm...

47
SOM i WebSOM

Transcript of SOM i WebSOM - Zakład Systemów Informatycznychzsi.tech.us.edu.pl/~nowak/wi/som.pdf · Algorytm...

SOM i WebSOM

WprowadzenieSOM jest skrótem odSelf Organizing Maps, czyliSamoorganizujące się mapy.

Podstawy teoretyczne stworzyłfiński profesor Teuvo Kohonen w1982 r

SOM - ogólnie

Celem tych sieci jest klasyfikowanie wielowymiarowych danychwejściowych - obiektów opisanych dużą ilością parametrów – w takisposób, by przedstawić reprezentację tych danych w mniejszej ilościwymiarów, przeważnie dwóch, przy możliwie jak najwierniejszymodwzorowaniu struktury wewnętrznej wektora wejściowego. Dziękitemu sieci te przydatne są przy wizualizacjach skomplikowanychstruktur, a przetworzone przez nie dane mogą stanowić podstawę dodiagramów wyświetlanych na ekranie, jak również znajdujązastosowanie wszędzie tam, gdzie istotna jest redukcja rozmiarówdanych wejściowych, ze względu na zdolność kompresjisamoorganizującej sieci Kohonena.

Uczenie się bez nadzoruSOM jest siecią uczącą się bez nadzoru

Sieci uczące się bez nauczyciela w trakcie uczenia opierają się wyłączniena obserwacji danych wejściowych, nikt im natomiast nie mówi, co z tychdanych wejściowych powinno wynikać to sieci muszą wykryć i ustalićsame.

Sieć Kohonena uczy się całkiem sama, wyłącznie obserwując przesyłane doniej dane, których wewnętrzna struktura i ukryta w tej strukturze nieznanalogika będą decydować o końcowym obrazie klasyfikacji i o ostatecznymdziałaniu sieci. Można założyć, że w sieci Kohonena poszczególne neuronybędą identyfikowały i rozpoznawały poszczególne skupienia danych. Przezskupienie danych rozumieć tu będziemy grupę danych: dane należące doskupienia są między sobą w jakimś stopniu podobne, natomiast danenależące do różnych skupień różnią się pomiędzy sobą.

Sztuczna sieć neuronowa -definicjeSOM wywodzi się ze sztucznych sieci neuronowych

Sztuczna sieć neuronowa (SSN) - definicje:

Zbiór połączonych ze sobą jednostek wejściowo-wyjściowych. Z każdympołączeniem skojarzona jest waga, która może zostać zmieniona w trakcieuczenia

Sztuczna sieć neuronowa -definicje

Lub inaczej:Sztuczne sieci neuronowe są tworem człowieka, ale działaniem naśladująto, co natura stworzyła i rozwijała przez miliony lat - strukturę nerwowąpotrafiącą odbierać docierające sygnały i efektywnie przetwarzać je naużyteczną informację.

Dowolna sztuczna sieć neuronowa może być zdefiniowana poprzezokreślenie:- modelu sztucznego neuronu,- topologii,- reguły uczenia sieci.

StrukturaStruktura SOM:- sieć składa się z dwóch warstw

1. warstwa wejściowa – wektory wejściowe2. warstwa wyjściowa – mapa topologiczna

- sieć jest zwykle jednokierunkowa,- każdy neuron jest połączony ze wszystkimi składowymi N-wymiarowego

wektora wejściowego x.- wagi połączeń neuronów tworzą wektor wi=[wi1, wi2, ..., win]T.

Struktura

StrukturaW strukturze sieci Kohonena istotne jest to, że każdy neuron warstwywejściowej komunikuje się z każdym neuronem warstwy topologicznej –natomiast neurony w warstwach nie komunikują się pomiędzy sobą

StrukturaMapa może być różnego kształtu i wymiaru. Mapa może byćjednowymiarowa, dwuwymiarowa płaszczyźnie lub torusie, trójwymiarowaitp. Najbardziej typową i najczęściej używaną jest mapa dwuwymiarowa.Analizowane dane mają być odwzorowane na mapie (rozmiary mapy sązadawane przez użytkownika).

Zakładamy, że na mapie znajduje się M neuronów. Liczba M jestdeklarowana, lub też przyjmuje się domyślnie:

M = 5 . √N

gdzie N oznacza liczbę wektorów danych.

1D

2D

Przykładowe mapydwuwymiaroweDwa przykłady mapy dwuwymiarowej utworzonej na płaszczyźnie.Neurony są tam ułożone w siatkę heksagonalną i prostokątną.

SąsiedztwoPrzy uczeniu się mapy bardzo ważną rolę odgrywa pojęcie sąsiedztwaneuronów. Sąsiedztwo to wyznacza się według położenia wektorówreferencyjnych na mapie. Sąsiedztwo neuronu oznaczonego numerem cbędziemy oznaczać Nc . Jeżeli chcemy wyraźnie napisać, że jest tosąsiedztwo neuronu c który zwyciężył w k-tej iteracji, to zapiszemy

Nc = Nc (k)

Zmienna c oznacza na ogół numer zwycięskiego neuronu w czasie uczeniaze współzawodnictwem. Na ogół sąsiedztwo Nc (k) charakteryzuje siępewnym promieniem, który maleje wraz z upływem czasu uczenia t, czyliw miarę zwiększania się wskaźnika k.

Sąsiedztwo

SąsiedztwoWażnym pojęciem jest zasięg sąsiedztwa, który się zwykle zmniejsza wtrakcie uczenia

Sąsiedztwo

Sąsiedztwo może być sztywne (0 - nie należy, 1 - należy) lub też wyznaczanefunkcją przynależności przyjmującej wartości rzeczywiste z przedziału [0,1].Funkcja intensywności przynależności do Nc jest oznaczana symbolem hcm(k)gdzie m i c są dwoma numerami ze zbioru 1,…,M.Funkcje te opierają się na odległości neuronu m od zwycięskiego neuronu c.Funkcje te mają bardzo często postać funkcji radialnych scentrowanych wpunkcie rc .

SąsiedztwoJednowymiarowe funkcje sąsiedztwa dla promienia R = 2:- bubble,- gaussian,- cut-gaussian,- epanechnikov

SąsiedztwoFunkcje sąsiedztwa: bubble i gaussian określone na płaszczyźnie. Funkcjabubble wyznacza sąsiedztwo w sposób ostry: 1 - tak, 0 - nie;funkcja gaussian w sposób łagodny jako liczbę z przedziału (0, 1].

SąsiedztwoNajbardziej popularnymi funkcjami sąsiedztwa są bubble i gaussian. Sąone pokazane na poprzednim slajdzie.Przykładowo funkcja radialna gaussian przyjmuje postać:

gdzie wektory rm i rc są odpowiednimi wektorami referencyjnymi,symbol k oznacza numer iteracji, 2Ϭ2(k) oznacza promień sąsiedztwa.Jak widać z tej definicji, wielkość promienia sąsiedztwa 2Ϭ2(k) malejeze wzrostem k.

Sąsiedztwo

SąsiedztwoUczeniu w sieci Kohonena podlega „zwycięski” neuron (niebieski) oraz jegosąsiedzi

SąsiedztwoSąsiedztwo jest pojęciem umownym, wiec w tej samej sieci możnazdefiniować zarówno bliższych, jak i dalszych sąsiadów

SąsiedztwoMożna też rozważać sąsiedztwo o zróżnicowanym zasięgu

SąsiedztwoPokazywane przedtem przykłady sąsiedztwa odwoływały się dodwuwymiarowej struktury sieci, możliwe jednak jest także zdefiniowaniesąsiedztwa jednowymiarowego

Uczenie się sieciW trakcie pokazywania elementów zbioru uczącego każdorazowowyłaniany jest neuron „zwycięski”. Najczęściej właśnie ten „zwycięzca” jestuczony. Zwycięski jest ten neuron, którego wektor wag jest najbliższy wstosunku do aktualnego wektora wejściowego. Na skutek uczeniazwycięzcy neuron który „lubił” określone sygnały wejściowe (bo przy ichpojawianiu się dawał silny pozytywny sygnał wyjściowy, który czynił gozwycięzcą), po każdym kroku procesu uczenia będzie „lubił” te sygnałycoraz bardziej. Taki neuron po wytrenowaniu będzie więc rozpoznawałpewną klasę sygnałów. Ponieważ tylko on będzie rozpoznawał te klasę,będzie, wiec mógł służyć jako swoisty detektor wszelkich sygnałówpodobnych do tych, jakie w trakcie uczenia powodowały, że był onzwycięzcą.

Uczenie się sieciUczenie sieci odbywa się poprzez wielokrotne pokazywanie przykładów(wektorów wejściowych) i modyfikacje wag neuronów wyjściowych. Wzależności od przyjętej strategii modyfikowany może być tylko jedenneuron lub pewna grupa neuronów.

Uczenie się sieciMetodyka zmian wag neuronów wyjściowych nazywa się strategia. DlaSOM dwie podstawowe strategie to:

WTA - Winner Takes All Zwycięzca bierze wszystko. Po przedstawieniusieci wektora wejściowego, neuron najbardziej podobny do elementuprezentowanego (którego wagi są najbardziej podobne składowymwektora wejściowego) zostaje zmodyfikowany zgodnie z funkcją f takaby jego wagi były jak najbardziej zbliżone do wektora wejściowego.

WTM - Winner Takes Most Zwycięzca bierze najwięcej. W tej strategiinie tylko neuron najbardziej podobny, ale także jego otoczenie zostajązmodyfikowane. Najczęściej ta modyfikacja jest zależna od odległościsąsiada od zwycięzcy.

Uczenie się sieciNa ogół uczenie przebiega w dwóch fazach. Najpierw przyjmuje się dużewartości współczynnika uczenia i duży promień sąsiedztwa. W drugiej fazieobydwie te wielkości ulegają istotnemu zmniejszeniu w szczególnościpromień sąsiedztwa maleje do zera.Pierwsza faza przebiega według zasady Winner Takes Most (WTM)Promień sąsiedztwa jest duży, co powoduje, że oprócz neuronu-zwycięzcyrównież jego sąsiedzi (z mapy) zmieniaj¡ swoje wektory kodowe.Współczynnik uczenia ƞ jest w tej fazie stosunkowo duży. Zmiany wagnastępuję według wzoru:

wc(k + 1) = wc (k) + ƞ(k) hcm(k) [x(k) - wc (k)], c = 1,…,M

Uczenie się sieciwc(k + 1) = wc (k) + ƞ(k) hcm(k) [x(k) - wc (k)], m = 1,…,M

We wzorze powyższym:- ƞ(k) oznacza współczynnik uczenia,- c oznacza numer wektora-zwycięzcy, tj. numer wektora w znajdującego

się najbliżej prezentowanego w k-tym kroku wektora x(k),- wartość funkcji hci(k) określa, w jakim stopniu należy uwzględnić

przynależność neuronu i do sąsiedztwa zwycięskiego neuronu o numerzec = c (k).

Tak więc, przy każdej prezentacji kolejnego wektora x zostanie do niegoprzyciągnięty odpowiadający mu wektor-zwycięzca wc który pociąga zasobą wagi tych neuronów które znalazły się w jego sąsiedztwie na mapie.

Uczenie się sieciDruga faza uczenia. Obowiązuje tu zasada Winner Takes All (WTA).Adaptacji podlega tylko neuron-zwycięzca c, ponieważ promień sąsiedztwazmalał do zera. Zmienia się tylko wektor wagowy wc według wzoru:

wc(k + 1) = wc(k) + ƞ(k) [x(k) - wc(k)],

Współczynnik uczeniaWspółczynnik uczenia ƞ(k) maleje zazwyczaj wraz z upływem czasuuczenia wyznaczanego numerem iteracji k. Niech T oznacza maksymalnąliczbę iteracji. Liczbę tą ustala się z góry. Dość często stosuje sięnastępujące wzory na zmniejszanie współczynnika uczenia:

1. Liniowe zmniejszanieƞ(t) = ƞ0(T - t) / T, t = 1, 2,…,T .

2. Wykładnicze zmniejszanieƞ(t) = ƞ0exp(-Ct), t = 1, 2,…,T C > 0 jest pewną stałą.

3. Hiperboliczne zmniejszanieƞ(t) = C1 / (C2 + t); t = 1, 2,…,T C1, C2 > 0 pewne stałe.

4. Indywidualny współczynnik uczenia, np.ƞ(t) = 1/ ni(t), gdzie ni(t) oznacza liczbę zwycięstw i-tego neuronu.

Algorytm SOM1. Przypisz wagom sieci o M neuronach warstwy wyjściowej i N wejściachniewielkie liczby losowe. Ustal liczbę neuronów należących dopoczątkowego otoczenia neuronu2. Dołącz nowy wektor uczący x=[x1, x2 , ..., xN ] do wejścia.3. Oblicz odległości4. Znajdź neuron zwycięski. Mając próbkę x ze zbioru uczącego X wdanym kroku k fazy uczenia znajdujemy element mapy najbardziejzbliżony do wektora prezentowanego c(x):c(x) = arg min{||x-mi||}5. Wyznacz nowe wartości wag dla neuronu zwycięzcy i jego sąsiedztwakorzystając z jednej z dwóch strategii:WTM wc(k + 1) = wc (k) + ƞ(k) hcm(k) [x(k) - wc (k)], c = 1,…,MWTA wc(k + 1) = wc(k) + ƞ(k) [x(k) - wc(k)],6. Zmień odpowiednio wartości współczynnika uczenia i sąsiedztwa7. Powtórz 2-6 dla następnych wzorców wejściowych aż do chwiliustalenia się odpowiedzi sieci.

PrzykładRozkład wrażliwości neuronów warstwy wyjściowej przed i po uczeniu zwykorzystaniem próbek 16 podstawowych barw RGB

PrzykładRozkład wrażliwości neuronów przed i po uczeniu w bardziejzłożonym zadaniu, w którym na wejście sieci podawano próbkibarwne z całego „sześcianu barw”

Przykład

http://www.youtube.com/watch?v=-6a7LATC-9g

SOM - Podsumowanie- sieć uczy się bez nadzoru- sieć składa się z dwóch warstw o wyraźnie rozdzielonych

funkcjach- uporządkowane neurony wyjściowe- uczony głównie neuron „zwycięski”- ważną role odgrywa „sąsiedztwo”- w wyniku uczenia powstaje mapa topologiczna- aprioryczna interpretacja wartości wyjściowych jest niemożliwa

Model neuronu stosowanego wsieci KohonenaModel neuronu stosowanego w sieci Kohonena jest specyficzny – nawejściu obliczana jest odległość miedzy wektorem wejściowym awektorem wag, a na sygnał na wyjściu jest tym większy im ta odległośćjest mniejsza.

WebSOMWłasności klastrowania i odwzorowywania zależności w danychwejściowych postanowiono wykorzystać w dziedzinie wyszukiwaniainformacji. Mapy samoorganizujące mają tą przewagę nad klasycznymialgorytmami klastrowania, że oprócz przyporządkowywania próbek danychdo klas, wizualizują je na płaszczyźnie (sieci jedno i dwuwymiarowe) lub wprzestrzeni (sieci trójwymiarowe). Dzięki temu, osoba wyszukującainformacje, kiedy odnajdzie jeden relewantny egzemplarz danych, możesięgnąć do innych, skorelowanych z nim próbek.

Praktycznie można w niej umieścić nieskończoną ilość dokumentów.

Z powodu dużej złożoności i czasochłonności procesu uczenia tworzonemapy mogą być jedynie statyczną prezentacją zbioru dokumentówstworzoną offline.

WebSOMSystem dokonujący takiego odwzorowania powstał w Centrum Badań nadSieciami Neuronowymi, Helsinki University of Technology, podkierownictwem prof. Teuvo Kohonen’a. System nosi nazwę WebSOM i jegodemonstrację można znaleźć w Internecie pod adresem

http://websom.hut.fi/websom/.

WebSOMNa metodę Websom składają się następujące kroki:- Utworzenie słownika ze zbioru odwzorowywanych dokumentów. Z tekstu

usuwane są znaki przestankowe, spójniki, zaimki itp. Można dokonaćrównież ekstrakcji rdzeni słów. Następnie każdemu słowuprzyporządkowywany jest unikalny wektor.

- Utworzenie modeli statystycznych dokumentów w postaci histogramówsłów.

- Formowanie mapy dokumentów za pomocą algorytmu SOM.

WebSOMEksperyment WebSOM przeprowadzony w 1998 r. przez Kohonen'a:- operował na zbiorze 1 124 134 dokumentów- średnia długość dokumentu to 218 słów- długość słownika wynosiła 63 773 słowa- samoorganizująca się sieć składała się z 104 040 komórek- materiał pochodził z 80 rożnych grup tematycznych Usenet'u- każdy dokument klasyfikowano do jednej z 80 grup- dokładność klasyfikacji wynosiła około 80 procent- formatowanie mapy trwało około miesiąca- wyszukiwanie w mapie odbywało się prawie w czasie rzeczywistym

Przykład

WebSOM

DEMOhttp://websom.hut.fi/websom/milliondemo/html/root.html

WebSOMWady:- SOM jest obliczeniowo droga co jest poważną wadą, gdy liczba

wymiarów danych wzrasta.- Jest to metoda wolna.- Niemożliwe jest tworzenie mapy w trybie „online”.- Problemem jest dostarczenie poprawnych danych: aby wygenerować

mapę każdy wzorzec musi posiadać wartość we wszystkich wymiarach.- Nauka sieci musi być powtarzana przy każdej nowej porcji dokumentów

KONIEC