Sieci Kohonena

Sieci Kohonena realizują uczenie sieci neuropodobnych w trybie bez nauczyciela (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. Uczą się one rozpoznawania skupień występujących w zbiorze nieskategoryzowanych (nie podzielonych na żadne klasy) danych uczących. Z góry nie wiadomo, ani ile takich skupień będzie, ani czym się od siebie różnią, ani jakie są kryteria przynależności tego czy innego obiektu do określonego skupienia — wszystko to sieć musi "odkryć" sama. 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. W związku z brakiem zastosowania w takiej sieci wzorcowych danych wyjściowych proces samouczenia sieci Kohonena prowadzić będziemy na podstawie danych uczących, które zawierają same tylko wartości zmiennych wejściowych. 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ą. W sieci Kohonena przebiega dość specyficzny proces samouczenia nazywany często samoorganizacją. W wyniku tej samoorganizacji zbliżone do siebie skupienia danych reprezentowane są (po zakończeniu procesu nauki) przez położone blisko siebie neurony warstwy wyjściowej, co powoduje, że neurony te tworzą mapę topologiczną danych wejściowych. Ta właściwość sieci Kohonena bywa bardzo użyteczna przy analizie i ocenie tych danych (wykazali to m.in. Haykin w 1994 r. i L.V. Fausett oraz D. Patterson w 1996 r.).

Sieci Kohonena są wykorzystywane zupełnie inaczej niż inne rodzaje sieci, gdyż głównym wynikiem ich pracy jest utworzona przez nie mapa topologiczna danych wejściowych. Sieci Kohonena zawsze posiadają dwie warstwy: warstwę wejściową i warstwę wyjściową, stanowiącą (po wytrenowaniu sieci) właśnie wspomnianą mapę topologiczną. Cechą wyróżniającą warstwę wyjściową sieci Kohonena jest to, że jest ona dwuwymiarowa (tzn. zbiorowość neuronów wyjściowych ułożona jest w regularną siatkę, która rozciąga się w dwóch kierunkach). Neurony warstwy nie są ze sobą połączone, natomiast dla wygody interpretacji wyników działania sieci wyobrażamy sobie, że neurony te są uszeregowane w kolumny, a kolumny, ułożone jedna obok drugiej, tworzą regularną siatkę; neurony są jak gdyby węzłami tej siatki. Zaproponowany przez fińskiego naukowca T. Kohonena algorytm uczenia tak modyfikuje współczynniki wagowe w neuronach znajdujących się w warstwie stanowiącej mapę topologiczną, aby zbliżyć je do centrów skupień występujących w danych uczących. Podczas uczenia algorytm Kohonena najpierw wyznacza neuron mający współczynniki wagowe najbardziej zbliżone do aktualnie przetwarzanego przypadku uczącego. Neuron ten nazywany jest "zwycięzcą" i proces uczenia koncentruje się na takiej zmianie jego wartości wagowych by wzmocnić i utrwalić skłonność, dzięki której neuron ten stał się "zwycięzcą". Jednak w sieci Kohonena nie sam tylko zwycięski neuron będzie poddawany uczeniu — jest on poddawany uczeniu wraz ze swoim sąsiedztwem. Każdy neuron wchodzący w skład sąsiedztwa zwycięskiego neuronu jest przy tym modyfikowany w taki sposób, aby jego zestaw wag upodobnić do przypadku uczącego, który wyłonił "zwycięzcę". Warto podkreślić, że w wielu przypadkach może to oznaczać całkowitą zmianę wag neuronu należącego do sąsiedztwa, gdyż jego początkowy zestaw wag mógł być całkowicie odmienny od rozważanego wejściowego sygnału neuron — "zwycięzca" ("zwycięzca" musiał cechować się znacznym podobieństwem do wejściowego sygnału, bo dzięki temu został zwycięzcą, ale jego sąsiedzi — bynajmniej!). Sąsiedztwo odgrywa zasadniczą rolę w uczeniu sieci Kohonena. Poprzez dokonywanie zmian, nie tylko w zwycięskim neuronie ale również w neuronach otaczających zwycięzcę, metoda uczenia Kohonena przypisuje powiązane ze sobą dane do sąsiadujących obszarów mapy topologicznej. W trakcie uczenia wielkość sąsiedztwa jest progresywnie zmniejszana, co powoduje, że zasięg wpływu zwycięskich neuronów na proces uczenia ich sąsiadów powoli zanika i pod koniec uczenia każdy neuron jest w istocie uczony niezależnie. Podobnie dzieje się ze współczynnikiem uczenia — na początku jest duży, co wymusza duże zmiany w położeniu wektora wag "zwycięzcy" i jego sąsiadów, potem jednak maleje i zmiany stają się subtelne, wręcz "kosmetyczne".

W wyniku tych procesów we wczesnych etapach procesu uczenia tworzona jest mapa o charakterze przybliżonym (posiada ona zwykle duże skupiska neuronów, które odpowiadają na podobne przypadki), natomiast precyzyjne detale zostają uwzględniane i odwzorowane w sieci później, gdy już proces uczenia jest na ukończeniu. W tych późniejszych etapach procesu uczenia pojedyncze neurony wchodzące w skład skupiska zostają precyzyjnie "rozprowadzone", uwzględniając różne formy i odmiany powiązanych ze sobą przypadków. Dzięki temu nawet mały stopień zróżnicowania poszczególnych "podgrup" wejściowych danych wchodzących w skład rozpoznawanej grupy może zostać uwzględniony w formie oddzielnych (chociaż sąsiadujących ze sobą) neuronów sieci, będących ich detektorami. Warto dodać, że w sieciach Kohonena wykorzystuje się całkowicie odmienną definicję błędu niż ta, która była prezentowana w trakcie działania metody wstecznej propagacji błędów. W metodzie wstecznej propagacji błędów standardową funkcją błędu jest suma kwadratów różnic pomiędzy wartościami obliczanymi przez sieć a wartościami podawanymi przez nauczyciela: można powiedzieć, że w tym przypadku jest to miara, która służy do pomiaru odległości od wektora wyjściowego sieci do wektora zadanych wartości wyjściowych. Wskutek takiej interpretacji przebieg zmian wartości błędu prezentowany przez wiele programów modelujących sieci na odpowiednim wykresie jest rzeczywiście miarą błędów produkowanych przez sieć sygnałów wyjściowych. Miara ta liczona jest z reguły dla całego zbioru uczącego, jest więc pewną średnią miarą błędu dla sieci. Przy uczeniu sieci Kohonena zwyczajowo przyjmowaną funkcją błędu funkcja błędu jest odległość wektora wag zwycięskiego neuronu od wektora wejściowego. W rezultacie takiego założenia wartość przedstawiana dla sieci Kohonena na wykresie błędu jest miarą rozbieżności pomiędzy wartością sygnałów wejściowych do sieci a wartościami najlepszych wzorców (prototypów) tych sygnałów, przechowywanych w postaci wektorów wag w poszczególnych neuronach sieci. Ponieważ pokazywana na wykresie wartość jest wartością średnią tak zdefiniowanego błędu, liczoną dla całego zbioru uczącego, nadal w dość rozsądny sposób można ją interpretować: po prostu jest to miara niedoskonałości działania sieci i gdy maleje, to wskazuje to na postęp procesu uczenia. Takie rozumowanie jest w pełni uprawnione, gdyż malejąca średnia rozbieżność pomiędzy wektorem wejściowym a najlepszym wzorcem w sieci dowodzi polepszającego się rozmieszczenia wzorców.

Nie można zapominać, że mimo podobnego zastosowania (do oceny i śledzenia postępu procesu uczenia) — tylko w przypadku sieci MLP lub RBF podawany błąd może być traktowany jako miara stopnia spełniania przez sieć postawionego jej zadania. W przypadku sieci Kohonena ten sam wykres błędu pokazuje polepszające dopasowywanie się sieci do danych wejściowych — co jednak wcale nie musi być tożsame z coraz lepszym wykonywaniem przez sieć powierzonego jej zadania. Jest to swoista cena, jaką trzeba zapłacić za fakt, że decydując się na wykorzystanie techniki uczenia bez nauczyciela nie podajemy sieci wyraźnych wskazówek czego naprawdę od niej oczekujemy. W wyniku tego samoistny proces doskonalenia działania sieci może niekiedy prowadzić "na manowce". W sieci Kohonena możliwe jest określenie wartości początkowej i końcowej dla współczynnika uczenia oraz dla rozmiaru sąsiedztwa. Rozmiar albo zasięg sąsiedztwa jest parametrem określającym jak dużo neuronów sieci podlega uczeniu. Przy zasięgu wynoszącym 0 uczony jest tylko neuron "zwycięski", przy wartości 1 jego najbliższe otoczenie, przy wartości 2 nieco dalsze otoczenie itp. Ustalając te wartości można decydować o tym, czy zmiany zachodzące w trakcie procesu samouczenia sieci będą szybkie i radykalne, czy też polegać będą na delikatnym i subtelnym "dostrajaniu" jej parametrów do drobnych szczegółów rozwiązywanego zadania. Uczenie Kohonena jest często wyraźnie dzielone na fazę wstępną (porządkowanie sieci) oraz fazę, w której odbywa się precyzyjne modyfikowanie parametrów neuronów (dostrajanie sieci). W pierwszej fazie zasięg sąsiedztwa współczynnik uczenia i zasięg sąsiedztwa powinny być duże, natomiast w drugiej parametry te podlegają radykalnemu zmniejszeniu, czasem w przypadku zasięgu sąsiedztwa do nawet zera.

Kiedy sieć Kohonena będzie już nauczona, można eksperymentalnie sprawdzić, gdzie tworzą się skupienia i co one reprezentują, podając na wejście sieci obiekty o znanej (ustalonej) interpretacji. Rozważymy teraz sposoby analizy i interpretacji działania nauczonej sieci Kohonena. Do jakościowej oceny wyniku uczenia sieci Kohonena szczególnie przydatna jest statystyka pokazująca częstość zwycięstw poszczególnych neuronów sieci. Statystyka ta pozwala na obserwowanie, gdzie na mapie topologicznej tworzą się skupienia odpowiadające największej częstości występowania wejściowych obiektów. W trakcie uruchomienia sieci przeprowadza się zliczanie, ile razy każdy z neuronów zwycięża (tzn. ile razy jest najbliższy prezentowanym przypadkom uczącym, testowym lub walidacyjnym). Wysokie częstości zwycięstw wskazują na centra skupień na mapie topologicznej. Z kolei neurony z zerową częstością zwycięstw świadczą o niecałkowitym powodzeniu uczenia — mamy prawo tak sądzić, bowiem przy zerowej częstości zwycięstw pewnych neuronów nie są one wcale wykorzystywane, a to oznacza, że sieć nie wykorzystuje wszystkich dostępnych w niej zasobów. Jednak niekiedy liczba przypadków uczących jest zbyt mała, żeby "wysycić" możliwości sieci, co może powodować, że wystąpienie pewnych niewykorzystanych neuronów będzie nieuchronne i nie należy się tym sugerować. Korzystne jest, jeśli wyświetlane są statystyki częstości zwycięstw oddzielnie dla zbioru uczącego i oddzielnie dla zbioru walidacyjnego. Gdy podział na skupienia, wykryty w czasie testowania działania sieci Kohonena, jest istotnie różny w obu zbiorach, to wskazuje to, że sieć nie nauczyła się istotnych cech pozwalających na grupowanie informacji, w wyniku czego nie potrafi dobrze uogólniać uzyskanej umiejętności klasyfikacji danych.

mapa topologiczna Przy ostatecznej ocenie działania sieci Kohonena bardzo cennym sposobem prezentacji wyników jest mapa topologiczna. Przedstawia ona w sposób graficzny warstwę wyjściową sieci, najczęściej opartą na regularnej siatce neuronów rozłożonych równomiernie w dwóch wymiarach (chociaż bywają także przypadki sensownego wykorzystania sieci w układzie jednowymiarowym lub trójwymiarowym przy wykorzystaniu aksonometrii). Działanie mapy topologicznej jest następujące. W trakcie prezentacji konkretnego przypadku wejściowego każdy neuron informuje o stopniu swojego podobieństwa do wprowadzonego wektora danych. Informacja ta wyrażana jest graficznie, na przykład przy pomocy wypełnionego czarnego kwadratu. Na tego typu mapie (analogicznej do pewnego stopnia do tzw. diagramów Hintona, używanych często w sieciach neuronowych do wizualizacji wartości wag) większy kwadrat reprezentuje większe podobieństwo, zaś neuron zwycięski jest wyróżniony poprzez otoczenie go prostokątną ramką.

Jeśli przetestujemy w opisany wyżej sposób różne przypadki wejściowe, to na podstawie sposobu aktywacji neuronów powinniśmy zaobserwować grupy powiązanych ze sobą neuronów, które mocniej odpowiadają na podobne przypadki wejściowe. Po stwierdzeniu tego można rozpocząć nadawanie etykiet neuronom w celu identyfikacji ich znaczenia. Można tego dokonać na podstawie interpretacji danych występujących w poszczególnych skupieniach rozpoznawanych przez poszczególne neurony. Jeśli np. sygnały wejściowe wprowadzane do sieci odpowiadają różnym zestawom objawów (symptomów) rejestrowanych u pacjentów, to wówczas po wytrenowaniu sieci Kohonena może się ujawnić grupa neuronów sygnalizujących np. pacjentów cierpiących na zapalenie wątroby, osobno będzie grupa takich, u których choroba ta jest dodatkowo komplikowana przez cukrzycę, zaś jeszcze osobno może ujawnić się grupa, u której przyczyną choroby nie jest zapalenie, tylko nowotwór. Może się zdarzyć, że ten sam neuron zwycięży zarówno dla przypadku zapalenia jak również dla przypadku nowotworu (te dwa zbiory nie są całkowicie rozdzielne nawet w oparciu o wiele symptomów); nadaje wówczas takiemu neuronowi etykietę "?" (nieokreślony). Po zakończeniu pracy ze wszystkimi znanymi przypadkami, można także wszystkim pozostałym neuronom (które nigdy nie były "zwycięzcami") nadać etykietę "?" (interpretując ją jako niewykorzystany). Inny sposób postępowania z "niezidentyfikowanymi" neuronami może polegać na ponownym uruchomieniu sieci, sprawdzeniu na jaki typ danych te niewykorzystane neurony reagują najmocniej i nadaniu im takiej właśnie etykiety. Kiedy już wszystkim neuronom zostanie nadana etykiety, można skorzystać z mapy topologicznej — aby sprawdzić, jak dobrze sieć Kohonena klasyfikuje zbiór walidacyjny. Jeśli sieć Kohonena jest stosowana do rozwiązania jakiegoś rzeczywistego problemu, to zwykle z góry nie wiadomo, jakie skupienia występują w danych. W takim przypadku należy po prostu nadać skupieniom (zidentyfikowanym przy użyciu wyżej opisanej procedury) jakieś umowne nazwy symboliczne (np. "Klasa 1", "Klasa 2"), a następnie analizując dane próbować określać, jakie znaczenie może zostać przypisane poszczególnym skupieniom.

Copyright © 1997-2024 Wydawnictwo Naukowe PWN SA
infolinia: 0 801 33 33 88