Algorytm propagacji wstecznej M. Czoków, J. Piersa Faculty of Mathematics and Computer Science, Nicolaus Copernicus University, Toru«, Poland 2010-11-16
Powtórzenie Architektury sieci Dlacezgo MLP? W sieciach skªadaj cych si z przynajmniej dwóch neuronów wyniki zwracane przez jedne neurony mog by wej±ciami do innych neuronów, wyró»niamy jednostki wej±ciowe, jednostki wyj±ciowe, neurony ukryte. Dziel si na: skierowane (ang. feed-forward) - nie dopuszczane s cykle skierowane, w takiej sieci przepªyw informacji jest ustalony w jednym kierunku. Sie skierowana charakteryzuje si synchroniczn dynamik, to jest ka»dy neuron, przed obliczeniem swojej aktywacji, czeka a» wszystkie jego wej±cia zostan obliczone. rekurencyjne (recurrent) - dopuszczane s cykle skierowane, wysªany impuls mo»e kiedy± do neuronu powróci, w ogólnym przypadku dopuszczalne jest aby wej±ciem neuronu byªo jego wªasne wyj±cie.
Ogólna architektura MLP Architektury sieci Dlacezgo MLP? Szczególnym typem sieci skierowanych s sieci warstwowe. Wszystkie perceptrony podzielone s na rozª czne warstwy. Warstwa wej±ciowa jest okre±lana jako pierwsza. Warstwa L + 1-sza za wej±cia przyjmuje wyniki z warstwy L-tej i tylko te. Warstwa wyj±ciowa jest ostatnia. W sieciach MLP nie s dopuszczane bezpo±rednie poª czenia wewn trz tej samej warstwy, ani poª czenia przeskakuj ce warstw tj. z warstwy L do L + 2, z L do L + 3 itd.
Architektury sieci Dlacezgo MLP? Algorytmy uczenia i konstrukcji sieci skierowanych alorytmy konstrukcyjne architektura sieci zale»y gªównie od algorytmu, zbioru ucz cego, dokªadno±ci jak chcemy osi gn, algorytm wstecznej propagacji bª du algorytm uczenia dla sieci wielowarstwowych (MLP), architektura jest z góry zadana, zanim przejdziemy do procesu uczenia, wiemy ile sie b dzie mie : warstw ukrytych, neuronów w ka»dej warstwie ukrytej, jednostek wej±ciowych i wyj±ciowych.
Ogólna architektura MLP Architektury sieci Dlacezgo MLP? x1 x2 warstwa wejściowa warstwa ukryta y1 y2 warstwa wyjściowa z1 xi yj zk x0=1 (próg) y0=1 (próg)
Wyj±cie neuronu z warstwy ukrytej Architektury sieci Dlacezgo MLP? warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 xi yj zk y j = φ(a j ) a j = w t j x x0=1 (próg) y0=1 (próg)
Architektury sieci Dlacezgo MLP? Wyj±cie neuronu z warstwy wyj±ciowej warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 xi yj zk z k = φ(b k ) b k = w t k y x0=1 (próg) y0=1 (próg)
Zalety MLP Architektury sieci Dlacezgo MLP? jest w stanie przybli»y dowolnie zªo»one i skomplikowane odwzorowanie u»ytkownik nie musi zna lub zakªada z góry»adnej formy wyst puj cych w poszukiwanym modelu zale»no±ci nie musi nawet zadawa sobie pytania, czy jakiekolwiek mo»liwe do matematycznego modelowania zale»no±ci w ogóle wyst puj wygodne narz dzie do wszelkiego rodzaju zastosowa«zwi zanych z prognozowaniem, klasykacj lub automatycznym sterowaniem
Przykªady ucz ce Niech dana b dzie lista N przykªadów ((x (1), t (1) ),..., (x (N), t (N) )). Za cel stawiamy sobie dobranie takiego ukªadu wag, by perceptron otrzymuj cy na wej±ciu x (n) = (1, x (n) (n) 1,.., x,.., x (n) ) dawaª na i I wyj±ciu t (n) = (t (n) 1,.., t(n),.., t(n) ), gdzie n 1,.., N. Zamiast progów k K stosujemy rozszerzone wektor wej±ciowy i rozszerzony wektor wag, mianowicie ka»dy jednostka licz ca dostaje na wej±ciu dodatkowo 1. Wagi mi dzy jednostakami a dodatkowymi wej±ciami pomno»one przez -1 odpowiadaj progom.
Funkcja bª du Inaczej ujmuj c problem naszym celem jest zminimalizowanie nast puj cej funkcji bª du ERROR = 1 2 N K (z (n) k n=1 k=1 t (n) k )2 Warto± powy»szej funkcji zale»y od warto±ci wag. Aby znale¹ jej minimum b dziemy modykowa wagi, za pomoc algorytmu gradienu prostego.
Dana niech b dzie funkcja f : R d R ci gªa i ró»niczkowalna (istniej pochodne cz stkowe f x 1... f x d ). Chcemy wyznaczy minimum (lokalne) funkcji tj. x R d, takie»e f (x) f (y) dla y nale» cych do pewnego otoczenia x. Dodatkowo dany niech b dzie pewien punkt startowy a (0) R d. Czym jest f (a (0) x 1 )?
Przy kilku zaªo»eniach f x 1 (a (0) ) intuicyjnie mo»e by inerpretowana jako kierunek, w któr stron funkcja ro±nie zmieniaj c pierwsz wspóªrz dn, przy pozostaªych ustalonych. Maj c caªy zestaw pochodnych cz stkowych (gradient) mamy dokªadny kierunek, w którym funkcja najszybciej ro±nie. Szukaj c maksimum nale»y zatem wykona krok w tym»e kierunku. Szukaj c minimum nale»y znale¹ kierunek najszybszego wzrostu... i wykona krok w przeciwn stron.
1 Rozpocznij w losowym / wybranym a (0) 2 Dla ka»dej wspóªrz dnej g = 1..d a (m+1) g = a (m) g η f x g (a (m) ), gdzie η jest bliskim zeru, dodatnim wspóªczynnik uczenia 3 Powtarzaj krok 2
50 40 30 20 10 06 4 2 0-2 -4-6 -6-4 -2 0 2 4 6
Sigmoida Aby±my mogli minimalizowa funkcj ERROR za pomoc algorytmu gradientu prostego musi ona by ci gªa i ró»niczkowalna. eby warunek ten byª sp ªniony funkcje aktywuj ce jednostek nale» cych do MPL musz by równie» ci gªe i ró»niczkowalne. Takie wªasno±ci sp ªniaj na przykªad sigmoidy. 1 sigmoida 2 symetryczna sigmoida φ(s) = σ(s) = 1 1 + exp( s) φ(s) = 2σ(s) 1 = 1 exp( s) 1 + exp( s)
Pochodna sigmoidy Wa»na obserwacja σ (s) = d ds (1 + e s ) 1 = (1 + e s ) 2 e s ( 1) = 1 1 + (1 1 ) = σ(s)(1 σ(s)) e s 1 + e s
Nieci gªa funkcja bª du 4 3.5 3 2.5 2 1.5 1 0.5 0 4 2 0-2 2 0-2 -4-4 4
Ci gªa funkcja bª du w = [ -3.0 3.0-1.5 3.0-3.0-1.5 * * -2.0] 4 3.5 3 2.5 2 1.5 1 0.5 0 25 20-5 15 10 5 0 20 15 10 5 0-5 25
1 0.8 0.6 0.4 0.2 0 0.3 0.25 0.2 0.15 0.1 0.05 0 sigmoida -4-2 0 2 4 poch. sigm. -4-2 0 2 4 Sigmoida i jej pochodna
Funkcja bª du Zmodykowa wagi, tak»eby zminimalizowa bª d ERROR, u»ywaj c algorytmu spadku gradientowego. ERROR = 1 2 N K (z (n) k n=1 k=1 t (n) k )2 Oznaczmy przez E (n) dla n 1,.., N funkcj bª du dla jednego przykªadu ucz cego. Zatem E (n) = 1 2 K k=1 ERROR = 1 2 (z (n) k N n=1 t (n) k )2 E (n)
Funkcja bª du Dodatkowo funkcj bª du dla jednego przykªadu E (n) rozbijmy na sum wyra»e«e (n). Przez E (n) bedziemy oznacza bª d kwadratowy k k dla przykªadu n dla k-tego wyj±cia sieci. A wi c : E (n) k = 1 2 (z(n) k E (n) = 1 2 K k=1 t (n) k )2 E (n) k
Koncepcja algorytmu Aby minimalizowa bª d u±redniony po przykª dach ERROR, minimalizujemy bª d E dla poszczególnych przykªadów,. w (m+1) = w (m) η E Koncepcja algorytmu wstecznej propagacji propagowanie gradientu bª du od wyj± spowrotem do wej±cia. w
Dowód poprawno±ci z k = φ(b k ), b k = w t k y warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 E = 1 2 K (z k t k ) 2 = k=1 xi yj zk 1 2 K (φ(b k ) t k ) 2 k=1 x0=1 (próg) y0=1 (próg) E = 1 w kj w kj 2 K (φ(b k ) t k ) 2 = k=1 w kj 1 2 (φ(b k) t k ) 2 = E k w kj
Dowód poprawno±ci E w kj = E k w kj = w kj 1 2 (φ(b k) t k ) 2 E k b k b k w kj = δ k y j warstwa wejściowa x1 x2 xi warstwa ukryta y1 y2 yj warstwa wyjściowa z1 zk E k b k = δ k = (z k t k )φ (b k ) x0=1 (próg) y0=1 (próg) b k = (w k1 y 1 + w k2 y 2 +.. + w kj y j +.. + w kj y J ) = y j w kj w kj
Dowód poprawno±ci warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 E w ji = E a j E a j w ji a j = δ j =? = δ j x i xi yj zk x0=1 (próg) y0=1 (próg) a j = (w j1 x 1 + w j2 x 2 +.. + w ji x i +.. + w ji x I ) = x i w ji w ji
Dowód poprawno±ci warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 a j = w t j x y j = φ(a j ) b k = w t k y xi yj zk x0=1 (próg) y0=1 (próg) δ j = E a j = a j 1 2 K (φ(b k ) t k ) 2 = k=1 δ j = K k=1 E k b k b k a j K k=1 a j 1 2 (φ(b k) t k ) 2 = = δ k b k a j K k=1 E k a j
Dowód poprawno±ci b k = (w k1 y 1 + w k2 y 2 +.. + w kj y j +.. + w kj y J ) = a j a j a j (w k1 φ(a 1 ) + w k2 φ(a 2 ) +.. + w kj φ(a j ) +.. + w kj φ(a J )) = δ j = w kj φ(a j ) a j = w kj φ (a j ) K K δ k w kj φ (a j ) = ( δ k w kj )φ (a j ) k=1 k=1
1 Wybieramy maªe wagi pocz tkowe. Wybieramy te» niewielki wspóªczynnik uczenia si η > 0, 2 Iterujemy póki bª d ERROR si zmniejsza (ewentualne du»e odchylenia pojedynczych przykªadów nale»y traktowa raczej jako przejaw zaszumienia danych wej±ciowych ni» niedoskonaªo±ci sieci) 1 losujemy przykªad x z wyj±ciem t, 2 przebiegamy sie w przód, dla ka»dej jednostki zapami tuj c sum wej±ciow i jej wyj±cie (warto± funkcji aktywuj cej na sumie wej±ciowej) 3 przebiegamy sie w tyª, liczymy δ dla ka»dej jednostki 4 zmieniamy wagi
Adnotacja do 2.2 Przebiegamy sie w przód, dla ka»dej jednostki zapami tuj c sum wej±ciow i jej wyj±cie. Suma wej±ciowa ma warto± : a j = w (t) x (b j k = w (t) y) k Wyj±cie jednostki, warto± funkcji aktywuj cej: y j = φ(a j ) (z j = φ(b k ))
Adnotacja do 2.3 - Przebiegamy sie w tyª, liczymy δ dla ka»dej jednostki. δ dla jednostek wyj±ciowych δ dla jednostek ukrytych δ k = (z k t k )φ (b k ) K δ j = ( δ k w kj )φ (a j ) k=1
Adnotacja do 2.3 Przebiegamy si w tyª, liczymy δ dla ka»dej jednostki. Pami tajmy»e φ (a j ) = y j (1 y j ) (φ (b k ) = z j (1 z j )) dla Zatem φ(s) = σ(s) = 1 1 + exp( s) δ k = (z k t k )φ (b k ) = δ k = (z k t k )z j (1 z j ) K K δ j = ( δ k w kj )φ (a j ) = ( δ k w kj )y j (1 y j ) k=1 k=1
Uwaga. u»ywana we wsteczniej propagacji bª du mo»e mie, a nawet powinna mie wi cej ni» jedn warstw ukryt. δ dla wszystkich jednostek z warstw ukrytych jest liczona w taki sam sposób. Musimy pami ta o tym,»e najpierw liczymy δ dla jednostek z ostatniej warstwy ukrytej, potem dla jednostek z przedostatniej warstwy ukrytej, potem dla jednostek z przed przedostatniej warstwy ukytej itd.
Adnotacja do 2.4 zmieniamy wagi w (m+1) kj = w (m) ηδ kj k y j (w (m+1) = w (m) ηδ ji ji j x i ) Staªa uczenia η powinna mie dodatni warto± blisk zeru np. η = 0.001.
Minima lokalne Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Algorytm spadku gradientowego mo»e przy niesprzyjaj cych okoliczno±ciach utkn w minimum lokalnym. Co gorsza, zazwyczaj nie jeste±my w stanie stwierdzi, czy zwrócony wynik jest minimum globalnym, czy lokalnym. W takich sytuacjach najprostszym (i jednym z najlepszych) rozwi zaniem jest restart algorytmu z losowego rozwi zania pocz tkowego i wybranie najlepszego ze zwróconych wyników.
Wady algorytmu Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych wymaga du»ej liczby iteracji, by osi gn zbie»no±, mo»e si okaza zbyt wolny, je»eli przyjmie si za maªy wspóªczynnik uczenia, z kolei zbyt du»a warto± η grozi wyst pieniem oscylacji oraz wokóª minimum, algorytm jest wra»liwy na wyst powanie minimów lokalnych. Jak sobie z tym poradzi? Czy mo»na sobie z tymi problemami poradzi efektywnie?
Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Adaptacyjny dobór wspóªczynnika uczenia Dzi ki odpowiednim modykacjom wspóªczynnika uczenia mo»emy przy±pieszy nauk sieci i poprawi jej zbie»no±. { η (m+1) iη = (m) ERROR (m+1) p ERROR (m) ERROR (m+1) > p ERROR (m) gdzie: dη (m) p dopuszczalny wspóªczynnik wzrostu bª du (np. p = 1.05) i wspóªczynnik zwi kszania warto±ci, i 1 (np. i = 1.2) d wspóªczynnik zmniejszania warto±ci, d < 1 (np. d = 0.2)
Metoda momentu Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Do procesu uaktualniania wag wprowadza si tzw. moment (p d, bezwªadno± ), który jest proporcjonalny do zmiany tej wagi w poprzedniej iteracji. w (m+1) ji = w (m) ji ηδ j x i + α w (m) ji w (m+1) kj = w (m) kj ηδ k y j + α w (m) kj w (m) ji w (m) kj = w (m) ji = w (m) kj α [0, 1), sugerowana warto± 0.1 w (m 1) ji w (m 1) kj
Metoda momentu Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Skªadnik momentu nie powinien jednak caªkowicie zdominowa procesu uczenia, poniewa» grozi to niestabilno±ci procesu uczenia. Aby zapobiec temu kontroluje si warto± funkcji bª du w trakcie uczenia, doprowadzaj c do jej wzrostu jedynie w ograniczonym zakresie np. o p procent. Je±li w kolejnych iteracjach jest speªniona relacja ERROR (m+1) < (1 + 0.01p)ERROR (m), to krok jest akceptowany i nast puje aktualizacja wag. W przeciwnym razie zmiany s pomijane i przyjmuje si w (m+1) = 0. W takim przypadku skªadnik gradientowy odzyskuje przewag nad skªadnikiem momentu i proces uczenia przebiega zgodnie z kierunkiem minimalizacji wyznaczonym przez aktualny wektor gradientu.
Jak dziaªa metoda momentu? Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych dla pªaskich odcinków funkcji bª du moment i gradient maj ten sam kierunek, ich dziaªanie kumuluje si i algoryt przy±piesza, dla α = 0.9 krok na takim odcinku mo»e by 10 razy dªu»szy, w pobli»u minimum skªadnik momentu, nie b d c zwi zany z aktualn warto±ci gradientu, mo»e spowodowa zmian wag prowadz c do chwilowego wzrostu warto±ci funkcji bª du i w efekcie opuszczenia strefy przyci gania tego minimum, gdy wystepuj w wozy, to moment zapobiega oscylacjom,
W wóz Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych 1 0.8 0.6 6 0.4 4 0.2 0 2 0-6 -4-2 0 2 4-2 -4 6-6
Normalizacja danych Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Korzystaj c z sieci neuronowej typu MLP wyposa»onej w sigmoidalne funkcje aktywacji koniecznie staje si przeprowadzenie skalowania lub standaryzacji danych podawanych na wej±ciach i wyj±ciu sieci. Brak odpowiedniej transformacji powoduje powa»ne zakªócenia w procesie uczenia oraz gorsze wªa±ciwo±ci nauczonej sieci.
Normalizacja danych Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Oczekiwane warto±ci wyj± nie powinny przyjmowa kresów górnego ani dolnego funkcji aktywacji, to jest warto±ci 1 i 0 odpowiednio. Przykªadowo dla sigmoidy mo»e by to przedziaª [0.1; 0.9] [0; 1]. Odpowiednio dla sigmoidy symetrycznej np. [ 0.9; 0.9]. Dla wej± nie ma tak ±cisªych ogranicze«, mog by skalowane do takich samych warto±ci co wej±cia. Wa»ne»eby byªy bliskie zeru i miaªy maª amplitud.
Normalizacja danych Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Dlaczego skalujemy do przedziaªu np. [0.1; 0.9] a nie (0; 1) (dla sigmoidy niesymetrycznej)? Zaªó»my»e mamy dwie zmienne v 1 i v 2. Obie s do± du»e i maj taki sam znak, np. v 1 = 10 v 2 = 5. Mimo tego,»e ró»nica mi dzy nimi jest znaczna (50%), gdy policzymy dla nich σ(v 1 ) = 0.99995 oraz σ(v 2 ) = 0.99331 otrzymamy wyniki bardzo bliskie sobie (ró»nica rz du 0.7%). Z drugiej strony pochodna sigmoidy w x = 5 oraz x = 10 b dzie bardzo maªa, zatem i zmiana wag równie» maªa, co wydªu»y dziaªanie algorytmu.
Normalizacja danych Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych Wyst powanie du»ych ró»nic w zakresach warto±ci przyjmowanych przez zmienne mo»e ¹le wpªywa na dziaªanie neuronu, zaburzaj c wpªyw poszczególnych wej±. Sieci uczone w oparciu o opisywane zmienne s równie» bardziej podatne na utkwienie w minimach lokalnych. Du»e warto±ci zmiennych wej±ciowych prowadz tak»e do nasycenia sigmoidalnej funkcji aktywacji, której pochodna w takim przypadku zbiega si do warto±ci 0, blokuj c tym samym proces uczenia.
Sigmoida i jej pochodna Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych 5 f(x)=x sigm. poch. sigm. 4 3 2 1 0-4 -2 0 2 4