Cos'è una GAN?

Una rete antagonistica generativa (GAN) è un'architettura di deep learning. Addestra due reti neurali a competere l'una contro l'altra per generare nuovi dati più autentici da un determinato set di dati di allenamento. Ad esempio, puoi generare nuove immagini da un database di immagini esistente o musica originale da un database di canzoni. Un GAN si chiama antagonista perché addestra due reti diverse e le mette l'una contro l'altra. Una rete genera nuovi dati prelevando un campione di dati di input e modificandolo il più possibile. L'altra rete tenta di prevedere se l'output dei dati generato appartiene al set di dati originale. In altre parole, la rete di previsione determina se i dati generati sono falsi o reali. Il sistema genera versioni più recenti e migliorate di valori di dati falsi fino a quando la rete di previsione non è più in grado di distinguere i valori falsi da quelli originali.

Quali sono alcuni casi d'uso delle reti generative antagoniste?

L'architettura GAN ha diverse applicazioni in diversi settori. Di seguito riportiamo alcuni esempi.

Generazione di immagini

Le reti generative antagoniste creano immagini realistiche tramite istruzioni basate su testo o modificando immagini esistenti. Possono aiutare a creare esperienze visive realistiche e coinvolgenti nei videogiochi e nell'intrattenimento digitale.

Una GAN può anche modificare le immagini, ad esempio convertendo un'immagine a bassa risoluzione in un'alta risoluzione o trasformare un'immagine in bianco e nero in colore. Può anche creare volti, personaggi e animali realistici per animazioni e video.

Generazione di dati di addestramento per altri modelli

Nel machine learning (ML), l'aumento dei dati aumenta artificialmente il set di addestramento creando copie modificate di un set di dati utilizzando i dati esistenti.

Puoi utilizzare modelli generativi per l'aumento dei dati per creare dati sintetici con tutti gli attributi dei dati del mondo reale. Ad esempio, può generare dati di transazioni fraudolente da utilizzare poi per addestrare un altro sistema di machine learning per il rilevamento delle frodi. Questi dati possono insegnare al sistema a distinguere con precisione tra transazioni sospette e autentiche.

Completamento delle informazioni mancanti

A volte, potresti volere che il modello generativo indovini e completi con precisione alcune informazioni mancanti in un set di dati.

Ad esempio, puoi addestrare GAN a generare immagini della superficie sotterranea (sottosuperficie) comprendendo la correlazione tra i dati di superficie e le strutture sotterranee. Studiando immagini note del sottosuolo, può crearne di nuove utilizzando mappe del terreno per applicazioni energetiche come la mappatura geotermica o la cattura e lo stoccaggio del carbonio.

Generazione di modelli 3D da dati 2D

GAN può generare modelli 3D da foto 2D o immagini scansionate. Ad esempio, nel settore sanitario, GAN combina radiografie e altre scansioni del corpo per creare immagini realistiche degli organi per la pianificazione e la simulazione chirurgica.


 

Come funziona una rete generativa contraddittoria?

Un sistema di rete generativa antagonista comprende due reti neurali profonde: la rete di generatori e la rete discriminatrice. Entrambe le reti vengono addestrate in un gioco contraddittorio, in cui una cerca di generare nuovi dati e l'altra tenta di prevedere se l'output è costituito da dati falsi o reali.

Tecnicamente, la GAN funziona come segue. Un'equazione matematica complessa costituisce la base dell'intero processo di calcolo, ma questa è una panoramica semplicistica:

  1. La rete neurale del generatore analizza il set di addestramento e identifica gli attributi dei dati
  2. La rete neurale discriminatrice analizza anche i dati di addestramento iniziale e distingue gli attributi in modo indipendente.
  3. Il generatore modifica alcuni attributi dei dati aggiungendo rumore (o modifiche casuali) a determinati attributi
  4. Il generatore passa i dati modificati al discriminatore
  5. Il discriminatore calcola la probabilità che l'output generato appartenga al set di dati originale
  6. Il discriminatore fornisce alcune indicazioni al generatore per ridurre la randomizzazione del vettore di rumore nel ciclo successivo

Il generatore tenta di massimizzare la probabilità di errore da parte del discriminatore, ma il discriminatore tenta di minimizzare la probabilità di errore. Nelle iterazioni di addestramento, sia il generatore che il discriminatore si evolvono e si confrontano continuamente fino a raggiungere uno stato di equilibrio. Nello stato di equilibrio, il discriminatore non è più in grado di riconoscere i dati sintetizzati. A questo punto, il processo di addestramento è terminato.


 

Esempio di addestramento della GAN

Contestualizziamo quanto sopra con un esempio del modello GAN nella traduzione da immagine a immagine.

Considera che l'immagine di input è un volto umano che la GAN tenta di modificare. Ad esempio, gli attributi possono essere la forma degli occhi o delle orecchie. Supponiamo che il generatore modifichi le immagini reali aggiungendo occhiali da sole. Il discriminatore riceve una serie di immagini, alcune di persone reali con occhiali da sole e altre immagini generate che sono state modificate per includere occhiali da sole.

Se il discriminatore è in grado di distinguere tra falso e reale, il generatore aggiorna i suoi parametri per generare immagini false ancora migliori. Se il generatore produce immagini che ingannano il discriminatore, il discriminatore ne aggiorna i parametri. La concorrenza migliora entrambe le reti fino al raggiungimento dell'equilibrio.

Quali sono i tipi di reti generative contraddittorie?

Esistono diversi tipi di modelli GAN a seconda delle formule matematiche utilizzate e dei diversi modi in cui il generatore e il discriminatore interagiscono tra loro.

Di seguito forniamo alcuni modelli di uso comune, ma l'elenco non è completo. Esistono numerosi altri tipi di GAN, come StyleGAN, CycleGAN e Discogan, che risolvono diversi tipi di problemi.

Vanilla GAN

Questo è il modello GAN di base che genera variazioni di dati con un feedback minimo o nullo dalla rete discriminante. Un vanilla GAN standard richiede in genere miglioramenti per la maggior parte dei casi d'uso reali.

GAN condizionale

Una GAN condizionale (cGAN) introduce il concetto di condizionalità, che consente la generazione mirata di dati. Il generatore e il discriminatore ricevono informazioni aggiuntive, in genere come etichette di classe o altre forme di dati di condizionamento.

Ad esempio, se si generano immagini, la condizione potrebbe essere un'etichetta che descrive il contenuto dell'immagine. Il condizionamento consente al generatore di produrre dati che soddisfano condizioni specifiche.

Deep convolutional GAN

Riconoscendo la potenza delle reti neurali convoluzionali (CNN) nell'elaborazione delle immagini, una deep convolutional GAN (DCGAN) integra le architetture CNN nei GAN.

Con DCGAN, il generatore utilizza le convoluzioni trasposte per una distribuzione di dati di alto livello e il discriminatore utilizza anche livelli convoluzionali per classificare i dati. La DCGAN introduce anche linee guida architettoniche per rendere l'addestramento più stabile.

GAN a super risoluzione

Le GANS a super risoluzione (SRGAN) si concentrano sull'upscaling di immagini a bassa risoluzione ad alta risoluzione. L'obiettivo è quello di migliorare le immagini a una risoluzione più elevata mantenendo la qualità e i dettagli dell'immagine.

Le GAN della piramide laplaciana (LapGAN) affrontano la sfida della generazione di immagini ad alta risoluzione suddividendo il problema in fasi. Usano un approccio gerarchico, con più generatori e discriminatori che lavorano a diverse scale o risoluzioni dell'immagine. Il processo inizia con la generazione di un'immagine a bassa risoluzione che migliora la qualità rispetto agli stadi GAN progressivi.

In che modo AWS può supportare i tuoi requisiti di rete generativi contraddittori?

Amazon Web Services (AWS) offre molti servizi per supportare i requisiti della GAN.

Amazon SageMaker è un servizio completamente gestito che può essere utilizzato per preparare dati e creare, addestrare e implementare modelli di machine learning. Questi modelli possono essere utilizzati in molti scenari e SageMaker è dotato di infrastruttura, strumenti e flussi di lavoro completamente gestiti. Dispone di un'ampia gamma di funzionalità per accelerare lo sviluppo e l'addestramento della GAN per qualsiasi applicazione.

Amazon Bedrock è un servizio completamente gestito. Puoi usarlo per accedere a modelli di fondazione (FM) o reti neurali profonde addestrate, di Amazon e delle principali startup di intelligenza artificiale (IA). Questi FM sono disponibili tramite API, quindi puoi scegliere tra varie opzioni per trovare il modello migliore per le tue esigenze. È possibile utilizzare questi modelli nelle proprie applicazioni GAN. Con Amazon Bedrock, puoi sviluppare e distribuire più rapidamente applicazioni IA generative scalabili, affidabili e sicure. E non è necessario gestire l'infrastruttura.

AWS DeepComposer ti offre un modo creativo per iniziare a usare il machine learning. Usa letteralmente le mani con una tastiera musicale e le più recenti tecniche di machine learning progettate per ampliare le tue competenze di ML. Indipendentemente dal loro background nel machine learning o nella musica, i tuoi sviluppatori possono iniziare a usare le GAN. AWS DeepComposer ti consente di addestrare e ottimizzare i modelli GAN per creare musica originale.

Inizia a usare le reti generative antagoniste su AWS creando un account oggi stesso.

Fasi successive su AWS

Registrati per creare un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia a lavorare nella console

Inizia subito a creare nella Console di gestione AWS.

Accedi