Sić neuronów, która uczy się układać się w przestrzeń
Sieć własna (SOM), wprowadzona przez Teuvo Kohonen'a w 1982 roku, jest nieuczącą się siecią neuronową, która uczy się organizować się tak, aby neurony znajdujące się blisko siebie na stałej siatce 2D reagowały na podobne wejścia. Symulacja na tej stronie wykorzystuje siatkę 24x24, 576 neuronów, z których każdy przechowuje wektor 3-wymiarowy, który początkowo jest szumem losowym i jest trenowany za pomocą strumieni kolorów RGB; obserwuj to wystarczająco długo, a siatka organizuje się w gładką, ciągłą mapę kolorów, w której czerwienie, błękity i zielenie zajmują spójne, sąsiadujące obszary, mimo że nigdy nie była informowana o kole kolorów.
Uczenie się konkurencyjne: jedna neuron wygrywa, a jej sąsiadki również uczą się
Szkolenie to pętla z trzech kroków, powtarzana dla każdego wektora wejściowego. Po pierwsze, znajdź Najlepszą Jednostkę Dopasowującą (BMU): neuron, którego wektor wagi jest najbliżej aktualnego wejścia pod względem odległości euklidesowej. Po drugie, zaktualizuj wagi BMU, aby lekko przesunąć się w kierunku wejścia. Trzeci – krok, który sprawia, że to mapa, a nie tylko grupowanie konkurencyjne – zaktualizuj sąsiadów BMU na mapie również o wartość, która maleje wraz z odległością od siatki.
dla każdego wejścia x: BMU = argmin_i || w_i - x || dla każdej neurony i: θ(i, BMU, t) = exp( - dist_grid(i, BMU)² / (2 * σ(t)²) ) w_i += α(t) * θ(i, BMU, t) * (x - w_i) σ(t) – promień sąsiedztwa, który ulega eksponencjalnemu zanikaniu od około połowy siatki do 1 α(t) – współczynnik uczenia się, który ulega eksponencjalnemu zanikaniu od około 0,5 do 0 Na wczesnym etapie szkolenia σ jest duże, więc pojedynczy BMU ciągnie ogromny fragment siatki w kierunku przybliżonej tej samej koloru, co zmusza sąsiednie neurony do reprezentowania podobnych wejść – właściwość zachowującą topologię, która nadaje metodzie jej nazwę. Wraz ze zmniejszaniem się σ aktualizacje stają się coraz bardziej lokalne, pozwalając mapie na precyzyjne dopracowywanie szczegółów bez cofania gruboziarnistego globalnego porządku, który już ustaliła.
for each input x:
BMU = argmin_i || w_i − x ||
for each neuron i:
θ(i, BMU, t) = exp( − dist_grid(i, BMU)² / (2 · σ(t)²) )
w_i += α(t) · θ(i, BMU, t) · (x − w_i)
σ(t) neighbourhood radius, decays exponentially from ~half the grid to ~1
α(t) learning rate, decays exponentially from ~0.5 toward 0
Dlaczego harmonogram, a nie sama zasada, decyduje o wyniku
Algorytm Kohanena niezawarcie zbiega się do uporządkowanej mapy tylko wtedy, gdy promień sąsiedztwa zaczyna się od wartości wystarczająco dużej, aby dotknąć większości elementów siatki, a następnie powoli zmniejsza się, tak że ma czas na utworzenie porządku przed zbyt lokalnymi aktualizacjami, które uniemożliwią naprawę skomplikowanego układu. Rozpocznij od σ zbyt małego lub zbyt szybko go zmniejszaj, a mapa utknie w zniekształconym topologicznie stanie – widoczny defekt, w którym gradient kolorów się przewróci i zamiast płynnie przebiegać po siatce, zapadnie się, co można wywołać w symulacji, obserwując zachowanie podczas słabo zaplanowanej rozgrywki.
Co w zasadzie robi dobrze uporządkowana siatka
Ponieważ trening SOM wymaga tylko odległości i braku etykiet, jest to prawdziwie niepoddane uczeniu się, a ponieważ sieć wyjściowa zachowuje relacje sąsiedzkie z (często znacznie wyowymiarowej) przestrzeni wejściowej, SOM podwójnie działa jako narzędzie redukcji nieliniowej wymiarowości: każdy rzeczywisty input jest projektowany na współrzędne i punkty swojego BMN, a elementy bliskie siebie nawzajem w oryginalnej przestrzeni znajdują się blisko siebie na mapie 2D, pozwalając na wizualizację struktury danych, których człowiek nie mógłby zapisać. Dlatego też SOM są wykorzystywane do wszystkiego, od organizowania dokumentów według tematów po wizualizowanie przestrzeni stanów silnika szachowego.
Frequently asked questions
Co sprawia, że Mapa Samorganizująca się (SOM) różni się od zwykłego k-means?
K-means przypisuje każdy punkt do najbliższego z k niezależnych centroidów bez jakiejkolwiek relacji między nimi. Neurony w SOM znajdują się na stałej, ułożonej siatce, a trening aktualizuje sąsiadów siatki BMU (Minimum Distance Unit) oraz sam BMU, co wymusza podobieństwo reprezentowane przez sąsiednie neurony – tworząc porządek topologiczny, którego k-means nie posiada mechanizmu do jego wytworzenia.
Dlaczego promień sąsiedztwa musi się zmniejszać podczas treningu?
Duży promień na początku pozwala mapie szybko ustalić ogólny, gróbny porządek, ponieważ silne aktualizacje przyciągają szeroki obszar siatki. Zmniejszanie go później pozwala mapie wypełnić szczegółowe, lokalne detale bez tego, że szerokie aktualizacje zniwelują już utworzony porządek.
Co się stanie, jeśli współczynnik uczenia lub promień sąsiedztwa zmniejszają się zbyt szybko?
Mapa może utknąć w zakrzywionym topologicznie stanie, gdzie układ kolorów (lub jakiejkolwiek danej do mapowania) zaginął na siebie zamiast płynnie zmieniać się na całej siatce, ponieważ neurony nie miały wystarczająco dużo czasu pod szerokim promieniem sąsiedztwa, aby ustalić spójny, globalny porządek przed tym, że aktualizacje stały się zbyt lokalne, by je naprawić.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Self-Organising Map i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Self-Organising Map