** Pour 2021, nous utiliserons le site de cours monPortail **
COVID-19
Notez que l’horaire a passablement changé. Lisez vos courriels régulièrement!
Horaire
Ressource Jupyter de Calcul-Québec (pour GPU)
https://jupyterhub.helios.calculquebec.ca/
Format du rapport de projet
Le format du rapport, ainsi que le barème de correction, est disponible ici
Laboratoires
Pendant la période des laboratoires, nous avons une priorité d’accès, sous la réservation GLO7030
. En dehors de la période de laboratoire, votre requête de notebook passera par une file d’attente. Notez qu’à partir de maintenant, les laboratoires se feront à distance.
Exercices non-évalués
- Quelques exercices sur les CNN ExercicesCNN.pdf. Le solutionnaire n’est pas disponibile pour l’instant, par manque de temps.
- Deuxième série d’exercices ExercicesII.pdf
Travaux pratiques
Jeux de données pour idées de projet
- Nouveau! Projet de détection de Cerfs dans des images (Biologie) Description
- Nouveau! Projet de cartographie assistée du Ministère des Forêts, de la Faune et des Parcs! Description
- datalist.com
- paperswithcode.com
- awesome-public-datasets
Présentations orales de l’article (GLO-7030)
Au lieu d’une présentation de 10 minutes en direct, vous allez faire une capsule vidéo narrée de 10 minutes. Vous pouvez utiliser les fonctionalités de Powerpoint https://www.enseigner.ulaval.ca/ressources-pedagogiques/capsules-narrees . Vous pouvez aussi faire une capture d’écran + son directement de votre PC avec Screen-O-matic https://www.ene.ulaval.ca/captation-numerique . Si l’Université ne possède pas suffisamment de licences, n’hésitez pas à trouver d’autres solutions gratuites en ligne (et les indiquer sur le forum COVID-19). Ne vous inquiétez pas si ces solutions gratuites ajoutent des watermark/filigranes : vous ne serez pas pénalisés. Vous mettrez cette vidéo sur youtube, et j’ajouterai le lien sur le site du cours pour que les autres puissent les regarder. Les dates butoirs pour les remises de ces vidéos sont déplacées d’une semaine par rapport au calendrier original.
L’horaire des présentations est disponible au bas de la page web.
Présentation de votre projet (GLO-7030 seulement)
Cette activité est annulée.
Support vidéo
Pour accélérer les leçons, des vidéos produite entre autre par Hugo Larochelle (Google Brain) sont disponibles. Je vous recommande fortement de les visionner avant la leçon. Nous le remercions d’ailleurs pour son autorisation d’utiliser ce matériel d’enseignement.
Plan de cours
Première moitié
Cette première moitié du cours introduit les connaissances nécessaires pour concevoir et entraîner des réseaux profonds, particulièrement dans un contexte de reconnaissance d’images.
-
Semaine 0 : Mise à niveau : apprentissage automatique, probabilités, etc.
Nous prenons pour acquis que vous maîtrisez la plupart des concepts de base de l’apprentissage automatique, d’algèbre linéaire, et de probabilités. Pour ceux qui ont fait les préalables, vous devriez déjà avoir ces bases. Pour les autres, vous devrez déployer des efforts supplémentaires pour acquérir ces fondements, et ce sur votre propre temps. Nous ne pouvons malheureusement pas utiliser du temps en classe pour expliquer ce que sont les concepts fondamentaux comme :
- l’apprentissage supervisé, et non-supervisé;
- le surapprentissage (overfit);
- la classification vs. la régression;
- les classificateurs classiques comme k-NN, SVM, fonction logistique;
- une idée approximative de qu’est-ce que la complexité (puissance) d’un classificateur.
- ensembles d’entraînement, de validation, et de test;
- la validation croisée;
- les méthodes de réduction de la dimensionalité (PCA);
- les priors.
Lectures dans le manuel : Chapitre 2, 3, 4.
Liens pour l’apprentissage automatique :
- Vidéo résumant le machine learning par Doina Precup
- Udacity : Introduction to Machine Learning
- Coursera : Machine Learning
- Cours sur Fast.ai
-
Semaine 1 (14 janvier) : Plan de cours, introduction, réseau linéaire, fonctions d’activation
Lectures dans le manuel : Chapitre 1, 6
Nous verrons notamment quelles sont les innovations des 10 dernières années qui expliquent la résurgence des réseaux de neurones, en particulier l’apparition des réseaux profonds. Les premiers détails sur les réseaux en aval (feedforward) seront abordés.
Contenu détaillé :
- Introduction
- Réseau feedforward (aval) de base, activations
- Classificateur linéaire
- Importance de la dérivabilité
Vidéos :
Acétates :
Laboratoire : Introduction à Pytorch et premiers essais sur des données standards (MNIST, CIFAR-10)
-
Semaine 2 (21 janvier) : Feedforward, Fonctions de perte, Graphes de calcul, Backprop
Lectures dans le manuel : Chapitre 6
Acétates :
Vidéos :
- Training neural networks - empirical risk minimization
- Training neural networks - loss function
- Training neural networks - output layer gradient
- Training neural networks - hidden layer gradient
- Training neural networks - activation function derivative
- Training neural networks - parameter gradient
- Training neural networks - backpropagation
- Computation Graph (Andrew Ng)
- Derivatives With Computation Graphs (Andrew Ng)
- Logistic Regression Gradient Descent (Andrew Ng)
Laboratoire : Pytorch sous le capot, (MNIST, CIFAR-10)
-
Semaine 3 (28 janvier) : Initialisation et optimisation
Lectures dans le manuel : Chapitre 8
Acétates :
Vidéos :
- Training neural networks - parameter initialization
- Training neural networks - model selection
- Training neural networks - optimization
- Gradient Descent on m Examples (Andrew Ng)
- Normalizing Inputs (Andrew Ng)
- BN: Normalizing Activations in a Network (Andrew Ng)
- BN: Fitting Batch Norm Into Neural Networks (Andrew Ng)
- BN: Why Does Batch Norm Work? (Andrew Ng)
- BN: Batch Norm at Test Time (Andrew Ng)
- Exponentially Weighted Averages (Andrew Ng)
- Understanding Exponentially Weighted Averages (Andrew Ng)
- Bias Correction of Exponentially Weighted Averages (Andrew Ng)
Laboratoire :
-
Semaine 4 (4 février) : Régularisation
Lectures dans le manuel : Chapitre 7
Acétates :
Vidéos :
- Training neural networks - regularization
- Deep learning - difficulty of training
- Deep learning - unsupervised pre-training
- Deep learning - example
- Deep learning - dropout
Laboratoire :
-
Semaine 5 (11 février) : Réseaux à convolution I (CNN)
Lectures dans le manuel : Chapitre 9
Autres lectures :
- cs231n (Stanford) : Convolutional networks
- Network in Network
- Very Deep Convolutional Networks for Large-Scale Image Recognition
- Going Deeper with Convolutions
Vidéos :
Acétates :
Laboratoire :
-
Semaine 6 (18 février) : Réseaux à convolution II (CNN)
Lectures dans le manuel : Chapitre 9
Autres lectures :
- K. He et al. Deep Residual Learning for Image Recognition, 2016.
- Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
- Residual Networks Behave Like Ensembles of Relatively Shallow Networks
Vidéos :
Acétates :
-
Semaine 7 (25 février) : Examen Intra (GLO-4030 et GLO-7030) Local : PLT-2573 pour GLO-7030 avec nom de famille débutant A-D. PLT-2700 pour le reste.
Deuxième moitié
La deuxième moitié du cours portera majoritairement sur les modèle récurrents. Nous allons également voir quelques concepts plus avancés comme les réseaux génératifs (GAN) et les modèles d’attention.
-
Semaine 9 (10 mars) : Retour sur l’examen, Recurrent Neural Networks (RNN)
Lectures dans le manuel : Chapitre 10
Vidéos :
- cs231n Lecture 10 | Recurrent Neural Networks
- Lire le chapitre 10 avant de regarder : Y. Bengio - RNN (DLSS 2017)
Acétates :
Notebooks :
-
Semaine 10 (17 mars) : Activités annulées
-
Semaine 10* (24 mars) : Long Short-Term Memory (LSTM), Gated Recurrent Unit (GRU), Word Embeddings, Modèles de langue, DeepRNN
Lectures dans le manuel : Chapitre 10
Vidéos narrées :
- LSTM et GRU
- Word embeddings #1 - Introduction
- Word embeddings #2 - Réseaux de neurones
- Word embeddings #3 - Embeddings de phrases
- Modèles de langue #1 - Introduction
- Modèles de langue #2 - Deep RNNs
- Modèles de langue #3 - ELMo
Acétates :
Autres lectures :
- Understanding LSTM
- The Unreasonable Effectiveness of Recurrent Neural Networks
- LSTM: A Search Space Odyssey
- An Empirical Exploration of Recurrent Network Architectures
Notebooks :
Laboratoire :
- RNN et LSTM
-
Semaine 11* (31 mars) : Autoencodeurs, Seq2Seq, Modèles d’attention
Lectures dans le manuel : Section 10.12 Explicit Memory
Vidéos narrées :
- Autoencodeurs
- Spatial Transformer Network
- 3.1-Transformer-Decoder
- 3.2-GPT
- 3.3-GPT-2
- 3.4-BERT
- 04-01 RNN and Attention
- 04-02 Attention Is All You Need
Autres lectures :
- Neural Machine Translation by Jointly Learning to Align and Translate
- Attention Is All You Need
- Lecture 2 | Word Vector Representations: word2vec
- word2vec Parameter Learning Explained
Acétates :
- 08-Autoencodeur.pdf
- 09-STN.pdf
- 3.0-Transformers-Timeline.pdf
- 3.1-Transformer-Decoder.pdf
- 3.2-GPT.pdf
- 3.3-GPT-2.pdf
- 3.4-BERT.pdf
- 04.01-RNNandAttention.pdf
- 04.02-AttentionIsAllYouNeed.pdf
Laboratoire
Notebooks
Autres liens pertinents :
- Code pour Attention Is All You Need
- Librairie d’expérimentations
- Visualisation des expérimentations
- Écrire du code pour la recherche
- Autoencoder - definition
- Autoencoder - loss function
- Autoencoder - example
- Autoencoder - linear autoencoder
- Autoencoder - undercomplete vs. overcomplete hidden layer
- Autoencoder - denoising autoencoder
- Autoencoder - contractive autoencoder
- Deep learning - deep autoencoder
- Lecture 13 | Generative Models (partie GAN)
-
Semaine 12* (7 avril) : Détection d’objets, Segmentation d’image, Ladder Networks, Réseaux siamois, Distillation
Vidéos narrées :
- 10-Detection
- 10-Segmentation
- Sujets avancés : Ladder Network, réseaux siamois, distillation (Vidéo du cours de 2018)
Acétates :
-
Semaine 13* (14 avril) : Modèles GAN (Generative Adverserial Network)
Acétates :
Vidéos :
Autres Liens :
- Semaine 15 (21 avril) : Examen final (GLO-4030 SEULEMENT, 12h30 à 14h20, modalité à déterminer)
L’examen se fera en ligne. Les détails suivront.
Révision :
- RNN/LSTM
- Word Embeddings
- Modèles de langue (ELMo)
- Attention (Bahdanau, Attention is all you need)
- AutoEncoder
- GAN
Oraux articles
Horaire des remises des vidéos narrés d’un article (GLO-7030)
Livre
Le livre (obligatoire) est Deep Learning par Goodfellow, Bengio et Courville. Il est également disponible en ligne.
Liens utiles
Deep Learning Glossary
100 Most Cited Deep Learning Papers (2012-2016)
Technos
Le framework utilisé dans le cours est PyTorch. Voici quelques liens utiles:
- https://github.com/bharathgs/Awesome-pytorch-list
- https://github.com/aaron-xichen/pytorch-playground