Connect with us

IA 101

Che cos’è una Rete Adversaria Generativa (GAN)?

mm

Le Reti Adversarie Generative (GAN) sono tipi di architetture di reti neurali in grado di generare nuovi dati che si conformano ai modelli appresi. Le GAN possono essere utilizzate per generare immagini di volti umani o altri oggetti, per eseguire la traduzione testo-immagine, per convertire un tipo di immagine in un altro e per migliorare la risoluzione delle immagini (super risoluzione) tra le altre applicazioni. Poiché le GAN possono generare interamente nuovi dati, sono alla testa di molti sistemi, applicazioni e ricerche all’avanguardia dell’IA. Eppure, come funzionano esattamente le GAN? Esploriamo come funzionano le GAN e diamo un’occhiata ad alcuni dei loro usi principali.

Definizione di modelli generativi e GAN

Una GAN è un esempio di modello generativo. La maggior parte dei modelli di IA possono essere divisi in una delle due categorie: modelli supervisionati e non supervisionati. I modelli di apprendimento supervisionato sono tipicamente utilizzati per discriminare tra diverse categorie di input, per classificare. Al contrario, i modelli non supervisionati sono tipicamente utilizzati per riassumere la distribuzione dei dati, spesso apprendendo una distribuzione gaussiana dei dati. Poiché apprendono la distribuzione di un set di dati, possono estrarre campioni da questa distribuzione appresa e generare nuovi dati.
Diversi modelli generativi hanno metodi diversi per generare dati e calcolare le distribuzioni di probabilità. Ad esempio, il modello Naive Bayes opera calcolando una distribuzione di probabilità per le diverse caratteristiche di input e la classe generativa. Quando il modello Naive Bayes rende una previsione, calcola la classe più probabile prendendo la probabilità delle diverse variabili e combinandole insieme. Altri modelli generativi non basati sull’apprendimento profondo includono i modelli di miscela gaussiana e l’allocazione di Dirichlet latente (LDA). I modelli generativi basati sull’apprendimento profondo includono macchine di Boltzmann ristrette (RBMs), autoencoder variazionali (VAE) e, naturalmente, le GAN.
Le Reti Adversarie Generative sono state proposte per la prima volta da Ian Goodfellow nel 2014, e sono state migliorate da Alec Redford e altri ricercatori nel 2015, portando a un’architettura standardizzata per le GAN. Le GAN sono in realtà due reti diverse unite insieme. Le GAN sono composte da due metà: un modello di generazione e un modello di discriminazione, anche noto come generatore e discriminatore.

Architettura GAN

Le Reti Adversarie Generative sono costruite a partire da un modello generativo e un modello discriminatorio uniti insieme. Il lavoro del modello generativo è creare nuovi esempi di dati, in base ai modelli che il modello ha appreso dai dati di training. Il lavoro del modello discriminatorio è analizzare le immagini (ipotizzando che sia stato addestrato su immagini) e determinare se le immagini sono generate/falsi o genuine.

I due modelli sono opposti l’uno all’altro, addestrati in modo teorico dei giochi. L’obiettivo del modello generativo è produrre immagini che ingannino il suo avversario, il modello discriminatorio. Nel frattempo, il lavoro del modello discriminatorio è superare il suo avversario, il modello generativo, e rilevare le immagini false prodotte dal generatore. Il fatto che i modelli siano opposti l’uno all’altro porta a una corsa agli armamenti in cui entrambi i modelli migliorano. Il discriminatore riceve un feedback su quali immagini erano genuine e quali immagini sono state prodotte dal generatore, mentre il generatore riceve informazioni su quali delle sue immagini sono state segnalate come false dal discriminatore. Entrambi i modelli migliorano durante l’addestramento, con l’obiettivo di addestrare un modello di generazione che possa produrre dati falsi che siano essenzialmente indistinguibili dai dati reali e genuini.
Una volta creata una distribuzione gaussiana dei dati durante l’addestramento, il modello generativo può essere utilizzato. Il modello generativo viene inizialmente alimentato con un vettore casuale, che trasforma in base alla distribuzione gaussiana. In altre parole, il vettore semina la generazione. Quando il modello è addestrato, lo spazio vettoriale sarà una versione compressa, o rappresentazione, della distribuzione dei dati gaussiana. La versione compressa della distribuzione dei dati è denominata spazio latente o variabili latenti. Successivamente, il modello GAN può quindi prendere la rappresentazione dello spazio latente e tracciare punti da esso, che possono essere dati al modello di generazione e utilizzati per generare nuovi dati molto simili ai dati di training.
Il modello discriminatorio viene alimentato con esempi dell’intero dominio di training, che è composto da esempi di dati reali e generati. Gli esempi reali sono contenuti all’interno del set di dati di training, mentre i dati falsi sono prodotti dal modello generativo. Il processo di addestramento del modello discriminatorio è esattamente lo stesso dell’addestramento di un modello di classificazione binaria di base.

Processo di addestramento GAN

Diamo un’occhiata all’intero processo di addestramento per un’ipotetica attività di generazione di immagini.
Per iniziare, la GAN viene addestrata utilizzando immagini genuine e reali come parte del set di dati di training. Ciò configura il modello discriminatorio per distinguere tra immagini generate e immagini reali. Produce anche la distribuzione dei dati che il generatore userà per produrre nuovi dati.
Il generatore prende in input un vettore di dati numerici casuali e li trasforma in base alla distribuzione gaussiana, restituendo un’immagine. Le immagini generate, insieme ad alcune immagini genuine del set di dati di training, vengono alimentate nel modello discriminatorio. Il discriminatore renderà una previsione probabilistica sulla natura delle immagini che riceve, producendo un valore compreso tra 0 e 1, dove 1 è tipicamente un’immagine autentica e 0 è un’immagine falsa.

C’è un doppio ciclo di feedback in azione, poiché il discriminatore di base viene alimentato con la verità di base delle immagini, mentre il generatore riceve un feedback sulle sue prestazioni dal discriminatore.
I modelli generativo e discriminatorio stanno giocando un gioco a somma zero l’uno con l’altro. Un gioco a somma zero è uno in cui i guadagni di una parte derivano a spese dell’altra parte (la somma è zero es). Quando il modello discriminatorio è in grado di distinguere con successo tra esempi reali e falsi, non vengono apportate modifiche ai parametri del discriminatore. Tuttavia, vengono apportate grandi modifiche ai parametri del modello quando non riesce a distinguere tra immagini reali e false. L’inverso è vero per il modello generativo, viene penalizzato (e i suoi parametri vengono aggiornati) quando non riesce a ingannare il modello discriminatorio, ma altrimenti i suoi parametri non vengono modificati (o viene premiato).
Idealmente, il generatore è in grado di migliorare le sue prestazioni fino a un punto in cui il discriminatore non può discernere tra le immagini false e quelle reali. Ciò significa che il discriminatore renderà sempre probabilità del 50% per immagini reali e false, il che significa che le immagini generate dovrebbero essere indistinguibili dalle immagini genuine. Nella pratica, le GAN di solito non raggiungono questo punto. Tuttavia, il modello generativo non deve creare immagini perfettamente simili per essere ancora utile per i molti compiti per cui vengono utilizzate le GAN.

Applicazioni GAN

Le GAN hanno una serie di applicazioni diverse, la maggior parte delle quali ruotano attorno alla generazione di immagini e componenti di immagini. Le GAN vengono comunemente utilizzate in attività in cui i dati di immagine richiesti sono mancanti o limitati in qualche modo, come metodo per generare i dati richiesti. Esaminiamo alcuni dei casi d’uso comuni per le GAN.
Generazione di nuovi esempi per set di dati
Le GAN possono essere utilizzate per generare nuovi esempi per set di dati di immagini semplici. Se si dispone solo di una manciata di esempi di training e se ne necessitano altri, le GAN potrebbero essere utilizzate per generare nuovi dati di training per un classificatore di immagini, generando nuovi esempi di training in diverse orientazioni e angoli.
Generazione di volti umani unici

La donna in questa foto non esiste. L’immagine è stata generata da StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)


Blogger and programmer with specialties in Machine Learning and Deep Learning topics. Daniel hopes to help others use the power of AI for social good.