Deep learning the good, the bad and the ugly

Anuncio
Deep learning
the good, the bad and the ugly
Pablo Zivic
@ideasrapidas
Deep, shallow, neural, what?
•
•
•
•
•
•
•
•
•
Redes neuronales de la vieja escuela
Tipos de arquitecturas
Qué las diferencia de las redes profundas?
Por qué recién ahora aparecen?
Visión modular
Optimization tricks
Automatic gradient
Aplicaciones
Hazlo tú mismo: librerías para entrenar redes
profundas
Redes de la vieja escuela
Simple perceptron
Si la función de activación es la sigmoidea, esto
equivale a una regresión logística
Redes de la vieja escuela
Feed forward architecture
Backpropagation
a.k.a Regla de la cadena
[ f(g(x)) ]' = f'(g(x)) g'(x)
Para una explicación más detallada ver: este video
Automatic differentiation
Automatic differentiation
Tipos de arquitecturas
Convolución
En algunas slides puse
links aca abajo para
profundizar sobre el
tema de la slide!!
Tutorial sobre convoluciones
Convolución
Convolución (ejemplo)
Feature pooling
Redes convolucionales
a.k.a las que hacen magia con imágenes
Redes convolucionales
a.k.a las que hacen magia con imágenes
Redes recurrentes
Ver capítulo 10 del libro de Bengio
Vanilla RNN
Backpropagation through time
LSTM
Ver capítulo 4 de la tesis de Alex Graves
Recursive neural networks
Wikipedia es un buen punto de partida
Qué diferencia tienen las
arquitecturas?
• Explicitan distintos invariantes que se asumen
del input
• Feed forward: No direct dependency between
different layers
• Convolutional: local similarity
• Recurrent: invariance across time
Deep learning
Deep learning
autoencoders
Ejemplo con código del grupo de Bengio
Deep learning
La era del unsupervised pretraining
Sin pretraining
Con pretraining
Ver: Why Does Unsupervised Pre-training Help Deep Learning?
Deep learning
La era del unsupervised pretraining
Deep learning
Funciones de activación
Dropout
Ver: Dropout: A Simple Way to Prevent Neural Networks from Overfitting
Modular vision
[ f(g(x)) ]' = f'(g(x)) g'(x)
Optimization tricks
●
Patience
○
●
Momentum
○
●
●
●
alpha * curr_grad + (1-alpha) * prev_grad
Monitoring training and validation costs
Learning rate selection
○
●
Wait P*it when we get to decrease the loss function
SGD converges regardless of the amount of data
Xavier initialization
Shuffle the data
Ver Stochastic Gradient Descent Tricks de Leon Bottou
Optimization issues
●
●
No theory
Non convex
○
○
●
Hessian based methods fail
○
○
●
●
Local minima
Saddle points
With saddle points
With 1M parameters
Hessian free algorithms
Sloooow -> GPUs
Hyperparameters
●
Learning rate
○
Decay scheduling
■
■
○
○
●
●
Exponential / linear
Min learning rate
Momentum / momentum scheduling
Per parameter?
Number of neurons
Number of layers
Hyperparameters
●
Regularization
○
○
○
○
●
Dropout rate
l2 / l1
Activation
Per layer?
Pooling (if you do convolutions)
○
○
○
Where to place them
Stride?
Size
Hyperparameters
The hyperparameter space is huge!
Hyperparameters
•
Grid search
•
Random search
•
Bayesian optimization
•
I use hyperopt
Aplicaciones
Speech recognition
Qué me llevo de todo esto?
•
•
Deep learning está de moda
Tiene algunas ideas piolas
•
•
•
Representation learning
Explicit invariants
Explicit model complexity handling
Aplicaciones
Speech recognition
Aplicaciones
Image recognition
Aplicaciones
Word2vec, NLP
Aplicaciones
NLP
Aplicaciones
Machine translation
Aplicación
•
•
•
•
Dataset total: 50k a lo largo del tiempo
Anotados: ~1k
Problema de scoring
Requerimiento: Explicar variaciones en el
score al usuario
Librerías
●
Theano
○
○
○
○
○
●
●
●
pylearn2
lasagne
keras
theanets
...
Torch7
Caffe
TensorFlow
Gracias!!
@ideasrapidas
[email protected]
Descargar