Sztuczna inteligencja i systemy ekspertowe
Wykład 7-8
Sztuczne sieci neuronowe
Architektura sieci rekurencyjnej
Sieci rekurencyjne różnią się od sieci jednokierunkowych występowaniem sprzężenia zwrotnego między warstwami wyjściowymi i wejściowymi. Można tu wyróżnić sieci jednowarstwowe (rys.) mające jedynie jedną warstwę neuronów wyjściowych oraz sieci mające dodatkową warstwę ukrytą - sieci wielowarstwowe rekurencyjne (rys.).
Rys. Sieć rekurencyjna jednowarstwowa
Proces ustalania się sygnałów wyjściowych sieci rekurencyjnych jest procesem dynamicznym ze względu na występowanie jednostkowych operatorów opóźnienia. Biorąc pod uwagę nieliniowość funkcji aktywacji neuronów jest to dynamika nieliniowa, stanowiąca istotną cechę tego rodzaju sieci.
Rys. Sieć rekurencyjna z warstwą ukrytą
Uczenie sieci neuronowych
Pod pojęciem uczenia sieci rozumiemy wymuszenie na niej określonej reakcji na zadane sygnały wejściowe. Uczenie jest konieczne tam, gdzie brak jest informacji doświadczalnych o powiązaniu wejścia z wyjściem lub jest ona niekompletna, co uniemożliwia szczegółowe zaprojektowanie sieci. Uczenie może być realizowane krok po kroku lub poprzez pojedynczy zapis. Istotnym czynnikiem przy uczeniu jest wybór odpowiedniej strategii (metody) uczenia. Wyróżnić możemy dwa podstawowe podejścia: uczenie z nauczycielem (supervised learning) i uczenie bez nauczyciela (unsupervised learning).
Uczenie sieci neuronowych z nauczycielem
W trybie uczenia z nauczycielem (nazywanym również uczeniem pod nadzorem) oprócz danych wejściowych posiadamy również sygnały wyjściowe, jakie chcemy uzyskać. Dobór wag musi być przeprowadzony w taki sposób, aby aktualny sygnał wyjściowy y był najbliższy wartości zadanej d.
Rys. Uczenie z nauczycielem
Inaczej mówiąc, celem uczenia pod nadzorem jest minimalizacja odpowiednio zdefiniowanej funkcji celu, która umożliwi dopasowanie wartości aktualnych odpowiedzi neuronów wyjściowych do wartości żądanych.
Reguła delta perceptronu Reguła gwiazdy wyjść
Ogólny schemat procesu uczenia pod nadzorem zarówno typu gradientowego jak i bezgradientowego może być przedstawiony w postaci systemu adaptacyjnego (rys.), w którym adaptacja wag sieci odbywa się pod wpływem błędu e(n), określonego dla każdej pary uczącej. Istotną cechą tego procesu jest istnienie sprzężenia zwrotnego, umożliwiającego korelację wartości wag sieci, prowadzącą do minimalizacji różnic między aktualną odpowiedzią układu wyrażoną przez wektor y, a wartościami żądanymi reprezentowanymi przez wektor d.
Rys. Siec neuronowa jako układ adaptacyjny
Reguła delta i perceptronu
Reguła delta
Najpopularniejszą i najczęściej stosowaną metodą uczenia z nauczycielem jest metoda największego spadku. Z regułą delta mamy do czynienia, gdy uaktualnianie wag następuje każdorazowo po prezentacji jednej pary uczącej. Gdy uaktualnianie zachodzi po prezentacji wszystkich par uczących mamy wtedy do czynienia z tzw. skumulowaną regułą delta.
Reguła delta przeznaczona jest dla neuronów z ciągłymi funkcjami aktywacji i stanowi odpowiednik reguły perceptronowej. Nazywa jest ona również ciągłą regułą perceptronową. Metoda ta łatwo daje się wprowadzić jako wynik minimalizacji kwadratowego kryterium błędu. Jej uogólnioną wersję można wykorzystać w sieciach wielowarstwowych.
Reguła perceptronu
W przypadku skokowych funkcji aktywacji metody gradientowe stają się nieskuteczne ze względu na niespełnienie warunku ciągłości funkcji celu. Stosuje się wtedy metody bezgradientowe, z których najbardziej znane to reguła perceptronowa (rys.) i jej uogólnienie znane pod nazwą reguły Widrowa-Hoffa.
Rys. Reguła perceptronu
Dobór wag (uczenie) w regule perceptronu odbywa się w następującym cyklu:
Przy zadanych wstępnie wartościach wag wij prezentuje się na wejściu wektor uczący x i oblicza wartość sygnału wyjściowego yi. W wyniku porównania aktualnej wartości yi oraz wartości zadanej di dokonuje się aktualizacji wag przy wykorzystaniu korekcji wag ze wzoru
i zgodnie z założeniami:
- yi=di, wagi wij pozostają niezmienione
- yi=0, di=1, uaktualnianie wag odbywa się zgodnie ze wzorem wij(n+1)=wij(n)+xj
- yi=1, di=0, uaktualnianie wag opisane jest zależnością wij(n+1)=wij(n)-xj
Po uaktualnieniu wag następuje prezentacja nowego wektora uczącego i skojarzonej z nią wartości zadanej di, a następnie ponownie aktualizuje się wagi. Proces powtarzany jest na wszystkich próbkach uczących wielokrotnie, aż uzyska się minimalizację różnic między wszystkimi wartościami wyjściowymi i odpowiadającymi jej wartościami zadanymi.
Cechą charakterystyczną zarówno reguły perceptronowej oraz uogólnionej reguły Widrowa-Hoffa jest wykorzystywanie w uczeniu jedynie informacji o aktualnej wartości sygnału wyjściowego neuronu i wartości żądanej.
Reguła gwiazdy wyjść
Kolejnym wariantem metody uczenia z nauczycielem jest reguła gwiazdy wyjść zilustrowana na rys. Używa się ją do uczenia powtarzających się, charakterystycznych właściwości relacji wejście-wyjście. Od sieci, mimo iż uczenie odbywa się z nauczycielem, oczekuje się dodatkowo zdolności wydobywania statystycznych własności sygnałów wejściowych i wyjściowych.
Rys. Reguła gwiazdy wyjść
Uczenie metodą gwiazdy wyjść prowadzi zwykle do wytworzenia wymaganej reakcji na określony obraz wejściowy nawet wtedy, gdy korzysta się z rzeczywistego, a nie z pożądanego sygnału wyjściowego.
W tej metodzie korekcję wag oblicza się jako
gdzie wj to wektor wag który rozumie się jako [w1j, w2j,., wpj]T,
jest niewielką dobieraną liczbą która maleje w trakcie uczenia.
W odróżnieniu od pozostałych metod uczenia wagi dostrajane są w połączeniach "rozbiegających się" z wyjściem neuronu
Uczenie sieci neuronowych z krytykiem
Uczenie z krytykiem jest odmianą uczenia pod nadzorem, w którym nie występuje informacja o wartościach pożądanych na wyjściu systemu, a jedynie informacja czy podjęta przez system akcja (zmiana wartości wag) daje wyniki pozytywne w sensie pożądanego zachowania systemu, czy negatywne.
Jeśli działania podjęte przez układ uczący dają wyniki pozytywny, to następuje wzmocnienie tendencji do właściwego zachowania się systemu w podobnych sytuacjach w przyszłości. W przeciwnym wypadku, jeśli wynik jest negatywny, następuje osłabienie tendencji takiego działania systemu.
Rys. Schemat uczenia z krytykiem
Typowy schemat blokowy adaptacyjnego układu z krytykiem przedstawiono na rys. Układ uczący współpracuje ze środowiskiem za pośrednictwem krytyka, który na podstawie aktualnego stanu środowiska i predykcji co do jego przyszłych zmian wypracowanej na podstawie aktualnej wiedzy przekazuje sygnał sterujący ř umożliwiający podjęcie akcji a, wpływającej na stan środowiska x. Zarówno x jak i a oznaczają wektory o wymiarach zależnych od specyfikacji rozwiązywanego problemu. Podjęta przez układ uczący w chwili n akcji a(n) wpływa na środowisko zmieniającego stan z x(n) na x(n+1). Po zmianie stanu środowiska układ uczący otrzymuje od krytyka sygnał sterujący ř(n), zależny w określony sposób od poprzedniego stanu x(n) oraz podjętej akcji a, której optymalność będzie oceniana z punktu widzenia zmian zachodzących w środowisku. (Osowski 1996)
Uczenie z krytykiem jest znacznie bardziej uniwersalne w zastosowaniu, gdyż nie wymaga obecności sygnałów żądanych na wyjściu systemu. Jednocześnie jego realizacja praktyczna jest bardziej skomplikowana.
Uczenie sieci neuronowych bez nauczyciela
Podczas uczenia bez nauczyciela pożądana odpowiedz nie jest znana. Ze względu na brak informacji o poprawności, czy niepoprawności odpowiedzi sieć musi się uczyć poprzez analizę reakcji na pobudzenia, o których naturze wie mało lub nic. W trakcie analizy parametry sieci podlegają zmianom, co nazywamy samoorganizacją.
Rys. Uczenie bez nauczycielem
Uczenie typu Hebba Uczenie typu konkurencyjnego
Uczenie typu Hebba
W modelu Hebba wykorzystuje się obserwacje neurobiologiczne, "jeżeli akson komórki A bierze systematycznie udział w pobudzeniu komórki B powodującym jej aktywację, to wywołuje to zmianę metaboliczną w jednej lub obu komórkach, prowadzącą do wzrostu skuteczności pobudzania B przez A" (Hebb 1949).
Zgodnie z tym waga powiązań między dwoma neuronami wzrasta przy jednoczesnym stanie pobudzenia obu neuronów, w przeciwnym wypadku maleje.
Reguła Hebba przyjmuje, że sygnałem uczącym jest sygnał wyjściowy neuronu yi. W klasycznym ujęciu zmiana wartości wag w kolejnych cyklach uczących ma postać
gdzie
Reguła Hebba może być stosowana do różnego typu struktur sieci neuronowych i różnych funkcji aktywacji neuronu.
Przy wielokrotnej prezentacji takiego samego wymuszenia xj obserwuje się wykładniczy wzrost wag, czego efektem jest nasycenie neuronu. Aby uniknąć takiej niepożądanej sytuacji modyfikuje się tą regułę przez wprowadzenie współczynnika zapomnienia.
Algorytm uczący Hebba można zaliczyć do uczenia typu korelacyjnego, w którym siła połączenia międzyneuronowego wzrasta przy istnieniu korelacji między sygnałami presynaptycznym i postsynaptycznym neuronu.
Uczenie typu konkurencyjnego
W uczeniu typu konkurencyjnego neurony współzawodniczą ze sobą, aby stać się aktywnymi (pobudzonymi). W odróżnieniu od uczenia Hebba, gdzie dowolna liczba neuronów mogła być aktywna, w uczeniu konkurencyjnym tylko jeden neuron może być aktywny, a reszta pozostaje w stanie spoczynku.
Reguła WTA (Winner Takes All) - zwycięzca bierze wszystko
Rys. Uczenie według reguły WTA
W metodzie WTA grupa neuronów współzawodniczących otrzymuje te same sygnały wejściowe xj. W zależności od aktualnych wartości wag sygnały wyjściowe neuronów yj różnią się między sobą. W wyniku porównania tych sygnałów zwycięża ten neuron, którego wartość yj jest największa (jego wektor wag jest najbliższy aktualnemu wektorowi uczącemu x). Neuron zwycięzca przyjmuje wartość 1, a pozostałe - przegrywające 0.
Zwykle można zauważyć, że uczenie to odbywa się z zastosowaniem znormalizowanych wektorów wejściowych x, jak również wag. Neuron zwycięzca przyjmuje stan 1, co umożliwia mu aktualizację wag wij dochodzących do niego według wzoru
Tak następuje adaptacja jego wag do danego wektora x. Neurony przegrywające mają na wyjściu przypisany stan 0 i zablokowany proces aktualizacji ich wag.
Przy podawaniu wielu wektorów zbliżonych do siebie będzie zwyciężał ten sam neuron, pozostałe neurony dopiero w wyniku zwycięstwa przy następnej prezentacji wektora wejściowego będą miały szansę na aktualizację wag i uczenie.
W efekcie takiego współzawodnictwa następuje samoorganizacja procesu uczenia. Neurony dopasowują swoje wagi w ten sposób, że przy prezentacji grup wektorów wejściowych zbliżonych do siebie zwycięża zawsze ten sam neuron. W trybie odtworzeniowym, w którym przy ustalonych wartościach wag podaje się na wejście sieci sygnały testujące, neuron przez zwycięstwo we współzawodnictwie rozpoznaje swoją kategorię (zastosowania - klasyfikacja wektorów).
Poważnym problemem w uczeniu WTA jest występowanie martwych neuronów, które raz zainicjowane nigdy nie zwyciężyły w konkurencji. Występowanie ich zmniejsza efektywną liczbę jednostek biorących udział w uczeniu, a co za tym idzie zwiększa się globalny błąd odwzorowania danych. Aby taka sytuacja nie miała miejsca do uczenia wprowadza się próg zwycięstw, który uwzględnia liczbę zwycięstw z przeszłości poszczególnych neuronów, po przekroczeniu którego neuron zostaje przymusowo pauzowany, dając szanse innym neuronom na zwycięstwo.
Reguła WTM (Winner Takes Most) - zwycięzca bierze większość
Jest to odmiana uczenia konkurencyjnego, w którym neuron wygrywający konkurencję uaktywnia się maksymalnie przyjmując wartość yi=1 i umożliwia częściowe uaktualnianie innych neuronów z sąsiedztwa. Stopień uaktywniania neuronów zależy od odległości ich wektorów wagowych od wag neuronu wygrywającego.
Jeżeli obowiązuje zasada WTM, to zmianie ulegają nie tylko wagi neuronu zwycięzcy, ale również jego sąsiadów w zależności od stopnia sąsiedztwa. Sąsiedztwo neuronu Sw określa się zbiorem, który jest wyznaczony na podstawie przyjętej (a tym samym znanej) funkcji sąsiedztwa. Funkcja sąsiedztwa może wyrażać również stopień tego sąsiedztwa, czyli sąsiedztwo może być bliższe i dalsze.
gdzie Sw oznacza stopień sąsiedztwa. Im bliżej neuronu zwycięskiego neurony leżą tym w większym stopniu są aktualizowane.
Sieci radialne
Standardowym zadaniem sieci wielowarstwowych jest przybliżenie funkcji wielu zmiennych, tak aby odwzorować zbiór zmiennych wejściowych na zbiór zmiennych wyjściowych (Hornik 1989). W tym przypadku aproksymacja jest globalna ponieważ dokonywana jest dla wielu neuronów naraz.
Odmiennym sposobem odwzorowania jest odwzorowanie zbioru wejściowego w wyjściowy polegające na dopasowaniu wielu pojedynczych funkcji aproksymacji do wartości zadanych. W takim przypadku odwzorowanie pełnego zbioru danych jest sumą odwzorowań lokalnych. Zachodzi tutaj aproksymacja lokalna, ponieważ oddziaływanie pojedynczych funkcji bazowych obserwowane jest tylko w wąskim obszarze przestrzenni danych.
W sieciach o radialnej funkcji bazowej neuron ukryty realizuje funkcje zmieniającą się radialnie wokół wybranego centrum c przyjmując wartości niezerowe tylko w otoczeniu tego centrum. Taką funkcję radialną oznaczamy
Neuron ma za zadanie odwzorować radialną przestrzeń wokół jednego zadanego punktu lub grupy punktów stanowiących klaster. Superpozycja sygnałów od wszystkich neuronów ukrytych, dokonywana przez neuron wyjściowy, pozwala uzyskać odwzorowanie całej przestrzeni wielowymiarowej.
Sieci radialne są uzupełnieniem sieci sigmoidalnych. Neurony sigmoidalne separują przestrzeń hiperpłaszczyzny dwóch klas zgodnie z warunkami:
Sieci radialne umożliwiają wystąpienie symetrii kołowej wokół neuronu, co w niektórych przypadkach może zasadniczo zredukować liczbę neuronów potrzebną sieci do poprawnego działania.
W sieciach radialnych nie występuje potrzeba stosowania wielu warstw ukrytych. Typowa sieć radialna składa się z warstwy wejściowej, ukrytej z neuronami radialnymi i wyjściowej, w której zadaniem neuronu jest tylko sumowanie wagowe sygnałów wychodzących z neuronów ukrytych.
Podstawowe zależności
Podstawą matematyczną działania sieci radialnych jest twierdzenie Covera (Cover 1965) o separowalności wzorców, stwierdzające że złożony problem klasyfikacyjny zrzutowany nieliniowo w przestrzeń wielowymiarową ma większe prawdopodobieństwo być liniowo separowany niż przy rzutowaniu w przestrzeń o mniejszej liczbie wymiarów.
Najprostsza sieci radialna działa na zasadzie wielowymiarowej interpolacji, która odwzorowuje p rożnych wektorów wejściowych xi (i=1,2...p) z przestrzeni wejściowej N-wymiarowej w zbiór p liczb rzeczywistych di (i=1,2...p). Odpowiada to przyjęciu p neuronów radialnych w warstwie ukrytej i określenie funkcji odwzorowania F(x), dla której spełnione są warunki interpolacji
Przyjęcie p neuronów w warstwie ukrytej połączonych wagami wi z liniowymi neuronami wyjściowymi tworzy sygnały wyjściowe jako sumy wagowej wartości poszczególnych funkcji bazowych. Jeśli przyjmiemy sieć o jednym wyjściu i p parach uczących (xi,di), przy założeniu p centrów umieszczonych w kolejnych wektorach xi tzn. ci=xi otrzymujemy układ równań liniowych względem wag wi. Układ ten możemy zapisać w postaci macierzowej.
gdzie
jest funkcją radialną w centrum xi przy wektorze wymuszającym xj.
Niestety przy zastosowaniu dużej liczby wzorców uczących i równiej im liczbie funkcji radialnych nie jest możliwy proces modelowania równaniem, ponieważ złożoność obliczeniowa była byłaby zbyt duża oraz wystąpi nadmiarowość wag. Dzieje się tak, ponieważ dla każdego z p wektorów wejściowych sieć stworzyłaby jeden neuron. Dlatego też należy przeprowadzić redukcje liczby funkcji bazowych tak, aby znaleźć optymalne, przybliżone rozwiązanie w przestrzeni o mniejszym wymiarze.
Przy ograniczeniu się do K funkcji bazowych rozwiązanie aproksymujące może wyglądać następująco
gdzie Ki (i=1,2...,K) jest zbiorem centrów, które należy wyznaczyć. W szczególnym przypadku, tzn. jeśli nie dokonujemy redukcji K=p otrzymamy rozwiązanie dokładne o ci=xi.
Zadanie aproksymacji polega na dobraniu odpowiedniej liczby parametrów funkcji radialnych (||x - ci||) i takim doborze wag wi (i=1,2...,K) aby rozwiązanie funkcji F(x) najlepiej przybliżało rozwiązanie. Problem ten sprowadza się do minimalizacji funkcji celu, która przy zastosowaniu normy euklidesowej wyraża się równaniem
gdzie K - liczba neuronów radialnych, p - liczba par uczących (xi , di), xi jest wektorem wejściowym, di - wielkość zadana. Przez d=[d1, d2,...,dp]T oznaczono wektor wielkości zadanych, przez w=[w1,w2,...,wK]T wektor wag, przez G macierz radialną zwaną również macierzą Greena (Haykin 1994)
Ograniczając liczbę funkcji bazowych do K, macierz G jest macierzą prostokątną. Przy znanych parametrach funkcji radialnych, optymalizacja sprowadza się do rozwiązania układu równań liniowych względem wag Gw=d. Przy macierzy prostokątnej G, wektor wag w wyznacza się stosując pseudoinwersję macierzy G. Zakładamy że G+ = (GTG)-1GT, więc w = G+d
Najczęściej używaną postacią funkcji radialnej jest funkcja Gaussa więc,
gdzie
- parametr decydujący o szerokości funkcji, ci - centrum funkcji
Jeśli założymy, że funkcje bazowe w macierzy Greena uzależnione są od normy euklidesowej wektora ||x - ti||, okazuje się, że funkcja wielowymiarowa może mieć różną skalę w każdej osi. Wprowadzono więc współczynniki wagowe w postaci macierzy Q uściślając normę euklidesową
Macierz skalująca przy N-wymiarowym wektorze ma postać
Oznaczając iloczyn macierzy QTQ jako macierz korelacji C, otrzymuje się w ogólnym przypadku
Jeżeli macierz skalująca Q jest diagonalna, otrzymujemy,
co oznacza, że normę skalowaną wektora x oblicza się według standardowego wzoru Euklidesa, przy uwzględnieniu różnej skali dla każdej zmiennej xi. Przy założeniu Q=1, norma wagowa Euklidesa sprowadza się do normy klasycznej (nieskalowalnej)
W przypadku Gaussowskiej funkcji radialnej ze skalowaną macierzą wag Qizwiązaną z i-tą funkcją bazową otrzymuje się uogólnioną postać funkcji Gaussa.
Uzyskane rozwiązanie wyrażające funkcję aproksymującą w przestrzeni wielowymiarowej jako sumę wagową lokalnych funkcji bazowych radialnych może być zinterpretowane w postaci sieci neuronowej z określonym .
Architektura sieci radialnej
Sieci radialne należą do tej samej grupy sieci trenowanych pod nadzorem co perceptron wielowarstwowy.
Rys. Siec radialna RBF
Architektura sieci radialnych ma strukturę analogiczną do struktury wielowarstwowej sieci sigmoidalenej o jednej warstwie ukrytej, która to reprezentuje odwzorowanie nieliniowe realizowane przez neurony o radialnej funkcji bazowej. Mimo podobieństw istnieją równie istotne różnice miedzy obu typami sieci. Sieć radialna ma strukturę ustaloną o jednej warstwie ukrytej i liniowym neuronie wyjściowym, którego rolą jest sumowanie wagowe sygnałów pochodzących z warstwy ukrytej. Natomiast sieć sigmoidalna może mieć różną liczbę warstw, a neurony wyjściowe mogą być zarówno liniowe jak i nieliniowe. Stosowanie funkcji radialnych wprowadza znaczne zróżnicowanie w doborze ich kształtu - dla każdego neuronu ukrytego dobierane są inne ci oraz i. W przypadku sieci sigmoidalenej, stosuje się zwykle standardowe funkcje aktywacji o parametrze identycznym dla każdego neuronu. Argumentem funkcji radialnej jest euklidesowa odległość danej próbki x od centrum c, podczas gdy w sieci sigmoidalnej jest to iloczyn skalarny wektorów wTx.
Sieci te znalazły zastosowanie zarówno w rozwiązywaniu problemów klasyfikacyjnych, zadaniach aproksymacji funkcji wielu zmiennych, jak i zagadnieniach predykcji, więc w tym obszarze zastosowań, gdzie sieci sigmoidalne mają od lat ugruntowaną pozycję. Na ogół uważa się (Kosko, 1988), że sieci radialne nadają się do wykrywania uszkodzeń w różnego rodzaju systemach rozpoznawania wzorców itp.
Sieci samoorganizujące się na zasadzie współzawodnictwa
Po raz pierwszy opracowania na temat sieci samoorganizujących z konkurencją i sąsiedztwem pojawiły się w latach 70-tych za przyczyną opisów eksperymentów fińskiego badacza Kohonena. Stąd też tego typu sieci wraz z metodami uczenia nazywamy sieciami Kohonena.
W sieciach z uczeniem konkurencyjnym (uczeniem z rywalizacją, ang. compettive learning) po prezentacji wzorca wejściowego następuje określenie neuronu wygrywającego (ang. winner) i tylko ten neuron, ewentualnie grupa sąsiadujących z nim neuronów aktualizuje swoje wagi, tak by zbliżyć je do aktualnego wzorca. Ogólna idea wyboru neuronu polega na znalezieniu takiego neuronu, którego wektor wag jest najbardziej podobny, najbliższy pewnej miary podobieństwa, metryki, do prezentowanego wzorca wejściowego. Oczekuje się, że podobne wzorce wejściowe powinny wywoływać podobne odpowiedzi sieci.
Decydujący wpływ na sposób funkcjonowania sieci samoorganizującej w trakcie procesu uczenia ma wybór miary odległości wygrywającego neuronu od wektora wejściowego. Każdy neuron, a dokładnie jego wagi, staje się pewnym wzorcem grupy bliskich sobie sygnałów wejściowych, przy czym neurony sąsiadujące ze sobą reprezentują bliskie sobie, podobne obszary przestrzeni wzorców wejściowych. W ten sposób sieć samoorganizująca tworzy topologiczny, zależny od przyjętej metryki, obraz przestrzeni sygnałów wejściowych przeniesiony na wewnętrzną strukturę topologiczną sieci.
Sieć Kohonena i jego algorytm
Sieć Kohonena została nazwana przez jego twórcę samoorganizującym odwzorowaniem (Self-Organizing Map - SOM) lub samoorganizującym odwzorowaniem cech (Self-Organizing Feature Map - SOFM) i jest najbardziej popularnym typem sieci określanej mianem samoorganizującej.
W sieci tej mamy do czynienia z uczeniem konkurencyjnym. Oznacza to,że użytkownik ma do dyspozycji jedynie wzorce wejściowe, nie posiada natomiast żadnych wzorców wyjścia. Zadaniem sieci w trakcie procesu uczenia jest wytworzenie takich wzorców. Sieć ma na celu utworzenie takiej struktury, która w najlepszy sposób będzie odwzorowywała zależności w przestrzeni wektorów wejściowych.
Sieć jest zwykle jednokierunkowa, w której 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. Wektor sygnałów wejściowych X jest przed procesem uczenia normalizowany ||X||=1, co można zapisać jako
Po pobudzeniu sieci wektorem wejściowym X podczas współzawodnictwa wygrywa neuron, którego wagi najmniej różnią się od odpowiednich składowych tego wektora. Zwycięzca, neuron w-ty spełnia relację
d(x, w) oznacza odległość w sensie wybranej metryki miedzy wektorem n a wektorem w. Wokół zwycięskiego neuronu przyjmuje się topologiczne sąsiedztwo Sw(n), którego promień maleje w czasie. Następnie neuron zwycięzca i neurony sąsiadujące podlegają adaptacji według reguły Kohonena (Kohonen, 1995)
i(n) jest współczynnikiem i-tego neuronu z sąsiedztwa Sw(n) w k-tej chwili. Wartość
(n) maleje wraz z odległością od zwycięzcy. Wagi neuronów spoza sąsiedztwa nie podlegają zmianom.
Podstawowy algortm uczenia Kohonena ma postać
we wzorze tym oddzielono współczynnik uczenia i każdego neuronu od jego odległości względem wektora x, uwzględnionej przez funkcję sąsiedztwa G(i,x).
W mapach odwzorowań topologicznych Kohonena (Kohonen, 1995) najpierw określany jest zwycięzca stosując euklidesową miarę odległości, a następnie wartość współczynnika adaptacji neuronów należących do sąsiedztwa zwycięzcy. W klasycznym algorytmie Kohonena funkcja G(i,x) jest definiowana następująco.
d(i,w) oznacza odległość euklidesową między neuronem zwycięzkim w i i-tym neuronem. Wspólczynnik jest promieniem sąsiedztwa o wartościach malejących z czasem. Ten typ to sąsiedztwo prostokątne. Drugim typem sąsiedztwa, z jakim można się spotkać w mapach Kohonena jest sąsiedztwo gaussowskie, gdzie
O stopniu adaptacji neuronów z sąsiedztwa zwycięzcy decyduje odległość euklidesowa oraz promień sąsiedztwa. Przy sąsiedztwie gausowskim stopień adaptacji jest zróznicowany w przeciwieństwie do sąsiedztwa prostokątnego, gdzie każdy neuron podlega adaptacji w tym samym stopniu i zależy od funkcji Gaussa. Sąsiedztwo gausowskie jest lepsze i prowadzi do lepszych rezultatów uczenia i lepszej organizacji sieci.
14