Apprendimento auto-supervisionato e Transformers? – Spiegazione del paper DINO

Auto-supervised learning and Transformers - Explanation of the DINO paper

Come il framework DINO ha raggiunto il nuovo SOTA per il Self-Supervised Learning!

Immagine adattata dal paper originale DINO [1].

Transformer e Self-Supervised Learning. Quanto bene si adattano?

Alcune persone amano l’architettura Transformer e la accolgono nel dominio della computer vision. Altre non vogliono accettare che ci sia un nuovo arrivato nel parco giochi. Vediamo cosa succede quando si costruisce sull’idea di self-distillation di BYOLs [2] nel self-supervised learning e si inserisce un Vision Transformer! Questo è ciò che gli autori di Facebook AI Research si sono chiesti quando hanno lavorato sul primo paper DINO [1]. Ci sono delle proprietà interessanti che emergono quando si combinano entrambi? Bene, un effetto interessante dell’uso dei Transformers è la capacità di guardare le mappe di self-attention del modello!

Ecco cosa vediamo nell’immagine teaser qui sopra. Possiamo visualizzare la mappa di self-attention del token di classe dell’ultimo layer e praticamente vedere che il modello impara a riconoscere l’oggetto principale nell’immagine. Il modello impara praticamente una mappa di segmentazione senza etichette!

Secondo me è davvero fantastico!!!

Quando si predice la rappresentazione finale della prima immagine nella prima riga, il modello presta più attenzione all’uccello, quando lo fa per la prima immagine nella seconda riga, presta attenzione alla barca, e così via! Questo esempio della barca potrebbe essere particolarmente difficile durante l’addestramento in modo supervisionato poiché il modello è più incline a imparare scorciatoie, come prestare attenzione anche all’acqua perché acqua e un oggetto di metallo significano barca.

Ma prima di continuare con le scoperte interessanti, diamo un’occhiata a come hanno ottenuto tutto questo!

Il framework DINO

Il framework DINO. Fonte: [1]

Questa è la pipeline di addestramento che fa parte della famiglia di Self-distillation.

Abbiamo di nuovo la nostra immagine di origine, applichiamo due diverse serie di aumenti casuali e otteniamo due diverse visualizzazioni, x1 e x2. Abbiamo di nuovo la nostra rete online, ora chiamata rete student e il nostro target, ora chiamato rete insegnante, che è ancora una volta una media mobile esponenziale della rete student. Da qui in poi, le cose cominciano a sembrare diverse. Non abbiamo ulteriori strati di proiezione NÉ una testa di predizione! Se non c’è una testa di predizione, come evitiamo (o riduciamo la probabilità di) il collasso della rappresentazione? Beh, prima di tutto, abbiamo questo centratura qui, che può essere vista come l’aggiunta di un bias c alle previsioni dell’insegnante.

Questo bias utilizza le statistiche del batch per calcolare la media del batch ed è aggiornato in modo simile all’EMA.

Questo iperparametro m è praticamente lo stesso del parametro 𝜏 nell’equazione EMA. Aggiorniamo leggermente il parametro del bias c con ogni batch. Questa centratura è probabilmente l’operazione principale per evitare il collasso in una funzione costante! La centratura impedisce a una dimensione di dominare come una sorta di pseudo-etichetta, ma incoraggia anche il collasso nella distribuzione uniforme! Ecco perché il framework si basa anche sulla softmax appuntita poiché ha l’effetto opposto.

Immagina di avere un gruppo di immagini e vuoi insegnare al modello a riconoscere diversi oggetti in quelle immagini. Ora, se il modello presta sempre attenzione allo stesso oggetto perché gli viene prestata più attenzione, come un cane carino, il modello imparerà solo i cani e nient’altro. La centratura è come cercare di essere equi e assicurarsi che l’IA impari su tutti gli oggetti diversi in modo equilibrato. È come dire: “Ok, dividiamo le immagini in diversi gruppi e ogni gruppo dovrebbe essere osservato allo stesso modo”. In questo modo, il modello imparerà su diversi oggetti in modo equilibrato. Il modello è incoraggiato a imparare una varietà di caratteristiche o diverse “pseudo-classi” anziché concentrarsi su una singola caratteristica/classe dominante. La tecnica del sharpening, d’altra parte, viene utilizzata per assicurarsi che quando si desidera “classificare” un oggetto, cioè spostare tutto il vettore delle caratteristiche fortemente lungo una dimensione caratteristica, il modello non si confonda e scelga sempre diversi oggetti a caso, cioè semplicemente predica sempre una distribuzione uniforme. È come assicurarsi che ogni volta che il modello tende a scegliere un oggetto, sia sicuro e certo della sua scelta. Dopo aver applicato la funzione softmax molto meno appuntita all’output dello studente, la perdita finale è la perdita di entropia incrociata.

E perché l’entropia incrociata e non l’errore quadratico medio come in BYOL?

Studio di ablation per vedere gli effetti delle diverse parti del pipeline. Fonte: [1]

Se guardiamo la riga 2, l’errore quadratico medio sorprendentemente funziona con DINO, ma l’entropia incrociata (righe 1, 3, 4) sembra semplicemente funzionare meglio. DINO funziona anche quando si aggiunge una ulteriore predizione alla rete studente (riga 3)! Ma sembra che questo non aiuti molto. Infatti, non abbiamo nemmeno bisogno delle operazioni softmax se usiamo l’errore quadratico medio. Ma se usiamo l’entropia incrociata, ovviamente sì, perché quella loss è definita su distribuzioni di probabilità, che sembra funzionare meglio!

Ok… C’è stato molto da analizzare e costruire intuizione! Ma questo mostra sperabilmente quanto sperimentazione sia fatta per vedere cosa funziona empiricamente e cosa no!

Funzione di perdita

Ciò che sembra funzionare meglio non è semplicemente usare l’entropia incrociata su tutti i diversi embedding delle viste, ma usare una configurazione molto specifica!

Funzione di perdita usata in DINO.

Vediamo cosa significa effettivamente e torniamo al nostro simpatico quokka!

4 diverse viste dell'immagine sorgente. Due viste globali e 2 viste locali. Fonte: Autore

Generiamo nuovamente molteplici viste; questa volta, diciamo 4. Cambiamone leggermente il colore, ritagliamole e ridimensioniamole. Ora, quando ritagliamo, vogliamo specificamente avere due casi, ritagli che contengono il 50% o più dell’immagine originale e ritagli con tagli più piccoli. Questi grandi ritagli vengono chiamati ritagli globali, contrassegnati con la “g”.

Quando assegniamo le nostre viste ai due rami, per il docente, vogliamo specificamente usare solo le nostre viste globali, e per lo studente, useremo tutte le viste, ovvero i ritagli locali e globali.

Visualizzazione della funzione di perdita. Fonte: Autore

Stiamo ora confrontando l’embedding del docente di uno dei ritagli globali e tutti gli embedding di tutti i campioni dalla rete studente, tranne l’embedding della stessa vista globale. Possiamo ora calcolare l’entropia incrociata di ogni embedding studente con questo embedding docente e ripetere tutto il processo. Voilà, abbiamo la nostra perdita stranamente simile all’entropia incrociata che impone la corrispondenza locale-globale.

Abbiamo già parlato dei due casi di ritaglio nell’articolo SimCLR, in cui abbiamo due viste adiacenti e il caso qui imposto di viste locali e globali. Apparentemente, il modello impara meglio quando impara a guardare parti più piccole di un oggetto più grande e quando cerca di abbinarlo ai suoi embedding. L’embedding della vista globale ha più informazioni a disposizione e può quindi riconoscere meglio l’oggetto.

Costruire intuizione

Questa supposizione ha senso per me, a patto che il docente produca embedding migliori dello studente ed è anche assunta nel paper BYOL, ma poiché gli autori di DINO hanno fatto molti esperimenti, studi di ablation e la ricerca di costruire intuizione, hanno effettivamente verificato questa supposizione guardando l’accuratezza delle reti studente e docente durante l’addestramento.

Accuratezza delle reti docente e studente durante l'addestramento. Fonte: [1]

Il docente sembra essere più intelligente dello studente e ogni volta che lo studente migliora, anche il docente lo fa, poiché è una versione più stabile dello studente. Parola chiave: media mobile esponenziale. Fino a un certo punto, il docente non ha più nulla da insegnare e entrambi convergono.

Ma va bene, fantastico. Abbiamo appena esaminato il nuovo framework di auto-distillazione migliorato che, ancora una volta, è agnostico rispetto all’architettura. Quindi, dove sono i transformers e perché sono così speciali con questo framework?!

Diamo semplicemente un’occhiata a un confronto tra diversi framework di apprendimento auto-supervisionato e collega il classico ResNet e un Vision Transformer.

Valutazione dei modelli ResNet-50 e ViT addestrati utilizzando diversi framework di apprendimento auto-supervisionato. Fonte: [1]

Osservando l’accuratezza di convalida dei ResNet addestrati, possiamo vedere che il framework DINO produce le migliori prestazioni ma può essere considerato allineato con gli altri approcci di base.

Tuttavia, sostituendo l’architettura ResNet con un Vision Transformer, DINO sprigiona il suo potenziale e supera significativamente gli altri approcci di base! Soprattutto nel caso della classificazione k-NN. K-NN è uno dei protocolli standard di valutazione per l’apprendimento auto-supervisionato nel tempo attuale, ma non lo era quando SimCLR e BYOL sono stati sviluppati e pubblicati.

Oh… Quel tempo… Come se non fossero stati 2-3 anni fa…

K-NN! Perché è così interessante e come funziona? Non hai bisogno di alcun fine-tuning!

Abbiamo ancora bisogno di etichette, ovviamente, ma ora proiettiamo semplicemente tutti i nostri dati etichettati nel nostro spazio di rappresentazione per generare i nostri cluster di classi.

Visualizzazione della classificazione k-NN. Fonte: Autore

Quando vogliamo classificare un nuovo punto dati, ad esempio un’immagine, lo passiamo attraverso la nostra rete neurale e lo proiettiamo nello spazio di rappresentazione. Poi semplicemente contiamo i k vicini (in questo caso, 3) e facciamo una votazione a maggioranza. In questo caso, la maggior parte dei nostri vicini appartiene alla classe arancione, quindi la nuova immagine viene classificata come classe arancione. Questo k è un nuovo iperparametro (come se non ce ne fossero già abbastanza) e, nell’articolo, si è scoperto che produce i migliori risultati quando impostato su 11.

Risultati

Valutazione di diversi approcci di addestramento auto-supervisionato e supervisionato sui protocolli di valutazione lineare e k-NN. Fonte: [1]

Okay, fantastico. Ecco una tabella con risultati super eccitanti. DINO, ovviamente, è il migliore se si considerano solo i ResNet, solo i ViT e diverse architetture. Ma guardando architetture delle stesse dimensioni, non riesce ancora a battere un modello completamente supervisionato.

Figo. Ma ancora più bello è guardare sotto il cofano e visualizzare le mappe di attenzione.

Visualizzazione delle prime tre mappe di attenzione (di diverse attenzioni) del blocco ViT finale. Fonte: [1]

Osservando quelle provenienti dalle prime 3 attenzioni, possiamo notare proprietà impressionanti! Similmente alle CNN, dove ogni kernel è responsabile dell’estrazione di determinate caratteristiche, possiamo vedere che le diverse attenzioni si concentrano su diverse regioni semantiche di un’immagine! Nell’esempio della prima riga, nella seconda immagine, una attenzione si concentra sul quadrante dell’orologio, una sulla bandiera e una sulla torre stessa! Oppure, una riga sotto quell’esempio, possiamo vedere ancora una volta come una attenzione si concentra sul colletto, una sulla testa e una sul collo bianco della zebra!

Non è fantastico?

Tutto questo viene appreso senza etichette, senza mappe di segmentazione specifiche! Infatti, potremmo semplicemente interpretare una mappa di attenzione come un’uscita di segmentazione e confrontare la formazione supervisionata e quella auto-supervisionata utilizzando DINO!

Visualizzazione della mappa di attenzione del primo livello di attenzione nell'ultimo strato. Una volta per un modello addestrato completamente in modo supervisionato e una volta addestrato utilizzando il framework DINO. Fonte: [1]

Come già accennato, durante la formazione auto-supervisionata, il modello impara a concentrarsi di più sull’oggetto principale nell’immagine rispetto alla formazione di una rete specificamente per la classificazione.

Il segnale di apprendimento è più forte nel caso dell’apprendimento auto-supervisionato!

Nella classificazione, il modello può imparare a utilizzare scorciatoie per risolvere il compito. Nell’effettuare il match tra l’immagine dell’uccello e la classe dell’uccello, il modello può utilizzare il cielo o i rami come caratteristiche importanti. Alla fine, se l’accuratezza della classificazione, o piuttosto la perdita che viene ottimizzata, è soddisfatta, al modello non importa veramente se guarda effettivamente solo l’uccello o anche ciò che lo circonda. Nella formazione auto-supervisionata, d’altra parte, non abbiamo davvero un compito di ottimizzazione così semplice e diretto. Il modello deve imparare ad abbinare le viste locali con aumenti di colore alle viste globali. Deve imparare a produrre embedding ignorando tutti gli aumenti applicati all’immagine di origine. Le caratteristiche che deve imparare a estrarre sono molto più specifiche.

Spero che abbia senso, anche se il tuo cervello potrebbe essere un po’ sopraffatto da tutte queste informazioni, specialmente se hai appena letto tutti i miei post precedenti sull’apprendimento auto-supervisionato! Voglio dire… il mio cervello era fritto dopo tutta questa ricerca. E probabilmente non ho nemmeno colto tutti i dettagli!

L’apprendimento auto-supervisionato è davvero fantastico, potente e interessante! Ma tutto questo era solo la superficie! Ulteriori sviluppi, ad esempio il Masked Image Modeling, sono stati utilizzati dai paper successivi a DINO, iBOT [3] e DINOv2 [4]. Le rappresentazioni apprese possono essere utilizzate per così tante diverse attività successive!

Risultati qualitativi dell'utilizzo del feature extractor DINOv2 preaddestrato su diverse attività successive. Fonte: [4]

Le migliorie nella formazione e nell’architettura di DINOv2 rispetto a iBOT sono una lista di molti piccoli e sintonizzati parametri come la dimensione corretta delle patch, il momentum dell’insegnante, un algoritmo di centratura migliore, e così via.

Lista di miglioramenti aggiunti al framework iBOT in DINOv2. Fonte: [4]

Inoltre, DINOv2 ha sviluppato una pipeline di preprocessamento dati molto sofisticata per generare un set di dati molto più ampio, ma curato.

Fonte: [4]

L’apprendimento auto-supervisionato rimane un campo spaventoso con una miriade di metodi ognuno con implementazioni complesse. Per questo Meta AI ha recentemente pubblicato un libro di cucina di 45 pagine [5] per aiutare a navigare in questo campo. Quindi, se sei interessato a questo argomento (e dato che stai ancora leggendo a questo punto, probabilmente lo sei), posso consigliarti vivamente di dare un’occhiata alla pubblicazione. È molto, ma è davvero interessante! E spero che questa piccola serie ti abbia aiutato a ottenere una comprensione fondamentale che ti aiuterà anche a navigare nella cucina.

Grazie mille per aver letto! Se non l’hai già fatto, sentiti libero di dare un’occhiata ai miei altri post per approfondire l’apprendimento auto-supervisionato e le ultime ricerche sull’IA.

P.S.: Se ti piace questo contenuto e le immagini, puoi anche dare un’occhiata al mio canale YouTube, dove pubblico contenuti simili ma con animazioni più accattivanti!

Riferimenti

[1] Proprietà emergenti nei Vision Transformers auto-supervisionati, M. Caron et. al, https://arxiv.org/abs/2104.14294

[2] Avvia il tuo latente: un nuovo approccio all’apprendimento auto-supervisionato, J. B. Grill, F. Strub, F. Altché, C. Tallec, P. H. Richemond et al., https://arxiv.org/abs/2006.07733

[3] iBOT: Pre-Training BERT su immagini con tokenizzatore online, J. Zhou et al., https://arxiv.org/abs/2111.07832

[4] DINOv2: Apprendimento di caratteristiche visive robuste senza supervisione, M. Oquab, T. Darcet, T. Moutakanni et al., https://arxiv.org/abs/2304.07193

[5] Una guida pratica all’apprendimento auto-supervisionato, R. Balestiero, M. Ibrahim et. al, https://arxiv.org/abs/2304.12210