Ultime novità sui kernel CNN per modelli di immagini di grandi dimensioni
Latest news on CNN kernels for large-scale image models
Una visione generale a livello alto delle ultime strutture di kernel convoluzionali nelle Reti Convoluzionali Deformabili, DCNv2, DCNv3

Dato il notevole successo di ChatGPT di OpenAI che ha scatenato il boom dei grandi modelli di linguaggio, molte persone prevedono la prossima svolta nei grandi modelli di immagini. In questo ambito, i modelli di visione possono essere sollecitati ad analizzare e persino generare immagini e video in modo simile a come attualmente sollecitiamo ChatGPT.
Le ultime approcci di deep learning per i grandi modelli di immagini si sono ramificati in due direzioni principali: quelli basati sulle reti neurali convoluzionali (CNN) e quelli basati sui transformers. Questo articolo si concentrerà sul lato delle CNN e fornirà una panoramica a livello alto di quelle strutture di kernel CNN migliorate.
Tabella dei Contenuti
- DCN
- DCNv2
- DCNv3
1. Reti Convoluzionali Deformabili (DCN)
Tradizionalmente, i kernel CNN sono stati applicati a posizioni fisse in ogni layer, risultando in tutte le unità di attivazione che hanno lo stesso campo recettivo.
Come nella figura sottostante, per eseguire la convoluzione su una mappa di caratteristiche di input x, il valore in ogni posizione di output p0 viene calcolato come una moltiplicazione elemento per elemento e una somma tra il peso del kernel w e una finestra scorrevole su x. La finestra scorrevole è definita da una griglia R, che rappresenta anche il campo recettivo per p0. La dimensione di R rimane la stessa in tutte le posizioni all’interno dello stesso layer di y.
- La minaccia della disinformazione sul clima propagata dalla tecnologia AI generativa
- Perdita di dati cos’è e perché causa il fallimento dei nostri sistemi predittivi
- Instagram etichetterà ora i contenuti generati da intelligenza artificiale

Ogni valore di output viene calcolato come segue:

dove pn enumera le posizioni nella finestra scorrevole (griglia R).
Anche l’operazione di pooling RoI (regione di interesse) opera su bin con una dimensione fissa in ogni layer. Per il bin (i, j) che contiene nij pixel, il risultato del pooling viene calcolato come:

Anche in questo caso, la forma e la dimensione dei bin sono gli stessi in ogni layer.

Entrambe le operazioni diventano particolarmente problematiche per i layer di alto livello che codificano la semantica, ad esempio oggetti con scale variabili.
DCN propone una convoluzione deformabile e un pooling deformabile che sono più flessibili per modellare quelle strutture geometriche. Entrambi operano nel dominio spaziale 2D, ovvero l’operazione rimane la stessa lungo la dimensione del canale.
Convoluzione deformabile

Dato un input feature map x, per ogni posizione p0 nella output feature map y, DCN aggiunge gli spostamenti 2D △pn quando si enumerano le posizioni pn in una griglia regolare R.

Questi spostamenti sono appresi dalle mappe precedenti, ottenute tramite uno strato di convoluzione aggiuntivo sulla feature map. Poiché questi spostamenti sono tipicamente frazionari, vengono implementati tramite interpolazione bilineare.
Deformable RoI pooling
Similmente all’operazione di convoluzione, vengono aggiunti gli spostamenti △pij alle posizioni originali del pooling.

Come mostrato nella figura sottostante, questi spostamenti vengono appresi attraverso uno strato fully connected (FC) dopo il risultato del pooling originale.

Deformable Position-Sentitive (PS) RoI pooling
Nell’applicare operazioni deformabili a PS RoI pooling (Dai et al., n.d.), come illustrato nella figura sottostante, gli spostamenti vengono applicati ad ogni mappa di punteggio invece della feature map di input. Questi spostamenti sono appresi tramite uno strato di convoluzione anziché uno strato FC.
Position-Sensitive RoI pooling (Dai et al., n.d.): Il RoI pooling tradizionale perde informazioni riguardo a quale parte dell’oggetto rappresenta ogni regione. Il PS RoI pooling è stato proposto per mantenere queste informazioni convertendo le feature map di input in k² mappe di punteggio per ogni classe di oggetti, dove ogni mappa di punteggio rappresenta una specifica parte spaziale. Quindi per C classi di oggetti, ci sono un totale di k² (C+1) mappe di punteggio.

2. DCNv2
Anche se DCN consente una modellazione più flessibile del campo recettivo, assume che i pixel all’interno di ogni campo recettivo contribuiscano in modo uguale alla risposta, il che spesso non è vero. Per comprendere meglio il comportamento del contributo, gli autori utilizzano tre metodi per visualizzare il supporto spaziale:
- Campi recettivi efficaci: gradiente della risposta del nodo rispetto alle perturbazioni dell’intensità di ogni pixel dell’immagine
- Posizioni di campionamento/posizioni di bin efficaci: gradiente del nodo di rete rispetto alle posizioni di campionamento/posizioni di bin
- Regioni di salienza con errore limitato: mascherando progressivamente le parti dell’immagine per trovare la regione più piccola dell’immagine che produce la stessa risposta dell’intera immagine
Per assegnare un’ampiezza delle caratteristiche apprendibile alle posizioni all’interno del campo recettivo, DCNv2 introduce moduli deformabili modulati:

Per la posizione p0, l’offset △pn e la sua ampiezza △mn sono apprendibili attraverso conv layers separate applicate alla stessa mappa delle caratteristiche di input.
DCNv2 ha rivisto il pooling deformabile RoI aggiungendo un’ampiezza apprendibile △mij per ogni bin (i,j)-th.

DCNv2 espande anche l’uso delle conv layers deformabili per sostituire le conv layers regolari negli stadi conv3 a conv5 in ResNet-50.
3. DCNv3
Per ridurre la dimensione dei parametri e la complessità della memoria di DCNv2, DCNv3 apporta le seguenti modifiche alla struttura del kernel.
- Ispirato alla convoluzione separabile in profondità (Chollet, 2017)
La convoluzione separabile in profondità scompone la convoluzione tradizionale in: 1. convoluzione in profondità: ogni canale della caratteristica di input viene convoluto separatamente con un filtro; 2. convoluzione punto-punto: una convoluzione 1×1 applicata tra i canali.
Gli autori propongono di far sì che l’ampiezza della caratteristica m sia la parte in profondità e il peso di proiezione w sia condiviso tra le posizioni nella griglia come parte punto-punto.
2. Ispirato alla convoluzione di gruppo (Krizhevsky, Sutskever e Hinton, 2012)
Convoluzione di gruppo: suddividere i canali di input e i canali di output in gruppi e applicare una convoluzione separata a ciascun gruppo.
DCNv3 (Wang et al., 2023) propone di suddividere la convoluzione in G gruppi, ognuno con offset △pgn e ampiezza della caratteristica △mgn separate.
DCNv3 è quindi formulato come:

dove G è il numero totale di gruppi di convoluzione, wg è irrilevante per la posizione, △mgn è normalizzato dalla funzione softmax in modo che la somma sulla griglia R sia 1.
Performance
Fino ad ora DCNv3 basato su InternImage ha dimostrato una performance superiore in molteplici task successivi come rilevamento e segmentazione, come mostrato nella tabella sottostante, così come nella classifica su papers with code. Consultare il paper originale per confronti più dettagliati.



Sommario
In questo articolo, abbiamo esaminato le strutture del kernel per le reti convoluzionali regolari, insieme alle loro ultime migliorie, tra cui le reti convoluzionali deformabili (DCN) e le due versioni più recenti: DCNv2 e DCNv3. Abbiamo discusso dei limiti delle strutture tradizionali e evidenziato i progressi nell’innovazione basata sulle versioni precedenti. Per una comprensione più approfondita di questi modelli, si prega di fare riferimento agli articoli nella sezione Riferimenti.
Ringraziamenti
Un ringraziamento speciale a Kenneth Leung, che mi ha ispirato a creare questo articolo e ha condiviso idee straordinarie. Un enorme grazie a Kenneth, Melissa Han e Annie Liao, che hanno contribuito a migliorare questo articolo. I vostri suggerimenti illuminanti e il feedback costruttivo hanno avuto un impatto significativo sulla qualità e la profondità del contenuto.
Riferimenti
Dai, J., Qi, H., Xiong, Y., Li, Y., Zhang, G., Hu, H. e Wei, Y. (s.d.). Deformable Convolutional Networks. [online] Disponibile su: https://arxiv.org/pdf/1703.06211v3.pdf.
Zhu, X., Hu, H., Lin, S. e Dai, J. (s.d.). Deformable ConvNets v2: More Deformable, Better Results. [online] Disponibile su: https://arxiv.org/pdf/1811.11168.pdf.
Wang, W., Dai, J., Chen, Z., Huang, Z., Li, Z., Zhu, X., Hu, X., Lu, T., Lu, L., Li, H., Wang, X. e Qiao, Y. (s.d.). InternImage: Esplorazione di modelli di base per la visione su larga scala con convoluzioni deformabili. [online] Disponibile su: https://arxiv.org/pdf/2211.05778.pdf [Consultato il 31 luglio 2023].
Chollet, F. (s.d.). Xception: Apprendimento profondo con convoluzioni separabili in profondità. [online] Disponibile su: https://arxiv.org/pdf/1610.02357.pdf.
Krizhevsky, A., Sutskever, I. e Hinton, G.E. (2012). Classificazione ImageNet con reti neurali convoluzionali profonde. Communications of the ACM, 60(6), pp.84–90. doi:https://doi.org/10.1145/3065386.
Dai, J., Li, Y., He, K. e Sun, J. (s.d.). R-FCN: Rilevazione oggetti tramite reti completamente convoluzionali basate su regioni. [online] Disponibile su: https://arxiv.org/pdf/1605.06409v2.pdf.