Come funziona la generazione artificiale di immagini?
Nella newsletter di questa settimana scopriremo l'intuizione dietro gli algoritmi alla base della Computer Vision e alla generazione di immagini
Nella newsletter di questa settimana affronteremo un argomento diverso dal solito.Nei numeri precedenti abbiamo trattato di Intelligenza Artificiale Generativa (GAI), di vari casi studio, delle sue applicazioni e del suo impatto sulla società. Questo numero è dedicato a scoprire come funziona (a livello intuitivo e tecnico) l’GAI nello specifico nelle applicazioni generative di immagini. Ad oggi molte persone hanno avuto la possibilità di vedere o provare GAI, sia per generazioni linguistiche, come ChatGPT, che per le immagini con DALL-E, Stable Diffusion o Mid-Journey. Eppure come funzionano questi algoritmi potenti ed avanzati, tanto potenti ed avanzati da sembrare a volte indissolubili dalla magia? Qui sotto proponiamo un’ overview molto semplificata nel mondo generativo, con un focus specifico sulle generazioni di immagini.
Oggi quando si parla di AI, si fa quasi sempre riferimento o al deep learning, ovvero una categoria di machine learning, o al non-supervised learning: una forma di machine learning che permette a un software di individuare modelli e tendenze nei dati, senza bisogno di essere guidato da esempi o istruzioni. Gli algoritmi di AI non-supervised sono generalmente utilizzati per scoprire informazioni nascoste e relazioni complesse in dataset molto grandi.
L’intuizione che sottende la generazione di immagini nell’AI generativa, può essere così riassunta: gli algoritmi utilizzano tecniche come il deep learning e le reti neurali convoluzionali, per imparare a riconoscere le caratteristiche rilevanti nelle immagini e riprodurle. Successivamente l'algoritmo può generare immagini che somigliano ai dati di input, utilizzando queste caratteristiche e creare così immagini originali. Ma questo riassunto sarebbe incompleto rispetto alla vera rivoluzione rappresentata dalle nuove tecnologie arrivate sul mercato dall'anno scorso, poiché c'è molto di più rispetto a questi aspetti di generazione ed estrazione. Quindi cerchiamo di capire come funziona in modo un pò più approfondito.
Spesso si crede che AI generative come DALL-E usino generative adversarial networks, o GAN, apparse circa dieci anni fa. GAN, in linea di principio, sono due algoritmi che si fronteggiano, uno per creare l'immagine più realistica possibile, l'altro per rilevare se l'immagine è artificiale o meno. Si addestrano a vicenda fino a raggiungere un'immagine per la quale è difficile capire se sia stata creata da un AI o meno. Questo tipo di adversarial network è estremamente performativa, quando il concetto da illustrare è molto definito, circoscritto e univoco.
Tuttavia, la fase di training delle GAN è ancora abbastanza complesso e spesso impedisce la necessaria convergenza. In altre parole funzionerebbe per un paio di algoritmi che per esempio debbano creare e rilevare gatti, o un altro concetto che sia ben chiaro e documentato. Ma quando i concetti sono più numerosi e complessi (viso, paesaggi, oggetti, simboli, ecc.), non è sufficiente, nonostante le eccezionali prestazioni delle GAN nel loro lavoro.
Non è possibile addestrare GAN per tutto ciò che esiste sulla Terra e poi assemblarle per avere rappresentazioni degli oggetti desiderati perché richiederebbe troppo tempo e non permetterebbe di mescolare concetti per creare concetti originali. E’stato necessario adottare un approccio diverso per consentire AI generative come DALL-E, Mid Journey o Stable Diffusion. Queste AI generative rappresentano un nuovo modo di pensare nell'interpretare le informazioni in immagini. Si basano su ciò che viene chiamato diffusion algorithms, che eccellono nel campionamento di denoising condizionale e non supervisionato.
Per capire meglio questo concetto di denoising proviamo a spiegarlo in modo più intuitivo: immaginiamo che da un'immagine sfocata o degradata, un algoritmo possa ricostruire una risoluzione migliore, come nei film in cui la CIA magicamente rende una foto scadente molto nitida. Se possiamo percorrere il processo in questa direzione, possiamo farlo anche nella direzione opposta, insegnando agli algoritmi a degradare un'immagine. Un'immagine completamente degradata sarebbe rappresentata da un insieme di pixel di tutti i colori, ovvero una grande nuvola di punti, dove è impossibile distinguere qualsiasi immagine. Questo è ciò che potremmo chiamare un'immagine completamente rumorosa. Il processo di miglioramento dell'immagine viene chiamato denoising.
Una volta che l'algoritmo riesce a svolgere questo lavoro in entrambe le direzioni, è in grado di ricostruire qualsiasi immagine nitida e precisa da una grande nuvola di rumore. Ma sapendo che partendo da questa grande nuvola, esistono un enorme numero di possibili risultati finali, all'algoritmo deve essere data qualche indicazione su ciò che dovrebbe ricostruire. Entra in gioco quindi il testo che inseriamo, il famoso 'prompt'. Questo testo viene analizzato da un algoritmo di embedding, che assocerà la nostra richiesta ad uno o più campi semantici. Dovremmo vedere questo tipo di algoritmi come versioni avanzate degli algoritmi di elaborazione del linguaggio naturale (NLP).
Come funziona quindi un’AI generativa: partendo da un'immagine piena di pixel casuali (presumibilmente), il processo di diffusione progressivamente elimina le imperfezioni dall'immagine, seguendo le condizioni imposte dall'algoritmo di incorporazione. Piano piano, pixel per pixel, crea l'immagine che è più si avvicina al concetto imputato. In un certo senso è un po' come guardare le nuvole e vedere dei volti umani. Siamo così abituati e condizionati a vedere volti umani che finiamo per inventarli, anche se la nuvola non aveva l'intenzione di rappresentare un viso. Dal momento che la nuvola di pixel utilizzata come tela per creare l'immagine è completamente casuale, questo spiega perché ogni immagine finale sia diversa. L'AI parte da questa nuvola e la denoisa fino ad ottenere un'immagine nitida che rappresenta il concetto desiderato, ma questa interpretazione finale dipende necessariamente dai pixel di partenza.
Inoltre, l’argomento ancora più interessante più interessante di questa coppia tra diffusione AI e incorporazione AI, è che possono imparare dalla loro collaborazione, ricordando le nuvole di rumore che costituiscono la migliore base per determinati concetti o associazioni. Offrendo diversi risultati all'utente, l'AI può imparare, presumendo che l'immagine scelta dall'utente sia quella che meglio rappresenta la sua richiesta.
Le applicazioni dell'AI generativa nel campo delle immagini sono sempre più interessanti e sorprendenti. Grazie alla capacità di apprendere dai dati e di generare nuovi contenuti, l'AI sta rivoluzionando il modo in cui le immagini vengono create e utilizzate.
Uno degli sviluppi più recenti, è l'uso di modelli di intelligenza artificiale per generare immagini di persone che non esistono. Questo può avere molte applicazioni, ad esempio nell'ambito del design, della pubblicità, del cinema e dei videogiochi. Grazie all'AI, è possibile creare personaggi che non esistono in modo realistico e convincente, senza la necessità di attori o modelle e senza il rischio di violare la privacy o i diritti delle persone reali.
Un altro settore in cui l'AI sta avendo un impatto significativo è quello dell'arte. Con l'AI generativa, gli artisti possono esplorare nuove forme di espressione e creare opere d'arte che altrimenti sarebbero impossibili. Ad esempio, l'artista digitale Robbie Barrat utilizza l'AI per creare opere d'arte generative in cui l'algoritmo è il vero creatore dell'opera, mentre l'artista ne definisce solo i parametri. In questo modo, l'AI diventa un nuovo strumento per l'espressione artistica e la creatività umana.