• Nie Znaleziono Wyników

5 Charakterystyka wybranych narzędzi m etabonom icznych

5.3 Sztuczne sieci neuronowe, perceptron wielowarstwowy

5.3.3 Uczenie M L P

Proces uczenia perceptronu wielowarstwowego MLP ma doprowadzić do tego, aby dla zadanego zbioru danych wejściowych sieć podawała pożądany zestaw sygnałów wyjściowych. Innymi słowy nauczona sieć neuronowa ma wykonywać taką czynność, jakiej od niej wymagamy. Jest to tzw. uczenie z nauczycielem (ang. supervised learning), co oznacza, że do uczenia sieci potrzebny jest zestaw danych wejściowych wraz z oczekiwanymi wartościami wyjściowymi, czyli, ciąg uczący:

U = j(x1z1), ( x2z2J ,...,( x V ) j (5.27) gdzie: n - liczba przypadków uczących, z' - ^-elementowy wektor oznaczający wymagane zestawy odpowiedzi sieci na dane wejściowe zadane odpowiednimi wektorami x'. Obiektem uczenia w ANN jest macierz wag W*. Każdy neuron sieci rozpoczyna uczenie z pewnym przypadkowym zestawem wag (predyspozycje wrodzone neuronu) i stopniowo polepsza te wagi w każdym kroku procesu uczenia (po prezentacji każdego z przypadków uczących), przy czym neuron sam potrafi określić, które ze swoich wag (oraz w jaki sposób i o jaką wartość) modyfikować [Tadeusiewicz 1993].

Wagi są dopasowywane tak, aby zminimalizować funkcję błędu średniokwadratowego pomiędzy oczekiwaną wartością wyjściową a wartością podaną przez neuron wyjściowy.

Dla pojedynczego neuronu i-ty współczynnik wagowy w j+ 1 kroku uczenia podlega modyfikacji zgodnie ze wzorem [Rojas 1996]:

gdzie r] jest współczynnikiem liczbowym odpowiadającym szybkości uczenia ANN.

Funkcja błędu średniokwadratowego Q jest zależna od odpowiedzi na wyjściu sieci, ponadto zależność sygnałów wyjściowych y od wag ma uwikłany charakter uwzględniający nieliniową funkcję aktywacji neuronu:

Ponieważ w sieciach wielowarstwowych znana jest jedynie wartość błędu dla neuronów warstwy wyjściowej, błędy popełniane przez poszczególne neurony warstw poprzednich muszą zostać „odgadnięte”. Najpopularniejszym algorytmem uczenia jest algorytm wstecznej propagacji błędu (ang. error backpropagation, EBP). W algorytmie EBP najpierw wyliczany jest błąd dla warstwy wyjściowej, a następnie błąd dla neuronów warstw poprzednich obliczany jest jako funkcja błędów neuronów warstwy poprzedzającej, po czym następuje modyfikacja wag dla neuronów z dużą wartością błędu.

Propagacja błędu od neuronów warstwy wyjściowej do neuronów ostatniej warstwy ukrytej przebiega w następujący sposób [Rojas 1996]:

(5.28)

8QJ 8QJ dyJ dQ' dyJ de7 5QJ ) QeJ

(5.29) dw, dyJ dw] dyJ deJ dwi dyJ deJ dwt

Pochodna pierwszego członu jest następująca:

(5.30) Pochodna trzeciego członu (na podstawie wzoru 5.25) przyjmuje postać:

ÖW: (5.31)

Pochodna drugiego członu zależy od funkcji aktywacji neuronu:

- dla funkcji logistycznej: (5.32)

- dla funkcji tanh: (5.33)

p \

1. Obliczany jest sygnał wyjściowy m-tego neuronu warstwy wyjściowej w /-tym kroku uczenia:

yJ = F

Sm (5.34)

V '=1

gdzie y j jest sygnałem wyjściowym /-tego neuronu warstwy ukrytej w /-tym kroku uczenia.

2. Wyznaczana jest wartość błędu dla m-tego neuronu warstwy wyjściowej w y-tym kroku uczenia:

Errm = {Zm - y Jm) (5-35)

gdzie zm jest wzorcem poprawnej odpowiedzi dla tego neuronu.

3. Wyznaczana jest wartość błędu na wejściu m-tego neuronu warstwy wyjściowej wy-tym kroku uczenia:

In-E ni = E n l ■ y ‘- ) (536>

m m

gdzie eJm jest całkowitym pobudzeniem tego neuronu.

4. Propagacja błędu wyznaczonego w pkt. 3 do neuronów ostatniej warstwy ukrytej:

s ! = Z (5-37)

m=1

gdzie 8■ jest rzutowanym wstecznie błędem na wyjściu /-tego neuronu warstwy ukrytej.

5. Wyznaczana jest wartość błędu na wejściu /-tego neuronu warstwy ukrytej w y-tym kroku uczenia:

d We / )

In-Err/ = 8 / --- (5.38)

de-gdzie ej jest całkowitym pobudzeniem tego neuronu.

6. Korekcja współczynników wagowych m-tego neuronu warstwy wyjściowej w y-tym kroku uczenia:

/+1 i a i ( , \ 8 F ( e " ) i r , 8 F ( < ) /

WL - < = =n ( z m- yL ) ~ yj = rjErrjj, • ^ ■ y \ (5.39)

in m

gdzie wmi są wagami dla sygnału pochodzącego od /-tego neuronu warstwy ukrytej i docierającego do m-tego neuronu warstwy wyjściowej.

< +l - K = Aw,'k = n<\! CF} C; } X{ = ijln-Err 'x Jk (5.40) de;

gdzie wik są wagami dla sygnału pochodzącego od k-tego neuronu warstwy wejściowej i docierającego do /-tego neuronu warstwy ukrytej, a x'k jest sygnałem podawanym na k-ty neuron warstwy wejściowej.

Obliczanie

X. w

7. Korekcja współczynników wagowych /-tego neuronu warstwy ukrytej w /-tym kroku uczenia:

sygnałów wyjściowych

y z-y — Err

Wsteczna propagacja błędu

Err

R ysunek 5.13. Uproszczony schem at przebiegu procesu uczenia M LP opartego na algorytm ie wstecznej propagacji błędu. Sygnał wejściowy jest przetw arzany przez neurony ukryte i dociera do neuronów wyjściowych. Następnie obliczany jest błąd popełniony przez każdy z neuronów wyjściowych, który w kolejnym kroku jest przetw arzany na błąd na wejściu neuronów wyjściowych.

W tym momencie następuje wsteczna propagacja błędu na wejściu neuronu wyjściowego do neuronów w arstwy ukrytej.

N a rysunku 5.13 przedstawiono uproszczony przebieg procesu uczenia opartego na algorytmie wstecznej propagacji błędu dla sieci z jed n ą warstwą ukrytą. Podczas obliczania sygnałów wyjściowych każdy neuron przechowuje w swojej pam ięci wynik działania funkcji aktywacji oraz wartość jej pochodnej względem tego samego całkowitego pobudzenia neuronu. Proces wstecznej propagacji błędu odbywa się po tej samej trasie, którą dotarły sygnały do neuronu warstwy wyjściowej, jednakże w przeciwnym kierunku. Iloczyn błędu na wyjściu danego neuronu wyjściowego i zapamiętanej pochodnej funkcji aktywacji tego neuronu (błąd na wejściu neuronu wyjściowego, równanie 5.36)) jest mnożony przez te same współczynniki wagowe. przez które mnożone były sygnały docierające do tego neuronu, i zostaje przekazany na wyjście neuronów warstwy ukrytej. W warstwie ukrytej błąd na wyjściu neuronu jest znów

przeliczany na błąd na jego wejściu. Po wyliczeniu wszystkich błędów neurony przystępują do modyfikacji swoich współczynników wagowych.

Przejście sygnału wejściowego przez całą strukturę sieci oraz korekcja współczynników wagowych w danym kroku uczenia kończy pojedynczą iterację procesu uczenia sieci. Powtórzenie tej procedury iteracyjnej dla wszystkich dostępnych przypadków uczących nazywane jest epoką uczenia.

Algorytm EBP wykazuje dużą skuteczność uczenia, ale jest bardzo powolny.

Dlatego też stosuje się czasem jego uproszczoną wersję w postaci algorytmu szybkiej propagacji (ang. fast propagation ałgorithm) lub szereg innych algorytmów, takich jak metoda gradientów sprzężonych lub metoda Levenberga-Marquardta. Jednakże powyższe algorytmy wykazują wysoką skuteczność jedynie wówczas, gdy problem postawiony przed siecią neuronową spełni szereg założeń matematycznych, co nie jest potrzebne w przypadku algorytmu EBP [Podręcznik elektroniczny oprogramowania STATISTICA 7.1].

Powiązane dokumenty