DINO – Un modello fondamentale per la visione artificiale

DINO - Un modello essenziale per la visione artificiale

Analisi del Paper: Proprietà emergenti nei Vision Transformers Auto-Supervisionati

È un decennio eccitante per la computer vision. Grandi successi dal dominio del linguaggio naturale sono stati trasferiti al dominio della visione, incluso l’introduzione del ViT (vision transformer) e recentemente le tecniche di pre-training auto-supervisionato su larga scala hanno fatto notizia con il nome di modelli fondamentali.

Oggi esamineremo un framework chiamato DINO (Distillazione Auto-supervisionata, Senza Etichette), un modello fondamentale visivo basato su interessanti proprietà dei ViT. È anche il predecessore di uno dei modelli fondamentali che ha le migliori prestazioni attuali: DINOv2.

Immagine di Sascha Kirch

Articolo: Proprietà emergenti nei Vision Transformers Auto-Supervisionati

Codice: https://github.com/facebookresearch/dino

Prima Pubblicazione: 29 Aprile 2021

Autore: Mathilde Caron, Hugo Touvron, Ishan Misra, Hervé Jégou, Julien Mairal, Piotr Bojanowski, Armand Joulin

Categoria: modello fondamentale, computer vision, vision transformer, distillazione del conoscimento, apprendimento auto-supervisionato

Articoli correlati: [BYOL], [CLIP], [GLIP], [SAM]

Sommario

  1. Contesto e Contesto
  2. Metodo
  3. Esperimenti
  4. Ablazioni
  5. Conclusioni
  6. Ulteriori Letture e Risorse

Contesto & Contesto

L’anno è il 2021, precisamente aprile. Sono passati quattro anni dal rilascio del modello transformer con attention is all you need. Il pre-training auto-supervisionato è da tempo praticato nell’NLP da modelli come BERT e il termine “modello fondamentale” non è ancora conosciuto fino ai prossimi mesi, fino alla pubblicazione di “opportunità e rischi dei modelli fondamentali“. Sei mesi fa è stato pubblicato per la prima volta su arxiv il Vision transformer (ViT) ed è ancora un mese fino a ICLR 2021, dove sarà presentato.

Prendetevi un attimo per assorbire questa informazione: ViT ha fatto il suo debutto su arxiv.org nell’ottobre 2020 ed è stato presentato all’ICLR2021 nel maggio 2021. DINO è stato rilasciato su arxiv nell’aprile 2021. Quindi, un mese prima che fosse effettivamente presentato in una conferenza. Ciò significherebbe che avevano solo 5 mesi se avessero iniziato subito a sviluppare l’idea del progetto, formare un team, definire le fondamenta teoriche, allenare il modello, effettuare esperimenti e ablazioni, e scrivere l’articolo. Non c’è da meravigliarsi se gli studenti di dottorato oggigiorno si sentono costantemente ansiosi. Almeno, a volte è quello che capita anche a me 😅

Mentre le ViTs erano molto competitive con le reti convoluzionali, richiedono molte risorse computazionali e una quantità considerevole di dati di addestramento.

Gli autori di DINO hanno fatto una semplice osservazione: il successo dei transformers nel NLP era collegato all’auto-addestramento e i metodi correnti di auto-addestramento nel dominio della visione sono costruiti a partire da convnets, come ad esempio BYOL.

BYOL – L’alternativa all’apprendimento auto-supervisionato contrastivo

Analisi del paper – Bootstrap Your Own Latent: Un nuovo approccio all’apprendimento auto-supervisionato

towardsdatascience.com

Ispirato da BYOL e il mean teacher, gli autori hanno creato un framework per addestrare un ViT in modo auto-supervisionato e hanno scoperto:

  1. Le caratteristiche auto-supervisionate di ViT contengono esplicitamente il layout della scena e, in particolare, i confini degli oggetti.
  2. Le caratteristiche auto-supervisionate di ViT si comportano particolarmente bene con un classificatore di nearest neighbors (k-NN) di base senza alcun raffinamento, classificatore lineare o data augmentation.

A differenza di BYOL e mean teacher, DINO implementa un framework di knowledge-distillation composto da un modello student e un modello teacher che agiscono su diverse visualizzazioni della stessa immagine e aggiunge misure extra per affrontare le instabilità intrinseche degli approcci di apprendimento della similarità, in cui spesso si verificano soluzioni collabenti.

Un’interessante scoperta dell’architettura sottostante il vision transformer (ViT) è che quando viene addestrato con tecniche di apprendimento non supervisionato, le sue caratteristiche contengono informazioni esplicite sulla segmentazione semantica di un’immagine. È possibile visualizzare semplicemente la mappa di auto-attenzione dei test in output del livello di attenzione multi-cappa, come mostrato nel video qui sotto:

Fig. 1: Mappa di auto-attenzione per i test selezionati. Fonte

Approfondiamo un altro livello di astrazione e cerchiamo di capire come DINO implementa il suo framework, affronta le instabilità e come si comporta rispetto ai metodi precedenti!

Metodo

Il framework DINO condivide la stessa struttura generale con altri framework di apprendimento della similarità come BYOL o il mean teacher, ma anche con la distillazione della conoscenza. Iniziamo osservando come DINO lo fa e differenziandolo dagli altri framework.

Fig. 2: Architettura DINO. Fonte + annotazioni di Sascha Kirch

Reti e Regola di Aggiornamento

Iniziamo dal centro. DINO implementa due reti con la stessa architettura ma un diverso set di pesi. Queste sono lo student e il teacher. Lo studente viene addestrato tramite back propagation e il teacher aggiorna i suoi pesi con una media mobile esponenziale dei suoi stessi pesi e quelli dello studente.

Equazione 1: Regola di aggiornamento dei pesi del teacher. Fonte + annotazioni di Sascha Kirch

Le dorsali possono essere un ResNet50 o un DeiT (che è un ViT adattato per la distillazione delle conoscenze). Una testa di proiezione basata su MLP è collegata alla dorsale per ridurre la dimensionalità delle caratteristiche, ma viene rimossa per l’inferenza.

Bello, ma quale modello viene utilizzato per l’inferenza: studente o insegnante? – Beh, questa è una buona domanda, e stranamente non viene menzionata una sola parola nel documento. Intuitivamente, potresti pensare allo studente, almeno io ci ho pensato all’inizio. Ma come vedremo più avanti, l’insegnante supera lo studente durante tutto l’addestramento. L’unico suggerimento oltre alla migliore performance è che nell’implementazione del codice il checkpoint dell’insegnante è quello predefinito per la valutazione, ad esempio, della segmentazione video, prova lineare e k-NN. Poiché questo parametro può essere modificato, non posso dirtelo con certezza.

Ingressi e Uscite

A partire da un’immagine di input x, vengono create diverse visualizzazioni x1 e x2 mediante ritaglio e applicazione di aumenti dell’immagine come in BYOL (ad esempio, distorsione del colore, sfocatura gaussiana e solarizzazione). La tecnica utilizzata per il ritaglio è chiamata multi-crop, in cui vengono generate varie immagini ritagliate di dimensioni diverse per risparmiare memoria fornendo più dati. I ritagli più piccoli vengono chiamati visualizzazioni locali e consistono in pixel 96×96 che vengono alimentati esclusivamente allo studente. I ritagli più grandi vengono chiamati visualizzazioni globali e consistono in pixel 224×224 che vengono alimentati esclusivamente all’insegnante. Come vedremo più avanti nella sezione delle varianti, durante l’addestramento sono state utilizzate 2 visualizzazioni globali e 10 visualizzazioni locali.

NOTA: Il documento è un po’ confuso riguardo alla tecnica del multi-crop perché né il pseudo-codice fornito né l’architettura mostrata nella Fig. 3 sopra la riflettono. Il pseudo-codice suggerisce addirittura che x1 e x2 vengano alimentati sia allo studente che all’insegnante come in BYOL, il che non è vero quando si utilizza il multi-crop.

Contrariamente all’apprendimento di similarità in cui l’obiettivo è massimizzare la similarità delle incapsulazioni, DINO minimizza l’entropia incrociata tra la distribuzione di output dell’insegnante e dello studente. Come indicato dall’equazione sottostante, l’entropia incrociata viene calcolata per ogni coppia di visualizzazioni globali e locali e quindi sommata.

Equazione 2: Obiettivo di ottimizzazione. Fonte + annotazioni di Sascha Kirch

E cosa producono i modelli in output? – Come nell’apprendimento di similarità, lo studente e l’insegnante producono un’incapsulazione per un’immagine data, anziché un punteggio di previsione. Come nella distillazione delle conoscenze, l’output viene trasformato tramite una trasformazione SoftMax in una distribuzione di probabilità. La SoftMax ha un parametro di temperatura che controlla l’attenuazione o l’affinamento della distribuzione risultante. Questa temperatura svolge un ruolo cruciale nella distillazione delle conoscenze perché consente di controllare l’equilibrio tra il trasferimento di conoscenze generali e dettagli sottili da una rete insegnante a una rete studente, rendendo il processo di distillazione più efficace per diverse attività.

Fig. 3: Effetto del valore di temperatura sull'output di SoftMax. Illustrazione di Sascha Kirch creata con questo quaderno Python

Ho creato un quaderno per te in modo che tu possa investigare l’impatto della temperatura sulla distribuzione risultante:

ML_Notebooks/Softmax_Temperature.ipynb su main · sascha-kirch/ML_Notebooks

github.com

Evitare il collasso

Come accennato in precedenza, lo studente e l’insegnante hanno la stessa identica architettura. Questo tipo di configurazione è instabile (se non vengono implementate misure di contro) e potrebbe portare a soluzioni di collasso, in cui tutte le caratteristiche sono mappate in una determinata regione nello spazio latente, ad esempio un singolo punto nel caso peggiore. BYOL ha affrontato questo problema con una testa di previsione extra solo per uno dei modelli introducendo una asimmetria. Poiché DINO ha modelli simmetrici è necessario un altro trucco: centratura e affinamento. Entrambi vengono applicati solo alla rete insegnante. La centratura è una tecnica che impedisce a una singola dimensione dello spazio latente di dominare, aggiungendo un termine di bias c all’output dell’insegnante g(x) = g(x)+c, dove

Equazione 3: Regola di aggiornamento del termine di centratura. Fonte + annotazioni di Sascha Kirch

Anche se la centratura ha un effetto positivo, incoraggia anche l’output a collassare in una distribuzione uniforme. L’affinamento ha l’effetto opposto, quindi l’applicazione di entrambi bilancia il loro effetto e stabilizza l’addestramento. L’affinamento viene raggiunto utilizzando una temperatura più piccola nella SoftMax (vedi Fig. 3) per l’insegnante rispetto allo studente.

Per evitare il collasso, sono cruciali l’iperparametro m dall’equazione 3 e la temperatura dell’insegnante. Nel loro studio di ablazione nella sezione appendice, gli autori mostrano che m=0.9…0.999 funziona meglio e il valore della temperatura aumenta linearmente da 0.04 a 0.07 durante il riscaldamento.

Cosa fa DINO? Distillazione della conoscenza o apprendimento di similarità?

La risposta è un po’ di entrambi!

Mentre la distillazione della conoscenza di solito distilla conoscenze da un modello insegnante già addestrato, più grande e più preciso in un modello studente più piccolo, potrebbe anche essere vista come una sorta di apprendimento di similarità perché incoraggia la rete studente a produrre previsioni simili a quelle dell’insegnante. Nell’apprendimento di similarità, i due modelli sono di solito addestrati congiuntamente e spesso allineano le loro previsioni dello spazio latente anziché le distribuzioni di probabilità.

Poiché gli autori di DINO formulano il loro obiettivo come distillazione della conoscenza, vediamo alcune differenze rispetto alla distillazione della conoscenza “standard”:

  1. L’insegnante di DINO non è disponibile a priori ma viene “addestrato” insieme allo studente. Potrebbe persino essere considerato come una co-distillazione poiché la conoscenza viene anche distillata dallo studente verso l’insegnante.
  2. L’insegnante e lo studente di DINO non agiscono sullo stesso input ma su viste diverse dell’immagine ritagliate a dimensioni diverse.
  3. DINO utilizza temperature diverse nella SoftMax di entrambi i modelli per eseguire l’affinamento.
  4. DINO calcola l’entropia incrociata sulla SoftMax a temperatura scalata degli embedding anziché sui punteggi di previsione.

E in cosa è simile alla distillazione della conoscenza?:

  1. DINO è composto da una rete studente e una rete insegnante, dove l’insegnante si comporta meglio dello studente, come vedremo negli esperimenti.
  2. Piuttosto che massimizzare una metrica di similarità, DINO minimizza la perdita di entropia incrociata di un’uscita SoftMax a temperatura scalata.

Esperimenti

Il paper presenta un vasto numero di esperimenti. I modelli vengono preaddestrati su ImageNet, un dataset comunemente utilizzato nell’apprendimento delle rappresentazioni.

Per la valutazione, le tecniche comuni di solito addestrano un classificatore lineare sui feature congelati o raffinano il modello per nuovi compiti secondari, adattando i parametri del modello.

Gli autori di DINO sostengono che tali tecniche siano molto sensibili agli iperparametri, il che rende le comparazioni ingiuste e difficili da riprodurre. Pertanto, propongono di utilizzare un semplice algoritmo di clustering del nearest neighbor sulle feature del modello pre-addestrate.

Classificazione lineare e k-NN su ImageNet

In questo esperimento i modelli vengono testati per la loro accuratezza di classificazione delle immagini su ImageNet. Diverse modelli pre-addestrate in modo autosupervisionato sono testate con una struttura di base ResNet o ViT. La classificazione viene effettuata sia con il sondaggio lineare che con il clustering k-NN.

Tabella 1: Classificazione lineare e k-NN su ImageNet. Fonte: Sascha Kirch

Credo che i punti chiave siano:

  1. Il k-NN funziona meglio sulle feature di ViT rispetto alle feature di ResNet.
  2. La riduzione delle dimensioni del patch in ViT ha un maggiore miglioramento, ma a costo di un’inferenza più lenta.

Segmentazione istantanea dei video

Un esperimento importante è stato quello della segmentazione video, poiché il paper tratta delle capacità di ViT di catturare la segmentazione semantica nelle sue feature quando addestrato con metodi non supervisionati. O diciamo che è ciò che viene sostenuto 😁

Tabella 2: Segmentazione istantanea dei video. Fonte: Sascha Kirch

Osservando questi risultati, mi mancano due ulteriori esperimenti:

  1. Sarebbe interessante vedere un confronto tra una ResNet50 supervisionata e una ResNet50 autosupervisionata nel framework DINO per supportare l’affermazione che ViT è superiore all’architettura ResNet.
  2. Sarebbe anche bello vedere lo stesso insieme di strutture di base ViT sia per supervisione che per autosupervisione per vedere l’impatto delle dimensioni del patch e delle dimensioni del modello.

Ma come dico sempre: fare domande è facile 😁 Nei progetti del mondo reale gli autori spesso affrontano vincoli di risorse e scadenze del progetto, quindi non è possibile coprire ogni singolo piccolo dettaglio!

Esplorazione della mappa di autoattenzione

In questo esperimento gli autori hanno analizzato le mappe di autoattenzione di diverse “heads” nei livelli di autoattenzione multi-capo di ViT. Visualizzano le mappe di attenzione di “heads” selezionate dall’ultimo livello di ViT-S/8, nello specifico quelle del token [CLS] appreso.

Figura 4: Mappe di autoattenzione da

Altri esperimenti

In altri esperimenti, DINO ha mostrato un miglioramento rispetto alla linea di base supervisionata. Queste attività includono il recupero delle immagini e il rilevamento delle copie.

Ablazioni

Nel loro studio di ablazione, gli autori sperimentano con il modello ViT-S.

Importanza della dimensione delle patch

Ricordiamo che un vision transformer inserisce una versione patchificata di un’immagine di input, trasforma ogni patch in un token e quindi applica un transformer con il suo meccanismo di auto-attenzione. Questo è stato un trucco degli autori di ViT per ridurre i requisiti di calcolo per il bilanciamento delle prestazioni, rendendo i transformer applicabili ai dati delle immagini.

DINO sostiene che una dimensione più piccola delle patch aumenta le prestazioni riducendo al contempo il throughput (numero di immagini che possono essere processate al secondo), proprio come sostiene ViT.

Fig. 5: Impatto della dimensione delle patch sull'accuratezza e sul throughput. Fonte + annotazioni di Sascha Kirch

Intuitivamente, direi che non è una sorpresa, poiché aumenti la risoluzione dell’input e ti trovi con più token a cui prestare attenzione, ottenendo così una mappa di attenzione dettagliata.

Diverse regole di aggiornamento del docente

Il docente in DINO viene aggiornato calcolando la media mobile esponenziale dallo studente aggiornato e dal docente corrente. Questo è l’approccio del “codificatore di momentum” a cui fanno riferimento.

Utilizzando un codificatore di momentum e tracciando l’accuratezza del docente e dello studente durante la formazione, il docente si comporta meglio durante l’intero processo. Da ciò possiamo ipotizzare:

  1. il docente può fornire un forte segnale di apprendimento allo studente.
  2. uno studente in miglioramento migliora il docente grazie alla regola di aggiornamento EMA (co-distillazione).
  3. Si può utilizzare il Docente come modello finale che ha prestazioni migliori ma la stessa architettura dello studente, quindi nessuna variazione nei requisiti di calcolo.
Fig. 6: Prestazioni del docente. Fonte + annotazioni di Sascha Kirch

Sperimentano anche altre 3 regole di aggiornamento: copiare i pesi dello studente nel docente, utilizzare i pesi dello studente dalla precedente iterazione dell’ottimizzatore e utilizzare i pesi dello studente dalla precedente epoca.

Multi-Crop vs. Tempo e Memoria GPU

Come accennato in precedenza, DINO inserisce diverse visualizzazioni ritagliate della stessa immagine e alimenta le visualizzazioni globali nel docente e le visualizzazioni locali nello studente. In questa ablazione, gli autori sperimentano diverse quantità di visualizzazioni locali e ne riportano l’impatto sulle prestazioni, sul tempo di formazione e sulla memoria massima per GPU.

Table 3: Multi-Crop vs. Tempo e Memoria GPU. Fonte + annotazioni di Sascha Kirch

Evitare il collasso

In questa ablazione gli autori hanno valutato il ruolo delle loro misure stabilizzanti per evitare soluzioni di collasso: centramento e affinamento.

Per fare ciò, hanno scomposto l’entropia incrociata in un termine di entropia e un termine di divergenza di Kullback-Leibler (KL). La divergenza di KL è una misura della differenza tra due distribuzioni di probabilità. Se KL è 0, le due distribuzioni sono considerate uguali.

L’intuizione dietro a questo è la seguente: se la divergenza di KL della distribuzione di output del docente e dello studente è costante durante l’addestramento, non c’è un segnale di apprendimento per aggiornare i pesi dello studente.

Fig. 7: Analisi delle soluzioni di collasso. Fonte + annotazioni di Sascha Kirch

Effetto della Dimensione del Lotto

Una proprietà interessante è che DINO può essere addestrato con dimensioni di lotto ridotte senza una grande diminuzione delle prestazioni. Questa è stata effettivamente una delle motivazioni di BYOL, un articolo sul quale DINO si basa, per essere meno dipendente dalla dimensione del lotto rispetto all’apprendimento autosupervisionato a contrasto.

Tabella 4: Dimensione del lotto vs. precisione. Fonte + annotazioni di Sascha Kirch

I metodi a contrasto come CLIP e GLIP forniscono molti campioni negativi per un dato campione positivo per evitare soluzioni di collasso. Più campioni negativi per passo di aggiornamento dell’ottimizzatore (quindi per lotto), migliore sarà il risultato.

Conclusione

In conclusione, DINO è un framework di distillazione della conoscenza. È un modello fondamentale visivo che sfrutta proprietà interessanti delle ViTs ed è il predecessore di uno dei modelli di fondazione più performanti attuali, DINOv2. Il framework di DINO consiste in un modello studente e un modello docente che agiscono su diverse visualizzazioni della stessa immagine e aggiungono misure extra per gestire le instabilità inherenti agli approcci di apprendimento di similarità. Gli esperimenti mostrano che DINO supera gli altri modelli pre-addestrati in modo autosupervisionato su diverse attività.

Ulteriori Letture e Risorse

Articoli

Nel frattempo è stata rilasciata una versione migliorata di DINO:

  1. DINOv2: Apprendimento di Funzioni Visive Robuste senza Supervisione
  2. Articolo del blog DINOv2 di Meta

Guida all’Articolo

Potrebbe interessarti anche le mie altre guide all’articolo che coprono concetti discussi in questo articolo:

Il Modello Fondamentale CLIP

Riassunto dell’Articolo: Apprendimento di Modelli Visuali Trasferibili dalla Supervisione di Lingua Naturale

towardsdatascience.com

GLIP: Introduzione alla Preparazione immagini-lingua per il Rilevamento di Oggetti

Riassunto dell’Articolo: Preparazione Immagine-Lingua Fondamentale

towardsdatascience.com

BYOL: L’Alternativa all’Apprendimento Autosupervisionato a Contrasto

Analisi del Paper – Bootstrap Your Own Latent: Un nuovo approccio all’apprendimento auto-supervisionato

towardsdatascience.com

Segmentazione di qualsiasi cosa – Segmentazione promptable di oggetti arbitrari

Panoramica del Paper – Segment Anything

towardsdatascience.com