Premier semestre

Deep Learning

Objectifs

Ce cours a pour objectif de présenter les réseaux neuronaux artificiels ainsi que leur extension, connue sous le nom d’apprentissage profond, et de fournir les compétences pratiques nécessaires pour mener à bien une tâche d’apprentissage automatique à l’aide de ces réseaux. Au préalable, des applications concrètes de l’apprentissage profond sont présentées, et les différences entre l’intelligence artificielle, l’apprentissage automatique et l’apprentissage profond sont abordées. Les concepts principaux d’un réseau neuronal artificiel (couches, fonctions d’activation, architectures) et les méthodes d’entraînement (descente stochastique du gradient, traitement par lots, momentum) sont ensuite définis. Les familles d’architectures les plus courantes suivantes sont présentées : les perceptrons multicouches, les réseaux neuronaux convolutifs, les réseaux neuronaux récurrents, les auto-encodeurs (variationnels), les réseaux génératifs adversariaux, les transformateurs et les modèles de diffusion. La présentation de chaque famille d’architectures s’appuie sur des exemples concrets de tâches pertinentes en apprentissage automatique. Au cours des sessions pratiques, ces exemples concrets de tâches d’apprentissage automatique seront abordés à l’aide de réseaux neuronaux artificiels. Les supports utilisés pour les sessions pratiques sont des notebooks Jupyter ; le langage de programmation utilisé sera Python et les bibliothèques Python utilisées seront PyTorch et son écosystème.rnrn

Plan

– Exemples illustratifs d’apprentissage profond – Différences entre intelligence artificielle, apprentissage automatique et apprentissage profond – Concepts de base des réseaux neuronaux artificiels : couches, fonctions d’activation, architectures – Apprentissage d’un réseau neuronal artificiel : la descente stochastique du gradient et ses variantes – Familles d’architectures courantes de réseaux neuronaux : perceptrons multicouches, réseaux neuronaux convolutifs, réseaux neuronaux récurrents, auto-encodeurs (variationnels), réseaux antagonistes génératifs, transformateurs, modèles de diffusion – Applications : vision par ordinateur, traitement du signal, traitement du langage naturelrnrn

Prérequis

Notions de base en algèbre linéaire (vecteurs, matrices, multiplication de matrices), méthode du gradient descendant, notions de base en Python (une expérience en programmation orientée objet en Python serait un atout, mais n’est pas obligatoire)