Zasada uczenia sieci wielowarstwowej z użyciem algorytmu backpropagation



W pracy opisano proces uczenia wielowarstwowej sieci neuronowej z użyciem algorytmu wstecznej propagacji błędów (ang. backpropagation) na przykładzie trójwarstwowej sieci neuronowej o dwóch wejściach i jednym wyjściu, której widok zaprezentowano poniżej.



Każdy neuron sieci składa się z elementu sumującego iloczyny wag i sygnałów wejściowych oraz z elementu nieliniowego, którego charakterystyka przejściowa nazywana jest funkcją aktywacji neuronu. Sygnał e jest sygnałem wyjściowym sumatora, zaś y = f(e) jest sygnałem wyjściowym elementu nieliniowego i zarazem sygnałem wyjściowym neuronu.



Na etapie uczenia rozważanej sieci neuronowej musimy dyspodować ciągiem danych uczących składających się ze zbioru sygnałów wejściowych x1 i x2 oraz przyporządkowanych im oczekiwanych (wymaganych) sygnałów wyjściowych z. Proces uczenia przebiega iteracyjnie dla kolejnych danych uczących, przy czym w każdym kroku współczynniki wagowe połączeń ulegają modyfikacji według opisanego poniżej algorytmu. Każdy krok uczenia rozpoczynamy od podania na wejście sieci pary sygnałów wejściowych. Na tym etapie możemy określić wartości sygnałów wyjściowych każdego z neuronów w każdej z wartstw sieci. Poniższe rysunki przedstawiają kolejne kroki propagacji sygnałów przez sieć. Symbole w(xm)n oznaczają wagę połączenia pomiędzy wejściem xm sieci a n-tym neuronem warstwy wejściowej. Symbole yn oznaczają sygnał na wyjściu neuronu o numerze n.







Propagacja sygnałów przez warstwę ukrytą. Symbole wmn oznaczają wagę połączenia pomiędzy wyjściem neuronu o numerze m a wejściem neuronu o numerze n z kolejnej warstwy.





Propagacja sygnałów przez warstwę wyjściową.



W kolejnym kroku sygnał wyjściowy sieci y możemy porównać z - zawartą w ciągu uczącym - oczekiwaną (wymaganą) wartością sygnału wyjściowego. Różnica obu wartości nazywana jest sygnałem błędu d neuronu warstwy wyjściowej.



Dla neuronów leżących w wewnętrznych warstwach sieci (warstwach ukrytych) nie ma możliwości bezpośredniego określenia błędu, ponieważ nie są znane wartości oczekiwane sygnałów wyjściowych z tych neuronów. Przez wiele lat nie znano skutecznej metody uczenia sieci wielowarstwowych. Dopiero w połowie lat 80-tych zaproponowany został algorytm wstecznej propagacji błędów, polegający na tym, że mając wyznaczony błąd d, występujący podczas realizacji pojedynczego kroku procesu uczenia, możemy "rzutować" ten błąd wstecz do wszystkich tych neuronów, których sygnały wyjściowe stanowiły wejścia dla rozważanego neuronu.





Warto zwrócić uwagę, że współczynniki wagowe wmn wykorzystywane przy wstecznym rzutowaniu błędów są te same przez które mnożone były przesyłane sygnały, tyle tylko, że kierunek przesyłania informacji zostaje w tym wypadku odwrócony (zamiast od wejścia do wyjścia przesyła się je od wyjścia kolejno w kierunku wejścia). Opisaną technikę wstecznej propagacji błędów stosuje się sukcesywnie dla wcześniejszych warstw sieci. W przypadku gdy propagowane błędy dochodzą z kilku neuronów ich wartości sumują się, jak to zaprezentowano na poniższych rysunkach.







Następnie mając już określony błąd sygnału dla każdego neuronu, możemy przystąpić do modyfikacji wag jego połączeń wejściowych. W poniższych wzorach czynnik df(e)/de oznacza pochodną funkcji aktywacji neuronu, którego wagi są modyfikowane.













Współczynnik h decyduje o szybkości uczenia sieci. Stosuje się różne techniki doboru wartości tego parametru. Pierwszy sposób polega na rozpoczynaniu procesu uczenia przy większych wartościach parametru oraz jego stopniowe zmniejszanie w miarę jak współczynniki wagowe zbliżają się do swoich ustalonych wartości. Druga, bardziej złożona, metoda zakłada rozpoczynanie uczenia z niewielkimi wartościami parametru, które są zwiększane w momencie kiedy proces uczenia jest już zaawansowany, zaś w końcowym etapie uczenia są one ponownie zmniejszane. Rozpoczynanie uczenia sieci z niewielkimi wagami pozwala na wstępne "spolaryzowanie" (określenie znaku) wag połączeń pomiędzy neuronami.


Literatura
Ryszard Tadeusiewcz "Sieci neuronowe", Kraków 1992

mgr inż. Adam Gołda (2005)
Katedra Elektroniki AGH

Last modified: 06.09.2004
Webmaster