Garden of KnowledgeApplied Sciences › Computer Science › Software › Data Science › Machine Learning › DeepLearning
February 22, 2026

GAN (Generative Adversarial Networks)

Les GAN (Réseaux Antagonistes Génératifs) sont une architecture de deep learning où deux réseaux s’affrontent pour apprendre à générer des données réalistes (images, sons, textes). Introduits par Ian Goodfellow en 2014.

Le principe : un jeu à deux joueurs§

graph LR
    Z["Bruit aléatoire<br/>z ~ N(0,1)"] --> G["Générateur G<br/>(le faussaire)"]
    G --> FAKE["Image générée<br/>(fausse)"]
    REAL["Image réelle<br/>(dataset)"] --> D["Discriminateur D<br/>(le détective)"]
    FAKE --> D
    D --> VERDICT["Vrai ou Faux ?"]

    VERDICT --> |"Feedback"| G
    VERDICT --> |"Feedback"| D

    style G fill:#E91E63,color:#fff
    style D fill:#2196F3,color:#fff
    style VERDICT fill:#FF9800,color:#fff
RôleRéseauObjectif
Générateur (G)Crée des données à partir de bruit aléatoireTromper le discriminateur
Discriminateur (D)Distingue les données réelles des faussesDétecter les contrefaçons

Analogie : un faussaire essaie de créer de faux billets, et un détective essaie de les repérer. Au fil du temps, le faussaire s’améliore et ses faux deviennent indiscernables des vrais.

Formulation mathématique§

Les deux réseaux jouent un jeu minimax :

$$\min_G \max_D ; V(D, G) = \mathbb{E}{x \sim p{data}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]$$

Le processus d’entraînement§

graph TD
    subgraph "Entraînement alterné"
        direction TB
        STEP1["1. Entraîner D<br/>sur des vrais et faux exemples"] --> STEP2["2. Geler D<br/>Entraîner G à tromper D"]
        STEP2 --> STEP3["3. Répéter jusqu'à<br/>équilibre de Nash"]
    end

    subgraph "Évolution"
        E1["Début : G génère du bruit"] --> E2["Milieu : formes reconnaissables"] --> E3["Fin : images réalistes"]
    end

    style STEP1 fill:#2196F3,color:#fff
    style STEP2 fill:#E91E63,color:#fff
    style STEP3 fill:#4CAF50,color:#fff

Équilibre de Nash : l’entraînement converge quand D ne peut plus distinguer le vrai du faux ($D(x) = 0.5$ partout) et G produit des données indiscernables de la réalité.

Variantes principales§

graph TB
    GAN["GAN"] --> DCGAN2["DCGAN"]
    GAN --> CGAN["Conditional GAN"]
    GAN --> WGAN["WGAN"]
    GAN --> STYLEGAN2["StyleGAN"]
    GAN --> PGAN["ProGAN"]
    GAN --> CYCLEGAN2["CycleGAN"]
    GAN --> PIX2PIX2["Pix2Pix"]

    style GAN fill:#673AB7,color:#fff
    style DCGAN2 fill:#2196F3,color:#fff
    style STYLEGAN2 fill:#4CAF50,color:#fff
    style CYCLEGAN2 fill:#FF9800,color:#fff

DCGAN (Deep Convolutional GAN)§

Conditional GAN (cGAN)§

WGAN (Wasserstein GAN)§

StyleGAN (Nvidia)§

CycleGAN§

Pix2Pix§

Problèmes courants§

ProblèmeDescriptionSolutions
Mode CollapseG ne génère que quelques types d’imagesWGAN, mini-batch discrimination, unrolled GAN
Instabilité d’entraînementD ou G domine, oscillationsWGAN-GP, spectral normalization, progressive training
Vanishing GradientsD trop fort, G ne reçoit plus de signalUtiliser des loss alternatives (Wasserstein, least squares)
Évaluation difficilePas de métrique de perte simpleFID (Fréchet Inception Distance), IS (Inception Score)

Applications§

ApplicationDescriptionExemple
Génération de visagesVisages réalistes qui n’existent pasStyleGAN (thispersondoesnotexist.com)
Super-résolutionAugmenter la résolution d’imagesSRGAN, ESRGAN
Transfert de styleConvertir une image dans un autre styleCycleGAN
InpaintingRemplir des parties manquantes d’une imageDeepFill
Génération de donnéesAugmenter un dataset d’entraînementData augmentation avec GAN
Text-to-ImageGénérer des images à partir de texteStackGAN (précurseur des modèles de diffusion)
Drug discoveryGénérer des molécules candidatesMolGAN

GAN vs Modèles de Diffusion§

Les modèles de diffusion (Stable Diffusion, DALL-E, Midjourney) ont largement remplacé les GAN pour la génération d’images depuis 2022 :

CritèreGANDiffusion
QualitéHauteTrès haute
DiversitéRisque de mode collapseExcellente
Stabilité d’entraînementDifficileStable
Vitesse de générationTrès rapide (1 passe)Lent (nombreuses étapes)
ContrôlabilitéLimitéeTrès bonne (prompts textuels)

Les GAN restent pertinents pour les applications nécessitant une génération en temps réel.

—The Gardener