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.

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:

ConvNetJS Trainer demo on MNIST porównanie alg. uczenia na MNIST

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

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:

The Unreasonable Effectiveness of Recurrent Neural Networks, Andrej Karpathy blog

Understanding LSTM Networks - colah's blog

An LSTM Odyssey by Jim Fleming

Machine Translation

Composing Music With Recurrent Neural Networks

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:

Implementing PCA, Feedforward and Convolutional Autoencoders and using it for Image Reconstruction, Retrieval & Compression by Manash Kumar Mandal

ConvNetJS Denoising Autoencoder demo

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

Deep Learning

DeepNotes

A Guide to Deep Learning by YN2

Material for the Deep Learning Course NTU

Deep Learning glossary

Deep Learning Tutorials

Are we there yet ?

WER are we?

Awsome Deep Vison

8 Inspirational Applications of Deep Learning

Awesome Recurrent Neural Networks

Awesome Tensorflow Implementations

MNIST

CIFAR

ImageNet

Frameworki DL

Deep Learning Frameworks https://developer.nvidia.com/deep-learning-frameworks

Comparison_of_deep_learning_software

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

Lasagne - Lightweight library to build and train neural networks in Theano

Microsoft Cognitive Toolkit (CNTK)

Caffe

Coffe2 (Facebook AI)

Torch (Facebook AI)

MATLAB Deep Learning

neon - Fast, scalable, easy-to-use Python based Deep Learning Framework by Nervana. (Intel)

deeplearning4j - Deep Learning for Java

PaddlePaddle PArallel Distributed Deep LEarning