Metoda wstecznej propagacji błędów

Spośród wielu algorytmów uczenia sieci neuropodobnych najbardziej popularny jest klasyczny algorytm wstecznej propagacji błędów (zaproponowany przez D. Rumelharta, G. Hintona i R. Williamsa w 1986 r). Algorytm ten, jako jedyny, omówimy tu bardziej szczegółowo, ma on bowiem dla całości problematyki sieci neuropodobnych fundamentalne znaczenie. Jego działanie oparte jest na następującym rozumowaniu: jak wiadomo celem procesu uczenia jest taki dobór wag, który zapewni minimalizację wartości błędu będącego sumą błędów obliczonych dla każdego elementu ciągu uczącego. Błąd dla -tego elementu ciągu uczącego wyraża formuła:

[13]

Sposób zmiany wartości wag ma charakter iteracyjny, bazuje na metodzie największego spadku. Po prezentacji -tego elementu ciągu uczącego modyfikacja wektora wag odbywa się zgodnie ze wzorem:

[14]

gdzie: — wektor wszystkich wag sieci w -tym kroku działania algorytmu, — gradient funkcji w punkcie , — współczynnik uczenia będący stałą z przedziału (0, 1).

W trakcie działania algorytmu modyfikowane być muszą zarówno wagi neuronów warstwy wyjściowej, jak i wagi neuronów warstwy ukrytej. Modyfikacja wag przebiega zgodnie z wzorami

[15]
[16]

W celu obliczenia wartości najpierw oblicza się pochodną :

[17]

następnie

[18]

a po wprowadzeniu dodatkowej zmiennej:

[19]

zależność można uprościć do postaci:

[20]

Kolejnym krokiem jest obliczenie wpływu zmiany wagi na wartości :

[21]

i ostateczny wzór opisujący zmianę wag neuronów warstwy wyjściowej przedstawia się następująco:

[22]

W analogiczny sposób wyznaczyć można formułę określającą zmiany wag w neuronach warstwy ukrytej. Zmiana wartości wyjściowej -tego neuronu warstwy ukrytej wpływa na zmianę następująco:

[23]

Następnie oblicza się pochodną względem sumy iloczynów wejść i wag dla neuronu warstwy ukrytej:

[24]

po wprowadzeniu dodatkowej zmiennej:

[25]

równanie [12] zapisać można w postaci:

[26]

Ostatnim etapem jest wykonanie obliczeń wartości wyrażenia:

[27]

Mając obliczoną wartość pochodnej z równania [15] można już zapisać wzór na zmianę wag dla neuronów warstwy ukrytej:

[28]

W celu uczynienia procesu uczenia bardziej równomiernym i płynnym wprowadza się niekiedy dodatkowy składnik nazywany pędem (łac. momentum)

[29]

gdzie jest współczynnikiem określającym wpływ poprzedniej modyfikacji wektora wag na aktualny wektor poprawek. Jest to parametr wprowadzający do procesu uczenia element konserwatyzmu (przy dużej wartości tego współczynnika sieć ma tendencję do utrzymywania przez dłuższy czas tego samego kierunku zmian współczynników wag, co zapobiega szkodliwemu "myszkowaniu" podczas uczenia sieci). Z reguły duża wartość momentum polepsza rezultaty działania algorytmu uczenia poprzez przyspieszenie procesu uczenia w sytuacji, gdy występują niewielkie zmiany w wielkości błędu. Dodatkowo momentum wpływa stabilizująco na przebieg uczenia. Jego wartość powinna należeć do przedziału [0; 1). Często zaleca się, aby łącznie z wysokim współczynnikiem uczenia stosować niski współczynnik momentum i na odwrót. Jednakże w wielu przypadkach (np. w przypadku klasycznego problemu XOR) najlepsze rezultaty uzyskać można stosując wysoką wartość obu współczynników, np. równą 0,9. Na rysunku 6

Rysunek 6. Przebieg procesu uczenia sterowany algorytmem wstecznej propagacji błędu; minimum funkcji błędów osiągnięto po 91 iteracjach

(aby obejrzeć powiększony rysunek, kliknij w miniaturkę)

pokazano, jak proces uczenia sterowany algorytmem wstecznej propagacji błędu zmierza do minimum funkcji błędów.

Copyright © 1997-2024 Wydawnictwo Naukowe PWN SA
infolinia: 0 801 33 33 88