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 ces 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 des élèves 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
Thème 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]
Thème 1 Concepts de base (rappel du cours IFT712-603 et un peu plus) [pdf] [pdf]

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

Voir articles associés.
Thème 4 Segmentation et localisation [pdf] [pdf] Voir articles associés
Thème 5 Réseaux récurrents [pdf] [pdf]

Goodfellow : 10.1, 10.2, 10.3, 10.10
Thème 6 Modèles génératifs [pdf] [pdf]

Goodfellow : 14.1 à 14.5, 20.10.3, 20.10.4
Thème 7 Visualisation [pdf] [pdf]
T-SNE [ pdf ] + TSNE Video (41:00)
Voir articles associés.
Thème 8 Considérations avancées [pdf] [pdf] Si le temps le permet ---


Présentations orales voir le plan de cours et le document que voici pour plus de détails dont les critères d'évaluation.
Les présentations orales 2023 sont disponibles ici


Travaux Pratiques

Veuillez utiliser turninweb pour soumettre vos travaux. Tout retard ou erreur de remise entraînera une pénalité de 10 points 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 .

Setup Aide à la mise sur pied d'un environnement virtuel python sous Linux requirements.txt
bashrc.txt
Tp1 Description (remise : 10 février) code
Softmax et gradient : kit de survie!
Tp2 Description (remise : 3 mars) code
Tp3 Description (remise : 21 mars code
Fichier à copier dans le répertoire weights/
Formulaire réponses
Tp4 Description (remise : 17 avril) code
Données à copier dans le répertoire data/
Model préentraîné, à copier dans le répertoire src/
Sommaire
Session
Hiver 2023

Professeur
Pierre-Marc Jodoin

Correcteur
Antoine Théberge

Périodes de cours
Mardi de 13h30 à 15h20
Mercredi de 14h30 à 15h20

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