Generative Adversarial Networks: il lato creativo dell’apprendimento automatico

Lo sviluppo rapido dell’intelligenza artificiale (abbreviato IA) ha reso le macchine sempre più intelligenti. Grazie alla loro capacità di svilupparsi in modo autonomo sulla base dei dati forniti, le macchine stanno creando nuovi modi per aiutarci a svolgere compiti sempre più complessi.

Una soluzione molto promettente e che sta già producendo risultati impressionanti in vari settori è rappresentata dalle Generative Adversarial Networks (GAN), in italiano reti generative avversarie.Le GAN sono utilizzate principalmente per la generazione di immagini, ma consentono anche la creazione automatica di testi. Cosa sono esattamente le GAN?Come funzionano? E come possiamo usarle in modo sensato?

Cos’è una GAN?

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.

Come funzionano le GAN?

Come ogni intelligenza artificiale, le GAN devono essere addestrate per ottimizzare il lavoro. Questa forma di apprendimento automatico si realizza in sei passaggi:

  1. definizione del problema: il primo passaggio è definire un problema che il sistema deve risolvere. A questo scopo gli sviluppatori devono raccogliere dati reali che il sistema può utilizzare.
  2. Architettura: problematiche diverse richiedono anche diverse Generative Adversarial Networks. Pertanto la GAN deve avere un’architettura adeguata in base all’applicazione.
  3. Primo addestramento per discriminatori: in questa fase inizia l’addestramento vero e proprio. Il generatore si arresta, mentre il discriminatore analizza solo i dati reali e impara a comprenderli.
  4. Primo addestramento del generatore: ora è il discriminatore a fermarsi, mentre il generatore inizia a creare dati falsificati.
  5. Secondo addestramento per discriminatori: il discriminatore viene ora alimentato con i nuovi dati falsificati del generatore e deve decidere quali dati considera reali e quali falsi.
  6. Secondo addestramento del generatore: il generatore viene ulteriormente migliorato con i risultati del secondo addestramento del discriminatore. Impara i punti deboli del discriminatore e cerca di sfruttarli e di generare set di dati falsificati ancora più realistici.

Grazie alla competizione, entrambe le reti sono in costante evoluzione, si migliorano e guadagnano efficienza. Il generatore impara a sviluppare set di dati sempre più realistici. Il discriminatore impara a identificare come falsificati anche set di dati reali.

Quali sfide deve superare il sistema?

Come per quasi tutte le tecnologie, gli sviluppatori di GAN devono affrontare una serie di sfide da risolvere affinché l’addestramento si svolga senza intoppi.

Una competizione equilibrata

Come spiegato in precedenza, le GAN si basano sulla competizione tra due reti neurali. Questa ha successo solo se entrambe le reti hanno uguale forza ed efficacia. Se una delle due reti è superiore all’altra, il sistema collassa. Se, ad esempio, il generatore è superiore, il discriminatore classificherà tutti i dati falsificati come autentici. Se il discriminatore è superiore, classificherà tutti i dati del generatore come falsificati. In questo caso, nessuna delle due reti può continuare a svilupparsi.

Comprendere correttamente gli oggetti

Le Generative Adversarial Networks hanno spesso problemi a riconoscere e comprendere correttamente gli oggetti. Questo vale soprattutto per le immagini. Esempio: un’immagine reale mostra due gatti con due occhi ciascuno. Se il generatore non comprende la struttura completa e la posizione dell’immagine, potrebbe generare un gatto con quattro occhi. Le GAN possono lasciarsi ingannare dalle prospettive e non capire che due immagini rappresentano lo stesso motivo ma da direzioni diverse.

Dove si utilizzano le GAN?

Le Generative Adversarial Networks hanno ottenuto un’attenzione particolare, anche al di fuori dell’informatica, dopo che il collettivo di artisti Obvious ha utilizzato la tecnologia per creare un’opera d'arte. Questo dipinto è stato venduto all’asta per 432.500 dollari. Una GAN può dare risultati sorprendenti anche al di fuori dell’ambito artistico.

Previsioni video

Le GAN sono in grado di prevedere in base a dei fotogrammi video come proseguire e prolungare in autonomia il video al termine della registrazione. Sono inclusi tutti gli elementi video, come ad esempio movimenti e azioni, ma anche cambiamenti di sfondo come pioggia o nebbia.

Generazione di immagini basate sul testo

A partire da una descrizione, le GAN possono generare immagini. Ad esempio, possono sviluppare uno storyboard in autonomia sulla base di un copione.

Generazione di oggetti complessi

Anche semplici schizzi possono essere trasformati automaticamente in oggetti tridimensionali complessi in un lasso di tempo molto breve. Ad esempio, utilizzando le GAN, un albero disegnato in modo semplice può essere trasformato in un oggetto molto complesso con piccoli dettagli come le foglie che si muovono al vento e la chioma vacillante.

Miglioramento dei dettagli dell’immagine

Le GAN possono aggiungere nuovi dettagli a un’immagine con una risoluzione scadente o pixel mancanti. Le Generative Adversarial Networks utilizzano le informazioni di immagini simili per aggiungere informazioni a immagini scarne.

Sviluppo di nuovi prodotti

Alcune aziende stanno sperimentando le GAN nella fase di sviluppo del prodotto e, con l’aiuto dei loro sistemi, stanno creando design e gamme di prodotti completamente nuove.

Generazione del testo del prodotto

Le GAN possono essere utilizzate per la scrittura di testi e vengono già usate per generare descrizioni di prodotti che svolgono un ruolo sempre più importante nelle decisioni d’acquisto dei clienti. Le GAN non solo consentono di creare tali descrizioni in modo rapido, ma possono anche analizzare le descrizioni di prodotti che hanno avuto più successo in passato e, su questa base, scrivere testi analoghi.

Le Generative Adversarial Networks sono già utilizzate con successo in tutti questi settori. Aziende e sviluppatori lavorano costantemente a nuove applicazioni ed è prevedibile che nel medio termine queste reti avranno una grande influenza su molti settori della nostra vita e del nostro lavoro.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top