Wrocław University of Technology Uczenie głębokie Maciej Zięba
UCZENIE GŁĘBOKIE (ang. deep learning) = klasa metod uczenia maszynowego, gdzie model ma strukturę hierarchiczną złożoną z wielu nieliniowych warstw 2/28
3/28
3/28
3/28
Wpływ uczenia głębokiego 4/28
Obszary zastosowań Widzenie komputerowe Wyszukiwanie informacji Rozpoznawanie mowy Analiza języka naturalnego Systemy rekomendacji Projektowanie leków 5/28
Trzy filary uczenia głębokiego 6/28
Trzy filary uczenia głębokiego 6/28
Trzy filary uczenia głębokiego 6/28
Przypomnienie: Regresja logistyczna Model binarnej regresji logistycznej (ang. logistic regression): p(y = 1 x, w) = σ(w T φ(x)). Funkcja sigmoidalna (ang. sigmoid function): σ(a) = 1 1 + exp( a) Parametry modelu: w R M. 7/28
Przypomnienie: Regresja logistyczna Model wieloklasowej regresji logistycznej (ang. logistic regression): p(y x, W) = softmax(wφ(x)). Funkcja softmax (ang. softmax function): softmax(a) i = exp(a i) j exp(a j ) Parametry modelu: W R K M. 7/28
Model Multilayer Perceptron 8/28
Model Multilayer Perceptron 8/28
Model Multilayer Perceptron h 1 = σ(w 1 x + b 1 ) 8/28
Model Multilayer Perceptron h 2 = σ(w 2 h 1 + b 2 ) 8/28
Model Multilayer Perceptron y = softmax(w 3 h 2 + b 3 ) 8/28
Model Multilayer Perceptron h 2 traktujemy jako cechy wyekstrahowane z x 8/28
Model Multilayer Perceptron Predyktor to np. wieloklasowa regresja logistyczna 8/28
Model Multilayer Perceptron 8/28
Typowe funkcje aktywacji neuronów Funkcja sigmoidalna: σ(a) = Wartości: σ(a) (0, 1) 1 1 + exp( a) Pochodna: σ(a) = σ(a)(1 σ(a)) Tangens hiperboliczny: tgh(a) = exp(a) exp( a) exp(a) + exp( a) Wartości: tgh(a) ( 1, 1) Pochodna: tgh(a) = 1 tgh 2 (a) 9/28
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 10/28
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 10/28
Czy głębokość ma znaczenie? Twierdzenie o uniwersalnej aproksymacji Niech D R N ; Niech f : R N R będzie ciągła i skończona na D. Dodatkowo niech y(x) = i g(w T i x), gdzie g jest ciągła, ograniczona i monotoniczna. Wówczas dla każdego ε > 0 istnieje taki zbiór {w i }, że dla każdego x R N zachodzi: y(x) f(x) < ε Wystarczy zatem tylko jedna warstwa jednostek ukrytych, aby z dowolną precyzją aproksymować każdą funkcję ciągłą. Ale... 11/28
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. 12/28
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 2 N jednostek ukrytych, model głęboki N(N 1)/2. 12/28
Uczenie sieci neuronowej Niech p(y k = 1 x, θ) k-te oznacza wyjście z sieci, gdzie θ = {W 1, b 1, W 2,...}. Wtedy warunkowa wiarygodność to: N K p(y X, θ) = p(y k = 1 x n, θ) y nk n=1 k=1 Biorąc ujemny logarytmy i dzieląc przez N dostajemy kryterium uczenia zwane entropią krzyżową (ang. cross-entropy): L(θ) = 1 N K y nk log p(y k = 1 x n, θ) N n=1 k=1 Uczyć możemy z użyciem stochastycznego gradientu prostego. Potrzebny gradient po wszystkich parametrach metoda propagacji wstecznej (ang. backpropagation). 13/28
Uczenie i propagacja wsteczna 14/28
Uczenie i propagacja wsteczna Np. entropia krzyżowa L(y, t) = k t k log y k 14/28
Uczenie i propagacja wsteczna w ij 3 w ij 3 η L y i y i w ij 3 14/28
Uczenie i propagacja wsteczna w ij 2 w ij 2 η L h i 2 h i 2 w ij 2 14/28
Uczenie i propagacja wsteczna w ij 2 w ij 2 η k L y k h i 2 y k h i 2 w ij 2 14/28
Uczenie i propagacja wsteczna w ij 1 w ij 1 η L h i 1 h i 1 w ij 1 14/28
Uczenie i propagacja wsteczna w ij 1 w ij 1 η l k L y k h l 2 h i 1 y k h l 2 h i 1 w ij 1 14/28
Problem zanikającego gradientu Dla typowych funkcji aktywacji σ(x) i tgh(x) wartości pochodnych są zawsze w [0, 1]. 15/28
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:... hi t+1 h j t często będą bliskie zeru. h j t h k t 1 h k t 1... h l t 2 15/28
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:... hi t+1 h j t często będą bliskie zeru. h j t h k t 1 h k t 1... h l t 2 Jest to zjawisko zanikającego gradientu (ang. vanishing gradient) i powoduje problem z wyuczeniem cech na niższych warstwach. 15/28
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:... hi t+1 h j t często będą bliskie zeru. h j t h k t 1 h k t 1... h l t 2 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. 15/28
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 16/28
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 16/28
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 16/28
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 17/28
Jednostki ReLU Jednostki ReLU (ang. Rectified Linear Unit) są to funkcje aktywacji o postaci: Dzięki nim: f(x) = max(0, x) 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 17/28
Dropout Dropout jest szczególną techniką regularyzacji. Srivastava et al. Dropout: A simple way to prevent neural networks from overfitting. JMLR 2014 18/28
Dropout Dropout jest szczególną techniką regularyzacji. Z prawdopodobieństwem p wybieramy 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 18/28
Dropout Dropout jest szczególną techniką regularyzacji. Z prawdopodobieństwem p wybieramy 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 18/28
Sieci konwolucyjne CNN (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 19/28
Warstwa konwolucyjna Filtry są nakładane na zasadzie okna przesuwnego. Idea współdzielenia parametrów (ang. parameter sharing). Warstwy konwolucyjne ekstrahują cechy z lokalnych fragmentów. Używa się standardowych funkcji aktywacji: ReLU, sigmoida, tanh. Images from S. Lazebnik presentation 20/28
Pooling Pooling służy do lokalnego skompresowania informacji. Zmniejsza liczbę parametrów, uodparnia sieć na drobne lokalne zaburzenia na obrazie i zbiera informację z szerszego obszaru. Używa się funkcji max albo sum na lokalnym fragmencie. Images from S. Lazebnik presentation 21/28
Normalizacja map cech Normalizacja może być wewnątrz pojedynczej mapy cech z lokalnego otoczenia dla każdego piksela albo poprzez przekrój kilku map cech dla każdego piksela osobno. Normalizacja ma na celu wyrównanie znaczenia aktywacji o różnej sile. Images from S. Lazebnik presentation 22/28
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/28
Sieć ImageNet filtry konwolucyjne Filtry wyuczone na pierwszej warstwie konwolucyjnej 24/28
Sieć ImageNet filtry konwolucyjne Zeiler, Fergus. Visualizing and Understanding Convolutional Networks. ECCV 2014 25/28
Sieć ImageNet filtry konwolucyjne 26/28
Sieć ImageNet filtry konwolucyjne 27/28
Sieć ImageNet wyniki 28/28