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).