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