Modele i algorytmy uczenia głębokiego
Transkrypt
Modele i algorytmy uczenia głębokiego
Modele i algorytmy uczenia głębokiego Adam Gonczarek, Jakub Tomczak {adam.gonczarek,jakub.tomczak}@pwr.edu.pl Poznań, 24 XI 2015 UCZENIE GŁĘBOKIE Adam Gonczarek UCZENIE GŁĘBOKIE (ang. deep learning) = klasa metod uczenia maszynowego, gdzie model ma strukturę hierarchiczną złożoną z wielu nieliniowych warstw 3/56 4/56 4/56 4/56 Wpływ uczenia głębokiego 5/56 Obszary zastosowań Widzenie komputerowe Wyszukiwanie informacji Rozpoznawanie mowy Analiza języka naturalnego Systemy rekomendacji Projektowanie leków 6/56 Przykłady: Translatory 7/56 Przykłady: Generowanie ręcznego pisma http://www.cs.toronto.edu/ graves/handwriting.cgi 8/56 Przykłady: Uczenie grania w gry Mnih et al. Human-level control through deep reinforcement learning. Nature 2015 9/56 Przykłady: Generowanie opisów do zdjęć Karpathy and Fei-Fei. Deep Visual-Semantic Alignments for Generating Image Descriptions. CVPR 2015 10/56 Przykłady: Analiza treści Antol et al. VQA: Visual Question Answering. ICCV 2015 11/56 Trzy filary uczenia głębokiego 12/56 Trzy filary uczenia głębokiego 12/56 Trzy filary uczenia głębokiego 12/56 Model Multilayer Perceptron 13/56 Model Multilayer Perceptron 13/56 Model Multilayer Perceptron h1 = σ(W1 x + b1 ) 13/56 Model Multilayer Perceptron h2 = σ(W2 h1 + b2 ) 13/56 Model Multilayer Perceptron y = softmax(W3 h2 + b3 ) 13/56 Model Multilayer Perceptron h2 traktujemy jako cechy wyekstrahowane z x 13/56 Model Multilayer Perceptron Predyktor to np. wieloklasowa regresja logistyczna 13/56 Automatyczna ekstrakcja cech Cechy na kolejnych warstwach reprezentują coraz wyższy poziom abstrakcji: krawędzie, części obiektu, grupy części. Lee et al. Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations. ICML 2009 14/56 Automatyczna ekstrakcja cech Cechy na kolejnych warstwach reprezentują coraz wyższy poziom abstrakcji: krawędzie, części obiektu, grupy części. Pożądane własności cech: Informacyjne (np. dyskryminujące) Odporne (ang. robust) Niezmiennicze (ang. invariant) Lee et al. Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations. ICML 2009 14/56 Czy głębokość ma znaczenie? Twierdzenie o uniwersalnej aproksymacji Niech D ⊂ RN ; Niech f : RN → R będzie ciągła i skończona P na D. Dodatkowo niech y(x) = i g(wiT x), gdzie g jest ciągła, ograniczona i monotoniczna. Wówczas dla każdego ε > 0 istnieje taki zbiór {wi }, że dla każdego x ∈ RN zachodzi: |y(x) − f (x)| < ε Wystarczy zatem tylko jedna warstwa jednostek ukrytych, aby z dowolną precyzją aproksymować każdą funkcję ciągłą. Ale. . . 15/56 Czy głębokość ma znaczenie? W praktyce modele hierarchiczne potrzebują dużo mniej jednostek ukrytych (a zatem dużo mniej parametrów) do uzyskania wysokiej jakości aproksymacji. 16/56 Czy głębokość ma znaczenie? W praktyce modele hierarchiczne potrzebują dużo mniej jednostek ukrytych (a zatem dużo mniej parametrów) do uzyskania wysokiej jakości aproksymacji. Przykładem może być problem parzystości ciągu bitów. Model płaski potrzebuje 2N jednostek ukrytych, model głęboki N (N − 1)/2. 16/56 Uczenie i propagacja wsteczna 17/56 Uczenie i propagacja wsteczna Np. entropia krzyżowa L(y, t) = − X tk log yk k 17/56 Uczenie i propagacja wsteczna w3ij ← w3ij − η ∂L ∂y i ∂y i ∂w3ij 17/56 Uczenie i propagacja wsteczna w2ij ← w2ij − η ∂L ∂hi2 ∂hi2 ∂w2ij 17/56 Uczenie i propagacja wsteczna w2ij ← w2ij − η X k ∂L ∂y k ∂hi2 ∂y k ∂hi2 ∂w2ij 17/56 Uczenie i propagacja wsteczna w1ij ← w1ij − η ∂L ∂hi1 ∂hi1 ∂w1ij 17/56 Uczenie i propagacja wsteczna w1ij ← w1ij − η XX l k ∂L ∂y k ∂hl2 ∂hi1 ∂y k ∂hl2 ∂hi1 ∂w1ij 17/56 Problem zanikającego gradientu Dla typowych funkcji aktywacji σ(x) i tgh(x) wartości pochodnych są zawsze w [0, 1]. 18/56 Problem zanikającego gradientu Dla typowych funkcji aktywacji σ(x) i tgh(x) wartości pochodnych są zawsze w [0, 1]. W konsekwencji wyrażenia typu: ∂hit+1 ∂hjt ∂hkt−1 ... ... ∂hjt ∂hkt−1 ∂hlt−2 często będą bliskie zeru. 18/56 Problem zanikającego gradientu Dla typowych funkcji aktywacji σ(x) i tgh(x) wartości pochodnych są zawsze w [0, 1]. W konsekwencji wyrażenia typu: ∂hit+1 ∂hjt ∂hkt−1 ... ... ∂hjt ∂hkt−1 ∂hlt−2 często będą bliskie zeru. Jest to zjawisko zanikającego gradientu (ang. vanishing gradient) i powoduje problem z wyuczeniem cech na niższych warstwach. 18/56 Problem zanikającego gradientu Dla typowych funkcji aktywacji σ(x) i tgh(x) wartości pochodnych są zawsze w [0, 1]. W konsekwencji wyrażenia typu: ∂hit+1 ∂hjt ∂hkt−1 ... ... ∂hjt ∂hkt−1 ∂hlt−2 często będą bliskie zeru. Jest to zjawisko zanikającego gradientu (ang. vanishing gradient) i powoduje problem z wyuczeniem cech na niższych warstwach. Był to jeden z głównych powodów spowolnienia rozwoju sieci neuronowych w latach 90. 18/56 Pre-training i fine-tuning Problem zanikającego gradientu można rozwiązać stosując tzw. pre-training, czyli uczenie wstępne. Hinton, Salakhutdinov. Reducing the Dimensionality of Data with Neural Networks. Science 2006 19/56 Pre-training i fine-tuning Problem zanikającego gradientu można rozwiązać stosując tzw. pre-training, czyli uczenie wstępne. Polega to na nauczeniu warstwa po warstwie modelu nienadzorowanego złożonego z warstw sieci, np. głębokiego autokodera. Hinton, Salakhutdinov. Reducing the Dimensionality of Data with Neural Networks. Science 2006 19/56 Pre-training i fine-tuning Problem zanikającego gradientu można rozwiązać stosując tzw. pre-training, czyli uczenie wstępne. Polega to na nauczeniu warstwa po warstwie modelu nienadzorowanego złożonego z warstw sieci, np. głębokiego autokodera. Wyczuone parametry traktujemy jako punkt startowy dla algorytmu backpropagation. Jest to tzw. fine-tuning. Hinton, Salakhutdinov. Reducing the Dimensionality of Data with Neural Networks. Science 2006 19/56 Jednostki ReLU Jednostki ReLU (ang. Rectified Linear Unit) są to funkcje aktywacji o postaci: f (x) = max(0, x) Nair, Hinton. Rectified Linear Units Improve Restricted Boltzmann Machines. ICML 2010 20/56 Jednostki ReLU Jednostki ReLU (ang. Rectified Linear Unit) są to funkcje aktywacji o postaci: f (x) = max(0, x) Dzięki nim: Nie ma zanikającego gradientu i nie potrzeba uczenia wstępnego Uczymy się bardziej odpornych cech dzięki rzadkiej (ang. sparse) aktywacji jednostek Uczenie trwa dużo szybciej Nair, Hinton. Rectified Linear Units Improve Restricted Boltzmann Machines. ICML 2010 20/56 Dropout Dropout jest szczególną techniką regularyzacji. Srivastava et al. Dropout: A simple way to prevent neural networks from overfitting. JMLR 2014 21/56 Dropout Dropout jest szczególną techniką regularyzacji. Z prawdopodobieństwem p ”wyłączamy” poszczególne jednostki podczas jednego kroku algorytmu uczącego (np. SGD) Srivastava et al. Dropout: A simple way to prevent neural networks from overfitting. JMLR 2014 21/56 Dropout Dropout jest szczególną techniką regularyzacji. Z prawdopodobieństwem p ”wyłączamy” poszczególne jednostki podczas jednego kroku algorytmu uczącego (np. SGD) Wyuczone cechy są bardziej odporne na niewielkie perturbacje w danych, dzięki czemu uzyskujemy wyższą jakość końcowego klasyfikatora. Srivastava et al. Dropout: A simple way to prevent neural networks from overfitting. JMLR 2014 21/56 Sieci konwolucyjne (ang. convolutional nets) Liczba parametrów w warstwie: l. kanałów × szerokość filtra × wysokość filtra × l. filtrów Liczba jednostek ukrytych w warstwie: szerokość obrazu × wysokość obrazu × l. filtrów Sieci uczą się cech niezmienniczych na translacje. LeCun et al. Gradient-Based Learning Applied to Document Recognition. Proc. of IEEE 1998 22/56 Sieć ImageNet Model, który zwyciężył w konkursie ImageNet w 2012. 5 warstw konwolucyjnych + 2 warstwy pełne Jednostki ReLU i Dropout w najwyższej warstwie 60 milionów parametrów. 1.2 mln obrazów treningowych. Klasyfikacja do 1000 klas. Uczenie na dwóch GPU przez tydzień. Błąd 16.4%, drugie miejsce – 26.2%. Krizhevsky et al. ImageNet Classification with Deep Convolutional Neural Networks. NIPS 2012 23/56 Sieć ImageNet – filtry konwolucyjne Filtry wyuczone na pierwszej warstwie konwolucyjnej 24/56 Sieć ImageNet – filtry konwolucyjne Zeiler, Fergus. Visualizing and Understanding Convolutional Networks. ECCV 2014 25/56 Sieć ImageNet – filtry konwolucyjne 26/56 Sieć ImageNet – filtry konwolucyjne 27/56 Sieć ImageNet – wyniki 28/56 MODELE I ALGORYTMY Jakub Tomczak Ograniczona maszyna Boltzmanna (ang. Restricted Boltzmann Machine) h Nieskierowany, dwudzielny probabilistyczny model grafowy. W Obserwowalne zmienne losowe: x ∈ {0, 1}D x Ukryte zmienne losowe: h ∈ {0, 1}M Funkcja energii dla łącznej konfiguracji (x, h): E(x, h|θ) = x> Wh + b> x + c> h gdzie θ = {W, b, c}. 30/56 Restricted Boltzmann Machine Rozkład łączny – rozkład Boltzmanna (Gibbsa): h W P (x, h|θ) = 1 exp E(x, h|θ) Z(θ) gdzie x Z(θ) = X exp E(x, h|θ) x,h nazywamy sumą statystyczną (ang. partition function). 31/56 Restricted Boltzmann Machine Restricted – brak połączeń wewnątrz tej samej warstwy. h Dzięki temu możemy łatwo policzyć rozkłady warunkowe: W P (h|x, θ) = x Y P (hj |x, θ) j P (x|h, θ) = Y P (xi |h, θ) i gdzie: 1 1 + exp(−(W·j )> x − cj ) 1 P (xi = 1|h, θ) = 1 + exp(−Wi· h − bi ) P (hj = 1|x, θ) = 32/56 h W x Ukryte jednostki (cechy) P (hj = 1|x, θ) = 1 1 − exp(−(W·j )> x − cj ) 33/56 Uczenie RBM Dla N obserwacji i.i.d. D = {xn }N n=1 chcemy wyuczyć się θ = {W, b, c}. h W Maksymalizujemy logartym funkcji wiarygodności: x L(θ) = 1 X log P (xn |θ) + λΩ(θ) | {z } N n regularyzacja 1 exp F E(x|θ) Z(θ) X 1 = exp b> x + log(1 + exp((W·j )> x + cj )) Z(θ) j P (xn |θ) = 34/56 Licząc gradient: X ∂ log P (x|θ) ∂ ∂ = log log Z(θ) exp E(x, h|θ) − ∂θ ∂θ ∂θ h X ∂E(x̃, h|θ) ∂E(x, h|θ) X − P (x̃, h|θ) = P (h|x, θ) ∂θ ∂θ x̃,h h | {z łatwe do policzenia } | {z } trudne do policzenia Drugi składnik należy aproksymować, np. próbkami z modelu. Można uruchomić MCMC (Gibbs sampler) zaczynając od obserwacji x. 35/56 Algorytm Contrastive Divergence h0 ~ P(h|x) Obserwacje x h1 ~ P(h|x1) Rekonstrukcje x1 ~ P(x|h) Prosta aproksymacja: po k krokach próbkowania Gibbsa szacujemy gradient ∂ log P (x|θ) ∂E(x, h0 |θ) ∂E(xk , hk |θ) ≈ − ∂θ ∂θ ∂θ Hinton, G. E. (2002), Training products of experts by minimizing contrastive divergence, Neural Computation, 14(8), 1771-1800 36/56 Podejście Perturb-and-MAP Alternatywny sposób próbkowania poprzez zaburzanie funkcji energii i znajdowanie rozwiązania MAP. Perturb: zaburzenia Gumbela wyrazów wolnych. MAP: Coordinate Descent, Gradient Descent, Greedy. Tomczak, J.M, Zaręba, S., Ravanbakhsh, S., Greiner R., (w opracowaniu), Learning RBM using Perturb-and-MAP 37/56 Gaussian-Bernoulli RBM h Obserwowalne zmienne losowe: x ∈ RD W Ukryte zmienne losowe: h ∈ {0, 1}M x Funkcja energii dla łącznej konfiguracji (x, h): E(x, h|θ) = XX i Wij hj j xi X (xi − bi )2 X cj hj + + σi 2σi2 i j Wówczas: P (x|h, θ) = Y i N (bi + X Wij hj , σi2 ) j 38/56 Spike-and-Slab RBM s Obserwowalne zmienne losowe: x ∈ {0, 1}D , ukryte zmienne losowe: h ∈ {0, 1}M , s ∈ RM h W x Chcemy modelować kowariancję między xi . Funkcja energii dla łącznej konfiguracji (x, s, h): X X 1 E(x, h, s|θ) = x> Wj sj hj +b> x− a> s+ aj µj sj hj +c> h 2 j j Wówczas: P (x|h) ∝ exp b> x + X j 2 1 X aj xi a−1 j Wij + µj hj 2 i Courville, A. et al. (2014). The Spike-and-Slab RBM and Extensions to Discrete and Sparse Data Distributions. TPAMI, 36(9), 1874-1887. 39/56 Spike-and-Slab RBM s Obserwowalne zmienne losowe: x ∈ {0, 1}D , ukryte zmienne losowe: h ∈ {0, 1}M , s ∈ RM h W x Chcemy modelować kowariancję między xi . Funkcja energii dla łącznej konfiguracji (x, s, h): X X 1 E(x, h, s|θ) = x> Wj sj hj +b> x− a> s+ aj µj sj hj +c> h 2 j j Wówczas: P (x|h) ∝ exp b> x + X j 2 1 X aj xi a−1 j Wij + µj hj 2 i Courville, A. et al. (2014). The Spike-and-Slab RBM and Extensions to Discrete and Sparse Data Distributions. TPAMI, 36(9), 1874-1887. 39/56 Subspace RBM Obserwowalne zmienne losowe: x ∈ {0, 1}D , ukryte zmienne losowe: h ∈ {0, 1}M , S ∈ {0, 1}M ×K h S W x Cel: cechy niezmiennicze na transformacje. Funkcja energii dla łącznej konfiguracji (x, h, S): E(x, h, S|θ) = X Wijk xi hj Sjk +b> x+c> h+ X hj j i,j,k X Ajk Sjk k Wówczas: > P (x) ∝ exp(b x) Y K 2 +exp(cj ) j Y k X 1+exp Wijk xi +Ajk i Tomczak, J., Gonczarek, A. (w recenzji) Learning invariant features using Subspace Restricted Boltzmann Machine 40/56 Subspace RBM Obserwowalne zmienne losowe: x ∈ {0, 1}D , ukryte zmienne losowe: h ∈ {0, 1}M , S ∈ {0, 1}M ×K h S W x Cel: cechy niezmiennicze na transformacje. Funkcja energii dla łącznej konfiguracji (x, h, S): E(x, h, S|θ) = X Wijk xi hj Sjk +b> x+c> h+ X hj j i,j,k X Ajk Sjk k Wówczas: (dodatkowo modelujemy kowariancję!) > P (x) ∝ exp(b x) Y K 2 +exp(cj ) j Y k X 1+exp Wijk xi +Ajk i Tomczak, J., Gonczarek, A. (w recenzji) Learning invariant features using Subspace Restricted Boltzmann Machine 40/56 Subspace RBM Caltech Mnist 41/56 Głęboka sieć przekonań h1 (ang. Deep Belief Network) Model RBM (lub jego rozszerzenia) możemy potraktować jako podstawowy element architektury głębokiej. W1 x 42/56 Głęboka sieć przekonań h2 W2 h1 (ang. Deep Belief Network) Model RBM (lub jego rozszerzenia) możemy potraktować jako podstawowy element architektury głębokiej. W1 Złożenie wielu RBM prowadzi do głębokiej sieci przekonań: x P (x, h1 , h2 ) = P (x|h1 ) P (h1 , h2 ) | {z z RBM } | {z RBM } 42/56 Uczenie Uczenie warstwa po warstwie (ang. pre-training ): każda warstwa to RBM; kolejna warstwa uczona po wyuczeniu poprzedniej. h1 x 43/56 Uczenie Uczenie warstwa po warstwie (ang. pre-training ): każda warstwa to RBM; h2 kolejna warstwa uczona po wyuczeniu poprzedniej. h1 x 43/56 Uczenie h3 Uczenie warstwa po warstwie (ang. pre-training ): każda warstwa to RBM; h2 kolejna warstwa uczona po wyuczeniu poprzedniej. h1 x 43/56 Uczenie y Uczenie warstwa po warstwie (ang. pre-training ): h3 każda warstwa to RBM; h2 kolejna warstwa uczona po wyuczeniu poprzedniej. h1 x Fine-tuning : DBN wykorzystujemy do inicjalizacji sieci skierowanej. 43/56 Głęboka maszyna Boltzmanna (ang. Deep Boltzmann Machine) Funkcja energii: > E(x, h1 , h2 |θ) = x> W1 h1 + h> 1 W2 h2 + h2 W3 h3 h3 Rozkład łączny – rozkład Boltzmanna (Gibbsa). h2 Wszystkie połączenia nieskierowane. h1 Występują zależności między ukrytymi zmiennymi (top-down i bottom-up): x (k) P (h2 = 1|h1 , h3 ) = sigm( X j (jk) (j) h1 W1 + X (kl) (l) W3 h3 ) l 44/56 Uczenie DBM h3 Q(h3|xn) h2 Q(h2|xn) P(h2|h1,h3) h1 Q(h1|xn) P(h1|h2,xn) x xn P(x|h1) Policzenie gradientów jest niemożliwe, stosuje się wariacyjne wnioskowanie przybliżone (mean-field) oraz próbkowanie. 45/56 Kodowanie i generowanie obrazów p(z) Rozpatrzmy problem rozpoznawania obrazów. Proces generowania obrazów: 1. z ∼ p(z) q(z|x) p(x|z) 2. x ∼ p(x|z) Kodowanie obrazów na niskowymiarowej rozmaitości: q(z|x) 46/56 Dolne ograniczenie wariacyjne Zakładamy N obserwacji i.i.d. D = {xn }N n=1 . Dolne ograniczenie wariacyjne dla wiarygodności xn : h i log pθ (xn ) Eqφ (z|xn ) − log qφ (z|xn ) + log pθ (xn , z) h i = −DKL qφ (z|xn )||p(z) + Eqφ (z|xn ) log pθ (xn |z) | {z regularyzator } | {z błąd rekonstrukcji } ≡ L(θ, φ; xn ) 47/56 Wariacyjny Auto-Koder (ang. Auto-Encoding Variational Bayes) Zakładamy postać rozkładu a priori (Prior): p(z), np. N 0, diag(σ) Zmienne ukryte Wnioskowanie: q(z|x) z dekoder koder Będziemy używać sieci neuronowych do modelowania kodera i dekodera. Generowanie: p(x|z) p(z) Dekoder: pθ (x|z), np. sieć skierowana x Koder: qφ (z|x), np. sieć skierowana obraz Kingma, D.P., Welling, M., Auto-Encoding Variational Bayes, ICLR 2014 48/56 Wyuczone rozmaitości Kingma, D.P., Welling, M., Auto-Encoding Variational Bayes, ICLR 2014 49/56 Deep Recurrent Attentive Writer : Połączenie AEVB i sieci rekurencyjnych Gregor, K. et al., DRAW: A Recurrent Neural Network For Image Generation, ICML 2015 (pp. 1462-1471) 50/56 Deep Recurrent Attentive Writer : Połączenie AEVB i sieci rekurencyjnych Gregor, K. et al., DRAW: A Recurrent Neural Network For Image Generation, ICML 2015 (pp. 1462-1471) 50/56 Sieć rekurencyjna i LSTM Sekwencyjne kodowanie obrazu oraz generowanie nowego za pomocą sieci rekurencyjnych. Jak przeciwdziałać problemowi zanikającego gradientu −→ LSTM (Long Short-Term Memory) http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 51/56 Mechanizm Attention Generujemy bazowy obraz wt i parametry przekształcenia (tzw. attention) θt + bw wt = Whw hdec t θt = Whθ hdec + bθ t write(hdec t ) = F (wt ; θt ) W kolejnych krokach rekurencji uzupełniamy ct ct = ct−1 + write(hdec t ) 52/56 DRAW: Wyniki – MNIST 53/56 DRAW: Wyniki - SVHN & CIFAR 54/56 Przyszłość uczenia głębokiego Uczenie nienadzorowane: DBM, AEVB... Uczenie wielomodalne Sieci rekurencyjne i mechanizm attention Dedykowany sprzęt ... 55/56 Dziękujemy za uwagę Pytania? 56/56