tadata
← Retour à l'accueil

GAN : l'art de l'apprentissage adversariel

#deep-learning#generative-ai#gan#neural-networks

Les réseaux antagonistes génératifs (GAN), introduits par Goodfellow et al. en 2014, opposent deux réseaux de neurones dans un jeu minimax. Le générateur crée de fausses données ; le discriminateur essaie de distinguer le vrai du faux. Par la compétition, le générateur apprend à produire des sorties de plus en plus réalistes.

Architecture

tadata

La fonction objectif :

min⁡Gmax⁡DEx∼pdata[log⁡D(x)]+Ez∼pz[log⁡(1−D(G(z)))]\min_G \max_D \mathbb{E}_{x \sim p_{data}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]

tadata
Data Sample realbatch x Generator Samplenoise z,make G(z) New z,scoreD(G(z)) Update Gonly: fake→ 1 Discriminator Score D(x)and D(G(z)) Update D:real → 1,fake → 0
Data Sample realbatch x Generator Samplenoise z,make G(z) New z,scoreD(G(z)) Update Gonly: fake→ 1 Discriminator Score D(x)and D(G(z)) Update D:real → 1,fake → 0
Une itération d'entraînement : k étapes du discriminateur (k = 1 dans la plupart des implémentations), puis une étape du générateur

Extrait de la fiche « Generative Adversarial Networks (GANs) » · Demander la fiche complète

Variantes de GAN

VarianteAnnéeInnovation cléIdéal pour
DCGAN2015Architecture convolutive pour un entraînement stableBase de génération d'images
WGAN2017Distance de Wasserstein, pénalité de gradientStabilité d'entraînement
Conditional GAN2014Génération conditionnée par classeSortie contrôlée
Pix2Pix2017Traduction image-à-image appariéeTraduction supervisée
CycleGAN2017Traduction non appariée via cohérence cycliqueTransfert de style
StyleGAN2019Générateur basé style, croissance progressiveSynthèse de visages haute résolution
StyleGAN32021Génération sans aliasingSynthèse prête pour la vidéo
GigaGAN2023GAN mis à l'échelle à 1 milliard de paramètresTexte-vers-image à grande échelle
tadata
GAN, conditional GAN Goodfellow et al.; Mirza andOsindero 2014 DCGAN stable conv recipe, latentarithmetic 2015 WGAN, pix2pix, CycleGAN,ProGAN theory, translation, highresolution 2017 BigGAN, StyleGAN ImageNet scale; photoreal faces 2018 StyleGAN2, HiFi-GAN artefact fixes; GAN vocoder forspeech 2020 StyleGAN3, VQGAN alias-free; adversarial loss forimage tokenisers 2021 GigaGAN, adversarialdiffusion distillation text-to-image GAN; few-stepdiffusion students 2023
GAN, conditional GAN Goodfellow et al.; Mirza andOsindero 2014 DCGAN stable conv recipe, latentarithmetic 2015 WGAN, pix2pix, CycleGAN,ProGAN theory, translation, highresolution 2017 BigGAN, StyleGAN ImageNet scale; photoreal faces 2018 StyleGAN2, HiFi-GAN artefact fixes; GAN vocoder forspeech 2020 StyleGAN3, VQGAN alias-free; adversarial loss forimage tokenisers 2021 GigaGAN, adversarialdiffusion distillation text-to-image GAN; few-stepdiffusion students 2023
Les jalons clés des GAN (année de la première prépublication)

Extrait de la fiche « Generative Adversarial Networks (GANs) » · Demander la fiche complète

Défis d'entraînement

Les GAN sont notoirement difficiles à entraîner :

Effondrement de modes : le générateur ne produit que quelques types de sorties qui trompent le discriminateur, ignorant la distribution complète des données. La fonction de perte WGAN et la discrimination par minibatch aident à atténuer cela.

Instabilité d'entraînement : le générateur et le discriminateur doivent rester en équilibre. Si le discriminateur devient trop fort, les gradients disparaissent pour le générateur. S'il est trop faible, le générateur ne reçoit aucun signal utile. Techniques : normalisation spectrale, croissance progressive, règle de mise à jour à deux échelles temporelles (TTUR).

Évaluation : il n'existe pas de perte unique corrélée à la qualité des sorties. Métriques courantes :

  • FID (Fréchet Inception Distance) : plus bas est mieux, mesure la similarité de distribution
  • IS (Inception Score) : plus haut est mieux, mesure qualité et diversité
  • LPIPS : métrique de similarité perceptuelle
tadata
Samples all look alike (mode collapse) COMMON HIGH LIKELY CAUSES 1. G found a few outputs the currentD accepts 2. D has no view of batch diversity HOW TO CONFIRM Generate 64 samples from different z;compute intra-batch similarity orrecall metric FIX Minibatch standard-deviationfeature in D WGAN-GP or spectralnormalisation Lower G learning rate,unrolled or two-timescaleupdates D loss → 0, G loss climbs, samples stop improving COMMON HIGH LIKELY CAUSES 1. D far stronger than G (vanishing Ggradient) 2. Saturating generator loss HOW TO CONFIRM Plot D(x) and D(G(z)): both near 1 and0 for hundreds of steps FIX Non-saturating loss Label smoothing (real target0.9), instance noise R1 gradient penalty on realdata Losses oscillate, quality goes up then down OCCASIONAL MEDIUM LIKELY CAUSES 1. Simultaneous gradient steps circlethe saddle point 2. Learning rates too high HOW TO CONFIRM Track FID every N steps; GAN lossesalone do not measure quality FIX Adam with β1 = 0.5 (DCGAN) or0, small learning rates Exponential moving average ofG weights Keep the best-FID checkpoint Checkerboard artefacts in images OCCASIONAL LOW LIKELY CAUSES 1. Transposed convolutions withstride not dividing the kernel HOW TO CONFIRM Zoom on flat regions: regular gridpattern FIX Upsample (nearest or bilinear)then a normal convolution
Samples all look alike (mode collapse) COMMON HIGH LIKELY CAUSES 1. G found a few outputs the currentD accepts 2. D has no view of batch diversity HOW TO CONFIRM Generate 64 samples from different z;compute intra-batch similarity orrecall metric FIX Minibatch standard-deviationfeature in D WGAN-GP or spectralnormalisation Lower G learning rate,unrolled or two-timescaleupdates D loss → 0, G loss climbs, samples stop improving COMMON HIGH LIKELY CAUSES 1. D far stronger than G (vanishing Ggradient) 2. Saturating generator loss HOW TO CONFIRM Plot D(x) and D(G(z)): both near 1 and0 for hundreds of steps FIX Non-saturating loss Label smoothing (real target0.9), instance noise R1 gradient penalty on realdata Losses oscillate, quality goes up then down OCCASIONAL MEDIUM LIKELY CAUSES 1. Simultaneous gradient steps circlethe saddle point 2. Learning rates too high HOW TO CONFIRM Track FID every N steps; GAN lossesalone do not measure quality FIX Adam with β1 = 0.5 (DCGAN) or0, small learning rates Exponential moving average ofG weights Keep the best-FID checkpoint Checkerboard artefacts in images OCCASIONAL LOW LIKELY CAUSES 1. Transposed convolutions withstride not dividing the kernel HOW TO CONFIRM Zoom on flat regions: regular gridpattern FIX Upsample (nearest or bilinear)then a normal convolution
Les quatre échecs que vous rencontrerez, avec la façon de les confirmer et de les corriger

Extrait de la fiche « Generative Adversarial Networks (GANs) » · Demander la fiche complète

GAN vs modèles de diffusion

Les modèles de diffusion ont largement remplacé les GAN pour la génération d'images depuis 2022 :

AspectGANModèles de diffusion
EntraînementAdversariel (instable)Débruitage (stable, perte simple)
Couverture des modesSujet à l'effondrement de modesCouverture complète de la distribution
Qualité des échantillonsExcellente (bien entraîné)Excellente
Vitesse d'échantillonnageRapide (une seule passe)Lente (nombreuses étapes de débruitage)
ContrôlabilitéLimitée sans conditionnementForte (guidance sans classifieur)
Statut actuelUsages de niche, rechercheDominant (DALL-E 3, Stable Diffusion, Midjourney)

Les GAN restent pertinents pour les applications temps réel (super-résolution, amélioration vidéo) où la vitesse d'inférence en une seule passe compte, et pour les techniques basées discriminateur dans d'autres pipelines génératifs.

Applications pratiques utilisant encore les GAN

  • Super-résolution : ESRGAN et Real-ESRGAN pour l'upscaling d'images et de vidéo
  • Augmentation de données : génération de données synthétiques pour les classes déséquilibrées
  • Détection d'anomalies : le discriminateur comme détecteur hors distribution
  • Inpainting d'images : remplissage de régions manquantes avec du contenu contextualisé
  • Adaptation de domaine : transfert de styles entre domaines (imagerie médicale, satellite)

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.