Wyk³ad 2
Transkrypt
Wyk³ad 2
INTELIGENCJA OBLICZENIOWA dr Katarzyna Grzesiak-Kopeć SIECI NEURONOWE 2 Plan wykładu Wprowadzenie Sztuczny neuron Uczenie z nadzorem Uczenie bez nadzoru Uczenie z krytykiem Podsumowanie 3 Uczenie z nadzorem Zadawanie pytań • Opis obiektu (wektor własności) • Porównanie odpowiedzi z poŜądaną Uczenie nadzorowane przez nauczyciela (szkolne) Zmiana parametrów wewnętrznych • Adaptacja – w przyszłości trzeba robić jak najmniej błędów Celem nie jest uczenie „na pamięć”, lecz generalizacja! 4 Sieć wielowarstwowa 2-warstwowa sieć; 2 warstwy wag: • wij = połączenie wejścia i z ukrytym j • Wij = połączenie wyjścia j z ukrytym i 3-warstwowa sieć, jeśli liczone są warstwy węzłów TWIERDZENIE: 2-warstwowa sieć moŜe aproksymować dowolną funkcję z zadaną dokładnością pod warunkiem, Ŝe jest wystarczająca liczba węzłów ukrytych Ile potrzeba węzłów ukrytych? • ??? 5 Typy sieci neuronowych Feedforward Neural Networks (FFNN) Functional Link Neural Networks (FLNN) Simple Recurrent Neural Networks (SRNN) Time-Delay Neural Network (TDNN) 6 FFNN yk ( X ,W ) = f k ( netk ) = M +1 f k ( ∑ wkj f y j (net y j )) = j =1 M +1 N +1 f k ( ∑ wkj f y j (∑ w ji xi )) j =1 warstwa wejściowa i =1 warstwa wyjściowa warstwa ukryta 7 FLNN FFNN + funkcja aktywacji w warstwie wejściowej • Rozmiar wejścia N, L neuronów funkcyjnych h1, …, hL takich, Ŝe hi(x1, …, xN) • Macierz wag łączących neurony wejściowe i funkcyjne: wij=1 jeśli hi zaleŜy od xj wij=0 wpp 8 FLNN M +1 L yk ( X ,W ) = f k ( ∑ wkj f y j (∑ w ji hl ( X ))) j =1 i =1 9 Po co FLNN? MoŜe szybciej się uczyć MoŜe być dokładniejsza … Ale nie musi! 10 Zmiany w czasie Rozpoznawanie sekwencji • Wejście: pewna sekwencja • Wyjście: odpowiedni wzorzec • Zastosowanie: rozpoznawanie mowy Generowanie sekwencji • Wejście: część pewnej sekwencji • Wyjście: generacja reszty sekwencji • Zastosowanie: predykcja plam na słońcu 11 Zmiany w czasie Czasowe asocjacje • Wejście: pewna sekwencja • Wyjście: odpowiednia sekwencja • Zastosowanie: generowanie mowy 12 RNN Połączenia wstecz • Nauka temporalnej charakterystyki danych • Zachowanie sieci zaleŜy od historii RóŜne modele RNN • Sieć Hopfielda • SRNN jako proste rozszerzenie FFNN 13 RNN Nauka języków formalnych Rozpoznawanie mowy Komponowanie muzyki Szereg zastosowań, ale problemu w uczeniu 14 The Elman SRNN X = ( x1 ,..., xN , x N +1 , x N + 2 ,..., xN + L ) warstwa kontekstowa 15 The Jordan SRNN X = ( x1 ,..., xN , xN +1 , xN + 2 ,..., x N + K ) warstwa stanu 16 TDNN Backpropagation-trough-time Jedna z najprostszych metod „nauki w czasie” • Wsteczna propagacja błędów 17 Pojedynczy neuron t = 0 : xi (t ) ≠ 0 t = t ': xi (t − j ) ≠ 0, j = 0,1,..., t ' waga=1 M +1 N T yk ( X ,W ) = f k ( ∑ wkj f y j (∑∑ w j ,i (t ) xi (t ) + w j , N +1 xN +1 )) j =1 i =1 t = 0 18 Algorytmy uczenia Optymalizacja lokalna • Spadek gradientu (GD) Optymalizacja globalna • Skokowy Algorytm Verleta (LeapFrog) • Symulowane wyŜarzanie • Obliczenia ewolucyjne Algorytmy hybrydowe 19 Uczenie z nadzorem Zadany ciąg uczący {( X j , d j )} N j =1 20 Uczenie z nadzorem Stochastyczne/online • Modyfikacja wag po prezentacji pojedynczego wzorca • Prezentacja losowa Wsadowe/off-lie (batch) • Modyfikacja wag po prezentacji całego ciągu uczącego 21 Wsteczna propagacja błędów Backpropagation (BP) • Werbos 1974 • Szeroko znana dopiero w latach ’80 • Koniec kryzysu UWAGA sieć wielowarstwową: • Trudniej się uczy niŜ jednowarstwową • ZbieŜność jest wolniejsza • „Tuningowanie” sieci wymaga bardziej skomplikowanych metod 22 BP ∂E ∂E ∂ek ∂yk ∂vk = ∂wkj ∂ek ∂yk ∂vk ∂wkj {( X j , d j )}Nj=1 e j (t ) = d j (t ) − y j ( t ) błąd wyjścia neuronu j w chwili t m y k (t ) = ϕ (vk ) = ϕ (∑ wkj y j (t )) j =0 aktywacja neuronu N Ε (t ) = 1 1 2 = e k (t ) ( d k (t ) − y k (t )) 2 ∑ ∑ 2 k =1 2 k =1 N Ε (t ) = N m 1 ( d k (t ) − ϕ (∑ wkj y j (t ))) 2 ∑ 2 k =1 j =0 błąd kwadratowy natychmiastowy ∂e ∂y ∂v ∂E = ek , k = −1, k = ϕ ' (v k ), k = y j ∂ek ∂yk ∂vk ∂wkj ∂E = −ekϕ ' (v k ) y j ∂wkj ∆wkj = −η δk = − ∂E = ηδ k y j reguła delta ∂wkj ∂E = ekϕ ' (v k ) ∂vk k-neuron wyjściowy lokalny gradient 23 Lokalny gradient a warstwa ∂E ∂E ∂E ∂y j =− =− δj =− ϕ ' (v j ) ∂y j ∂v j ∂y j ∂v j ∂E ∂e ∂v ∂ (d k − yk ) = ∑ ek k k = ∑ ek ∂y j ∂vk ∂y j ∂vk k ∂ (∑ wkj y j ) j ∂y j = −∑ ekϕ ' (vk ) wkj k ∂E = −∑ δ k wkj ∂y j k δ j = ϕ ' (v j )∑ δ k wkj k 24 Implementacja BP 1. Inicjalizacja: wag, η oraz liczby epok ξ=0 2. Stawiamy E=0 3. Dla kaŜdego wzorca p a. Faza „feedforward”; obliczamy yj (j=1, …, J) oraz yk (k=1, …,K) b. Obliczamy błąd w warstwie wyjściowej δk oraz w warstwie(ach) ukrytej(ych) δj c. Poprawiamy wagi wkj oraz w kolejnych warstwach (bp) d. E+= [Ep=∑k=1,…,K(dk,p-yk,p)2] 4. ξ= ξ+1 5. Sprawdzamy warunek stopu; jeśli !STOP to powrót do kroku 2 25 BP STOP Kiedy minęła wskazana liczba epok Kiedy osiągnęliśmy zadawalająco mały błąd na ciągu uczącym; np. MSE • Ep= ∑p=1,…,P∑k=1,…,K(dk,p-yk,p)2/PK Kiedy nastąpi przeuczenie sieci • Ev>avEv+ σ avE to średni błąd walidacji w poprzednich epokach σ to odchylenie standardowe Ev 26 Przeuczenie (overfitting) Szukamy modelu dobrze generalizującego dane (predykcja) Nie szukamy idealnego modelu dla konkretnych danych 27 Neurony ukryte (HU) Przyjmujemy: • FFNN, 1 warstwa ukryta SU • 2-wymiarowe wejście dla klasyfikacji • 1-wymiarowe wejście dla aproksymacji 28 HU & Klasyfikacja 3 klasy 10 linii – 10 neuronów ukrytych 13 HU dałoby idealną klasyfikację 29 HU & Aproksymacja 4 HU z sigmoidalną funkcją aktywacji HU = liczba punktów przegięcia + 1 30 Ensemble Neural Networks Losowo wybrane wagi przed rozpoczęciem uczenia róŜne rezultaty Czemu nie optymalizować rezultatów ucząc kilka róŜnych sieci jednocześnie? 31 Output Combination Wybieramy NN dającą najlepszą generalizację Bierzemy średnią wyjść wszystkich elementów „ensemble” Tworzymy liniową kombinację wyjść wszystkich NN z wagami Cn (wiarygodność sieci) 32 Ensemble NNS uczone na tych samych danych, ta sama architektura i algorytm uczenia Alternatywy: • • • • Uczenie na róŜnych zbiorach danych RóŜne architektury RóŜne algorytmy uczenia RóŜne typy sieci 33 Ensemble Równoległe i niezaleŜne uczenie sieci Alternatywa – Cooperative Ensemble Strategy (Cooperatibve Agents) • Wymiana doświadczeń • Wymiana wiedzy • Przykład: boosting (wzmacnianie) 34 Ensemble Christian Merkwirth • http://zti.if.uj.edu.pl/~merkwirth/ ENTOOL • A Matlab package for Statistical Learning with ensembles of models of the same type (homogenous ensembles) or of different type (heterogenous ensembles) 35 Pytania Wyjaśnij w jaki sposób SRNN uczy się czasowej charakterystyki danych Jakie wymagania powinna spełniać funkcja aktywacji i funkcja błędu przy GD Jaka jest główna zaleta sieci rekurencyjnych w stosunku do jednokierunkowych? 36 koniec 37 PUNN WaŜony iloczyn wejść Skomplikowane obliczeniowo dla neuronów typu PU występujących w więcej niŜ jednej warstwie 38