Systemy agentowe Sieci neuronowe Jędrzej Potoniec
Perceptron (Rossenblat, 1957) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Perceptron { 1 z 0 step(z) = 0 w przeciwnym przypadku ŷ = step(w T x) ŷ = step(x w)
Perceptron step(z) = { 1 z 0 0 w przeciwnym przypadku ŷ = step(x w)
Perceptron { 1 z 0 step(z) = 0 w przeciwnym przypadku ŷ = step(w T x) ŷ = step(x w)
Perceptron z wieloma wyjściami A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Uczenie perceptronu w (ε+1) i,j = w (ε) i,j + η(y j ŷ j )x i w i,j waga połączenia między wejściem i, a wyjściem j ε krok η prędkość uczenia
AND 1.0 0.8 0.6 x2 0.4 0.2 0.0 0.0 0.2 0.4 0.6 0.8 1.0 x 1 Jakie wagi musi mieć perceptron, żeby rozwiązać taki problem?
XOR 1.0 0.8 0.6 x2 0.4 0.2 0.0 0.0 0.2 0.4 0.6 0.8 1.0 x 1 Jakie wagi musi mieć perceptron, żeby rozwiązać taki problem?
Perceptron wielowarstwowy (MLP multilayer perceptron) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Jak to uczyć: backpropagation (Rumelhart et al. 1986) 1 Oblicz wyjścia sieci 2 Oblicz błąd popełniony przez sieć 3 Korzystając z gradientu delikatnie zmodyfikuj wagi
Jak to uczyć: backpropagation (Rumelhart et al. 1986) 1 Oblicz wyjścia sieci 2 Oblicz błąd popełniony przez sieć 3 Korzystając z gradientu delikatnie zmodyfikuj wagi Wszystko proste, jasne i oczywiste?
Funkcja aktywacji Ile wynosi pochodna funkcji step(z)?
Funkcja aktywacji Ile wynosi pochodna funkcji step(z)? Popularne funkcje aktywacji: logistyczna σ(z) = 1 1 + e z
Funkcja aktywacji Ile wynosi pochodna funkcji step(z)? Popularne funkcje aktywacji: logistyczna σ(z) = 1 1 + e z tangens hiperboliczny tgh(z) = 2σ(2z) 1
Funkcja aktywacji Ile wynosi pochodna funkcji step(z)? Popularne funkcje aktywacji: logistyczna σ(z) = 1 1 + e z tangens hiperboliczny tgh(z) = 2σ(2z) 1 ReLU (rectified linear unit) ReLU(z) = max{z, 0}
Funkcje aktywacji i ich pochodne A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Graf obliczeń A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Reverse-mode autodiff A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Współczesna sieć neuronowa do klasyfikacji A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Eksplodujący i znikający gradient A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
ReLU Czy ReLU jest odporne na problemy ze znikającym gradientem? ReLU(z) = max{0, z} 10 8 6 4 2 0 10.0 7.5 5.0 2.5 0.0 2.5 5.0 7.5 10.0
Leaky ReLU LRelu(z) = max{αz, z} A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
ELU ELU(z) = { α(e z 1) z < 0 z z 0 A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Strategia inicjalizacji wag Obserwacja (Xavier Glorot, Yoshua Bengio 2010) Wariancja wejść warstwy powinna być z grubsza równa wariancji wyjść warstwy, a wariancja gradientów przed warstwą wariancji gradientów za warstwą.
Strategia inicjalizacji wag Obserwacja (Xavier Glorot, Yoshua Bengio 2010) Wariancja wejść warstwy powinna być z grubsza równa wariancji wyjść warstwy, a wariancja gradientów przed warstwą wariancji gradientów za warstwą. Xavier initialization funkcja aktywacji rozkład jednostajny rozkład [ r, r] N(0, σ) logistyczna r = 6 n in +n out σ = tanh r = 4 6 n in +n out σ = 4 ReLU/LReLU/ELU r = 2 6 n in +n out σ = 2 normalny 2 n in +n out 2 n in +n out 2 n in +n out
Batch normalization (Ioffe Szegedy 2015) Z = X w
Batch normalization (Ioffe Szegedy 2015) Z = X w m B = 1 n Z i n i=1
Batch normalization (Ioffe Szegedy 2015) Z = X w m B = 1 n Z i n i=1 s 2 B = 1 n (Z i m B ) 2 n i=1
Batch normalization (Ioffe Szegedy 2015) Z = X w m B = 1 n Z i n i=1 s 2 B = 1 n (Z i m B ) 2 n i=1 Ẑ i = Z i m B s 2 B + ε
Batch normalization (Ioffe Szegedy 2015) Z = X w m B = 1 n Z i n i=1 s 2 B = 1 n (Z i m B ) 2 n i=1 Ẑ i = Z i m B s 2 B + ε Z i = γ Ẑ i + β
Batch normalization (Ioffe Szegedy 2015) Z = X w m B = 1 n Z i n i=1 s 2 B = 1 n (Z i m B ) 2 n i=1 Ẑ i = Z i m B s 2 B + ε Z i = γ Ẑ i + β Y i = f ( Z i )
Reużywanie NN A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017