• Nie Znaleziono Wyników

4.4 Wsteczna propagacja błędu

4.4.2 Problem spiral

Problem przeplatających się spiral (intertwined spirals) jest dobrze znanym problemem testowym w uczeniu maszynowym. Polega na nauczeniu agenta, w tym przypadku sieci, klasyfikacji punktów leżących wzdłuż dwóch przeplata-jących się spiral na płaszczyźnie:

s1 = {(xi, yi) : xi = ricos θi; yi = risin θi; i = 1, . . . , n} ,

s2 = {(xi, yi) : xi = ricos θi+ π; yi = risin θi+ π; i = 1, . . . , n} . (4.17) W biegunowym układzie współrzędnych, punkty są wyznaczone przez pro-mień ri = ni2.8 + 0.2 i kąt θi = nik2π + φ, które z kolei uzależnione są od 3 parametrów — liczby punktów na spirali n, liczby obrotów k oraz przesunięcia fazowego φ ∈ [0; 2π). Przesunięcie φ jest zmienną losową, wyznaczaną przy każ-dym odświeżeniu problemu, a zatem problem jest stochastyczny. Rysunek 4.22 przedstawia dwa przykłady problemu — typowy: n = 97, k = 3, oraz pro-sty: n = 10, k = 1. Ze względu na złożoność obliczeniową, w eksperymentach wykorzystujemy uproszczoną wersję problemu.

−3 −2 −1 0 1 2 3

−3

−2

−1 0 1 2 3

x

y

n=97, k=3, φ=1.19

−3 −2 −1 0 1 2 3

−3

−2

−1 0 1 2 3

x

y

n=10, k=1, φ=2.09

Rysunek 4.22: Problem klasyfikacji przeplatających się spiral.

Przeplatające się spirale nie są liniowo separowalne, a więc rozwiązanie za-dania wymaga sieci wielowarstwowej, lub w inny sposób bardziej złożonej niż standardowa jednowarstwowa sieć neuronowa. Zakłada się, że sieć ma tylko 3 epoki treningowe, czyli każda z 2n próbek uczących jest podawana 3-krotnie na interfejs sieci. W ramach epoki kolejność podawanych punktów jest przypadko-wa. Wartość przystosowania sieci jest średnią z 5 prób, w których do nauczenia się jest inna instancja problemu ze względu na zmienną losową φ (choć instan-cje te są identyczne dla całej populacji w danym pokoleniu). Ponieważ zadanie jest stochastyczne, w każdym pokoleniu najlepsza sieć jest testowana nie na 5, a na 250 instancjach problemu.

Ponieważ celem eksperymentu jest zbadanie zdolności do uczenia sieci ewo-lucyjnych wykorzystujących RKS, obserwowana będzie jedynie zdolność do uczenia się na zbiorze treningowym, bez sprawdzenia zdolności do uogólnia-nia.

Przeprowadzono 2 serie symulacji dla dwóch wariantów wykorzystywanych połączeń klasy B — połączenia typu b z predefiniowaną funkcją aktualizacji wag h1 (wz. 4.16), oraz typu Bz funkcją podlegającą ewolucji — h2. W każdej serii wykonano 20 przebiegów ewolucyjnych, w których populacja M = 2048 i liczba pokoleń τ = 500.

Rysunek 4.23 przedstawia wybraną sieć wykorzystującą połączenia typu b. Składa się ona z 18 węzłów ukrytych, z funkcjami aktywacji −, +, t (czyli tanh()) oraz funkcją sigmoidalną g w węźle wyjściowym. Struktura sieci wy-kazuje pewną nadmiarowość — kilka węzłów jest zupełnie niewykorzystanych;

natomiast kilka innych (7 i 8 oraz 11 i 12) jest powielonych w tym sensie, że dokonuje tych samych obliczeń i zawsze ma jednakową wartość wyjścio-wą. Nadmiarowość jest często spotykaną cechą wyewoluowanych sieci, którą można redukować bądź metodami analitycznymi (np. algorytmem wykrywa-nia podsieci funkcjonalnie identycznych), lub kontynuując bieg ewolucyjny przy zwiększonej presji na rozmiar sieci — nie jest to jednak przedmiotem badań.

Sieć zawiera 18 połączeń typub, ale tylko 7 z nich faktycznie jest plastycznych

— wynika to stąd, iż połączenia proste nie propagują błędu wstecz, a więc dla pozostałych połączeń błąd wynosi 0 i waga połączenia utrzymuje wartość początkową (drugi parametr połączenia na diagramie).

Rysunek 4.24 przedstawia najlepszą uzyskaną sieć wykorzystującą połącze-nia z funkcją h2. Składa się ona z 22 węzłów ukrytych, z czego 5 jest zupełnie zbędnych. Sieć wykorzystuje 9 połączeń typuB, lecz tylko 3 są faktycznie pla-styczne. Funkcja aktualizacji, jaka wyewoluowała dla owych trzech połączeń, a oznaczona na diagramie jako wyrażenie prefiksowe(- (*u1 u2) R) sprowadza się do:

h2(w, yi, δj) : ∆w := yiδj . (4.18) Zmienne u1 i u2 odpowiadają wartościom yi i δj, natomiast R jest częścią mechanizmu pamięciowego dla drzew algebraicznych, który w tym przypadku redukuje się do 0 (patrz Suchorzewski, 2010a). Warto zwrócić uwagę, iż oma-wiane plastyczne połączenia, które występują w sieci 3-krotnie, w genotypie są zakodowane 1-krotnie. Ten fakt wskazuje na skalowalność kodowania.

W przedstawionych dotąd sieciach wykorzystywano funkcje aktywacji ze zbioru St = {g, h, t, +, −, ∗}, gdzie h(x) = (P

ixi > 0.5) jest progową funkcją aktywacji. Ponadto wykorzystanie funkcji sinusoidalnej s = sin(Pixi) znacz-nie ułatwia znalezieznacz-nie rozwiązaznacz-nie zadania. Sieci uzyskujące wynik Jt < 1 (patrz niżej) są znajdowane zaledwie po kilkunastu pokoleniach . Rysunek 4.25 przedstawia wybraną sieć, wykorzystującą połączenia h1i sinusoidalną funkcję przejścia. Sieć składa się tylko z 9 węzłów ukrytych i ma strukturę zbliżoną

u0

2: + 3: +

u1

9: t

10:

-b:0.37,1.6

b:0.37,1.6

4: t

5:

-b:0.49,0.88

b:0.49,0.88 b:0.49,0.88

b:0.49,0.88

6: + 7: +

b:0.36,-0.65

b:0.36,-0.65 b:0.36,-0.65

b:0.36,-0.65

b:0.36,-0.65

8: +

b:0.37,0.34

b:0.37,0.34

11: + 12: +

b:0.36,-0.65

13: +

b:0.81,-1.5 b:0.81,-1.5

14: g

15: +

16: +

17: t

18: t 19:

-b:0.85,-0.6 b:0.85,-0.6

y0: g

Fcn f184 Prolog: Con A0 y0 b:0.81,-0.37 Con u y b:0.37,0.71 Divs y0 J Con A0 y b:1,-0.37 Con A0 y0 b:0.85,-0.37 Divs u0 A Con u y b:0.49,0.88 Con A0 y0 b:0.86,-0.37 Divs y R Divs J P Divs A0 V Divs V N Divs u0 V Divp y0 L Con A0 A b:0.36,-0.65 Con L0 y0 b:0.85,-0.37 Cut L R0 Subst N R Divp V V0 Con L y0 b:0.59,-0.23 Divs L0 A0 Divp A0 E Epilog: Term A t Term y g Term V + Term E - Term L t Term R + Term P + Term J g

Rysunek 4.23: Rozwiązanie wykorzystujące połączenia typu b.

do warstwowej, lecz zawiera również połączenia bezpośrednie z węzłów wej-ściowych do wyjwej-ściowych i odznacza się pewną separacją pomiędzy węzłami wejściowymi a węzłami w warstwie ukrytej. Trzeba jednak podkreślić, że — jak zresztą zwykle — przedstawiona struktura jest tylko jedną z kilku charak-terystycznych struktur otrzymanych w wyniku ewolucji.

Tabela 4.7 przedstawia wyniki testu wyewoluowanych sieci oraz dla po-równania wyniki otrzymane dla standardowych SSN. Kryterium Jt oznacza

u0

2: + 3: *

4: * u1

B:0.91, u2 B:0.91, u2

B:0.91, u2

B:0.91, u2 B:0.91, u2

B:0.91, u2

5: t 6:

8: -7: t

10: - 9: t

12: -11: t

B:-0.57, (- (* u2 u1 )R )

14: - 13: t

16: -15: t

B:-0.57, (- (* u2 u1 )R ) 18: - 17: t

B:-0.57, (- (* u2 u1 )R )

19: t 20: - 21: + 22: * 23: *

y0: g

Fcn f9 Prolog: Divs y0 S Subst S0 I Divp I G Cut u1 A Divs u0 A Divs u0 A0 Subst A0 A0 Con u1 A B:0.46,u2 Con A y0 B:-0.57,(- (* u2 u1 )R ) Con u1 A0 B:0.46,(* (W u0 )(* R -0.44 )) Divs A0 A Divs y Y0 Subst y0 D Divs u0 A0 Divp A0 E Divs u0 Y0 Cut A0 D Cut A0 A0 Divp Y M Divp M M Epilog: Term A t Term D g Term Y + Term M * Term E Term I t Term G

-Rysunek 4.24: Rozwiązanie wykorzystujące połączenia typu B.

liczbę błędnie zaklasyfikowanych próbek w ostatniej epoce treningu, uśrednio-ną dla 250 prób (± odchylenie standardowe). Sieć P1 składa się z pojedyn-czej warstwy ukrytej o 20 sigmoidalnych neuronach oraz liniowym neuronie wyjściowym. Sieć jest uczona algorytmem wstecznej propagacji Levenberg-Marquardt’a. Pozostałe parametry są standardowe. W eksperymencie wyko-rzystano pakiet Neural Network Toolbox dla środowiska Matlab. Sieć P2 różni się od P1 tylko nieco inną architekturą — składa się z dwóch warstw ukrytych po 10 neuronów każda. Jak widać, wyewoluowane sieci radzą sobie znacznie le-piej od sieci generycznych. Sieć wykorzystująca swobodną funkcję aktualizacji uzyskała bezbłędny rezultat. Lepsze wyniki sieci ewolucyjnych są niewątpliwie efektem specjalizacji sieci do szczególnych warunków zadania, przede wszyst-kim spiralnego charakteru zadania i określonej, niewielkiej liczby epok podczas treningu.

Rysunek 4.26 przedstawia zbieżność procesu uczenia sieci przedstawionej na rysunku 4.25. Jak widać już po pierwszej epoce sieć klasyfikuje próbki po-prawnie (przyjmując, że ciemny obszar odpowiada próbkom oznaczonym

sym-u0

b:0.0045,-1.4 b:0.0045,-1.4

b:0.0045,-1.4 b:0.0045,-1.4

b:0.21,-2.8 b:0.21,-2.8

b:0.67,-0.34

u1

b:0.0045,-1.4 b:0.0045,-1.4

b:0.038,-2.7 b:0.038,-2.7

b:0.21,-4.1 b:0.21,-4.1

b:0.67,-0.34

2: s

b:0.67,-0.34

3: s b:0.67,-0.17

4: s

b:0.67,-0.17

5: s

b:0.67,-0.51

6: s

b:0.67,-0.34

7: s

b:0.67,-0.34

8: s

b:0.7,-0.34

9: s b:0.7,-0.17

10: s b:0.7,-0.17

y0: g

Fcn f156 Prolog: Con u A b:0.21,-1.4 Con u y0 b:0.67,-0.17 Divp u0 A Con A y0 b:0.7,-0.17 Con u1 A b:0.038,-1.3 Divp u0 A0 Cut A A Con u A b:0.0045,-1.4 Subst A0 A0 Divp A0 J Cut u1 J0 Subst A0 A0 Divp A0 F Cut u0 A0 Con u y0 b:0.52,-0.17 Con A0 y0 b:0.5,-0.17 Epilog: Term A s Term y g Term J s Term F s

Rysunek 4.25: Rozwiązanie wykorzystujące sinusoidalną funkcję aktywacji.

bolem ◦). Oczywiście nie zawsze zbieżność jest tak szybka. Charakterystyczną cechą przeanalizowanych wykresów zbieżności jest antysymetria dyskryminacji względem początku układu współrzędnych. Ponadto można również zaobser-wować, że początkowa funkcja dyskryminacji wykazuje często charakterystycz-ne „zakręcenie” obszaru dyskryminacji w okolicy punktu (0, 0), co jest również widoczne na przedstawionym wykresie. Wskazuje to na predyspozycję sieci do klasyfikacji spiral, potwierdzając hipotezę odnośnie ewolucyjnej specjalizacji sieci.

Tabela 4.7: Wyniki testu. P1, P2 — standardowe sieci neuronowe; b, B — sieci wyewoluowane, wykorzystujące połączenia klasy B; b+s — jak b przy czym sieć wykorzystuje węzły z sinusoidalnymi funkcjami przejścia.

Sieć

P1 P2 b B b+s

Jt 1.25 ± 1.73 3.03 ± 2.21 0.07 ± 0.32 0.00 ± 0.00 0.01 ± 0.09

y

dyskryminacja poczatkowa 3.5

0

−3.5

epoka 1

y

x epoka 2

−3.5 0 3.5

3.5

0

−3.5

x epoka 3

−3.5 0 3.5

Rysunek 4.26: Zbieżność procesu uczenia sieci z rysunku 4.25.