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.