POLITECHNIKA ŚLSKA
w Gliwicach
WYDZIAA AUTOMATYKI, ELEKTRONIKI i INFORMATYKI
Instytut Elektroniki
Zespół Inżynierii Biomedycznej
LABORATORIUM
BIOCYBERNETYKI
Sieci Kohonena
Opracował: dr inż. Jacek Kawa
Gliwice 2010,2011
1 Cel ćwiczenia. 2
1 Cel ćwiczenia.
Celem ćwiczenia jest pokazanie sposobów uczenia i funkcjonowania sieci neuronowych Kohonena (tzw. sa-
moorganizujących się map).
2 Podstawy teoretyczne
Jedną z ważniejszych cech sieci neuronowych jest zdolność do adaptacji i samoregulacji.[2]. Będące tematem
dzisiejszych zajęć sieci neuronowe Kohonena (a właściwie samoorganizujące mapy) są przykładem sieci niewy-
magających nadzoru w czasie procesu uczenia. Są również przykładem sieci rywalizacyjnych takich, w których:
" podczas pobudzenia odpowiada tylko jeden, zwycięski neuron,
" a w czasie nauki modyfikacji ulegają wagi jedynie neuronu zwycięskiego lub również (jak w przypadku
sieci Kohonena właśnie) jego sąsiadów.
2.1 Praca sieci
Sieci Kohonena składają się z pewnej liczby neuronów (węzłów) z których każdy opisany jest przez pewien,
ustalony w wyniku uczenia wektor wag wi. Wektor sygnałów X(j) podanych na wejście sieci pobudza
wszystkie neurony i każdy z nich generuje pewną odpowiedz na to pobudzenie di = ||wi - Xj||. Odpowiedzi
te różnią się między sobą, co sprawia, że możliwa jest rywalizacja między neuronami. Zwycięzcą rywalizacji
jest ten pojedynczy neuron, dla którego wygenerowana odpowiedz była najmniejsza (jest to określane mianem
zasady zwycięzca bierze wszystko) i to ostatecznie jego odpowiedz jest traktowana jako odpowiedz całej sieci.
Matematycznie można to przedstawić w następujący sposób.
ł łł ł łł
1
wi x(j)
1
ł śł
2
wi ł x(j) śł
ł śł ł śł
2
wi = ł śł X(j) = ł śł (1)
ł ł ł ł
. . . . . .
n
wi
x(j)
n
Jeśli oba wektory są elementami tej samej przestrzeni, to można określić odległość między nimi.
di(Xj) = ||wi - X(j)|| (2)
Np. w przestrzeni Euklidesowej
1 2 n
di(Xj) = (wi - x(j))2 + (wi - x(j))2 + . . . + (wi - x(j))2 (3)
n
1 2
Oznacza to, że (jeśli oczywiście wagi neuronów były różne), istnieje pewien neuron k, dla którego obliczona
odległość była najmniejsza (tzn. najbliższy wektora wejściowego).
k = argmini (di) (4)
Neuron ten zwycięża rywalizację a jego numer k jest przedstawiany jako odpowiedz całej sieci. Alternatyw-
nie odpowiedz sieci może zawierać informacje o wszystkich neuronach {yi}. W takim przypadku tylko jedna
z wartości yi będzie równa 1.
1 ! di = minz dz
yi = (5)
0 w każdym innym przypadku
2.2 Interpretacja 3
Rys. 1: Przykład jednowymiarowej sieci Kohonena
2.2 Interpretacja
Założenie, że oba wektory: pobudzenia i wag, znajdują się w tej samej przestrzeni sugeruje sposób interpretacji
wyników. Sieć składa się jakby z pewnej liczby wzorcowych pobudzeń (określonych w procesie uczenia lub
narzuconych), a w czasie pracy sieci szukany jest wzorzec najbardziej podobny do podanego pobudzenia.
Np. jeśli wektor pobudzenia zawiera pewne parametry obiektu (np. wiek i wysokość), to każdy z neuronów
samoorganizującej mapy będzie sobą reprezentował pewną kombinację wieku i wysokości. Praca sieci polegać
będzie na znalezieniu tego neuronu, który będzie najbliższy równocześnie i wiekiem, i wysokością podanemu na
wejście wektorowi (pobudzeniu).
Warto przy tym zauważyć, że taki sposób rozumienia wag neuronów zastosowany do interpretacji wyników
uczenia sieci może być wykorzystany do procesu zwanego grupowaniem (co będzie tematem kolejnych zajęć).
2.3 Topologia sieci i pojęcie sąsiedztwo neuronów
Z punktu widzenia normalnej pracy sieci, jej topologia (układ) nie ma większego znaczenia: zawsze dla któregoś
neuronu odległość będzie najmniejsza, można ten neuron wykryć, a następnie analizując jego wagi zinterpretować
wynik.
Inaczej jest w przypadku procesu uczenia sieci. W procesie tym w sieciach Kohonena odstępuje się od zasady
znanej z sieci rywalizacyjnych (zwycięzca bierze wszystko) i pozwala korygować wagi nie tylko tego neuronu,
który zwyciężył rywalizację, ale również jego sąsiadów.
To, w jaki sposób zdefiniuje się owo sąsiedztwo wpływa na otrzymany w wyniku uczenia układ neuronów
można w uproszczeniu założyć, że sąsiadujące ze sobą neurony będą miały raczej podobne, niż znacząco
różne wagi. W praktyce przyspiesza to interpretację wyników, o czym będzie można przekonać się w czasie
laboratorium
Innymi słowy definiując sieć Kohonena musimy podać w jaki sposób neurony będą wzajemnie rozlokowane
w przestrzeni oraz w jaki sposób układać będą się ich relacje z sąsiadami: które neurony nazwiemy bezpośrednimi
sąsiadami, czy sąsiedztwo będzie bezwarunkowe (konkretny neuron wi albo jest, albo nie jest sąsiadem neuronu
wj), czy może będziemy raczej chcieli określić sąsiedztwo w bardziej złożony sposób (np. przypisując wagi).
Można to wszystko uporządkować traktując sieć jako pewien graf. Wierzchołkami tego grafu są neurony
połączone ze sobą w określony sposób gałęziami. Minimalną ilość przeskoków potrzebną, aby dostać się z neuronu
wi do wj można wtedy wykorzystać do analitycznego zdefiniowania sąsiedztwa.
Ponieważ zwykle sieć ma charakter regularny, można wyróżnić sieci jednowymiarowe jeden rząd neuronów
(Rys. 1), dwuwymiarowe kilka wierszy (Rys. 2), trójwymiarowe kilka wierszy i warstw itd. Charakter połączeń
może być np. prostokątny (Rys. 2a), heksagonalny (Rys. 2b) czy wręcz losowy (rysunku oszczędzono).
Uwaga: nie należy mylić połączeń między neuronami w sieci Kohonena z drogami przekazywania (propa-
gacji) sygnałów w sieci neuronowej.
2.4 Funkcje sąsiedztwa
Bazując na liczbie przeskoków w grafie (oznaczonej tutaj przez N) od dowolnego neuronu wi można w sposób
analityczny zdefiniować pojęcie sąsiedztwa. W szczególności:
" brak sąsiedztwa (przydatne, gdy sieć Kohonena ma zachowywać się jak klasyczna sieć rywalizacyjna)
1, N = 0
N (wi, N) = (6)
0, w przeciwnym razie
2.4 Funkcje sąsiedztwa 4
(a) układ prostokątny
(b) układ heksagonalny
Rys. 2: Przykład dwuwymiarowej sieci Kohonena
2.5 Uczenie sieci Kohonena 5
" najbliższy sąsiad (4-sąsiedztwo w sieci 2D, 6-sąsiedztwo w sieci 3D itd.)
1, N 1
N (wi, N) = (7)
0, w przeciwnym razie
" sąsiedztwo gaussowskie
N (wi, N) = e-N/p, p " R+ (8)
itd.
2.5 Uczenie sieci Kohonena
W początkowym stanie (przed rozpoczęciem nauki) sieć Kohonena cechuje się losowymi wartościami wag przy-
pisanych poszczególnym neuronom. Wybierany jest sposób organizacji (topologia) oraz sąsiedztwo.
Następnie na wejście sieci podawany jest ciąg uczący U =< X(1), X(2), X(3), . . . >
Każde pobudzenie X(j), zgodnie z zasadami pracy sieci Kohonena powoduje odpowiedz tylko jednego neuronu
k. Neuron ten jest następnie wzmacniany korzystając z zależności:
wk = wk + (j) X(j) - wk (9)
(j+1) (j) (j)
Jest to zależność znana z sieci rywalizacyjnych. Nowością jest jednak fakt, że w sieci Kohonena wzmocnieniu
ulegają również neurony sąsiadujące z neuronem zwycięskim. Matematycznie jest to modelowane włączeniem
funkcji sąsiedztwa N do powyższej formuły. Jeśli neuron wi oddalony jest od zwycięskiego wk o N przeskoków
wi = wi + N (wk, N)(j) X(j) - w(j) (10)
(j+1) (j)
Jak będzie można przekonać się na laboratorium, taki sposób uczenia powoduje powstawania skupisk neu-
ronów odpowiadających skupiskom w zbiorze wektorów uczących (stąd określenie mapa).
2.6 Modyfikacje sposobu uczenia
W powyższej metodzie uczenia można wprowadzić modyfikacje, które mają wpływ na szybkość uczenia się sieci
bądz jej ostateczną postać. Jedną z istotniejszych jest zmiana rozmiaru sąsiedztwa w kolejnych epokach nauki
sieci (co zostanie przetestowane na laboratorium).
Przykładowo w początkowej fazie nauki sąsiedztwo neuronu zwycięskiego może obejmować wszystkie, bądz
prawie wszystkie pozostałe neurony, a następnie w każdej kolejnej epoce być redukowane aż do momentu,
w którym obejmować będzie tylko najbliższych sąsiadów.
Inna modyfikacja polega na wyłączeniu pewnych neuronów z rywalizacji, jeśli zbyt wiele razy zwyciężyły
w trakcie poprzednich etapów nauki. Pozwala to w bardziej równomierny sposób rozłożyć wagi w pewnych
obszarach mapy.
3 Sieci Kohonena w Matlabie
Projektowanie samoorganizujących (SOFM) się map w środowisku Matlab jest znacznie ułatwione dzięki zesta-
wowi dedykowanych funkcji pakietu NeuralNetworks.
newsom Tworzy nową sieć typu SOFM.
% utworz nowa s i e c o wymiarach 3 x 4 neurony
% pobudzenia ( j a k i wektory wag ) dwuelementowe . Pierwszy
% element t o pewna l i c z b a z p r z e d z i a l u 0-3; a druga
% z p r z e d z i a l u 1-5.
net = newsom ( [ 0 3 ; 1 5 ] , [ 3 4 ] )
4 Program ćwiczenia 6
train Ucz sieć na podstawie danych wzorcowych
net = newsom ( [ 0 3 ; 1 5 ] , [ 3 4 ] )
[ net t r ] = t r a i n ( net , dane )
plotsomhits Pokazuje liczbę przyporządkowań do danych neuronów dla określonego zbioru danych
p l o t s o m h i t s ( net , dane )
plotsomplanes Pokazuje sposób rozkładu poszczególnych wag na neurony sieci
plotsomplanes ( net )
plotsomndPokazuje odległości między neuronami sieci
plotsomwmnd ( net )
simDodaje dane do SOFM
net = newsom ( [ 0 3 ; 1 5 ] , [ 3 4 ] )
[ net t r ] = t r a i n ( net , dane )
p r z y p i s a n i e = sim ( net , dana )
4 Program ćwiczenia
4.1 Część 1
1. Zgodnie ze wskazówkami prowadzącego przygotuj zbiór danych uczących i testowych. Zbiory te zawierać
będą dane o nierównomiernym rozkładzie.
2. Zaprojektuj dwuwymiarową sieć Kohonena o domyślnej topologii i rodzaju sąsiedztwa. Jakie to sąsiedztwo
i jaki jest układ sieci (doc newsom)? W ilu epokach domyślnie przeprowadzony został etap uczenia?
3. Korzystając z funkcji rysujących układ sieci sprawdz, jak wygląda układ sieci (odległości między neuronami
i ich wagi). Czy układ sieci przypomina ten ze zbioru wejściowego?
4. Wykorzystaj zbiór testujący (i uczący) do przetestowania normalnej pracy sieci. Wykorzystaj funkcję
plotsomhitsdo zobrazowania procesu klasyfikacji.
4.2 Część 2
1. Wygeneruj nową (niewyuczoną) sieć. Dla tych samych, co w części 1 zaobserwuj, jak przebiega proces
nauki w kolejnych epokach (spróbuj zaobserwować zmiany w strukturze sieci).
4.3 Część 3
1. Zmień topologię sieci z heksagonalnej na prostokątną. Jak zmiana ta wpłynęła na postać sieci po procesie
uczenia?
2. Wróć do układu heksagonalnego. Zmień sposób definiowania sąsiedztwa na dowolnie wybrany inny od
domyślnego. Czy obserwujesz zmiany w szybkości uczenia i ostatecznej postaci sieci?
LITERATURA 7
Literatura
[1] Paweł Badura, Wykład, 2009/2010
[2] Ryszard Tadeusiewicz, Sieci Neuronowe, Warszawa : Akademicka Oficyna Wydaw. RM, 1993.
[3] http://marcin.asia.w.interia.pl/kohonen/teoria.html
Wyszukiwarka
Podobne podstrony:
Wyk 05 Elementy instrumentów mierniczychMIKRO STER 186 01 05 Instrukcja i SchematONESTER 158 01 05 Instrukcja i SchematKLAMSTER 170 01 05 Instrukcja i Schematmonter instrumentow muzycznychs1[02] z2 05 uInstrukcja do ćw 05 Montaż modułu „wiercenia otworu” stanowiska dydaktycznego MPSkorektor i stroiciel instrumentow muzycznych11[01] z2 05 uBRAMOFON DB 05 instrukcjamonter instrumentow muzycznychs1[02] z2 05 n05 instrukcjaCordwainer Smith Instrumentality Of Mankind 05 Scanners Live In VainIDENTYFIKACJA 169 01 05 Instrukcja i Schemat05 InstrukcjaInstrukcja pralki PF2 400P0?0 27,05,2002 LJ6A006L005 Część II Pobieranie danych z bazy danych Instrukcja Skorektor i stroiciel instrumentow muzycznych11[01] z2 05 nId 05 Instrukcja spawania szyn termitemwięcej podobnych podstron