Deep Learning: Do-It-Yourself!

Hands-on tour to deep learning

Course description

Recent developments in neural network approaches (more known now as "deep learning") have dramatically changed the landscape of several research fields such as image classification, object detection, speech recognition, machine translation, self-driving cars and many more. Due its promise of leveraging large (sometimes even small) amounts of data in an end-to-end manner, i.e. train a model to extract features by itself and to learn from them, deep learning is increasingly appealing to other fields as well: medicine, time series analysis, biology, simulation.

This course is a deep dive into practical details of deep learning architectures, in which we attempt to demystify deep learning and kick start you into using it in your own field of research. During this course, you will gain a better understanding of the basis of deep learning and get familiar with its applications. We will show how to set up, train, debug and visualize your own neural network. Along the way, we will be providing practical engineering tricks for training or adapting neural networks to new tasks.

By the end of this class, you will have an overview on the deep learning landscape and its applications to traditional fields, but also some ideas for applying it to new ones. You should also be able to train a multi-million parameter deep neural network by yourself. For the implementations we will be using the PyTorch library in Python.

The topics covered in this course include:

  • Neural network approaches: feedforward networks, convolutional networks (CNNs), recurrent networks (RNNs)
  • Modern practices: backpropagation, regularization, optimization, fine-tuning
  • Deep Learning research: autoencoders, deep generative models, long short-term memory (LSTM) modules
  • CNN architectures: VGG, ResNet, fully convolutional net, multi input and multi output nets
  • RNN architectures: bidirectional RNNs, encoder-decoder sequence-to-sequence, LSTMs, GRUs

  • Schedule

    # Date Description Course Materials
    Lecture 1 Thursday
    October 5
    14h-16h
    salle Conf IV
    Course introduction
    Meet your dev environment
    First dive into CNNs
    Testing out pre-trained networks
    [lesson 1]
    Lecture 2 Monday
    October 16
    14h-16h
    salle Conf IV
    Using CNNs in practice
    Finetuning model on new task
    Convolutions and activation functions
    Optimization
    Result visualization
    [slides]
    [ipynb]
    Lecture 3 Thursday
    October 19
    14h-16h
    salle Conf IV
    Machine Learning basics
    Linear algebra
    Convex optimization
    Gradient descent
    Regularization
    [slides]
    [ipynb cats and dogs]
    [ipynb convolutions]
    Lecture 4 Thursday
    November 9
    14h-16h
    salle Conf IV
    Introduction to Neural Networks and Convolutional Neural Networks
    Multi-layer Perceptrons
    Applications: embeddings, collaborative filtering
    Backpropagation
    [slides]
    [ipynb]
    Lecture 5 Thursday
    November 16
    14h-16h
    salle Conf IV
    Image classification
    K-Nearest Neighbor
    Linear classification, SVM
    Human-engineered features
    Convolution and pooling
    [slides]
    [ipynb]
    Lecture 6 Thursday
    November 23
    14h-16h
    salle Conf IV
    Training Neural Networks
    Activation functions
    Model initialization
    Dropout
    Batch Normalization
    CNN architectures
    [slides]
    [ipynb]
    Lecture 7 Thursday
    November 30
    14h-16h
    salle Conf IV
    Tips and tricks for training Neural Networks in practice Learning rate update rules and schedules
    Data augmentation
    Transfer learning, ensembles
    Overfitting, regularization
    Why doesn't my CNN work? Debugging a neural networks
    Visualizing and understanding CNNs
    [slides]
    [ipynb]
    Lecture 8 Thursday
    December 7
    14h-16h
    salle Conf IV
    Recurrent Neural Networks
    Vanilla RNNs, GRU, LSTM, bidirectional LSTMs
    RNN architectures and setups
    Word embeddings, Language modeling, time series analysis
    Encoder-Decoder / Sequence to Sequence: machine translation
    Soft attention
    Temporal convolutions
    [slides]
    [ipynb]
    Lecture 9 Thursday
    December 14
    14h-16h
    salle Conf IV
    CNN aplications
    Object detection
    Image segmentation

    Generative models. Adversarial examples and adversarial training
    Autoencoders. Variational Autoencoders
    Generative Adversarial Networks
    Adversarial examples
    [slides]
    [ipynb]

    Practical info

    Finding the lecture hall:

    The class will take place in room Conf IV, in the second floor of the physics department of Ecole Normale Superieure.

    GPU install

    Instructions on how to use AWS instance are on the forum.


    Instructors

  • Florent Krzakala (ENS) - Florent dot Krzakala at ens dot fr
  • Marc Lelarge (Safran/Inria Paris/ENS) - Marc dot Lelarge at inria dot fr
  • Andrei Bursuc (Safran) - Andrei dot Bursuc at safrangroup dot com

  • Enrolment

    Please fill the form.

    This course is dedicated to PhD students from Dcotoral School ED564: Physique en Ile de France (EDPIF). If you wish to attend this course please contact Laure Baron-Ledez: edpif dot psl at edpif dot org / 01 44 32 25 59 .

    If you are not a student of EDPIF and wish to enroll, please get in touch with one of the instructors.


    Aknowledgements