OpenAI ha recentemente rilasciato DALL-E 2 , una versione più avanzata di DALL-E, un’ingegnosa IA multimodale in grado di generare immagini basate esclusivamente su descrizioni testuali. DALL-E 2 lo fa impiegando tecniche avanzate di apprendimento profondo che migliorano la qualità e la risoluzione delle immagini generate e fornisce ulteriori funzionalità come la modifica di un’immagine esistente o la creazione di nuove versioni di essa.
Molti appassionati e ricercatori di intelligenza artificiale hanno twittato su quanto sia straordinario DALL-E 2 nel generare arte e immagini da una parola sottile, ma in questo articolo vorrei esplorare un’applicazione diversa per questo potente modello da testo a immagine: la generazione di set di dati per risolvere le più grandi sfide della visione artificiale .
I difetti della visione artificiale
Le applicazioni di intelligenza artificiale per la visione artificiale possono variare dal rilevamento di tumori benigni nelle scansioni TC all’abilitazione di auto a guida autonoma. Eppure ciò che è comune a tutti è la necessità di dati abbondanti. Uno dei più importanti predittori delle prestazioni di un algoritmo di deep learning è la dimensione del set di dati sottostante su cui è stato addestrato. Ad esempio, il set di dati JFT , che è un set di dati interno di Google utilizzato per il training dei modelli di classificazione delle immagini, è composto da 300 milioni di immagini e più di 375 milioni di etichette.
Considera come funziona un modello di classificazione delle immagini: una rete neurale trasforma i colori dei pixel in un insieme di numeri che ne rappresentano le caratteristiche, noto anche come “incorporamento” di un input. Tali caratteristiche vengono quindi mappate sul livello di output, che contiene un punteggio di probabilità per ciascuna classe di immagini che il modello dovrebbe rilevare. Durante l’allenamento, la rete neurale cerca di apprendere le migliori rappresentazioni delle caratteristiche che discriminano tra le classi, ad esempio una caratteristica dell’orecchio a punta per un Dobermann rispetto a un barboncino.
Idealmente, il modello di apprendimento automatico imparerebbe a generalizzare in diverse condizioni di illuminazione, angoli e ambienti di sfondo. Tuttavia, il più delle volte, i modelli di deep learning apprendono le rappresentazioni sbagliate. Ad esempio, una rete neurale potrebbe dedurre che i pixel blu sono una caratteristica della classe “frisbee” perché tutte le immagini di un frisbee che ha visto durante l’allenamento erano sulla spiaggia.
Un modo promettente per risolvere tali carenze è aumentare le dimensioni del set di addestramento, ad esempio aggiungendo più immagini di frisbee con sfondi diversi. Eppure questo esercizio può rivelarsi un’impresa lunga e costosa.
In primo luogo, dovresti raccogliere tutti i campioni richiesti, ad esempio effettuando ricerche online o acquisendo nuove immagini. Quindi, dovresti assicurarti che ogni classe abbia abbastanza etichette per evitare che il modello si adatti troppo o meno ad alcuni. Infine, dovresti etichettare ogni immagine, indicando quale immagine corrisponde a quale classe. In un mondo in cui più dati si traducono in un modello con prestazioni migliori , questi tre passaggi fungono da collo di bottiglia per ottenere prestazioni all’avanguardia.
Ma anche in questo caso, i modelli di visione artificiale sono facilmente ingannabili, soprattutto se vengono attaccati con esempi contraddittori. Indovina qual è un altro modo per mitigare gli attacchi avversari? Hai indovinato: dati più etichettati, ben curati e diversificati.
Prendiamo un esempio di un classificatore di razza canina e di una classe per la quale è un po’ più difficile trovare immagini: i cani dalmata. Possiamo usare DALL-E per risolvere il nostro problema di mancanza di dati?
Prendi in considerazione l’applicazione delle seguenti tecniche, tutte basate su DALL-E 2:
Uso di vaniglia. Inserisci il nome della classe come parte di un prompt testuale in DALL-E e aggiungi le immagini generate alle etichette di quella classe. Ad esempio, “Un cane dalmata nel parco che insegue un uccello”.
Ambienti e stili diversi. Per migliorare la capacità del modello di generalizzare, utilizzare i prompt con ambienti diversi mantenendo la stessa classe. Ad esempio, “Un cane dalmata sulla spiaggia che insegue un uccello”. Lo stesso vale per lo stile dell’immagine generata, ad esempio “Un cane dalmata nel parco che insegue un uccello nello stile di un cartone animato”.
Campioni contraddittori. Usa il nome della classe per creare un set di dati di esempi contraddittori. Ad esempio, “Un’auto dalmata”.
Variazioni. Una delle nuove funzionalità di DALL-E è la capacità di generare più variazioni di un’immagine di input. Può anche prendere una seconda immagine e fondere le due unendo gli aspetti più importanti di ciascuna. Si può quindi scrivere uno script che alimenta tutte le immagini esistenti del set di dati per generare dozzine di variazioni per classe.
Io dipingo. DALL-E 2 può anche apportare modifiche realistiche alle immagini esistenti, aggiungendo e rimuovendo elementi tenendo conto di ombre, riflessi e trame. Questa può essere una potente tecnica di data augmentation per addestrare ulteriormente e migliorare il modello sottostante.
Fatta eccezione per la generazione di più dati di formazione, l’enorme vantaggio di tutte le tecniche di cui sopra è che le immagini appena generate sono già etichettate, eliminando la necessità di una forza lavoro umana per l’etichettatura.
Sebbene le tecniche di generazione di immagini come le reti generative adversarial networks (GAN) siano in circolazione da un po’ di tempo, DALL-E 2 si differenzia nelle sue generazioni ad alta risoluzione 1024 × 1024, nella sua natura multimodale di trasformare il testo in immagini e nella sua forte coerenza semantica, cioè comprendere la relazione tra diversi oggetti in una data immagine.
Automatizzare la creazione di set di dati utilizzando GPT-3 + DALL-E
L’input di DALL-E è un prompt testuale dell’immagine che desideriamo generare. Possiamo sfruttare GPT-3, un modello di generazione di testo, per generare dozzine di prompt testuali per classe che verranno quindi inseriti in DALL-E, che a sua volta creerà dozzine di immagini che verranno archiviate per classe.
Ad esempio, potremmo generare prompt che includono ambienti diversi per i quali vorremmo che DALL-E creasse immagini di cani.
Didascalia: un prompt generato da GPT-3 da utilizzare come input per DALL-E . Fonte: autore
Usando questo esempio e una frase simile a un modello come “A [class_name] [gpt3_generated_actions]”, potremmo alimentare DALL-E con il seguente prompt: “Un dalmata sdraiato sul pavimento”. Questo può essere ulteriormente ottimizzato perfezionando GPT-3 per produrre sottotitoli del set di dati come quello nell’esempio OpenAI Playground sopra.
Per aumentare ulteriormente la fiducia nei campioni appena aggiunti, è possibile impostare una soglia di certezza per selezionare solo le generazioni che hanno superato una classificazione specifica, poiché ogni immagine generata viene classificata da un modello immagine-testo chiamato CLIP .
Limitazioni e mitigazioni
Se non utilizzato con attenzione, DALL-E può generare immagini imprecise o di portata ristretta, escludendo specifici gruppi etnici o ignorando tratti che potrebbero portare a pregiudizi. Un semplice esempio potrebbe essere un rilevatore facciale che è stato addestrato solo su immagini di uomini. Inoltre, l’utilizzo di immagini generate da DALL-E potrebbe comportare un rischio significativo in domini specifici come la patologia o le auto a guida autonoma, dove il costo di un falso negativo è estremo.
DALL-E 2 ha ancora alcune limitazioni, tra cui la composizionalità. Affidarsi a prompt che, ad esempio, presuppongono il corretto posizionamento degli oggetti potrebbe essere rischioso.