[ Pobierz całość w formacie PDF ]
.Sąsiedztwo jest miarą w jakim stopniu sąsiad neuronu zwycięskiego będzie miał zmieniane wagi w danym kroku procesu uczenia.Zwykle wartość tego parametru jest określana na wartość 0 - 1.Sąsiedztwo rozpatruje się w układach:ljednowymiarowych, neurony sąsiednie leżą na jednej linii,lldwuwymiarowych, neurony są ułożone w warstwie a sąsiadami są neurony położone na lewo i na prawo oraz u góry i u dołu rozpatrywanego neuronu, inny przypadek opisuje dodatkowe kontakty po przekątnychllwielowymiarowe, neurony ułożone są swobodnie w przestrzeniach wielowymiarowych a twórca danej sieci określa zasady sąsiedztwa.lDo najbardziej istotnych i użytecznych układów sąsiedztwa zaliczamy organizacje jedno- i dwuwymiarowe, dla nich właśnie dodatkowym istotnym parametrem jest określenie ile neuronów obok (sąsiadów z lewej, prawej itd.) ma podlegać uczeniu w przypadku zwycięstwa danego neuronu.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.[13,14,15]W naszym programie przedstawiamy przykład procesu uczenia sieci Kohonena rozpoznawania zadanej przez użytkownika figury geometrycznej.Po każdorazowym cyklu prezentacji określonej ilości losowych punktów następuje automatyczny test skuteczności sieci w rozpoznawaniu danej figury.struktury danych algorytmu:alfa0, alfa1 - parametry określające szybkość procesu uczenia sieci (parametr modyfikacji wag w kolejnych krokach uczenia);epsAlfa - określa o ile ma się zmieniać wartość alfa0 oraz alfa1 w kolejnych krokach uczenia (po każdej prezentacji);sąsiedztwo - parametr określający ile neuronów na się uczyć wraz z neuronem zwycięskim;epsSasiedztwo - określa o ile ma się zmieniać wartość „sąsiedztwo” w kolejnych krokach uczenia (po każdej prezentacji);m, n - rozmiar sieci (sieć ma konstrukcję obszaru o długości m na n neuronów);MaxI - ilość prezentacji w epoce uczenia;uczenie sieci Kohonene:iInc := 1;while iInc < MaxI dobeginx := 5.0 - 10.0*Random;y := 5.0 - 10.0*Random;{ PokazPunkt - i dobry i zły }if not „punkt należy do obszaru figury” thencontinueelsebegin { uczenie dla dobrego punktu }OdlMin := 10000.0;imin := 1; jmin := 1;{ obliczanie maksymalnej odpowiedzi sieci }for i := 1 to m dofor j := 1 to n dobeginodl := sqrt(sqr(w[i,j,0]-x) + sqr(w[i,j,1]-y));if odl >= OdlMin thencontinue;OdlMin := odl; imin := i; jmin := j;end;{ ustawianie wag zwycięskiego neuronu oraz wag jego sąsiadów - parametr sąsiedztwo}s := sasiedztwo;for i := imin-s to imin+s dofor j := jmin-s to jmin+s dobeginodl := Max(Abs(i-imin),Abs(j-jmin));{ obliczenie parametru modyfikacji wag )alfa := (alfa0*(s-odl) + alfa1*odl)/sw[i,j,0] := w[i,j,0] + alfa*(x-w[i,j,0]);w[i,j,1] := w[i,j,1] + alfa*(y-w[i,j,1]);end;{ zmiana parametrów uczenia }alfa0 := alfa0*epsAlfa;alfa1 := alfa1*epsAlfa;sasiedztwo := (sasiedztwo-1.0)*epsSasiedztwo + 1.0;Inc(iInc);end; { koniec pętli uczącej }lSamouczenie sieci neuronowejlW przypadku gdy sieć nie może być uczona pod nadzorem nauczyciela poczytne miejsce zajmują strategie uczenia oparte na idei wprowadzonej do dziedziny neuropsychologii przez amerykańskiego badacza D.O.Hebba w 1949 roku.[16] Jednak ta idea znaczenia dla dziedziny sieci neuronowych zaistniała naprawdę w 1981 roku kiedy to inny badacz Sutton opracował formalne metody wykorzystania jej w uczeniu sieci neuronowych.Opracowana technika uczenia zwykle nazywana jest uczeniem Hebba lub uczeniem bez nauczyciela (ang.unsupervised lerning albo hebbian learning).Zasada tego uczenia polega na tym, że waga i-tego wejścia m-tego neuronu wzrasta podczas prezentacji j-tego wektora wejściowego proporcjonalnie do iloczynu i-tej składowej sygnału wejściowego docierającego do rozważanej synapsy i sygnału wyjściowego rozważanego neuronu.Opis formalny tego w postaci wzoru wygląda następująco:przy czym oczywiścieIndeksy górne przy wagach neuronu z jednej strony określają numerację neuronów, do którego wagi należą (m) z drugiej zaś numerację kroków określających kolejne pokazy.Jeśli pokusić się o intuicyjną interpretację samouczenia sieci to można to określić jako stwierdzenie: „wzmocnieniu ulegają w niej te wagi, które są aktywne (duże ) w sytuacji, gdy „ich” neuron jest pobudzony (duże )”
[ Pobierz całość w formacie PDF ]