Una rete generative avversaria (GAN) è composta da due parti:
- Il generatore impara a generare dati plausibili. Le istanze generate diventano esempi di addestramento negativi per il discriminatore.
- Il discriminatore impara a distinguere i dati falsi del generatore da quelli reali. Il discriminatore penalizza il generatore per la produzione di risultati implausibili.
All'inizio dell'addestramento, il generatore produce dati chiaramente falsi e il discriminatore impara rapidamente a riconoscerli come tali:
Man mano che l'addestramento procede, il generatore si avvicina alla produzione di output che possono ingannare il discriminatore:
Infine, se l'addestramento del generatore va a buon fine, il discriminatore peggiora nel distinguere il reale dal falso. Inizia a classificare i dati falsi come reali e la sua accuratezza diminuisce.
Ecco una foto dell'intero sistema:
Sia il generatore che il discriminatore sono reti neurali. L'uscita del generatore è collegata direttamente all'ingresso del discriminatore. Attraverso la retropropagazione, la classificazione del discriminatore fornisce un segnale che il generatore utilizza per aggiornare i suoi pesi.
Vediamo più in dettaglio i componenti di questo sistema.