GAN(Generative Adversarial Network)

[gan]

Architettura con due reti che si combattono: una genera fake, l'altra cerca di smascherarli. Per anni la regina della generazione di immagini.

Le GAN (Generative Adversarial Networks) sono un'architettura geniale inventata da Ian Goodfellow nel 2014. Due reti combattono tra loro:

  • Generator: prende rumore casuale e genera dati fake (immagini, audio, qualsiasi cosa).
  • Discriminator: guarda dati veri e fake, cerca di capire quali sono fake.

Si addestrano insieme. Il generator migliora a fregare il discriminator. Il discriminator migliora a smascherarlo. Equilibrio dinamico, è teoria dei giochi applicata al deep learning.

Risultati storici:

  • StyleGAN (NVIDIA, 2018): facce iperrealistiche. Hai presente thispersondoesnotexist.com? Quello era StyleGAN.
  • BigGAN: immagini varie ad alta risoluzione.
  • CycleGAN: cavalli in zebre, foto in dipinti.
  • Pix2Pix: schizzo in foto.

Per anni le GAN sono state lo standard per generare immagini. Poi sono arrivati i diffusion model (DALL-E 2, Stable Diffusion, Midjourney) e li hanno surclassati per controllabilità e qualità.

Problemi delle GAN che hanno favorito il sorpasso:

  • Mode collapse: il generator inizia a generare sempre la stessa cosa, ignorando la diversità.
  • Training instabile: trovare l'equilibrio tra i due è arte nera.
  • Difficile da condizionare: generare un'immagine da un prompt testuale con GAN è complicato.

Oggi le GAN sopravvivono in nicchie: generazione di voci (alcuni vocoder), super-resolution, applicazioni dove serve velocità (una sola passata vs decine di step di diffusion).