Prima di occuparci di come utilizzare le GAN per i nostri scopi, vediamo prima di tutto cosa sono. Si tratta di un sistema di apprendimento automatico sviluppato nel 2014 da un team di Ian J. Goodfellow, informatico attivo nel campo del deep learning e dell’IA. Il compito di una GAN è di generare creazioni proprie basate su un insieme di esempi di dati reali che devono sembrare così vere da rendere difficile immaginare che siano state generate da un computer senza l’intervento di esseri umani. Per raggiungere quest’obiettivo si utilizzano due reti neurali in competizione tra loro.
Il compito della rete generativa è di creare un’imitazione. La rete è alimentata da una serie di dati, per esempio foto di donne. Sulla base di questi dati, crea la propria foto. La rete può anche studiare quali sono le caratteristiche comuni degli originali. La nuova immagine non è quindi un duplicato di uno dei dati di partenza, ma un’opera completamente nuova, di natura simile. Nel nostro esempio rappresenta la foto di una donna inesistente.
I dati di base e le informazioni generate vengono trasmesse insieme alla rete partner. Lo scopo del discriminatore è verificare se i dati ricevuti siano autentici o falsificati. Un’immagine viene classificata come falsificata non solo quando si discosta troppo dai dati di base, ma anche quando è troppo perfetta: se il generatore dovesse semplicemente prendere un valore medio da tutti i dati e crearne uno nuovo, la creazione meccanica sarebbe evidente. Quindi il discriminatore filtra anche i dati che non hanno un effetto naturale.
Entrambe le reti cercano di svolgere il proprio ruolo in competizione. Quando il discriminatore rileva il set di dati falso, restituisce i dati. In questo caso la rete generativa non è ancora abbastanza efficace e deve quindi continuare ad apprendere. Allo stesso tempo, però, anche il discriminatore ha imparato. Poiché le due reti neurali si addestrano a vicenda, ci stiamo confrontando con un sistema di deep learning. Il generatore cerca di creare insiemi di dati che sembrino così reali, da essere classificati come tali dal discriminatore. Il discriminatore, invece, cerca di analizzare e comprendere gli esempi reali in modo così preciso, che i dati falsificati non abbiano alcuna possibilità di essere identificati come reali.