“L’arte non è ciò che vedi, ma ciò che fai vedere agli altri.”
(Edgar Degas, pittore impressionista)

Nell’ultimo mese ha destato molto interesse da parte della stampa DALL-E, un algoritmo di intelligenza artificiale (per l’esattezza di deep learning) progettato per generare immagini artistiche a partire da una frase inserita dall’utente.
In questo post cercheremo di spiegarvi il funzionamento di DALL-E e degli altri algoritmi di AI “artistici” che si possono trovare online.

 

Chi ha sviluppato DALL-E?

DALL-E, o per meglio dire DALL-E2 (l’algoritmo infatti è giunto alla sua seconda versione), è stato progettato e sviluppato da OpenAI, società americana no-profit per la ricerca sull’Intelligenza Artificiale fondata da Sam Altman ed Elon Musk nel 2015. Non è la prima volta che un modello di AI sviluppato da OpenAI sale alle luci della ribalta: anche GPT2, algoritmo per la generazione di testi creativi a partire da un tono e un argomento forniti dall’utente, è stato oggetto di forte interesse da parte del pubblico e della stampa al momento del suo rilascio.

E come fa a generare immagini?

Il meccanismo di funzionamento di questi sistemi è fondato sull’applicazione di due diverse tipologie di algoritmi intelligenti: gli encoder e le reti di tipo generativo-avversativo.
Vengono utilizzati gli encoder per ottenere una “traduzione” in formato numerico dell’input testuale fornito dall’utente, mantenendo nella traduzione tutte le informazioni esplicite (i vocaboli utilizzati) e implicite (la posizione dei vocaboli nel testo) contenute nella frase immessa dall’utente.
La codifica numerica ottenuta con l’encoder a partire dal testo inviato dall’utente viene quindi inviata a una rete di tipo generativo-avversativo, il cui compito è di interpretare il testo codificato e trasformarlo in un’immagine che rappresenti quanto richiesto dall’utente.

Figura 1: Schema di funzionamento (ad alto livello) di DALL-E

 

Un po’ di informazioni in più su encoder e reti generative-avversative

Nel paragrafo precedente abbiamo introdotto due algoritmi di intelligenza artificiale che sono degli elementi cardine per il funzionamento di DALL-E: gli encoder testuali e le reti generative-avversative. Capiamo ora un po’ meglio come funzionino tali algoritmi di AI.

Con il termine “encoder testuale” (dall’inglese “Text Encoder”) si identifica una tipologia di rete neurale artificiale pensata per elaborare e mappare in maniera efficiente i vocaboli di un testo in relazione a una loro codifica numerica in modo da mantenerne il significato. Tipicamente vocaboli con un significato simile ma distinto saranno mappati con numeri diversi ma vicini tra loro, mentre una coppia di vocaboli con significati completamente diversi verranno mappati in numeri molto distanti; per esempio, i vocaboli “mappa” e “cartina” verranno codificati con numeri vicini (es. 12813 e 12799), mentre la parola “setola” sarà codificata con un numero molto distante (es. 640). La codifica che viene associata alle parole di una frase tiene inoltre conto della posizione dei vocaboli all’interno di una frase, riflettendo non solo la loro vicinanza semantica, ma anche la loro vicinanza “spaziale”.
Tale caratteristica permette agli encoder di mantenere prevalentemente intatte le caratteristiche semantiche dei vocaboli che codifica, nonché le relazioni tra vocaboli tra loro sinonimi o contrari.

Con il termine “reti generative-avversative” (dall’inglese “Generative Adversarial Neural Networks”, abbreviato in GAN) si identifica un insieme di algoritmi di deep learning pensati per generare delle immagini sintetiche simili ad altre immagini (“reali”) fornite in input da un utente. Una rete di tipo GAN è formata da due elementi:

  1. Il Generatore, che ha come compito generare nuove immagini a partire da quelle di input con l’obiettivo di “ingannare” il discriminatore.
  2. Il Discriminatore, che ha come compito classificare le immagini per determinare se sono delle immagini autentiche o se sono delle immagini prodotte dal generatore.

Una rete di tipo GAN viene addestrata fornendole delle immagini autentiche a partire dalle quali si vuole ottenere delle nuove immagini “sintetiche”. Il generatore prenderà tali immagini come esempio per produrre le immagini richieste, mentre il discriminatore le analizzerà per identificare le immagini “fasulle”. Nel corso dell’addestramento il generatore diventerà sempre più bravo nel produrre nuove immagini sintetiche, arrivando ad ingannare il discriminatore sempre più spesso, fino al soddisfacimento di una determinata metrica posta dall’utente per misurare la bontà del generatore. A questo punto la GAN potrà essere utilizzata per produrre nuove immagini realistiche le cui caratteristiche rispecchino quelle delle immagini fornite in input a questa tipologia di rete.

 

Ma qual è la particolarità di DALL-E?

DALL-E utilizza una particolare tipologia di GAN chiamata VQGAN (“Vector Quantised Generative Adversarial Network”), pensata per accettare come input un testo che descriva la tipologia di immagine che si vuole produrre e addestrata su un elevatissimo numero di immagini di esempio dalle caratteristiche più disparate. È questo che permette a DALL-E di generare immagini così calzanti con la descrizione testuale fornita in input dall’utente con un buon grado di realismo.

Online, infatti, si possono trovare facilmente dozzine di siti per la generazione di arte digitale tramite AI (basta digitare “AI art” su un qualsiasi motore di ricerca); tutti questi siti utilizzano algoritmi di deep learning “artistici” la cui architettura è del tutto similare a quella di DALL-E. La maggiore differenza che distingue DALL-E dagli altri modelli artistici è appunto l’estensione dei dati sui quali l’algoritmo è stato addestrato; molto spesso, infatti, gli altri modelli che si trovano online offrono la possibilità di scegliere tra un numero limitato (solitamente inferiore alla decina) di “stili artistici” predefiniti da applicare all’immagine che si vuole generare. In DALL-E tale limitazione è assente: basta specificare nella descrizione testuale dell’immagine che si vuole generare lo stile artistico o di uno specifico artista con cui si desidera che l’immagine venga prodotta.

Figura 2: Immagine ottenuta con DALL-E2 con l’input “Orsacchiotti che fanno la spesa in stile ukiyo-e” (fonte: OpenAI)

Altri approfondimenti: