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]