Wprowadzenie do sieci neuronowych i zagadnień deep learning Inteligentne Obliczenia Wydział Mechatroniki Politechniki Warszawskiej Anna Sztyber INO (IAiR PW) Deep learning Anna Sztyber 1 / 28
Deep learning sieci neuronowe o dużej liczbie warstw nowe struktury sieci metody regularyzacji algorytmy uczenia przeznaczone dla dużych zbiorów danych zastosowania rozpoznawanie obrazów i mowy klasyfikacja tekstu tłumaczenie maszynowe generacja muzyki metoda automatycznej selekcji i generacji cech INO (IAiR PW) Deep learning Anna Sztyber 2 / 28
Rys historyczny perceptron [Rosenblatt, 1958] algorytm wstecznej propagacji błędów 60 AI winter 80 nowe algorytmy uczenia [Rumelhart et al., 1986, Hinton et al., 2006] nowe rozwiązania sprzętowe (GPU) deep learning - sieci o dużej liczbie warstw (100-200) INO (IAiR PW) Deep learning Anna Sztyber 3 / 28
Deep learning Deep Learning 101 - Demystifying Deep Learning and Machine Learning with Tensorflow, Keras, TFLearn - Antonio Gulli INO (IAiR PW) Deep learning Anna Sztyber 4 / 28
Perceptron By Perceptron. Mitchell, Machine Learning, p87., https://commons.wikimedia.org/wiki/file:rosenblattperceptron.png o j = ϕ(w 1j x 1 + + w nj x n + θ j ) INO (IAiR PW) Deep learning Anna Sztyber 5 / 28
Funkcje aktywacji ϕ(z) = 1 1+exp z ϕ(z) = tgh(z) = exp(z) exp( z) exp(z)+exp( z) ϕ(z) = max(0, z) INO (IAiR PW) Deep learning Anna Sztyber 6 / 28
Perceptron wielowarstwowy MLP - Multi Layer Perceptron, Dense Network warstwa wejściowa warstwy ukryte warstwa wyjściowa każdy neuron warstwy poprzedniej połączony ze wszystkimi neuronami warstwy następnej INO (IAiR PW) Deep learning Anna Sztyber 7 / 28
Softmax często stosowane jako warstwa wyjściowa dla problemów klasyfikacji Dla M klas otrzymujemy z warstwy poprzedniej: z 1, z 2,..., z M Przekształcenie: σ(z i ) = exp(z i) Mi=1 exp(z i ) Normalizacja otrzymujemy liczby z zakresu (0,1) o sumie równiej 1 możliwa interpretacja jako rozkład prawdopodobieństwa INO (IAiR PW) Deep learning Anna Sztyber 8 / 28
Funkcje kosztu Błąd średniokwadratowy (MSE): Entropia krzyżowa: 1 n n (y i ŷ i ) 2 i=1 dla dwóch klas (binary cross-entrophy) 1 n (y i log(ŷ i ) + (1 y i ) log(1 ŷ i )) n i=1 dla wielu klas (categorical cross-entrophy) 1 n M y ic log(ŷ ic ) n i=1 c=1 INO (IAiR PW) Deep learning Anna Sztyber 9 / 28
Algorytm wstecznej propagacji błędów w ij w ij α J w ij INO (IAiR PW) Deep learning Anna Sztyber 10 / 28
Algorytm wstecznej propagacji błędów forward: wyznaczamy wyjścia sieci i wartość funkcji kosztu J backward: chcemy wyznaczyć J w ij pochodne w warstwie i można wyznaczyć na podstawie pochodnych w warstwie i + 1 obliczenia od warstwy ostatniej do pierwszej chain rule - wzór na pochodną funkcji złożonej Obecnie dostępne jest wiele narzędzi, które krok backward wykonują w sposób automatyczny INO (IAiR PW) Deep learning Anna Sztyber 11 / 28
Narzędzia Caffe2 Microsoft Cognitive Toolkit (CNTK) Matlab Neural Network Toolbox MXNET PyTorch Tensorflow Keras... INO (IAiR PW) Deep learning Anna Sztyber 12 / 28
Algorytmy optymalizacji Metoda gradientu prostego gradient descent - w każdym kroku wyznaczamy wyjścia dla wszystkich przykładów ze zbioru uczącego Problemy: stochastic gradient descent - dla jednego przykładu ze zbioru uczącego batch gradient descent - dla n przykładów ze zbioru uczącego oscylacje zanikające lub wybuchające gradienty Modyfikacje: momentum rmsprop [Hinton et al., ] Adam [Kingma and Ba, 2014]... INO (IAiR PW) Deep learning Anna Sztyber 13 / 28
Dropout Srivastava, Nitish, et al. Dropout: a simple way to prevent neural networks from overfitting, JMLR 2014 Na podstawie: [Budhiraja, 2016] INO (IAiR PW) Deep learning Anna Sztyber 14 / 28
Dropout metoda regularyzacji w każdej iteracji uczenia każdy neuron jest pomijany z prawdopodobieństwem p zarówno przy wyliczaniu wyjść, jak i uaktualnianiu wag uwaga na przeskalowanie funkcji aktywacji w nauczonym modelu wykorzystujemy wszystkie neurony interpretacja: uczymy jednocześnie wiele różnych modeli, analogia: ensemble INO (IAiR PW) Deep learning Anna Sztyber 15 / 28
Sieci konwolucyjne (splotowe) CNN - Convolutional Neural Networks INO (IAiR PW) Deep learning Anna Sztyber 16 / 28
Sieci konwolucyjne przetwarzanie obrazów obraz reprezentowany w postaci macierzy pikseli - zachowywana jest korelacja przestrzenna detekcja cech za pomocą zestawu filtrów o uczonych wagach ten sam zestaw filtrów stosowany do każdego miejsca detekcja niezależnie od przesunięcia znaczne ograniczenie liczby wag INO (IAiR PW) Deep learning Anna Sztyber 17 / 28
Operacja splotu Filtr: Obraz wejściowy: Splot: INO (IAiR PW) Deep learning Anna Sztyber 18 / 28
Stride określa przesunięcie filtru w kolejnych krokach ma wpływ na wielkość danych wyjściowych INO (IAiR PW) Deep learning Anna Sztyber 19 / 28
Padding uzupełnianie zerami brzegów obrazka pozwala na zachowanie tego samego rozmiaru po operacji splotu INO (IAiR PW) Deep learning Anna Sztyber 20 / 28
Pooling Rodzaje: uogólnienie operacji z poprzednich kroków redukcja wymiaru z złożoności filtry warstw kolejnych obejmują większy obszar obrazu max pooling mean pooling INO (IAiR PW) Deep learning Anna Sztyber 21 / 28
Sieci rekurencyjne RNN - Recurrent Neural Networks wyjście sieci zależy od wejść i poprzedniego stanu modelowanie sekwencji problemy dla długich sekwencji: zanikające lub wybuchające gradienty INO (IAiR PW) Deep learning Anna Sztyber 22 / 28
Modele INO (IAiR PW) Deep learning Anna Sztyber 23 / 28
Gated recurrent unit (GRU) z i = σ(w z [y i 1, x i ] + b z ) r i = σ(w r [y i 1, x i ] + b r ) ý i = tgh(w [r i y i 1, x i ]) y i = (1 z i )y i 1 + z i ý i INO (IAiR PW) Deep learning Anna Sztyber 24 / 28
Long short term memory (LSTM) f i = σ(w f [y i 1, x i ] + b f ) s i = σ(w r [y i 1, x i ] + b s ) ĉ i = tgh(w c [y i 1, x i ] + b c ) c i = f i c i 1 + s i ĉ i t i = σ(w t [y i 1, x i ] + b t ) y i = t i tgh c i INO (IAiR PW) Deep learning Anna Sztyber 25 / 28
O czym nie było Reinforcement learning GANs Autoencoders Embeddings Transfer learning kursy dla zainteresowanych: deeplearning.ai INO (IAiR PW) Deep learning Anna Sztyber 26 / 28
Literatura I Budhiraja, A. (2016). Dropout in (deep) machine learning. Medium, https://medium.com/@amarbudhiraja/ https-medium-com-amarbudhiraja-learning-less-to-learn-better-dropout-in-deep-machine-learning-74334da4b Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep Learning. MIT Press. http://www.deeplearningbook.org. Gulli, A. Deep learning 101 - demystifying deep learning and machine learning with tensorflow, keras, tflearn - antonio gulli. https://docs.google.com/presentation/d/1xd65lc8bv4jazwqeg672j-v2e5mfwpgnuobcb6tfkyq/edit#slide=id.p. Hinton, G., Srivastava, N., and Swersky, K. Overview of mini-batch gradient descent. Neural Networks for Machine Learning, http://www.cs.toronto.edu/ tijmen/csc321/slides/lecture_slides_lec6.pdf. Hinton, G. E., Osindero, S., and Teh, Y.-W. (2006). A fast learning algorithm for deep belief nets. Neural Comput., 18(7):1527 1554. Kingma, D. P. and Ba, J. (2014). Adam: A method for stochastic optimization. CoRR, abs/1412.6980. Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, pages 65 386. INO (IAiR PW) Deep learning Anna Sztyber 27 / 28
Literatura II Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323:533 536. INO (IAiR PW) Deep learning Anna Sztyber 28 / 28