Sieć Kohonena

Z Wikipedii, wolnej encyklopedii
Struktura sieci Kohonena

Sieć Kohonena, inaczej SOM (z ang. Self Organizing Map – mapa samoorganizująca) – rodzaj sztucznej sieci neuronowej realizującej uczenie nienadzorowane. Zaprezentowana po raz pierwszy w 1982 roku przez fińskiego uczonego Teuvo Kohonena[1].

Jest to przykład sieci konkurencyjnej, a więc takiej, w której sygnały wyjściowe neuronów porównuje się ze sobą w celu wskazania zwycięzcy (zwycięski neuron może np. wskazywać klasyfikację sygnału wejściowego). Sieć wykorzystuje koncepcję sąsiedztwa. W wyniku uczenia tej sieci powstaje mapa topologiczna, w której neurony reprezentujące podobne klasy powinny znajdować się blisko siebie. Dzięki temu możliwe jest zaobserwowanie pewnych relacji pomiędzy klasami. Aprioryczna interpretacja tej mapy nie jest możliwa, gdyż sieć uczy się bez nauczyciela. Na podstawie analizy konkretnych przykładów danych wejściowych zazwyczaj można jednak ustalić, jakie znaczenie mają poszczególne rejony tej mapy[2][1].

Struktura[edytuj | edytuj kod]

W sieci Kohonena wyróżnia się dwie warstwy: wejściową i konkurencyjną. Warstwa wejściowa nie dokonuje żadnych przekształceń danych, odpowiada ona tylko za rozprowadzenie danych wejściowych do neuronów warstwy konkurencyjnej – każda zmienna podana na wejściu musi trafić do każdego neuronu warstwy konkurencyjnej[1].

Warstwa konkurencyjna (inaczej warstwa topologiczna[2] lub warstwa Kohonena[3]) składa się z neuronów ułożonych w regularną, najczęściej dwuwymiarową siatkę. Każdy neuron tej warstwy ma tyle współczynników wagowych, ile jest wejść sieci. Po odebraniu wartości wejściowych, neuron warstwy konkurencyjnej oblicza podobieństwo swojego wektora wag do wektora wartości wejściowych, najczęściej za pomocą metryki euklidesowej. Topologia sieci (ułożenie neuronów) nie ulega zmianie podczas procesu uczenia, modyfikowane są jedynie wagi[1].

Neurony warstwy konkurencyjnej nie są ze sobą połączone, jednak dla wygody często przedstawia się je tak, jakby stanowiły węzły siatki[3]. W odróżnieniu od wielu innych typów sieci neuronowych (jak np. perceptron wielowarstwowy), sieć Kohonena nie ma warstw ukrytych[1].

Uczenie sieci[edytuj | edytuj kod]

Ilustracja przedstawiająca trening sieci Kohonena. Niebieska plama jest rozkładem przykładów zestawu uczącego sieć, biała kropka obrazuje aktualnie wylosowany przypadek z tej dystrybucji. W pierwszej fazie (od lewej) sieć jest losowo umieszczona w przestrzeni danych. Węzeł najbliższy wylosowanemu przypadkowi (podświetlony na żółto) jest przesuwany w jego kierunku. Jego sąsiedzi także w mniejszym stopniu zmieniają swoje pozycje (ma to na celu zachowanie równomiernego rozkładu siatki). Po wielu krokach siatka ma tendencję do odwzorowania analizowanych przykładów (po prawej)

Sieć uczona jest za pomocą algorytmu iteracyjnego. Na początku wagom każdego z neuronów przypisywane są losowe wartości. Następnie dla każdego obiektu ze zbioru uczącego wykonywane są następujące kroki[3]:

  1. Wybór zwycięskiego neuronu. Jest to ten neuron, którego wagi są najbardziej zbliżone do wektora wejściowego (wektora cech obiektu).
  2. Modyfikacja wag zwycięskiego neuronu w taki sposób, aby jeszcze bardziej upodobnić go do wektora wejściowego.
  3. Modyfikacja wag neuronów sąsiednich względem zwycięskiego, wyznaczonych na podstawie topologii sieci (w przypadku zastosowania metody „zwycięzca bierze wszystko” ten krok jest pomijany[1]).

Do wyliczenia wartości, o które należy zmodyfikować wagi neuronu, stosuje się wzór

gdzie jest wektorem wag neuronu wektorem wejściowym próbki współczynnikiem uczenia, a funkcją sąsiedztwa określającą, jak blisko neuron znajduje się względem zwycięskiego neuronu Funkcja sąsiedztwa musi przyjmować wartość dla zwycięskiego neuronu i maleć wraz z odległością od niego. Przykładem stosowanej funkcji sąsiedztwa jest

gdzie jest odległością w siatce topologicznej między neuronem oraz zwycięskim neuronem, a promieniem sąsiedztwa[1].

Algorytm wykonywany jest przez określoną liczbę epok (pojedyncza epoka to wykonanie powyższych kroków dla wszystkich obiektów ze zbioru uczącego). Wraz z kolejnymi epokami zmniejszana jest wartość współczynnika uczenia oraz promienia sąsiedztwa[3].


Przypisy[edytuj | edytuj kod]

  1. a b c d e f g Karolina Bartos, Sieć SOM jako przykład sieci samoorganizującej się, „Ekonometria”, 36, Wydawnictwo Uniwersytetu Ekonomicznego we Wrocławiu, 2012, s. 65–74, ISSN 1507-3866.
  2. a b Ryszard Tadeusiewicz, Maciej Szaleniec: Leksykon sieci neuronowych. s. 45–46. ISBN 978-83-63270-10-0.
  3. a b c d Andrzej Muczyński. Grupowanie nieruchomości wspólnot mieszkaniowych z wykorzystaniem sieki Kohonena. „Acta Scientiarum Polonorum Administratio Locorum”. 8 (4), s. 5–15, 2009. Wydawnictwo Uniwersytetu Warmińsko-Mazurskiego w Olsztynie.