Sztuczna inteligencja/SI Moduł 12
Sieci neuronowe - wprowadzenie
Sieci neuronowe są jedną z wielu możliwych realizacji aproksymatora regresyjnego. Swoją popularność zawdzięczają w pewnej mierze analogiom biologicznym – można w nich upatrywać niezwykle uproszczonych modeli naturalnych struktur neuronowych. Przykładem sieci neuronowych, chyba najbardziej rozpowszechnionym, jest perceptron wielowarstwowy, któremu poświęcimy tę lekcję. Inne rozpowszechnione struktury sieci neuronowych to architektury ze sprzężeniem zwrotnym (tzw. sieci Hopfielda), realizujące układy dynamiczne, oraz architektury samoorganizujące (tzw. sieci Kohonena), realizujące algorytm grupowania. Tematyka sieci neuronowych jest dość dobrze opisana w literaturze uzupełniającej, do której odsyłamy bardziej zainteresowanych. Poniżej naszkicujemy podstawowe zagadnienia związane z wykorzystaniem perceptronu jako metody regresji oraz z metodami uczenia się stosowanymi dla tej sieci.
Definicja perceptronu wielowarstwowego
Perceptron wielowarstwowy jest aproksymatorem nieliniowym . Graficzna postać sieci jest następująca:
Węzeł grafu sieci odpowiada pojedynczemu neuronowi. Krawędź odpowiada połączeniu między neuronami (tzw. połączenie synaptyczne) – jest skierowana od wyjścia jednego do wejścia drugiego neuronu, co odpowiada jednokierunkowemu przepływowi danych.
Neuron działa w taki sposób, że dokonuje się ważonego sumowania wartości wejść, obliczając wartość, zwaną pobudzeniem :
Wygodnie jest założyć, że neuron otrzymuje jeszcze jedno wejście o wartości równej stale jedynce. Przy takim założeniu, pobudzenie da się zapisać prościej jako
Wyjście neuronu powstaje w wyniku podania pobudzenia na funkcję aktywacji g:
W przypadku sieci neuronowych, funkcja aktywacji ma kształt litery „s” – jest monotonicznie rosnąca z asymptotami poziomymi w nieskończonościach. Najczęściej przyjmuje się funkcję tangens hiperboliczny:
przyjmującą wartość z zakresu [–1,1], względnie funkcję logistyczną:
o wartościach z zakresu [0,1].
Neurony zgrupowane są w warstwy w taki sposób, że między neuronami tej samej warstwy nie ma połączeń, a połączenia występują jedynie między neuronami sąsiadujących warstw.
Wyróżnia się warstwę neuronów wyjściowych (zwaną krótko warstwą wyjściową), których wyjście jest jednocześnie wyjściem z sieci. Pozostałe warstwy są nazywane ukrytymi, gdyż wyjścia neuronów w nich się znajdujących nie są „widoczne” na wyjściu sieci.
Dla neuronów wyjściowych można przyjąć, że funkcja aktywacji jest funkcją liniową.
Tak więc sieć neuronowa jest w swojej istocie pewnym wzorem, który da się przedstawić w formie graficznej. Wzór ten brzmi (w nieco nieformalnym zapisie):
Wielokrotne ważone sumowanie i przekształcanie funkcją aktywacji ma miejsce tyle razy, ile jest warstw neuronów w sieci, dlatego w powyższym wzorze pojawiają się trzy kropki. Jak więc widać, wyjście sieci neuronowej jest funkcją jej wejścia, przy czym funkcja ta jest parametryzowana zestawem parametrów .
Interpretacja znaczenia parametrów sieci
Spróbujmy zrozumieć znaczenie poszczególnych parametrów, analizując przykładowe sieci zawierające jeden neuron wyjściowy z liniową funkcją aktywacji oraz jedną warstwę nieliniowych neuronów.
Na początek skoncentrujmy się na najprostszej sieci, mających jedno wejście i jedno wyjście (a zatem aproksymowana jest funkcja ). Rozważmy sieć o dwóch neuronach ukrytych i jednym wyjćciu liniowym. Opisuje ją wzór:
Znaczenie parametrów pojedynczego neuronu warstwy ukrytej jest następujące. Wartości , służą do przesuwania wykresu funkcji g wzdłuż osi OX. Z kolei parametry wpływają na „stromość” wykresu funkcji , . Tak więc, manipulując oboma parametrami, jesteśmy w stanie uzyskać funkcję o różnej „stromości”, różnie położoną na osi OX.
Parametry warstwy wyjściowej służą określeniu stopnia „wymieszania” wyjść neuronów ukrytych. Im większa wartość wagi , tym większy mnożnik użyty do wykresu wyjścia neuronu i-tego (dodajmy, że przyjęcie ujemnej wagi powoduje odbicie wykresu funkcji wyjścia neuronu względem osi OX).
Z kolei w przypadku sieci o dwóch wejściach, aproksymującej funkcję , z dwoma neuronami ukrytymi i jednym liniowym wyjściowym, mamy wzór:
Wagi odpowiadają za sposób ułożenia w przestrzeni powierzchni, odpowiadającej funkcji – powierzchnia ta ma poziomice ułożone wzdłuż prostej o równaniu , a w przekroju poprzecznym do poziomic ma kształt funkcji g. Zmieniając współczynniki wagowe, dokonujemy obrotów i przemieszczeń tej powierzchni, nie zmieniając jednak jej zasadniczego kształtu.