Introductions aux modèles génératifs¶
Dans les cours précédents, nous avons vu divers exemples de modèles de deep learning. Parmi ces modèles, certains étaient des modèles discriminatifs et d'autres des modèles génératifs. Ce cours introduit clairement la notion de modèles génératifs et propose plusieurs examples et implémentations.
Discriminatif ou génératif ?¶
Définissons les termes de modèles discriminatifs et génératifs :
- Modèle discriminatif : Un modèle discriminatif a pour objectif de faire la distinction entre différents types de données. Lors de l'entraînement de ce type de modèle, on a des données d'entrées et les labels correspondants. L'objectif du modèle va être de catégoriser une nouvelle données d'entrée. Comme exemple de ce type de modèles, on peut citer la classification (image, texte, son), la détection d'objets et la segmentation.
- Modèle génératif : Un modèle génératif a pour objectif d'apprendre la distribution des données. On pourra ensuite utiliser ce modèle pour générer des nouveaux éléments similaires aux éléments des données d'entraînement. A l'inverse des modèles discriminatifs, on ne dispose pas de labels pendant l'entraînement. Jusqu'ici, les seuls modèles génératifs que nous avons vu sont ceux du cours 5 sur le NLP.
Note : Les autoencodeurs ne peuvent pas s'insérer dans une des deux catégories car ils ne prédisent pas de labels et ils n'apprennent pas la distribution de probabilité des données d'entrée. Cependant, les autoencodeurs variationnels se base sur une architecture visuellement similaire et permettent d'apprendre la distribution de probabilité des données d'entraînement.
Plus formellement, les modèles discriminatifs vont apprendre la probabilité conditionnelle alors que les modèles génératifs vont apprendre ou si on a un label.
Contenu du cours¶
Ce cours va présenter les grandes familles de modèles génératifs et proposer des implémentations pour chacun d'entre eux :
- GAN : Les notebook 2 et 3 sont consacrés aux Generative Adversarial Networks. Les GAN se basent sur un principe de d'entraînement de deux modèles concurrents : un générateur qui tente de générer des données similaires à la distribution des données d'entrainement et un discriminateur qui cherche à faire différencier les données d'entrainement réelles et les données générées par le générateur.
- VAE : Les notebooks 4 et 5 sont consacrés aux Variational Autoencoders. Les Variational Autoencoders (VAE) reprennent l'idée de base de l'autoencodeur, mais au lieu d'apprendre une représentation déterministe dans l'espace latent, ils apprennent une distribution de probabilité.
- Normalizing Flows : Les notebooks 6 et 7 sont consacrés aux Normalizing Flows. Les Normalizing Flows utilisent des transformations bijectives pour passer d'une distribution de probabilité simple, comme une distribution gaussienne, à la distribution des données d'entraînement.
- Diffusion models : Les notebooks 4 et 5 sont consacrés aux Diffusion models. Les Diffusion models entraînent un réseau à supprimer un léger bruit d'une image et sont appliqués de manière répétée pour générer une image à partir d'un bruit gaussien.
Note : Ce cours n'aborde pas les modèles autoregressifs (type GPT) car ceux-ci ont été décrit et implémenté en détail dans cours 5 sur le NLP.
Note 2 : Ce cours vise à présenter les modèles génératifs sans entrer dans les détails. Si vous souhaitez en apprendre plus sur ce type de modèles, je vous conseille le cours de stanford CS236 : site du cours et playlist youtube.