Ottimizzazione avanzata di CLIP con immagini e didascalie di telerilevamento (satellitari)

Advanced optimization of CLIP with remote sensing images and captions.

Ottimizzazione fine-tuning di CLIP con immagini e didascalie di telerilevamento (satellitare)

A luglio di quest’anno, Hugging Face ha organizzato una settimana della comunità Flax/JAX e ha invitato la comunità a presentare progetti per addestrare modelli di trasformatori Hugging Face nelle aree dell’Elaborazione del Linguaggio Naturale (NLP) e della Visione Artificiale (CV).

I partecipanti hanno utilizzato le Unità di Elaborazione Tensoriale (TPU) con Flax e JAX. JAX è una libreria di algebra lineare (come numpy) che può effettuare differenziazione automatica (Autograd) e compilare in XLA, mentre Flax è una libreria di reti neurali ed ecosistema per JAX. Il tempo di elaborazione TPU è stato fornito gratuitamente da Google Cloud, che ha sponsorizzato l’evento.

Nelle due settimane successive, i team hanno partecipato a lezioni di Hugging Face e Google, addestrato uno o più modelli utilizzando JAX/Flax, li hanno condivisi con la comunità e hanno fornito una demo di Hugging Face Spaces per mostrare le capacità del loro modello. Circa 100 team hanno partecipato all’evento, che ha portato a 170 modelli e 36 demo.

Il nostro team, come probabilmente molti altri, è distribuito su 12 fusi orari diversi. Il nostro legame comune è che facciamo tutti parte del canale Slack di TWIML, dove ci siamo riuniti sulla base di un interesse comune per l’Intelligenza Artificiale (AI) e l’Apprendimento Automatico (ML).

Abbiamo ottimizzato la rete CLIP di OpenAI con immagini satellitari e didascalie del dataset RSICD. La rete CLIP apprende concetti visivi addestrandosi con coppie di immagini e didascalie in modo auto-supervisionato, utilizzando testo associato a immagini trovate su Internet. Durante l’inferenza, il modello può prevedere l’immagine più rilevante data una descrizione testuale o la descrizione testuale più rilevante data un’immagine. CLIP è sufficientemente potente da essere utilizzato in modo zero-shot su immagini quotidiane. Tuttavia, abbiamo ritenuto che le immagini satellitari fossero sufficientemente diverse dalle immagini quotidiane da rendere utile ottimizzare CLIP con esse. La nostra intuizione si è rivelata corretta, come mostrano i risultati dell’evaluazione (descritti di seguito). In questo articolo, descriviamo i dettagli del nostro processo di addestramento e valutazione e i nostri piani per il futuro lavoro su questo progetto.

Il nostro obiettivo con questo progetto era fornire un servizio utile e dimostrare come utilizzare CLIP per casi d’uso pratici. Il nostro modello può essere utilizzato dalle applicazioni per cercare in grandi collezioni di immagini satellitari utilizzando query testuali. Tali query potrebbero descrivere l’immagine nella sua totalità (ad esempio, spiaggia, montagna, aeroporto, campo da baseball, ecc.) o cercare o menzionare specifiche caratteristiche geografiche o artificiali all’interno di queste immagini. CLIP può essere ottimizzato in modo simile anche per altri domini, come dimostrato dal team medclip-demo per le immagini mediche.

La capacità di cercare in grandi collezioni di immagini utilizzando query testuali è una caratteristica estremamente potente e può essere utilizzata tanto per il bene sociale quanto per scopi maligni. Le possibili applicazioni includono la difesa nazionale e le attività antiterrorismo, la capacità di individuare e affrontare gli effetti dei cambiamenti climatici prima che diventino ingestibili, ecc. Purtroppo, questo potere può anche essere abusato, ad esempio per la sorveglianza militare e poliziesca da parte di stati nazionali autoritari, sollevando quindi anche alcune questioni etiche.

Puoi leggere ulteriori informazioni sul progetto sulla nostra pagina del progetto, scaricare il nostro modello addestrato per usarlo nell’inferenza sui tuoi dati o vederlo in azione sulla nostra demo.

Addestramento

Dataset

Ottimizziamo principalmente il modello CLIP con il dataset RSICD. Questo dataset è composto da circa 10.000 immagini raccolte da Google Earth, Baidu Map, MapABC e Tianditu. È fornito gratuitamente alla comunità di ricerca per avanzare nella creazione di didascalie per il telerilevamento tramite l’esplorazione di modelli e dati per la generazione di didascalie per immagini di telerilevamento (Lu et al, 2017). Le immagini sono immagini RGB (224, 224) a varie risoluzioni e ogni immagine ha fino a 5 didascalie associate.

Alcuni esempi di immagini del dataset RSICD

Inoltre, abbiamo utilizzato il dataset UCM e il dataset Sydney per l’addestramento. Il dataset UCM si basa sul dataset di utilizzo del suolo UC Merced. È composto da 2100 immagini appartenenti a 21 classi (100 immagini per classe) e ogni immagine ha 5 didascalie. Il dataset Sydney contiene immagini di Sydney, Australia, da Google Earth. Contiene 613 immagini appartenenti a 7 classi. Le immagini sono RGB (500, 500) e forniscono 5 didascalie per ogni immagine. Abbiamo utilizzato questi dataset aggiuntivi perché non eravamo sicuri che il dataset RSICD fosse sufficientemente grande per ottimizzare CLIP.

Modello

Il nostro modello è semplicemente la versione addestrata del modello CLIP originale mostrato di seguito. Gli input per il modello sono un batch di didascalie e un batch di immagini passate rispettivamente attraverso l’encoder di testo CLIP e l’encoder di immagini. Il processo di addestramento utilizza l’apprendimento contrastivo per apprendere una rappresentazione di embedding congiunta di immagini e didascalie. In questo spazio di embedding, le immagini e le rispettive didascalie vengono avvicinate, così come le immagini simili e le didascalie simili. Al contrario, le immagini e le didascalie di immagini diverse o immagini e didascalie dissimili sono probabilmente spinte più lontano l’una dall’altra.

Addestramento e inferenza di CLIP (Crediti immagine: CLIP: Connecting Text and Images (https://openai.comclip/))

Aumento dei dati

Al fine di regolarizzare il nostro dataset e prevenire l’overfitting dovuto alla dimensione del dataset, abbiamo utilizzato sia l’aumento delle immagini che l’aumento del testo.

L’aumento delle immagini è stato effettuato in linea utilizzando le trasformazioni integrate dal pacchetto Torchvision di Pytorch. Le trasformazioni utilizzate sono state Ritaglio casuale, Ridimensionamento e ritaglio casuale, Jitter di colore e Ribaltamento casuale orizzontale e verticale.

Abbiamo aumentato il testo con la retrotraduzione per generare didascalie per immagini con meno di 5 didascalie uniche per immagine. La famiglia di modelli Marian MT di Hugging Face è stata utilizzata per tradurre le didascalie esistenti in francese, spagnolo, italiano e portoghese e riportarle in inglese per completare le didascalie per queste immagini.

Come mostrato in questi grafici di perdita di seguito, l’aumento delle immagini ha ridotto significativamente l’overfitting, mentre l’aumento del testo e delle immagini ha ridotto ancora di più l’overfitting.

Grafici di perdita di valutazione e addestramento che confrontano (in alto) nessun aumento vs aumento delle immagini e (in basso) aumento delle immagini vs aumento del testo+immagini

Valutazione

Metriche

Un subset del set di test RSICD è stato utilizzato per la valutazione. Abbiamo trovato 30 categorie di immagini in questo sottoinsieme. La valutazione è stata effettuata confrontando ogni immagine con un insieme di 30 frasi didascaliche nella forma "Una fotografia aerea di {categoria}". Il modello ha prodotto una lista ordinata delle 30 didascalie, dalla più rilevante alla meno rilevante. Le categorie corrispondenti alle didascalie con i primi k punteggi (per k=1, 3, 5 e 10) sono state confrontate con la categoria fornita tramite il nome del file dell’immagine. I punteggi sono mediati sull’intero set di immagini utilizzato per la valutazione e riportati per vari valori di k, come mostrato di seguito.

Il modello baseline rappresenta il modello CLIP pre-addestrato openai/clip-vit-base-patch32. Questo modello è stato addestrato con didascalie e immagini del dataset RSICD, il che ha comportato un significativo miglioramento delle prestazioni, come mostrato di seguito.

Il nostro miglior modello è stato addestrato con aumento delle immagini e del testo, con dimensione del batch 1024 (128 su ciascuno dei 8 core TPU) e l’ottimizzatore Adam con tasso di apprendimento 5e-6. Abbiamo addestrato il nostro secondo modello di base con gli stessi iperparametri, ad eccezione dell’uso dell’ottimizzatore Adafactor con tasso di apprendimento 1e-4. È possibile scaricare uno qualsiasi dei modelli dai loro repository di modelli collegati nella tabella sottostante.

1 – nostro miglior modello, 2 – nostro secondo miglior modello

Demo

È possibile accedere alla Demo di CLIP-RSICD qui. Utilizza il nostro modello CLIP addestrato per fornire le seguenti funzionalità:

  • Ricerca testo-immagine
  • Ricerca immagine-immagine
  • Trova attributo testuale nell’immagine

Le prime due funzionalità utilizzano il set di test RSICD come corpus di immagini. Vengono codificate utilizzando il nostro miglior modello CLIP addestrato e memorizzate in un indice NMSLib che consente il recupero basato su vicini approssimati. Per la ricerca testo-immagine e immagine-immagine rispettivamente, il testo o l’immagine di interrogazione vengono codificati con il nostro modello e confrontati con i vettori di immagini nel corpus. Per la terza funzionalità, dividiamo l’immagine in patch e le codifichiamo, codifichiamo l’attributo testuale interrogato, confrontiamo il vettore di testo con ciascun vettore di patch dell’immagine e restituiamo la probabilità di trovare l’attributo in ogni patch.

Lavori futuri

Siamo grati per aver avuto l’opportunità di perfezionare ulteriormente il nostro modello. Alcune idee che abbiamo per i lavori futuri sono le seguenti:

  1. Costruire un modello sequenziale utilizzando un encoder CLIP e un decoder GPT-3 e addestrarlo per la generazione di didascalie per immagini.
  2. Raffinare il modello su ulteriori coppie di didascalie per immagini provenienti da altri set di dati e verificare se si può migliorare le sue prestazioni.
  3. Indagare come il raffinamento influisce sulle prestazioni del modello su coppie di didascalie per immagini non appartenenti a RSICD.
  4. Indagare le capacità del modello raffinato di classificare al di fuori delle categorie su cui è stato raffinato.
  5. Valutare il modello utilizzando altri criteri come la classificazione delle immagini.