Professional Documents
Culture Documents
multiLayerNN PL
multiLayerNN PL
multiLayerNN PL
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji
Aktywacji
Uczenie Wielowarstwowych Sieci Neuronów o
(c) Marcin
Sydow
Ciągłej Funkcji Aktywacji
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji
Aktywacji
(c) Marcin
Sydow
Uczenie neuronu o ciągłej funkcji aktywacji
Przypomnienie: neuron z ciągłą funkcją aktywacji
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej sigmoidalna funkcja unipolarna:
Funkcji
Aktywacji
1
(c) Marcin f (net) =
Sydow 1 + e −net
sigmoidalna funkcja bipolarna:
2
f (net) = −1
1 + e −net
gdzie:
net = w T x
Błąd neuronu ciągłego
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji
Aktywacji
Zdefiniujmy następującą miarę błędu pojedynczego neuronu:
(c) Marcin 1 1
Sydow E = (d − y )2 = (d − f (w T x))2
2 2
gdzie:
d - pożądane wyjście (ciągłe)
y - aktualne wyjście (ciągłe) (y = f(net))
(współczynnik 1/2 wybrany dla uproszczenia późniejszych rachunków)
Cel uczenia: minimalizacja błędu
Uczenie
Wielowar-
stwowych
Sieci Chcemy tak modyfikować wektor wag w , żeby zminimalizować
Neuronów o
Ciągłej błąd.
Funkcji
Aktywacji
Metoda gradientu: największy spadek funkcji (w kierunku
(c) Marcin
Sydow
minimum) wskazywany jest przez przeciwny wektor gradientu
(czyli pochodnych cząstkowych błędu jako funkcji wektora wag)
∂E
∇E (w ) =
∂w
∂net ∂net T
∇E (w ) = −(d − y )f 0 (net)( ,..., ) =
∂w1 ∂wp
= −(d − y )f 0 (net)x
Pochodne funkcyj sigmoidalnych
Uczenie
Wielowar-
stwowych
Sieci
Zauważmy, że:
Neuronów o
Ciągłej dla funkcji sigmoidalnej unipolarnej:
Funkcji
Aktywacji
(c) Marcin
f 0 (net) = f (net)(1 − f (net)) = y (1 − y )
Sydow
Uczenie
Wielowar-
stwowych
Sieci
Reasumując, wagi neuronu ciągłego modyfikujemy zgodnie ze
Neuronów o
Ciągłej
wzorem:
Funkcji
Aktywacji unipolarny:
(c) Marcin
Sydow wnew = wold + η(d − y )y (1 − y )x
bipolarny:
1
wnew = wold + η(d − y )(1 − y 2 )x
2
gdzie: η to współczynnik uczenia (learning rate)
Zauważmy wyraźną analogię do reguły delta dla dyskretnego
perceptronu
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji
Aktywacji
(c) Marcin
Sydow
Uczenie jednowarstwowej sieci neuronów o ciągłej funkcji
aktywacji
Jednowarstwowa sieć neuronów ciągłych
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Załóżmy, że sieć ma J wejść i K neuronów ciągłych.
Ciągłej
Funkcji Wprowadźmy następujące oznaczenia:
Aktywacji
z = Γ[Wy ]
Uczenie jednowarstwowej sieci ciągłych neuronów
Uczenie
Wielowar-
stwowych
Wprowadźmy dodatkowe oznaczenia:
Sieci
Neuronów o pożądany wektor wyjściowy: d T = (d1 , . . . , dK )
Ciągłej
Funkcji
Aktywacji
błąd wyjścia dla pojedynczego wektora wejść:
(c) Marcin K
Sydow 1X 1
E= (dk − zk )2 = ||d − z||2
2 2
k=1
Uczenie
Wielowar-
Mamy więc:
stwowych ∂E ∂E ∂netk
Sieci =
Neuronów o ∂wkj ∂netk ∂wkj
Ciągłej
Funkcji
Aktywacji
sygnał błędu delta k-tego neuronu ostatniej warstwy:
(c) Marcin
Sydow
∂E
δzk = − = (dk − zk )zk (1 − zk )
∂netk
∂E 1
δzk = − = (dk − zk )(1 − zk )2
∂netk 2
∂netk
Zauważmy, że ∂wkj = yj
Otrzymujemy więc wzór modyfikacji wag w postaci macierzowej:
Uczenie
Wielowar- wybór η, Emax , inicjalizacja losowych wag W , E = 0
stwowych
Sieci dla każdego przykładu ze zbioru uczącego:
Neuronów o
Ciągłej
oblicz wyjście z
Funkcji zmodyfikuj wagi k-tego neuronu (unipolarny/bipolarny):
Aktywacji
(c) Marcin
Sydow
Uczenie sieci wielowarstwowej - metoda propagacji wstecznej
Sieć wielowarstwowa
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji Jedna warstwa sieci neuronowej ma możliwości podzielenia
Aktywacji
przestrzeni obrazów wejściowych na obszary liniowo
(c) Marcin
Sydow separowalne.
Każda następna może dokonywać kolejnych transformacji.
W efekcie, wielowarstwowa sieć neuronowa jest uniwersalnym
narzędziem, które teoretycznie może dowolnie dokładnie
aproksymować dowolne transformacje przestrzeni wejściowej w
przestrzeń odwzorowań wyjściowych.
Uczenie Sieci Wielowarstwowej
Uczenie
Wielowar-
stwowych Zilustrujemy uczenie sieci wielowarstwowej na przykładzie sieci
Sieci
Neuronów o 2-warstwowej. W tym celu dodamy jedną warstwę umieszczoną
Ciągłej
Funkcji “przed” ostatnią (wyjściową) warstwą sieci i pokażemy jak ją
Aktywacji
uczyć.
(c) Marcin
Sydow Każda warstwa poza wyjściową nazywana jest warstwą ukrytą,
gdyż nie jest wiadome jakie powinno być jej “prawidłowe”
wyjście.
Metodę uczenia sieci wielowarstwowej odkryto dopiero w latach
70. i zaczęto stosować w latach 80. XX. wieku - nazywa się ona
metodą wstecznej propagacji błędów, gdyż wagi modyfikuje
się od warstwy ostatniej do pierwszej (wstecz).
Metodę tę można naturalnie rozszerzać z sieci 2-warstwowej na
dowolną liczbę warstw ukrytych.
Sieć dwuwarstwowa
Uczenie
Wielowar-
Wprowadzimy następujące oznaczenia:
stwowych
Sieci
wektor wejść: x T = (x1 , . . . , xI )
Neuronów o
Ciągłej
macierz wag pierwszej warstwy: V = [vji ]
Funkcji
Aktywacji
(vji : j-ty neuron, i-ta waga)
(c) Marcin
wektor wyjść pierwszej (wejść drugiej) warstwy:
Sydow y T = (y1 , . . . , yJ )
wektor wyjść drugiej warstwy (całej sieci):
z T = (z1 , . . . , zK )
macierz wag drugiej warstwy: W = [wkj ]
(wkj : k-ty neuron, j-ta waga)
operator funkcyj aktywacji: Γ = diag [f (·)]
(wymiar: J × J lub K × K )
Obliczenie wektora wyjść można więc teraz zapisać jako:
z = Γ[Wy ] = Γ[W Γ[Vx]]
Uczenie sieci wielowarstwowej
Uczenie
Wielowar-
stwowych
Sieci Metoda wstecznej propagacji błędu:
Neuronów o
Ciągłej
Funkcji
Po obliczeniu wektora wyjść z, wagi modyfikowane są od
Aktywacji
ostatniej do pierwszej warstwy (wstecz).
(c) Marcin
Sydow Pokazano wcześniej, jak modyfikować wagi ostatniej warstwy.
Po zmodyfikowaniu wag ostatniej warstwy, modyfikowane są
wagi warstwy drugiej od końca (itd.)
Przy modyfikowaniu wag warstwy drugiej od końca stosuje się
również metodę gradientu:
∂E
∆vji = −η
∂vji
Metoda wstecznej propagacji błędu, cd.
Uczenie
Wielowar-
stwowych
Sieci Przez analogię, wagi V modyfikowane są następująco:
Neuronów o
Ciągłej
Funkcji
Aktywacji
Vnew = Vold + ηδy x T
(c) Marcin
Sydow gdzie, δy oznacza wektor sygnału błędu warstwy ukrytej:
Uczenie
Wielowar-
stwowych
wybór η, Emax , inicjalizacja losowych wag W i V , E = 0
Sieci
Neuronów o
dla każdego przykładu ze zbioru uczącego:
Ciągłej
Funkcji
oblicz kolejno wektory wyjść PKy oraz z
Aktywacji kumuluj błąd:E ← E + 12 k=1 (dk − zk )2
(c) Marcin oblicz sygnały błędów (ostatniej, pierwszej warstwy):
Sydow
unipolarny: PK
δzk = (dk − zk )zk (1 − zk ), δyj = yj (1 − yj ) k=1 δzk wkj
bipolarny: PK
δzk = 12 (dk − zk )(1 − zk2 ), δyj = 12 (1 − yj2 ) k=1 δzk wkj
zmodyfikuj wagi ostatniej warstwy:
wkj ← wkj + ηδzk yj
zmodyfikuj wagi pierwszej (ukrytej) warstwy:
vji ← vji + ηδyj xi
jeśli pokazano wszystkie elementy zbioru uczącego i E < Emax
to zakończ uczenie. W przeciwnym wypadku wyzeruj E i
ponownie wykonaj uczenie na całym zbiorze uczącym
Zagadnienia do przyswojenia:
Uczenie
Wielowar-
stwowych
Sieci
Neuronów o
Ciągłej
Funkcji
Aktywacji
(c) Marcin
Sydow
Dziękuję za uwagę.