Normalizing flow#
Dans ce cours, on te présente les flux de normalisation, des modèles génératifs de representation learning. Moins connus que les VAE, GAN ou modèles de diffusion, ils ont quand même pas mal d’avantages.
Les GAN et les VAE ne peuvent pas évaluer précisément la distribution de probabilité. Les GAN ne le font pas du tout, tandis que les VAE utilisent la ELBO. Cela pose problème pendant l’entraînement : les VAE génèrent souvent des images floues, et les GAN peuvent tomber dans le mode collapse.
Les flux de normalisation offrent une solution à ces problèmes.
Avantages et inconvénients#
Voici les principaux avantages des flux de normalisation :
Leur entraînement est très stable
Ils convergent plus facilement que les GAN ou les VAE
Pas besoin de générer du bruit pour créer des données
Mais il y a aussi des inconvénients :
Ils sont moins expressifs que les GAN ou les VAE
L’espace latent est limité par la nécessité de fonctions bijectives et de préservation du volume. Du coup, il est difficile à interpréter car il est de grande dimension.
Les résultats générés sont souvent moins bons que ceux des GAN ou des VAE.
Note : Il y a un aspect théorique important derrière les flux de normalisation, mais on ne va pas entrer dans les détails ici. Si tu veux en savoir plus, tu peux consulter le cours CS236 de Stanford, notamment à cette adresse.
Comment ça fonctionne ?#
Un flux de normalisation, c’est une série de transformations bijectives. On les utilise pour modéliser des distributions complexes, comme celles des images, en les transformant en une distribution simple, comme une gaussienne centrée réduite.
Pour les entraîner, on maximise la vraisemblance des données. En gros, on minimise le negative log-likelihood par rapport à la densité de probabilité réelle des données. En ajustant les paramètres des transformations, on fait en sorte que la distribution générée par le flux soit la plus proche possible de la distribution cible.
Figure extraite de blogpost.