Cos'è
Una rete generativa avversaria (GAN, generative adversarial network) è fatta di due reti in competizione. Il generatore crea esempi falsi, per esempio immagini; il discriminatore cerca di distinguere i falsi dai veri. Ciascuno migliora cercando di battere l'altro, finché i falsi sono difficili da distinguere dai dati reali.
A cosa serve
Produrre immagini, volti e texture realistici, tradurre un tipo di immagine in un altro e creare dati di addestramento in più. I modelli di diffusione hanno in gran parte sostituito le GAN per la generazione generale di immagini, ma le GAN sono ancora più veloci a generare e restano un buon modo per capire l'apprendimento generativo.
Come si fa
- Scegli i dati da imitare, per esempio una cartella di immagini 64 per 64 pixel, e preparali a una sola dimensione.
- Costruisci o scegli due reti: un generatore che trasforma numeri casuali in un'immagine e un discriminatore che dà in uscita vero o falso.
- Addestra a turni: mostra al discriminatore immagini vere e false, poi aggiorna il generatore perché i suoi falsi ingannino il discriminatore.
- Guarda i campioni generati mentre l'addestramento procede, non solo la loss, perché i numeri della loss di una GAN dicono poco sulla qualità delle immagini.
- Attenzione ai problemi tipici: addestramento che non si assesta e generatore che ripete sempre le stesse poche uscite (mode collapse).
- Quando funziona, genera nuove immagini da numeri casuali e controllale per vedere eventuali difetti.