SOM i WebSOM
Wprowadzenie
SOM jest skrótem od
Self Organizing Maps, czyli Samoorganizujące się mapy.
Podstawy teoretyczne stworzył fiński profesor Teuvo Kohonen w 1982 r
SOM - ogólnie
Celem tych sieci jest klasyfikowanie wielowymiarowych danych
wejściowych - obiektów opisanych dużą ilością parametrów – w taki sposób, by przedstawić reprezentację tych danych w mniejszej ilości wymiarów, przeważnie dwóch, przy możliwie jak najwierniejszym odwzorowaniu struktury wewnętrznej wektora wejściowego. Dzięki temu sieci te przydatne są przy wizualizacjach skomplikowanych
struktur, a przetworzone przez nie dane mogą stanowić podstawę do diagramów wyświetlanych na ekranie, jak również znajdują
zastosowanie wszędzie tam, gdzie istotna jest redukcja rozmiarów danych wejściowych, ze względu na zdolność kompresji
samoorganizującej sieci Kohonena.
Uczenie się bez nadzoru
SOM jest siecią uczącą się bez nadzoru
Sieci uczące się bez nauczyciela w trakcie uczenia opierają się wyłącznie na obserwacji danych wejściowych, nikt im natomiast nie mówi, co z tych danych wejściowych powinno wynikać to sieci muszą wykryć i ustalić
same.
Sieć Kohonena uczy się całkiem sama, wyłącznie obserwując przesyłane do niej dane, których wewnętrzna struktura i ukryta w tej strukturze nieznana logika będą decydować o końcowym obrazie klasyfikacji i o ostatecznym działaniu sieci. Można założyć, że w sieci Kohonena poszczególne neurony będą identyfikowały i rozpoznawały poszczególne skupienia danych. Przez skupienie danych rozumieć tu będziemy grupę danych: dane należące do skupienia są między sobą w jakimś stopniu podobne, natomiast dane należące do różnych skupień różnią się pomiędzy sobą.
Sztuczna sieć neuronowa - definicje
SOM wywodzi się ze sztucznych sieci neuronowych Sztuczna sieć neuronowa (SSN) - definicje:
Zbiór połączonych ze sobą jednostek wejściowo-wyjściowych. Z każdym połączeniem skojarzona jest waga, która może zostać zmieniona w trakcie uczenia
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 na użyteczną informację.
Dowolna sztuczna sieć neuronowa może być zdefiniowana poprzez określenie:
- modelu sztucznego neuronu, - topologii,
- reguły uczenia sieci.
Struktura
Struktura SOM:
- sieć składa się z dwóch warstw
1. warstwa wejściowa – wektory wejściowe 2. 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
Struktura
W strukturze sieci Kohonena istotne jest to, że każdy neuron warstwy wejściowej komunikuje się z każdym neuronem warstwy topologicznej – natomiast neurony w warstwach nie komunikują się pomiędzy sobą
Struktura
Mapa może być różnego kształtu i wymiaru. Mapa może być
jednowymiarowa, dwuwymiarowa płaszczyźnie lub torusie, trójwymiarowa itp. 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 jest deklarowana, lub też przyjmuje się domyślnie:
M = 5 . √N gdzie N oznacza liczbę wektorów danych.
1D
2D
Przykładowe mapy dwuwymiarowe
Dwa przykłady mapy dwuwymiarowej utworzonej na płaszczyźnie.
Neurony są tam ułożone w siatkę heksagonalną i prostokątną.
Sąsiedztwo
Przy uczeniu się mapy bardzo ważną rolę odgrywa pojęcie sąsiedztwa neuronów. Sąsiedztwo to wyznacza się według położenia wektorów referencyjnych na mapie. Sąsiedztwo neuronu oznaczonego numerem c będziemy oznaczać Nc . Jeżeli chcemy wyraźnie napisać, że jest to
są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 uczenia ze współzawodnictwem. Na ogół sąsiedztwo Nc (k) charakteryzuje się
pewnym promieniem, który maleje wraz z upływem czasu uczenia t, czyli w miarę zwiększania się wskaźnika k.
Sąsiedztwo
Sąsiedztwo
Ważnym pojęciem jest zasięg sąsiedztwa, który się zwykle zmniejsza w trakcie uczenia
Sąsiedztwo
Sąsiedztwo może być sztywne (0 - nie należy, 1 - należy) lub też wyznaczane funkcją przynależności przyjmującej wartości rzeczywiste z przedziału [0,1].
Funkcja intensywności przynależności do
N
c 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 w punkcie rc .
Sąsiedztwo
Jednowymiarowe funkcje sąsiedztwa dla promienia R = 2:
- bubble, - gaussian, - cut-gaussian, - epanechnikov
Sąsiedztwo
Funkcje sąsiedztwa: bubble i gaussian określone na płaszczyźnie. Funkcja bubble 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ąsiedztwo
Najbardziej 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) maleje ze wzrostem k.
Sąsiedztwo
Sąsiedztwo
Uczeniu w sieci Kohonena podlega „zwycięski” neuron (niebieski) oraz jego sąsiedzi
Sąsiedztwo
Sąsiedztwo jest pojęciem umownym, wiec w tej samej sieci można zdefiniować zarówno bliższych, jak i dalszych sąsiadów
Sąsiedztwo
Można też rozważać sąsiedztwo o zróżnicowanym zasięgu
Sąsiedztwo
Pokazywane przedtem przykłady sąsiedztwa odwoływały się do
dwuwymiarowej struktury sieci, możliwe jednak jest także zdefiniowanie sąsiedztwa jednowymiarowego
Uczenie się sieci
W trakcie pokazywania elementów zbioru uczącego każdorazowo
wyłaniany jest neuron „zwycięski”. Najczęściej właśnie ten „zwycięzca” jest uczony. Zwycięski jest ten neuron, którego wektor wag jest najbliższy w stosunku do aktualnego wektora wejściowego. Na skutek uczenia
zwycięzcy neuron który „lubił” określone sygnały wejściowe (bo przy ich pojawianiu się dawał silny pozytywny sygnał wyjściowy, który czynił go zwycięzcą), po każdym kroku procesu uczenia będzie „lubił” te sygnały coraz 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łów
podobnych do tych, jakie w trakcie uczenia powodowały, że był on zwycięzcą.
Uczenie się sieci
Uczenie sieci odbywa się poprzez wielokrotne pokazywanie przykładów (wektorów wejściowych) i modyfikacje wag neuronów wyjściowych. W zależności od przyjętej strategii modyfikowany może być tylko jeden neuron lub pewna grupa neuronów.
Uczenie się sieci
Metodyka zmian wag neuronów wyjściowych nazywa się strategia. Dla SOM dwie podstawowe strategie to:
WTA - Winner Takes All Zwycięzca bierze wszystko. Po przedstawieniu sieci wektora wejściowego, neuron najbardziej podobny do elementu prezentowanego (którego wagi są najbardziej podobne składowym wektora wejściowego) zostaje zmodyfikowany zgodnie z funkcją f tak aby jego wagi były jak najbardziej zbliżone do wektora wejściowego.
WTM - Winner Takes Most Zwycięzca bierze najwięcej. W tej strategii nie tylko neuron najbardziej podobny, ale także jego otoczenie zostają zmodyfikowane. Najczęściej ta modyfikacja jest zależna od odległości sąsiada od zwycięzcy.
Uczenie się sieci
Na ogół uczenie przebiega w dwóch fazach. Najpierw przyjmuje się duże wartości współczynnika uczenia i duży promień sąsiedztwa. W drugiej fazie obydwie te wielkości ulegają istotnemu zmniejszeniu w szczególności
promień 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ęzcy również jego sąsiedzi (z mapy) zmieniaj¡ swoje wektory kodowe.
Współczynnik uczenia ƞ jest w tej fazie stosunkowo duży. Zmiany wag następuję według wzoru:
w
c( k + 1) = w
c( k ) +
ƞ( k ) h
cm( k ) [x( k ) - w
c( k )] , c = 1,…,M
Uczenie się sieci
w
c( k + 1) = w
c( k ) +
ƞ( k ) h
cm( k ) [x( k ) - w
c( 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 numerze c = c (k).
Tak więc, przy każdej prezentacji kolejnego wektora x zostanie do niego przyciągnięty odpowiadający mu wektor-zwycięzca wc który pociąga za sobą wagi tych neuronów które znalazły się w jego sąsiedztwie na mapie.
Uczenie się sieci
Druga faza uczenia. Obowiązuje tu zasada Winner Takes All (WTA).
Adaptacji podlega tylko neuron-zwycięzca c, ponieważ promień sąsiedztwa zmalał do zera. Zmienia się tylko wektor wagowy wc według wzoru:
w
c( k + 1) = w
c( k ) + ƞ( k ) [x( k ) - w
c( k )] ,
Współczynnik uczenia
Współczynnik uczenia ƞ(k) maleje zazwyczaj wraz z upływem czasu
uczenia 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 SOM
1. Przypisz wagom sieci o M neuronach warstwy wyjściowej i N wejściach niewielkie liczby losowe. Ustal liczbę neuronów należących do
początkowego otoczenia neuronu
2. Dołącz nowy wektor uczący x=[x1, x2 , ..., xN ] do wejścia.
3. Oblicz odległości
4. Znajdź neuron zwycięski. Mając próbkę x ze zbioru uczącego X w danym kroku k fazy uczenia znajdujemy element mapy najbardziej zbliż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ąsiedztwa korzystając z jednej z dwóch strategii:
WTM wc(k + 1) = wc (k) + ƞ(k) hcm(k) [x(k) - wc (k)], c = 1,…,M WTA wc(k + 1) = wc(k) + ƞ(k) [x(k) - wc(k)],
6. Zmień odpowiednio wartości współczynnika uczenia i sąsiedztwa 7. Powtórz 2-6 dla następnych wzorców wejściowych aż do chwili ustalenia się odpowiedzi sieci.
Przykład
Rozkład wrażliwości neuronów warstwy wyjściowej przed i po uczeniu z wykorzystaniem próbek 16 podstawowych barw RGB
Przykład
Rozkład wrażliwości neuronów przed i po uczeniu w bardziej złożonym zadaniu, w którym na wejście sieci podawano próbki barwne 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 w sieci Kohonena
Model neuronu stosowanego w sieci Kohonena jest specyficzny – na wejściu obliczana jest odległość miedzy wektorem wejściowym a
wektorem wag, a na sygnał na wyjściu jest tym większy im ta odległość jest mniejsza.
WebSOM
Własności klastrowania i odwzorowywania zależności w danych wejściowych postanowiono wykorzystać w dziedzinie wyszukiwania informacji. Mapy samoorganizujące mają tą przewagę nad klasycznymi algorytmami klastrowania, że oprócz przyporządkowywania próbek danych do klas, wizualizują je na płaszczyźnie (sieci jedno i dwuwymiarowe) lub w przestrzeni (sieci trójwymiarowe). Dzięki temu, osoba wyszukująca
informacje, kiedy odnajdzie jeden relewantny egzemplarz danych, może się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 tworzone mapy mogą być jedynie statyczną prezentacją zbioru dokumentów
stworzoną offline.
WebSOM
System dokonujący takiego odwzorowania powstał w Centrum Badań nad Sieciami Neuronowymi, Helsinki University of Technology, pod
kierownictwem prof. Teuvo Kohonen’a. System nosi nazwę WebSOM i jego demonstrację można znaleźć w Internecie pod adresem
http://websom.hut.fi/websom/.
WebSOM
Na 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łowu
przyporządkowywany jest unikalny wektor.
- Utworzenie modeli statystycznych dokumentów w postaci histogramów słów.
- Formowanie mapy dokumentów za pomocą algorytmu SOM.
WebSOM
Eksperyment 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
DEMO
http://websom.hut.fi/websom/milliondemo/html/root.html
WebSOM
Wady:
- 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