La configuration GAN est un jeu minimax tout droit sorti de la théorie des jeux. Le générateur prend du bruit aléatoire (un vecteur latent, typiquement échantillonné d'une gaussienne) et le transforme en un échantillon de données — une image, généralement. Le discriminateur reçoit à la fois des échantillons réels de l'ensemble d'entraînement et des échantillons artificiels du générateur, et produit une probabilité que chaque échantillon soit réel. Le générateur est entraîné à maximiser l'erreur du discriminateur, tandis que le discriminateur est entraîné à la minimiser. En théorie, cela converge vers un équilibre de Nash où le générateur produit des sorties indiscernables des données réelles et le discriminateur en est réduit à deviner à 50/50. En pratique, y arriver est une tout autre affaire.
L'instabilité de l'entraînement a été le défi central des GAN pendant des années. L'effondrement de mode (mode collapse) — où le générateur apprend à ne produire qu'une tranche étroite des sorties possibles — affligeait les premières architectures. Si le discriminateur devient trop fort trop vite, le signal de gradient vers le générateur disparaît et l'apprentissage stagne. Si le générateur trouve une astuce bon marché qui trompe le discriminateur, il l'exploite sans relâche au lieu d'apprendre des sorties diversifiées. Les Wasserstein GAN (WGAN) ont résolu ce problème avec une fonction de perte différente fournissant des gradients plus significatifs. La croissance progressive (ProGAN) construisait les images de la basse résolution vers la haute, stabilisant énormément l'entraînement. StyleGAN et StyleGAN2 de NVIDIA ont affiné le tout, produisant les fameux visages « cette personne n'existe pas » qui ont pour la première fois choqué le public et l'ont amené à prendre au sérieux la génération d'images par IA.
Le véritable superpouvoir des GAN a toujours été la vitesse. Parce que la génération est un seul passage dans le réseau générateur, un GAN entraîné peut produire une image en millisecondes. Comparez avec les modèles de diffusion, qui nécessitent 20 à 50 passages itératifs. C'est pourquoi les GAN conservent une niche dans les applications en temps réel : l'upscaling de textures de jeux vidéo (NVIDIA DLSS utilise une architecture de type GAN), les filtres faciaux en temps réel, le transfert de style dans les applications mobiles et la super-résolution. Quand vous avez besoin d'images à 30+ FPS, la boucle de raffinement itératif de la diffusion est trop lente sans distillation poussée.
Ian Goodfellow a introduit les GAN en 2014, et l'architecture a connu une évolution extraordinaire : DCGAN a apporté la structure convolutive (2015), les GAN conditionnels ont permis la génération par classe, pix2pix et CycleGAN ont géré la traduction image-vers-image, BigGAN est passé à l'échelle de la qualité ImageNet, et StyleGAN a rendu les visages photoréalistes routiniers. Pendant environ huit ans, si vous voyiez une image générée par IA, elle venait presque certainement d'un GAN. Le passage à la diffusion s'est produit parce que les modèles de diffusion ont résolu les problèmes que les GAN ne pouvaient pas résoudre : la stabilité d'entraînement, la diversité des sorties et le conditionnement textuel fin. Plus besoin du délicat numéro d'équilibriste de l'entraînement adversarial.
Une idée reçue qui mérite d'être corrigée : les GAN ne sont pas morts. Ils ne sont plus l'option par défaut pour la génération d'images, mais le principe d'entraînement adversarial se retrouve partout. Des discriminateurs basés sur les GAN sont utilisés comme fonctions de perte perceptuelle pour la super-résolution et la compression. L'entraînement adversarial renforce les modèles contre les attaques. Et certaines des approches de diffusion les plus rapides (comme Adversarial Diffusion Distillation dans SDXL Turbo) utilisent en fait un discriminateur GAN pour distiller les modèles de diffusion lents en générateurs rapides à quelques étapes — un joli retour de boucle où les GAN aident à accélérer leurs successeurs.