Apprentissage profond
Ref: 3SQ2050
Description
Ces dernières années, l'utilisation d'algorithmes d'apprentissage automatique pour résoudre de nombreux problèmes mal posés dans le domaine du traitement multidimensionnel du signal et de l'analyse des données massives a gagné en importance. Des nouvelles méthodes de représentation, de modélisation, d'optimisation et d' apprentissage statistique des signaux ont été formulées, couvrant divers domaines de l'apprentissage automatique, de la reconnaissance de formes, de la vision, du traitement du langage naturel et des communications numériques.
Ce cours d'introduction donne un aperçu de nombreux concepts, techniques et algorithmes en apprentissage automatique, les principes de représentation et d'apprentissage profond en particulier, en commençant par des sujets tels que la classification et la régression linéaire et en terminant par des sujets plus récents tels que les machines vectorielles de support, réseaux neuronaux, auto-encodeurs, réseaux neuronaux convolutifs et réseaux récurrents. Le cours donnera à l'étudiant les idées de base et l'intuition derrière les méthodes modernes d'apprentissage profond, ainsi qu'une compréhension un peu plus formelle de comment, pourquoi et quand elles fonctionnent. Le thème sous-jacent du cours est le domaine de l'apprentissage profond, car il constitue la base de la plupart des méthodes couvertes.
Ce cours fournira un aperçu des théories et des pratiques actuelles dans le domaine de l'apprentissage profond, nécessaires aux étudiants qui ont l'intention de se spécialiser dans ce domaine, pour résoudre des problèmes complexes en apprentissage automatique avec des applications à des domaines d'ingénierie tels que les communications et l'Internet des objets (IoT).
Numéro de trimestre
SM11
Prérequis
Les thèmes sous-jacents des cours de base de l'inférence statistique, de la théorie des probabilités et de l'optimisation, car ils constituent la base de la plupart des méthodes couvertes. En outre, une certaine expérience de la programmation Python est requise.
Syllabus
1. Introduction à l'apprentissage statistique
- Introduction, classification linéaire, règle de mise à jour du perceptron- Erreurs de classification, généralisation, régularisation, régression logistique- Régression linéaire, biais d'estimateur et variance- Support de la machine vectorielle (SVM) et des noyaux, optimisation du noyau- Sélection du modèle, longueur de la description, sélection des fonctionnalités- Clustering
2. Introduction aux réseaux de neurones:
- Perceptrons, capacité d'un seul neurone- Régression linéaire et logistique- Rétropropagation et optimisation du gradient stochastique
3. Faire progresser les réseaux de neurones:
- Auto-encodeurs et variantes- Hyper-paramètres et astuces d'entraînement pour les réseaux de neurones- Difficulté à former des réseaux profonds et à régulariser (normes, Dropout, auto-encodeurs de débruitage,…)- Apprentissage non supervisé des représentations et pré-formation
4. Variations sur les encodeurs automatiques et les réseaux récurrents:
- Réseaux de neurones convolutifs- Réseaux récurrents- Auto-encodeurs variationnels et filets adverses génératifs
5. Variations architecturales modernes avec des applications aux communications et à l'analyse des données IoT:
- Un aperçu rapide de TensorFlow- Tâches de classification typiques: classification des chiffres MNIST à l'aide de la régression logistique- Keras: une bibliothèque d'apprentissage en profondeur python- Apprentissage profond pour résoudre les problèmes de communication
Composition du cours
Cours magistraux, exemples, notes de cours, livres pertinents, implémentations pratiques basées sur des projets dédiés, ...
Notation
Il y aura deux examens, un projet de classe à mi-parcours et un final le dernier jour de classe.
Les étudiants doivent compléter un projet de classe. Le choix du sujet appartient aux étudiants dans la mesure où il se rapporte clairement au matériel du cours. Pour s'assurer que les étudiants sont sur la bonne voie, ils devront soumettre une description d'un paragraphe de leur projet avant l'échéance du projet. Nous attendons une rédaction de quatre pages sur le projet, qui devrait décrire clairement et succinctement l'objectif, les méthodes et les résultats du projet. Chaque groupe doit soumettre une seule copie de la rédaction et inclure tous les noms des membres du groupe (un groupe de deux personnes aura 6 pages, un groupe de trois personnes aura 8 pages, et ainsi de suite). Les projets seront notés sur la base de votre compréhension du matériel global du cours (et non en fonction, par exemple, de la brillance de la méthode). La portée du projet est d'environ 1 à 2 ensembles de problèmes.
Les projets peuvent être des revues de littérature, des dérivations ou analyses théoriques, des applications de méthodes d'apprentissage automatique (en profondeur) à des problèmes qui vous intéressent, ou autre chose (à discuter avec le responsable du cours).
Ressources
Logiciels: Python, TensorFlow, Torch
Salle de TP: Department of Télécommunications
Résultats de l'apprentissage couverts par le cours
A l'issue de ce cours, les étudiants doivent pouvoir
- comprendre les grands principes de la théorie de l'apprentissage statistique
- comprendre les principes et les outils du deep learning
- être capable de mettre en œuvre des algorithmes d'apprentissage profond pour les tâches de classification
- comprendre le principal compromis entre les ressources informatiques, l'optimisation et les ressources statistiques
- comprendre les astuces pratiques utilisées pour la sélection de modèles dans les réseaux de neurones profonds
Description des compétences acquises à la fin du cours
C1.3 Solve the problem using approximation, simulation and experimentation.
C2.1 Have developed an area or discipline related to the basic or engineering sciences.
C6.4 Solve problems using computational thinking.
C6.5 Use all types of data, structured or not, including massive data.
C8.1 Work in a team/collaboration.
C1.5 Mobilise a broad scientific and technical base in a transdisciplinary approach.
Support de cours, bibliographie
- Deep Learning: by Ian Goodfellow, Yoshua Bengio and Aaron Courville, Adaptive Computation and Machine Learning series, MIT Press, November 2016, ISBN-10: 0262035618.
- Machine Learning: A Probabilistic Perspective, by Kevin P. Murphy, Adaptive Computation and Machine Learning series, MIT Press, ISBN-10: 0262018020.
- Understanding Machine Learning: From Theory to Algorithms, by Shai Shalev-Shwartz and Shai Ben-David. 2014, Cambridge University Press, USA.
- Deep Learning - Methods and Applications, by Li Deng and Dong Yu http://research.microsoft.com/pubs/219984/BOOK2014.pdf
- Torch7: http://torch.ch/
- TensorFlow: https://www.tensorflow.org
- Tools:
- http://keras.io/
- https://www.cs.cmu.edu/~ymiao/pdnntk.html
- http://deeplearning.net/software/pylearn2/
- http://blocks.readthedocs.org/