IFT-780 - Réseaux neuronaux


Objectifs du cours

Apprentissage supervisé par réseaux de neurones : classification et régression avec réseaux à propagation avant et prédiction de cibles. Réseaux de neurones classiques : perceptron multi-couches et régression logistique. Réseaux à convolution et architectures profondes ("deep learning") modernes : VGG, InceptionNet, ResNet, UNet, etc. Applications à l'imagerie : reconnaissance, segmentation, localisation, transfert de style, etc. Réseaux de neurones récurrents et applications à l'analyse de texte et d'images. Modèles génératifs adversaires et réseaux de neurones non-supervisés : auto-encodeurs et auto-encodeurs variationnels. Bonnes pratiques : transfert d'entrainement, augmentation de données, normalisation, méthodes d'entrainement modernes, visualisation. Concepts avancés: modèles d'attention, autoML, compression, convolution dilatées.


Manuel

Il est possible de réussir le cours sans acheter un manuel de référence. Cependant, il peut être avantageux d'en faire l'achat car le cours s'appuie en bonne partie sur deux livres à savoir : Deep learning de Goodfellow, Bengio et Courville ainsi que Pattern Recognition and Machine Learning de Christopher Bishop. Il est possible de les commander sur Amazon. Des copies sont également disponibles à la bibliothèque des sciences et de génie.

Pour ceux et celles qui ne rechignent pas à l'idée de lire un livre sur un écran d'ordinateur, ceux deux manuels sont disponibles en format pdf: ici et et ici.


Méthode pédagogique

La méthode pédagogique pour ce cours est similaire à celle des autres cours au cycles supérieurs. Ainsi, à chaque semaine sera dispensée une séance magistrale de 3 heures. Par contre, à quelques reprises, nous passerons 1 à 2 heures au laboratoire afin de se familiariser avec le code informatique des travaux pratiques. De plus, dans les 2 ou 3 dernières semaines de la session, les séances magistrales seront remplacées par des présentations orales étudiantes.

Il est à noter que ce cours est à l'intention d'étuidants.es ayant des bases solides en techniques d'apprentissage comme le cours IFT603-712 ainsi qu'en programmation python. Si vous n'avez jamais suivi un tel cours, il est fortement suggéré de vous y inscrire.


Notes de cours

Semaine Contenu Sections
des livres
Section 0 Mise à niveau
 • Tutoriel Python avec interface en ligne
 • Tutoriel Python approfondi
 • Tutoriel Python - Stanford
 • Cours IFT712 sur les techniques d'apprentissage

Presentation [pdf] [pdf]
Section 1 Concepts de base (rappel du cours IFT712-603 et un peu plus) [pdf] [pdf]

Bishop :6.1,6.2,6.3,6.5
Section 2 Réseaux à convolution [pdf] [pdf] Goodfellow : 9.0 à 9.5
Section 3 Réseaux à convolution avancés et architectures convolutives modernes [pdf] [pdf]

Voir articles associés.
Section 4 Segmentation et localisation [pdf] [pdf] Voir articles associés
Section 5 Matériel, bibliothèques de code, considérations pratiques [google docs presentation]
Goodfellow : 12.1
Section 6 Réseaux récurrents [pdf] [pdf]

Goodfellow : 10.1, 10.2, 10.3, 10.10
Section 7 Modèles génératifs [pdf] [pdf]

Goodfellow : 14.1 à 14.5, 20.10.3, 20.10.4
Section 8 Visualisation [pdf] [pdf]
T-SNE [ pdf ] + TSNE Video (41:00)
Voir articles associés.
Section 9 Optimisation d'hyperparamètres (AutoML) [pdf] [pdf] Si le temps le permet ---


Séances pratiques Calcul Canada
Le tutoriel des séances pratiques est disponible ICI.
FAQ sur les serveurs de calcul Canada ICI.

Présentations orales --ANNULÉES--

Travaux Pratiques

Veuillez utiliser turninweb pour soumettre vos travaux. Tout retard ou erreur de remise entraînera une pénalité de 10% par jour.
Veuillez également utiliser la plateforme de développement "gitlab" de l'Université. Pour ce faire, connectez-vous à depot.dinf.usherbrooke.ca . Si vous ne pouvez créer de projet, envoyer un courriel à l'administrateur système Daniel-Junior Dubé afin qu'il vous crée un dépôt personnel.

NOTE IMPORTANTE 1 : En plus de votre code, veuillez soumettre un fichier "gitlab.txt" dans lequel vous donnez le lien vers votre dépôt gitlab..
NOTE IMPORTANTE 2 : veuillez bien utiliser git car une mauvaise utilisation pourra entraîner une perte de points au TP3 et pour le projet.

Setup Aide à la mise sur pied d'un environnement virtuel python sous Linux requirements.txt
bashrc.txt
Tp1 Description (remise : 5 février) code
Softmax et gradient : kit de survie!
Tp2 Description (remise : 26 février) code
Tp3 Description (remise : 19 mars) code
Projet Remise : 12 avril _
Sommaire
Session
Hiver 2021

Professeur
Pierre-Marc Jodoin

Correcteur
Thierry Judge

Périodes de cours
Mardi de 14h00 à 16h00
Mercredi de 14h30 à 15h30

Local
D3-2040

Période de disponibilités
Du lundi au vendredi de 9h30 à 17h30

Horaire et plan de cours
(plan ift780)

Created by Pierre-Marc Jodoin