Wst p do sieci neuronowych, wykªad 05a M. Czoków, J. Piersa Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika w Toruniu 2012-11-14 Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego Kapitaª Ludzki
1 Sie wielowarstwowa Architektury sieci Dlaczego MLP? 2 3 Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych
Architektury sieci Dlaczego MLP? 1 Sie wielowarstwowa Architektury sieci Dlaczego MLP? 2 3 Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych
Powtórzenie Architektury sieci Dlaczego MLP? W sieciach skªadaj cych si z przynajmniej dwóch neuronów wyniki zwracane przez jedne neurony mog by wej±ciami dla innych neuronów. Takie sieci dziel si na: skierowane (ang. feed-forward) - niedopuszczane 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 Dlaczego MLP? Szczególnym typem sieci skierowanych s sieci warstwowe. Wszystkie perceptrony podzielone s na kolejno wyst puj ce po sobie warstwy rozª czne. Warstwa L + 1-sza za wej±cia przyjmuje wyniki z warstwy L-tej i tylko te. 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. Taka sie skªada si z trzech typów warstw: warstwa pierwsza wej±ciowa (jednostki w tej warstwie s to jednostki wej±ciowe), warstwa ostatnia wyj±ciowa (jednostki w tej warstwie s to jednostki wyj±ciowe), warstwy pomi dzy wej±ciow a wyj±ciow ukryte (jednostki w tych warstwach s to jednostki ukryte).
Architektury sieci Dlaczego MLP? Algorytmy uczenia i konstrukcji sieci skierowanych algorytmy 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 Dlaczego MLP? warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 xi yj zk x0=1 (bias) y0=1 (bias) Warstwa wej±ciowa sieci, prezentowanej na rysunku, posiada I jednostek i dodatkowo jednostk peªni c funkcj progu, J jednostek w warstwie ukrytej oraz K jednostek wyj±ciowych. Sie o takiej architekturze b dzie sªu»yªa jako przykªad w caªej prezentacji.
Wyj±cie neuronu z warstwy ukrytej Architektury sieci Dlaczego MLP? warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 a j = w t j x y j = φ(a j ) xi yj zk x0=1 (bias) y0=1 (bias)
Architektury sieci Dlaczego MLP? Wyj±cie neuronu z warstwy wyj±ciowej warstwa wejściowa x1 x2 warstwa ukryta y1 y 2 warstwa wyjściowa z1 b k = w t k y z k = φ(b k ) xi yj zk x0=1 (bias) y0=1 (bias)
Zalety MLP Architektury sieci Dlaczego 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,
1 Sie wielowarstwowa Architektury sieci Dlaczego MLP? 2 3 Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych
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 sie otrzymuj ca na wej±ciu x (n) = (1, x (n) (n) 1,.., x,.., x (n) ) dawaªa na i I wyj±ciu t (n) = (t (n) 1,.., t(n),.., t(n) ), gdzie n 1,.., N. k K Zamiast progów stosujemy rozszerzony wektor wej±ciowy i rozszerzony wektor wag, mianowicie ka»da jednostka licz ca dostaje na wej±ciu dodatkowo 1. Wagi mi dzy jednostkami 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 gradientu prostego.
Dana niech b dzie funkcja f : R d R ci gªa i ró»niczkowalna (istniej pochodne cz stkowe f x 1... f ). Chcemy wyznaczy xd 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 interpretowana 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. Zatem: 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óªczynnikiem 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ª speªniony, funkcje aktywuj ce jednostek nale» cych do MLP musz by równie» ci gªe i ró»niczkowalne. Takie wªasno±ci speª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) = s (1 + e s ) 1 = (1 + e s ) 2 e s ( 1) = 1 1 + (1 1 ) = σ(s)(1 σ(s)). e s 1 + e s
1 Sigmoida i jej sigmoida pochodna 0.8 0.6 0.4 0.2 0-4 -2 0 2 4 0.3 0.25 0.2 0.15 0.1 0.05 0 pochodna sigmoidy -4-2 0 2 4
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 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
Funkcja bª du Cel zmodykowa wagi, u»ywaj c algorytmu spadku gradientowego tak,»eby zminimalizowa bª d ERROR. 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 = (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) b dziemy oznacza bª d kwadratowy k k dla n-tego przykªadu dla k-tego wyj±cia sieci. A wi c: E (n) k = 1 2 (z(n) k E (n) = K k=1 t (n) k )2, E (n) k.
Koncepcja algorytmu Aby minimalizowa bª d u±redniony po przykªadach ERROR, minimalizujemy bª d E dla poszczególnych przykªadów. Dla wszystkich wag g = 1..d wykonujemy: w (m+1) g = w (m) g η E w g (w (m) ) Koncepcja algorytmu wstecznej propagacji bª du propagowanie gradientu bª du od wyj± z powrotem do wej±cia.
Dowód poprawno±ci warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 z k = φ(b k ), E = 1 2 b k = w t k y K (z h t h ) 2 = xi yj zk h=1 1 2 K (φ(b h ) t h ) 2 h=1 x0=1 (bias) y0=1 (bias) E = 1 w kj w kj 2 K (φ(b h ) t h ) 2 = h=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 = warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 w kj 1 2 (φ(b k) t k ) 2 xi yj zk E k b k b k w kj = δ k y j E k b k = δ k = (z k t k )φ (b k ) x0=1 (bias) y0=1 (bias) b k = (w k1 y1 + w k2 y2 +.. + 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 xi yj zk E w ji E = E a j a j = δ j =? a j w ji = δ j x i x0=1 (bias) y0=1 a j = (w j1 x1 + w j2 x2 +.. + w ji x i +.. + w ji x I ) = x i w ji w ji (bias)
Dowód poprawno±ci warstwa wejściowa x1 x2 warstwa ukryta y1 y2 warstwa wyjściowa z1 xi yj zk a j = w t j x y j = φ(a j ) b k = w t k y δ j = E a j = a j 1 2 δ j = K h=1 E h b h b h a j = K (φ(b h ) t h ) 2 = h=1 K h=1 δ h b h a j x0=1 K h=1 (bias) y0=1 (bias) a j 1 2 (φ(b h) t h ) 2 = K h=1 E h a j
Dowód poprawno±ci b h = (w h1 y1 + w h2 y2 +.. + w hj y j +.. + w hj y J ) = a j a j a j (w h1 φ(a1) + w h2 φ(a2) +.. + w hj φ(a j ) +.. + w hj φ(a J )) = δ j = w hj φ(a j ) a j = w hj φ(a j ) a j = w hj φ (a j ) K K δ h w hj φ (a j ) = ( δ h w hj )φ (a j ) h=1 h=1
1 wybieramy maªe wagi pocz tkowe. Wybieramy te» niewielki wspóªczynnik uczenia η > 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 dla jednostek ukrytych ma warto± : a j = w t j x, natomiast dla jednostek wyj±ciowych: b k = w t k y. Wyj±cie jednostki ukrytej (warto± funkcji aktywuj cej) ma warto± : natomiast dla jednostki wyj±ciowej: y j = φ(a j ), z k = φ(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 sie w tyª, liczymy δ dla ka»dej jednostki. Pami tajmy,»e dla jednostek wyj±ciowych: natomiast dla jednostek ukrytych: φ (b k ) = z k (1 z k ), φ (a j ) = y j (1 y j ), gdzie φ jest funkcj sigmoidaln. Zatem dla jedostek wyj±ciowych: δ k = (z k t k )φ (b k ) = (z k t k )z k (1 z k ), natomiast dla jednostek ukrytych: K K δ j = ( δ k w kj )φ (a j ) = ( δ k w kj )y j (1 y j ). k=1 k=1
Sie wielowarstwowa u»ywana we wstecznej 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 ukrytej itd.
Adnotacja do 2.4 zmieniamy wagi. Dla warstwy wyj±ciowej: Dla warstw ukrytych: w (m+1) kj w (m+1) ji = w (m) kj ηδ k y j. = w (m) ji ηδ j x i. Staªa uczenia η powinna mie dodatni warto± blisk zeru np. η = 0.001.
Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych 1 Sie wielowarstwowa Architektury sieci Dlaczego MLP? 2 3 Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych
Minima lokalne Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych 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 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 caªkowicie zdominowa procesu uczenia, poniewa» grozi to niestabilno±ci procesu uczenia. Aby temu zapobiec, 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 algorytm 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.
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 normalizacji 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 kresu 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 v1 i v2. Obie s do± du»e i maj taki sam znak, np. v1 = 10 v2 = 5. Mimo tego,»e ró»nica mi dzy nimi jest znaczna (50%), gdy policzymy dla nich σ(v1) = 0.99995 oraz σ(v2) = 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 zmienne o du»ych zakresach 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 do warto±ci 0, blokuj c tym samym proces uczenia.
Sigmoida i jej pochodna 5 f(x)=x sigm. poch. sigm. 4 Problemy ze zbie»no±ci Modykacje algorytmu Normalizacja danych 3 2 1 0-4 -2 0 2 4