====== 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 ===== {{http://www.is.umk.pl/~duch/Wyklady/NN_plan.html|10 pierwszych wykładów}} - W. Duch {{zajecia:nn_2018_1:nn-wyklad.pdf|5 ostatnich wykładów}} - plik będzie aktualizowany na bieżąco w trakcie postępów wykładu. - {{zajecia:nn_2018_1:01-dnn.pdf|Wstęp i modele DNN}} * 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: * [[https://cs.stanford.edu/people/karpathy/convnetjs/demo/trainers.html|ConvNetJS Trainer demo on MNIST]] porównanie alg. uczenia na MNIST - {{zajecia:nn_2018_1:02-cnn.pdf|CNN - sieci splotowe}} * 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 - {{zajecia:nn_2018_1:03-rnn.pdf|RNN - sieci rekurencyjne i uczenie sekwencji}} * 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: * [[http://karpathy.github.io/2015/05/21/rnn-effectiveness/|The Unreasonable Effectiveness of Recurrent Neural Networks]], Andrej Karpathy blog * [[http://colah.github.io/posts/2015-08-Understanding-LSTMs/|Understanding LSTM Networks]] - colah's blog * [[https://medium.com/jim-fleming/implementing-lstm-a-search-space-odyssey-7d50c3bacf93|An LSTM Odyssey]] by Jim Fleming * [[http://www.paddlepaddle.org/docs/develop/book/08.machine_translation/index.html|Machine Translation]] * [[http://www.hexahedria.com/2015/08/03/composing-music-with-recurrent-neural-networks/|Composing Music With Recurrent Neural Networks]] - {{zajecia:nn_2018_1:04-ae.pdf|Ucznie nienadzorowane i ekstrakcja cech}} * 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: * [[https://blog.manash.me/implementing-pca-feedforward-and-convolutional-autoencoders-and-using-it-for-image-reconstruction-8ee44198ea55|Implementing PCA, Feedforward and Convolutional Autoencoders and using it for Image Reconstruction, Retrieval & Compression]] by Manash Kumar Mandal * [[http://cs.stanford.edu/people/karpathy/convnetjs/demo/autoencoder.html|ConvNetJS Denoising Autoencoder demo]] * [[https://kwonkyo.wordpress.com/2017/04/15/unsupervised-learning-using-restricted-boltzmann-machines/|Unsupervised learning using restricted Boltzmann machines]] by Kyo Jin Kwon * [[https://hackernoon.com/generative-adversarial-networks-a-deep-learning-architecture-4253b6d12347|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, [[http://www.deeplearningbook.org/|Deep Learning]], MIT Press, 2016 * M. Nielsen, [[http://neuralnetworksanddeeplearning.com/|Neural Networks and Deep Learning]] * [[wp>Deep_learning|Deep Learning]] * [[https://deepnotes.io/|DeepNotes]] * [[http://yerevann.com/a-guide-to-deep-learning/|A Guide to Deep Learning by YN2]] * [[https://cilvr.nyu.edu/doku.php?id=deeplearning:slides:start|Material for the Deep Learning Course NTU]] * [[http://www.wildml.com/deep-learning-glossary/|Deep Learning glossary]] * [[http://deeplearning.net/tutorial/|Deep Learning Tutorials]] * [[https://rodrigob.github.io/are_we_there_yet/build/|Are we there yet ?]] * [[https://github.com/syhw/wer_are_we|WER are we?]] * [[https://github.com/kjw0612/awesome-deep-vision|Awsome Deep Vison]] * [[http://machinelearningmastery.com/inspirational-applications-deep-learning|8 Inspirational Applications of Deep Learning]] * [[https://github.com/kjw0612/awesome-rnn|Awesome Recurrent Neural Networks]] * [[https://github.com/TensorFlowKR/awesome_tensorflow_implementations|Awesome Tensorflow Implementations]] * [[http://yann.lecun.com/exdb/mnist/|MNIST]] * [[https://www.cs.toronto.edu/~kriz/cifar.html|CIFAR]] * [[http://image-net.org/challenges/LSVRC/2017/|ImageNet]] ===== Frameworki DL ===== * Deep Learning Frameworks https://developer.nvidia.com/deep-learning-frameworks * [[wp>Comparison_of_deep_learning_software]] * [[https://www.tensorflow.org/get_started/|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. * [[http://deeplearning.net/software/theano/Theano]] * [[https://github.com/Lasagne/Lasagne|Lasagne]] - Lightweight library to build and train neural networks in Theano * [[https://docs.microsoft.com/en-us/cognitive-toolkit/|Microsoft Cognitive Toolkit (CNTK)]] * [[http://caffe.berkeleyvision.org/|Caffe]] * [[https://caffe2.ai|Coffe2]] (Facebook AI) * [[http://torch.ch/|Torch]] (Facebook AI) * [[https://www.mathworks.com/solutions/deep-learning.html|MATLAB Deep Learning]] * [[https://ai.intel.com/neon/|neon]] - Fast, scalable, easy-to-use Python based Deep Learning Framework by Nervana. (Intel) * [[https://deeplearning4j.org/|deeplearning4j]] - Deep Learning for Java * [[http://www.paddlepaddle.org/|PaddlePaddle]] PArallel Distributed Deep LEarning