Appunti su CLIP Collegare Testo e Immagini

Guida pratica per collegare testo e immagini con CLIP

Radford, Alec, et al. “Apprendere modelli visivi trasferibili da supervisione di linguaggio naturale”. Conferenza internazionale sul machine learning. PMLR, 2021.

Gli autori del paper sopra citato mirano a produrre buone rappresentazioni (caratteristiche) per le immagini che possono essere utilizzate per varie attività con una supervisione minima o nulla.

Limitazioni dell’apprendimento supervisionato

Le caratteristiche predefinite generate dai modelli di classificazione delle immagini sono state utilizzate in altre attività come il recupero delle immagini. Tuttavia, queste caratteristiche non generalizzano molto bene, poiché i modelli di classificazione sono stati addestrati per riconoscere un insieme fisso di classi. L’aggiunta di una nuova categoria a questo insieme di classi richiederebbe la raccolta di immagini annotate aggiuntive per questa nuova categoria e successivamente il riesame del modello. Questo è un processo lungo e costoso.

È possibile sfruttare tecniche di apprendimento auto-supervisionato per affrontare questo problema?

È possibile utilizzare le didascalie delle immagini come mezzo per produrre migliori rappresentazioni delle immagini e evitare il costo dell’annotazione? In altre parole, il linguaggio naturale può essere utilizzato come supervisione per imparare la percezione visiva?

Contributo principale

Gli autori propongono un compito di pre-addestramento (CLIP = Contrastive Language-Image Pre-training) che consiste nella previsione di quale didascalia corrisponde a quale immagine al fine di apprendere rappresentazioni delle immagini all’avanguardia da zero. Per fare ciò, hanno creato un dataset di 400 milioni di coppie (immagine, testo) raccolte da Internet. Questo modello pre-addestrato si trasferisce in modo non banale alla maggior parte delle attività ed è spesso competitivo con un modello totalmente supervisionato senza la necessità di alcun addestramento specifico del dataset.

Background

CLIP trae ispirazione dal campo della generazione di didascalie per immagini supervisionata. Ogni immagine con una didascalia corrispondente viene utilizzata per addestrare un modello che predice le parole esatte nella didascalia per le immagini corrispondenti. Questo è un compito difficile poiché un’immagine può essere descritta in vari modi e comunque trasmettere lo stesso significato.

Ma per sfruttare in qualche modo la supervisione fornita dalle didascalie, gli autori propongono un compito di sostituzione per predire se una didascalia corrisponde a una determinata immagine anziché predire la didascalia parola per parola.

Pre-addestramento contrastivo

Considerate un gruppo di N immagini e le relative N didascalie. Con queste, possiamo creare N x N accoppiamenti possibili (immagine, testo) all’interno del gruppo. Ora, il compito è quello di prevedere i N accoppiamenti reali nel gruppo.

Per farlo, CLIP apprende uno spazio di embedding multimodale addestrando congiuntamente un codificatore di immagini e un codificatore di testo (vedi Figura 1). Il codificatore di immagini produce un vettore di caratteristiche, I; allo stesso modo, il codificatore di testo produce un vettore di caratteristiche, T.

  • Per i N accoppiamenti reali, vogliamo massimizzare la similarità coseno tra I e T.
  • Per i N² – N accoppiamenti errati, vogliamo minimizzare la similarità coseno tra I e T.
Figura 1: Pre-addestramento contrastivo (Immagine tratta da: paper)

Predizione senza istruzione diretta

Considerate il compito della classificazione delle immagini (vedi Figura 2). Durante il test, per un singola immagine, il codificatore di immagini produrrà un vettore di caratteristiche I₁. Per identificare la classe dell’immagine, il codificatore di testo incorpora i nomi delle classi del dataset di destinazione per produrre i vettori di caratteristiche T₁, T₂ …, e così via. N è il numero delle classi nel dataset di destinazione.

Figura 2: Predizione senza istruzione diretta per la classificazione delle immagini utilizzando le caratteristiche di CLIP (Immagine tratta da: paper)

Dettagli del Modello

Per l’encoder delle immagini, gli autori valutano due diverse architetture:

  • ResNet-50: Hanno utilizzato l’architettura ResNet-D modificata (consultare il articolo) con anti-aliased rect-2 blur pooling (consultare il articolo). Hanno inoltre sostituito il livello di average pooling globale con un meccanismo di attenzione “stile transformer”.
  • Vision Transform (ViT): Gli autori utilizzano una normalizzazione dei livelli aggiuntivi per gli embeddings combinati di patch e posizione prima del transformer e utilizzano uno schema di inizializzazione leggermente diverso.

Per l’encoder del testo, utilizzare un Transformer descritto in questo articolo con 63M parametri (12-layer 512-wide) e 8 attenzione heads.

Addestramento

Gli autori addestrano 5 ResNets (ResNet-50, ResNet-101 e 3 modelli ResNet in stile EfficientNet) e 3 Vision Transformers (ViT-B/32, un ViT-B/16 e un ViT-L/14). I modelli vengono addestrati per 32 epoche utilizzando l’ottimizzatore Adam con regolarizzazione del peso decoppiato e si riduce il tasso di apprendimento utilizzando un programma coseno. Hanno utilizzato una dimensione di minibatch molto grande di 32.768.

Risultati e Discussione

Effetto dell’Ingegneria delle Prompt:

I dataset di classificazione delle immagini sono annotati con ID di etichetta che vengono mappati in nomi di classe. Poiché il modello CLIP viene addestrato con il testo in forma di frase completa, gli autori hanno riscontrato che l’utilizzo del template di prompt “Una foto di {label}.” funziona bene come valore predefinito per il testo associato all’immagine. Nella Figura 3, vediamo che la precisione della classificazione migliora di 5 punti utilizzando l’ingegneria delle prompt su 36 dataset di classificazione.

Figura 3: Effetto dell'ingegneria delle prompt sulle prestazioni dei classificatori CLIP a zero-shot in media su 36 dataset (Immagine gentilmente concessa da: articolo)

CLIP a Zero-shot versus Linear Probe

Il classificatore CLIP a zero-shot supera un classificatore lineare supervisionato basato su caratteristiche ResNet-50 su 16 dei 27 dataset (Figura 4). Tuttavia, le prestazioni di CLIP rimangono inferiori rispetto allo stato dell’arte per la maggior parte di questi dataset.

Figura 4: (Immagine gentilmente concessa da: articolo)

Limitazioni

  • CLIP non funziona bene su compiti come il conteggio degli oggetti in un’immagine o la ricerca della distanza dall’oggetto più vicino in un’immagine.
  • Ha prestazioni molto scadenti su dataset fuori distribuzione come MNIST. La sua precisione nel riconoscimento OCR digitale è buona, ma fallisce (88% di precisione) nel riconoscimento di cifre scritte a mano su MNIST.
  • L’utilizzo di CLIP per il few-shot learning porta a prestazioni scadenti. Si osserva un calo conto-intuitivo delle prestazioni passando dal zero-shot al few-shot learning.
  • Poiché CLIP viene addestrato utilizzando coppie di testo e immagine interrogate su Internet, apprenderà molti bias sociali.