intelligenza artificiale

GAN (Generative Adversarial Networks): cosa sono, applicazioni e vantaggi

Come funzionano le Generative Adversarial Networks e il loro processo di addestramento? Una panoramica sugli utilizzi pratici, gli svantaggi e le possibili applicazioni

Pubblicato il 22 Mar 2023

Nanni Bassetti

Consulente informatico libero professionista - Digital Forensics Consultant

reti neurali - machine learning - GPT-3

Le GAN (Generative Adversarial Networks) sono un’architettura per addestrare un modello generativo di AI, che ha rivoluzionato il modo in cui si creano dei contenuti artificiali; questo tipo di rete è stato introdotto per la prima volta nel 2014 da Ian Goodfellow[1], all’epoca ricercatore presso l’Università di Montreal.

Come sono costituite le GAN

Le GAN sono costituite da due reti neurali: un generatore e un discriminatore.

La prima ha il compito di creare nuovi dati che possano ingannare il discriminatore. la seconda ha, invece, la mansione di distinguere tra i dati creati dal generatore e quelli reali, in sostanza è un classificatore, ossia una rete da addestrare a distinguere tra i dati reali e quelli “fake” generati dal generatore, estraendone le caratteristiche.

What Are GANs? | Generative Adversarial Networks Explained | Deep Learning With Python | Edureka

What Are GANs? | Generative Adversarial Networks Explained | Deep Learning With Python | Edureka

Guarda questo video su YouTube

In sostanza il generatore parte da un dato completamente inventato anche detto “latent vector” e lo passa al discriminatore che si addestra a riconoscere un determinato tipo di dato, per esempio, foto di gatti, volti umani, testi, suoni, video, da dei dataset di input reali e da quelli finti generati dal generatore.

Il processo d’addestramento

Durante il processo d’addestramento, le due reti si sfidano a vicenda: il generatore cerca di migliorare la qualità dei dati che produce in modo da ingannare il discriminatore, mentre quest’ultimo cerca di migliorare la sua capacità di distinguere tra i dati reali e quelli falsi.

Questa competizione tra le due reti porta alla creazione di dati artificiali che possono essere abbastanza realistici, ma inesistenti nella realtà, quindi completamente partoriti dalla rete generativa.

Ripeto l’esempio che ho già descritto in un mio articolo:

  • Un’immagine casuale viene generata da una rete che chiameremo “Generatore”.
  • Il Generatore ha il compito di ingannare una rete avversaria chiamata Discriminatore e fargli credere che il dato da lui generato possa essere un qualcosa che il Discriminatore ha già “imparato”, ad esempio un volto umano.
  • Il Discriminatore valuta l’input fornitogli dal Generatore e gli fornisce un punteggio, chiamiamolo di “plausibilità”, oppure un punteggio di “perdita”.
  • Il Generatore allora migliorerà il proprio input da passare al discriminatore, magari migliorando l’immagine.
  • Quando il Discriminatore sarà ingannato a dovere, quindi giudicherà quell’input abbastanza bene da poter dire che è un volto, allora l’immagine sarà generata e fornita in output.

ChatGPT è matematica non magia: ecco come funziona

Utilizzi pratici e svantaggi delle GAN

Le GAN hanno molti utilizzi pratici, tra cui:

  • Creazione di contenuti per videogiochi, film e animazioni
  • Generazione di dati per la visione artificiale e l’apprendimento automatico
  • Creazione di immagini e video a partire da descrizioni testuali (ad esempio, “un’immagine di un panda che vive sulla luna”)
  • Creazione di immagini e video di alta qualità a partire da immagini e video di bassa qualità
  • Creazione di immagini e video di oggetti o scene che non esistono nella realtà

Ci sono però anche degli svantaggi; le GAN possono essere difficili da addestrare e possono produrre dati che non sono sempre coerenti con la realtà, creando output non affidabili.

Un esempio

Ho scritto questo programmino in Python, che non sfrutta i modelli di GAN, ma, a mio vedere, fa comprendere meglio il meccanismo.

In questo programma vi è una funzione Generatore che crea delle sequenze di 6 lettere da un alfabeto di 26 lettere e le sottopone al vaglio della funzione Discriminatore che confronta le stringhe casuali del generatore con le 100 stringhe che lei reputa valide, ma se la distanza euclidea[2] tra la stringa casuale e quella presente nel “database” (il file ab.txt) del discriminatore è compresa tra 0 e 2, esclusi, allora stampa la stringa casuale, insomma è come se l’accettasse come stringa valida, così si son create delle stringhe inesistenti nella conoscenza del discriminatore, ma accettabili, spero che questo renda più chiaro il concetto delle GAN.

Immagine che contiene testo Descrizione generata automaticamente

OUTPUT:

Dall’output si nota che la stringa creata casualmente dal generatore è veramente abbastanza simile ad una presente nella base di conoscenza del discriminatore; quindi, è sufficientemente ingannevole da esser accettata secondo il criterio del discriminatore.

Questo esempio non sfrutta modelli di AI, che sono molto complessi e richiedono molta potenza di elaborazione, perché lavorano sui modelli di Deep Learning ed algoritmi di calcolo della funzione di perdita, che deve essere massimizzata da parte del discriminatore, mentre il generatore cercherà di minimizzarla.

In sintesi, il discriminatore, cerca di massimizzare la funzione di perdita, perché durante l’addestramento della GAN, l’obiettivo del discriminatore è quello di distinguere tra i dati reali e quelli fake generati dal generatore; più il discriminatore è in grado di distinguere tra i dati reali e quelli finti, maggiore sarà la funzione di perdita e quindi maggiore sarà l’errore del generatore; pertanto, il generatore cerca di minimizzare la funzione di perdita, così i suoi dati saranno probabilisticamente accettati dal discriminatore.

Esempi di applicazione delle GAN

Esempi di applicazioni delle GAN sono:

  • StyleGAN: uno dei più famosi esempi di GAN utilizzati per la generazione di immagini di alta qualità, con una risoluzione fino a 1024×1024 pixel. StyleGAN è stato utilizzato per creare immagini di volti umani, animali, paesaggi e altro ancora.
  • CycleGAN: una GAN utilizzata per la traduzione di immagini da una classe a un’altra senza la necessità di una corrispondenza diretta tra le immagini di input e di output; per esempio, CycleGAN può essere utilizzata per tradurre immagini di cavalli in immagini di zebre.
  • TextGAN: una GAN utilizzata per generare testo naturale, come ad esempio recensioni di prodotti, descrizioni di immagini e altro ancora.
  • MuseGAN: una GAN utilizzata per la generazione di musica.

Tra le GAN o modelli di AI basati su GAN più popolari possiamo pensare a MidJourney e Dall-E, Deep-Ai, Craiyon, ma ce ne sono tante online, c’è solo l’imbarazzo della scelta.

Le GAN stanno diventando sempre più popolari nel campo dell’apprendimento automatico ed è possibile che saranno utilizzate in modo sempre più creativo in futuro.

Bibliografia

  1. https://github.com/goodfeli/adversarial
  2. DISTANZA EUCLIDEA: si calcola facendo la radice quadrata della somma dei quadrati delle differenze tra i codici ASCII dei caratteri corrispondenti nelle due stringhe.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

EU Stories - La coesione innova l'Italia

Tutti
Analisi
Video
Iniziative
Social
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati

Articolo 1 di 3