deep learning tutorial - university of north carolina at...

29
Deep learning Tutorial Tianxiang Gao Aug 31, 2016

Upload: trandan

Post on 11-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Deep learning Tutorial

Tianxiang GaoAug 31, 2016

Content

1. Basics about Deep Learning2. Tutorial in Keras3. Recent Deep Learning techniques

Background machine learning knowledge1. Linear regression (LASSO, Ridge)2. Logistic regression3. Optimization (Gradient Descent, Stochastic mini-batch

gradient descent)

Deep Learning

Deep-learning methods are representation-learning methods with multiple levels of representation, obtained by composing simple but non-linear modules that each transform the representation at one level (starting with the raw input) into a representation at a higher, slightly more abstract level.

LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." Nature 521.7553 (2015): 436-444.

Activation Unit

A simple network with 2 layers

X1 Y

X2

w1

w2

Y = f(b + x1w1 + x2w2 )

1b

Input Layer Output Layer

Bias

Bias

Weights

Weights

Feedforward Neural Network

Neural network for classification

Setting up Keras

- Python - Quick Tutorial:

http://deeplearning.net/software/theano/tutorial/python.html

- Numpy - Tutorial:

https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

- Matlab, Numpy, R and Julia:

http://hyperpolyglot.org/numerical-analysis

- Theano (needed for keras, Tensorflow is an alternative) - Tutorial and installation: http://deeplearning.net/software/theano/

- Keras- Tutorial and installation: https://keras.io/

Demo with keras

See the tutorial_class.py:

http://www.cs.unc.edu/~tgao/tutorial_class.py

Convolutional Neural Network

http://inspirehep.net/record/1252539/files/CNN.png

Convolution Layer

Here is a nice animation:

http://cs231n.github.io/convolutional-networks/

Max pooling layer

Convolutional Neural Network

https://en.wikipedia.org/wiki/File:Typical_cnn.png

A demo for CNN

How convolutional neural networks see the world

VGG16 (OxfordNet)

https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html

Recurrent Neural Network

Do not confuse with recursive neural network.

LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." Nature 521.7553 (2015): 436-444.

Recurrent Neural NetworkA popular structure: LSTM (Long Short-Term Memory)

Example in Keras: Text generation

https://github.com/fchollet/keras/blob/master/examples/lstm_text_generation

.py

Kaparthy’s blog: The Unreasonable Effectiveness of Recurrent Neural

Networks

http://karpathy.github.io/2015/05/21/rnn-effectiveness/

Awesome RNN: List of resources, papers about rnn

https://github.com/kjw0612/awesome-rnn

Combine RNN and CNN

LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." Nature 521.7553 (2015): 436-444.

Some other techniques

1. Dropout2. AutoEncoder 3. Batch Normalization4. Residual network

Dropout

Srivastava, Nitish, et al. "Dropout: a simple way to prevent neural networks from overfitting." Journal of Machine Learning Research 15.1 (2014): 1929-1958.

Auto-Encoder (AE)

http://goo.gl/e011Tf

Output X

Code H

Input X

Denoising Auto-Encoder (DAE)

Tan, J., et al. "Unsupervised feature construction and knowledge extraction from genome-wide assays of breast cancer with denoising autoencoders."Pacific Symposium on Biocomputing. Pacific Symposium on Biocomputing. Vol. 20. NIH Public Access, 2014.

Output X

Code H

Corrupted input X

Input X

Stacked Auto-Encoder (SAE)

Min, Seonwoo, Byunghan Lee, and Sungroh Yoon. "Deep Learning in Bioinformatics." arXiv preprint arXiv:1603.06430 (2016).

Stacked Auto-Encoder (SAE)

Min, Seonwoo, Byunghan Lee, and Sungroh Yoon. "Deep Learning in Bioinformatics." arXiv preprint arXiv:1603.06430 (2016).http://cs229.stanford.edu/materials/CS229-DeepLearning.pdf

Batch Normalization

Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." arXiv preprint arXiv:1502.03167 (2015).

Questions

Other resource

Tips on Debugging Theano:

http://udibr.github.io/tips-on-working-with-theano.html