Sztuczne Sieci Neuronowe 2018
Deep Learning
Część wykładu Sieci Neuronowe (ostatniie 5 wykłądów) dotycząca głebokiego uczenia.
W semestrze letnim 2017/2018 wykład odbywa się w każdy wtorek g. 14-16 w sali 28 WFAiIS.
Wykład
10 pierwszych wykładów - W. Duch
5 ostatnich wykładów - plik będzie aktualizowany na bieżąco w trakcie postępów wykładu.
-
- Kiedy model jest głęboki?
- Głębokie vs. „płytkie” modele, dlaczego głębokość ma znaczenie?
- Modele hierarchiczne i uczenie się reprezentacji wiedzy
- Przykładowe zastosowania: MNIST, CIFAR, ASR,
- Modele end-to-end
- Problemy uczenia głębokich sieci: niestabilny gradient, przeuczenie, koszt pamięci (ilość parametrów uczenia), koszt czasu treningu (duże dane)
- Głębokie sieci MLP (DNN)
- Sieci z jednostkami ReLU, Maxout - przykłady zastosowań
- Funkcja kosztu CrossEntropy + softmax w zastosowaniu do klasyfikacji
- Algorytm uczenia Stochastic Gradient Descent (SGD) i inne (Adam, AdaGrad, moment Nesterov'a …)
- Do poczytania:
- ConvNetJS Trainer demo on MNIST porównanie alg. uczenia na MNIST
-
- splot 1D, 2D, 3D, mapy cech, pola recepcyjne
- warstwa pooling, max pooling, avg pooling
- porównanie z sieciami MLP
- sygnały wejściowe sieci konsolacyjnych: audio, obrazy, video - jedno/wielo-kanałowe
- Przykładowe zastosowania:
- klasyfikacja obrazów i rozpoznawanie przedmiotów na obrazach (ImageNet, MNIST):
- LeNet-5, GoogleNet
- VGG Net
- ResNet
-
- Modelowanie sekwencji za pomocą sieci jednokierunkowych, MLP + dane z kontekstem
- Sieci RNN, siec Elmana, sieci z pamięcią
- Jednostki Long-Short Term Memory (LSTM), Gate Recurrent Unit (GRU), inne odmiany LSTMa
- Algorytm wstecznej propagacji w czasie (BPTT)
- Sieci RNN jednokierunkowe/dwukierunkowe
- Modelowanie i generowanie sekwencji (np. generowanie muzyki)
- Funkcja kosztu CTC
- Modele z atencją, modele encoder-decoder (seq2seq)
- Zastosowania:
- ASR: DeepSpeach 1 i 2,
- modelowanie języka i word embeding (word2vec)
- maszynowe tłumaczenie (seq2seq)
- opis obrazów i filmów
- Do poczytania:
- The Unreasonable Effectiveness of Recurrent Neural Networks, Andrej Karpathy blog
- Understanding LSTM Networks - colah's blog
- An LSTM Odyssey by Jim Fleming
-
- Autoenkodery i kodowanie sygnału
- kompresja sygnału, feature exstraction
- Denoising Autoencoders
- stacked autoencoders
- autoenkodery konwolucyjne, rekurencyjne
- Deep Belief Networks (DBNs), sieci składające się z warstw Restricted Boltzmann Machines (RMBs)
- greedy pre-training
- GANs
- Zastosowania:
- odszumianie sygnału, rekonstrukcja sygnału
- generowanie sygnałów z modelowanego rozkładu
- kompersja sygnału
- Do poczytania:
- Unsupervised learning using restricted Boltzmann machines by Kyo Jin Kwon
- Generative Adversarial Networks — A Deep Learning Architecture by Gautam Ramachandra
Literatura i kilka przydatnych odnośników
- Deep Learning, I. Goodfwllow, Y. Bengio, A. Courville, Deep Learning, MIT Press, 2016
- M. Nielsen, Neural Networks and Deep Learning
Frameworki DL
- Deep Learning Frameworks https://developer.nvidia.com/deep-learning-frameworks
- TensorFlow (Google)
- https://keras.io/Keras - high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.
- Lasagne - Lightweight library to build and train neural networks in Theano
- Coffe2 (Facebook AI)
- Torch (Facebook AI)
- neon - Fast, scalable, easy-to-use Python based Deep Learning Framework by Nervana. (Intel)
- deeplearning4j - Deep Learning for Java
- PaddlePaddle PArallel Distributed Deep LEarning