Lo sviluppo rapido dell’in­tel­li­gen­za ar­ti­fi­cia­le (ab­bre­via­to IA) ha reso le macchine sempre più in­tel­li­gen­ti. Grazie alla loro capacità di svi­lup­par­si 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 pro­met­ten­te e che sta già pro­du­cen­do risultati im­pres­sio­nan­ti in vari settori è rap­pre­sen­ta­ta dalle Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks (GAN), in italiano reti ge­ne­ra­ti­ve av­ver­sa­rie.Le GAN sono uti­liz­za­te prin­ci­pal­men­te per la ge­ne­ra­zio­ne di immagini, ma con­sen­to­no anche la creazione au­to­ma­ti­ca di testi. Cosa sono esat­ta­men­te le GAN?Come fun­zio­na­no? E come possiamo usarle in modo sensato?

Cos’è una GAN?

Prima di occuparci di come uti­liz­za­re le GAN per i nostri scopi, vediamo prima di tutto cosa sono. Si tratta di un sistema di ap­pren­di­men­to au­to­ma­ti­co svi­lup­pa­to nel 2014 da un team di Ian J. Goo­d­fel­low, in­for­ma­ti­co 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 im­ma­gi­na­re che siano state generate da un computer senza l’in­ter­ven­to di esseri umani. Per rag­giun­ge­re quest’obiettivo si uti­liz­za­no due reti neurali in com­pe­ti­zio­ne tra loro.

Il compito della rete ge­ne­ra­ti­va è di creare un’imi­ta­zio­ne. La rete è ali­men­ta­ta 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 ca­rat­te­ri­sti­che comuni degli originali. La nuova immagine non è quindi un duplicato di uno dei dati di partenza, ma un’opera com­ple­ta­men­te nuova, di natura simile. Nel nostro esempio rap­pre­sen­ta la foto di una donna ine­si­sten­te.

I dati di base e le in­for­ma­zio­ni generate vengono trasmesse insieme alla rete partner. Lo scopo del di­scri­mi­na­to­re è ve­ri­fi­ca­re se i dati ricevuti siano autentici o fal­si­fi­ca­ti. Un’immagine viene clas­si­fi­ca­ta come fal­si­fi­ca­ta non solo quando si discosta troppo dai dati di base, ma anche quando è troppo perfetta: se il ge­ne­ra­to­re dovesse sem­pli­ce­men­te prendere un valore medio da tutti i dati e crearne uno nuovo, la creazione meccanica sarebbe evidente. Quindi il di­scri­mi­na­to­re filtra anche i dati che non hanno un effetto naturale.

Entrambe le reti cercano di svolgere il proprio ruolo in com­pe­ti­zio­ne. Quando il di­scri­mi­na­to­re rileva il set di dati falso, re­sti­tui­sce i dati. In questo caso la rete ge­ne­ra­ti­va non è ancora ab­ba­stan­za efficace e deve quindi con­ti­nua­re ad ap­pren­de­re. Allo stesso tempo, però, anche il di­scri­mi­na­to­re ha imparato. Poiché le due reti neurali si ad­de­stra­no a vicenda, ci stiamo con­fron­tan­do con un sistema di deep learning. Il ge­ne­ra­to­re cerca di creare insiemi di dati che sembrino così reali, da essere clas­si­fi­ca­ti come tali dal di­scri­mi­na­to­re. Il di­scri­mi­na­to­re, invece, cerca di ana­liz­za­re e com­pren­de­re gli esempi reali in modo così preciso, che i dati fal­si­fi­ca­ti non abbiano alcuna pos­si­bi­li­tà di essere iden­ti­fi­ca­ti come reali.

Come fun­zio­na­no le GAN?

Come ogni in­tel­li­gen­za ar­ti­fi­cia­le, le GAN devono essere ad­de­stra­te per ot­ti­miz­za­re il lavoro. Questa forma di ap­pren­di­men­to au­to­ma­ti­co si realizza in sei passaggi:

  1. de­fi­ni­zio­ne del problema: il primo passaggio è definire un problema che il sistema deve risolvere. A questo scopo gli svi­lup­pa­to­ri devono rac­co­glie­re dati reali che il sistema può uti­liz­za­re.
  2. Ar­chi­tet­tu­ra: pro­ble­ma­ti­che diverse ri­chie­do­no anche diverse Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks. Pertanto la GAN deve avere un’ar­chi­tet­tu­ra adeguata in base all’ap­pli­ca­zio­ne.
  3. Primo ad­de­stra­men­to per di­scri­mi­na­to­ri: in questa fase inizia l’ad­de­stra­men­to vero e proprio. Il ge­ne­ra­to­re si arresta, mentre il di­scri­mi­na­to­re analizza solo i dati reali e impara a com­pren­der­li.
  4. Primo ad­de­stra­men­to del ge­ne­ra­to­re: ora è il di­scri­mi­na­to­re a fermarsi, mentre il ge­ne­ra­to­re inizia a creare dati fal­si­fi­ca­ti.
  5. Secondo ad­de­stra­men­to per di­scri­mi­na­to­ri: il di­scri­mi­na­to­re viene ora ali­men­ta­to con i nuovi dati fal­si­fi­ca­ti del ge­ne­ra­to­re e deve decidere quali dati considera reali e quali falsi.
  6. Secondo ad­de­stra­men­to del ge­ne­ra­to­re: il ge­ne­ra­to­re viene ul­te­rior­men­te mi­glio­ra­to con i risultati del secondo ad­de­stra­men­to del di­scri­mi­na­to­re. Impara i punti deboli del di­scri­mi­na­to­re e cerca di sfrut­tar­li e di generare set di dati fal­si­fi­ca­ti ancora più rea­li­sti­ci.

Grazie alla com­pe­ti­zio­ne, entrambe le reti sono in costante evo­lu­zio­ne, si mi­glio­ra­no e gua­da­gna­no ef­fi­cien­za. Il ge­ne­ra­to­re impara a svi­lup­pa­re set di dati sempre più rea­li­sti­ci. Il di­scri­mi­na­to­re impara a iden­ti­fi­ca­re come fal­si­fi­ca­ti anche set di dati reali.

Quali sfide deve superare il sistema?

Come per quasi tutte le tec­no­lo­gie, gli svi­lup­pa­to­ri di GAN devono af­fron­ta­re una serie di sfide da risolvere affinché l’ad­de­stra­men­to si svolga senza intoppi.

Una com­pe­ti­zio­ne equi­li­bra­ta

Come spiegato in pre­ce­den­za, le GAN si basano sulla com­pe­ti­zio­ne 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 ge­ne­ra­to­re è superiore, il di­scri­mi­na­to­re clas­si­fi­che­rà tutti i dati fal­si­fi­ca­ti come autentici. Se il di­scri­mi­na­to­re è superiore, clas­si­fi­che­rà tutti i dati del ge­ne­ra­to­re come fal­si­fi­ca­ti. In questo caso, nessuna delle due reti può con­ti­nua­re a svi­lup­par­si.

Com­pren­de­re cor­ret­ta­men­te gli oggetti

Le Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks hanno spesso problemi a ri­co­no­sce­re e com­pren­de­re cor­ret­ta­men­te gli oggetti. Questo vale so­prat­tut­to per le immagini. Esempio: un’immagine reale mostra due gatti con due occhi ciascuno. Se il ge­ne­ra­to­re non comprende la struttura completa e la posizione dell’immagine, potrebbe generare un gatto con quattro occhi. Le GAN possono lasciarsi ingannare dalle pro­spet­ti­ve e non capire che due immagini rap­pre­sen­ta­no lo stesso motivo ma da direzioni diverse.

Dove si uti­liz­za­no le GAN?

Le Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks hanno ottenuto un’at­ten­zio­ne par­ti­co­la­re, anche al di fuori dell’in­for­ma­ti­ca, dopo che il col­let­ti­vo di artisti Obvious ha uti­liz­za­to la tec­no­lo­gia per creare un’opera d'arte. Questo dipinto è stato venduto all’asta per 432.500 dollari. Una GAN può dare risultati sor­pren­den­ti anche al di fuori dell’ambito artistico.

Pre­vi­sio­ni video

Le GAN sono in grado di prevedere in base a dei fo­to­gram­mi video come pro­se­gui­re e pro­lun­ga­re in autonomia il video al termine della re­gi­stra­zio­ne. Sono inclusi tutti gli elementi video, come ad esempio movimenti e azioni, ma anche cam­bia­men­ti di sfondo come pioggia o nebbia.

Ge­ne­ra­zio­ne di immagini basate sul testo

A partire da una de­scri­zio­ne, le GAN possono generare immagini. Ad esempio, possono svi­lup­pa­re uno sto­ry­board in autonomia sulla base di un copione.

Ge­ne­ra­zio­ne di oggetti complessi

Anche semplici schizzi possono essere tra­sfor­ma­ti au­to­ma­ti­ca­men­te in oggetti tri­di­men­sio­na­li complessi in un lasso di tempo molto breve. Ad esempio, uti­liz­zan­do le GAN, un albero disegnato in modo semplice può essere tra­sfor­ma­to in un oggetto molto complesso con piccoli dettagli come le foglie che si muovono al vento e la chioma va­cil­lan­te.

Mi­glio­ra­men­to dei dettagli dell’immagine

Le GAN possono ag­giun­ge­re nuovi dettagli a un’immagine con una ri­so­lu­zio­ne scadente o pixel mancanti. Le Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks uti­liz­za­no le in­for­ma­zio­ni di immagini simili per ag­giun­ge­re in­for­ma­zio­ni a immagini scarne.

Sviluppo di nuovi prodotti

Alcune aziende stanno spe­ri­men­tan­do le GAN nella fase di sviluppo del prodotto e, con l’aiuto dei loro sistemi, stanno creando design e gamme di prodotti com­ple­ta­men­te nuove.

Ge­ne­ra­zio­ne del testo del prodotto

Le GAN possono essere uti­liz­za­te per la scrittura di testi e vengono già usate per generare de­scri­zio­ni di prodotti che svolgono un ruolo sempre più im­por­tan­te nelle decisioni d’acquisto dei clienti. Le GAN non solo con­sen­to­no di creare tali de­scri­zio­ni in modo rapido, ma possono anche ana­liz­za­re le de­scri­zio­ni di prodotti che hanno avuto più successo in passato e, su questa base, scrivere testi analoghi.

Le Ge­ne­ra­ti­ve Ad­ver­sa­rial Networks sono già uti­liz­za­te con successo in tutti questi settori. Aziende e svi­lup­pa­to­ri lavorano co­stan­te­men­te a nuove ap­pli­ca­zio­ni ed è pre­ve­di­bi­le che nel medio termine queste reti avranno una grande influenza su molti settori della nostra vita e del nostro lavoro.

Vai al menu prin­ci­pa­le