Outils pour utilisateurs

Outils du site


formations:masters:ue:m2:iap10

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
formations:masters:ue:m2:iap10 [2023/04/21 09:12] – supprimée - modification externe (Unknown date) 127.0.0.1formations:masters:ue:m2:iap10 [2023/04/21 09:39] (Version actuelle) – [Pré-requis] lien syllabus Fouilles treinen
Ligne 1: Ligne 1:
 +======  Introduction à l'Apprentissage Profond ======
 +
 +
 +===== Description =====
 +
 +Ce cours introduit les principes de base de l'apprentissage profond en développant des réseaux de neurones en PyTorch. Le cours traitera les notions de base de l’apprentissage, principalement supervisé, comme la régression linéaire, logistique, les réseaux de neurones à propagation avant, les fonctions d’activation, les réseaux des neurones à convolution. 
 +
 +Le cours a un niveau introductif et il se propose de presenter les fonctionnalités de bases de PyTorch afin de permettre l'implémentation des réseaux de neurones et de les tester sur des jeux de données publiques. 
 +
 +
 +===== Syllabus =====
 +==== Sujets centraux ====
 +
 +  - Rappel des principes de l'apprentissage automatique 
 +    * différents problèmes d'apprentissage (classification, régression, clustering, reduction de dimension etc)
 +    * modèles prédictifs, fonctions de perte et d'exactitude
 +    * sous/sur-apprentissage, capacité d'un modèle 
 +    * jeux de données: apprentissage/validation/test
 +  - Les tenseurs et leur manipulation
 +    * dimension, axe, forme, tranche
 +    * API de PyTorch pour la manipulation des tenseurs, broadcasting
 +    * encodages de données en tenseurs (textes, images, séquences)
 +    * représentation des tenseurs en mémoire 
 +  - Réseaux de neurones à propagation avant
 +    * les neurones et les fonctions d'activation
 +    * les bénéfices des réseaux multicouches 
 +    * les différentes fonctions de perte (MSELoss, CrossEntropyLoss)
 +    * étude de cas : classification non-linéaire
 +    * étude de cas : représentation distribuée de mots en anglais 
 +  - Le processus d'apprentissage 
 +    * paramètres d'apprentissage et hyper-paramètres 
 +    * la méthode de la descente du gradient et ses variantes (batch, stochastique, mini-batch) 
 +    * suivi de l'apprentissage
 +    * algorithmes d'optimisation pour la descente du gradient (SGD avec momentum, adam, RMSprop)
 +  - Les réseaux de convolution 
 +    * couches de convolution
 +    * couches de regroupement (pooling)
 +    * étude de cas : la classification d'images 
 +  - Les techniques de regularisation
 +    * dropout
 +    * batch-normalisation
 +    * norm-penalty
 +    * early stopping
 +
 +==== Sujets potentiellement traités ====
 +    * la différentiation automatique en PyTorch
 +    * autres architectures de réseaux de neurones (RNN, LSTM, GAN, ...)  
 +    * techniques d'augmentation de données
 +
 +===== Pré-requis =====
 +
 +Une maîtrise de la programmation en Python est nécessaire. 
 +
 +Des connaissances de base d'algèbre linéaire (vecteurs, matrices, produit matriciel), calcul différentiel (gradient, règle de la chaine), théorie de la probabilité (distribution discrète/continue, moments d'une distribution) et des techniques d'optimisation (minimisation, descente du gradient) sont bienvenues mais pas pré-requis pour le niveau introductif de ce cours. De même, avoir suivi le cours de [[fdad9|Fouille de données et aide à la décision]] est un plus, mais un pré-requis.