wAIpoint
English

Reti generative avversarie (GAN)

Livello: Intermedio

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

Il processo, passo per passo. Librerie e strumenti cambiano; questi passi restano.

  1. Scegli i dati da imitare, per esempio una cartella di immagini 64 per 64 pixel, e preparali a una sola dimensione.
  2. Costruisci o scegli due reti: un generatore che trasforma numeri casuali in un'immagine e un discriminatore che dà in uscita vero o falso.
  3. Addestra a turni: mostra al discriminatore immagini vere e false, poi aggiorna il generatore perché i suoi falsi ingannino il discriminatore.
  4. 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.
  5. Attenzione ai problemi tipici: addestramento che non si assesta e generatore che ripete sempre le stesse poche uscite (mode collapse).
  6. Quando funziona, genera nuove immagini da numeri casuali e controllale per vedere eventuali difetti.

Cronologia

  1. 2014GAN: un generatore e un discriminatore addestrati l'uno contro l'altro in un gioco a due giocatori (Goodfellow et al.). fonte

Fonti