La sfida tra CNN e Vision Transformers nella rivoluzione della visione artificiale

AI, APPUNTI, INTELLIGENZA ARTIFICIALE

In questo post vorrei lasciarvi qualche considerazione su due architetture: le Reti Convoluzionali (CNN) e i Transformer Visivi (ViT). Questi potentissimi modelli di deep learning hanno profondamente trasformato l’ambito della visione artificiale. Ma come funzionano realmente? E quali distinzioni esistono tra loro?

Partiamo dal discutere le Reti Convoluzionali (CNN).

Questi modelli si caratterizzano per una struttura a strati multiforme, includendo strati di convoluzione, pooling, completamente connessi e di normalizzazione. Gli strati di convoluzione sono equipaggiati con filtri che perlustrano l’immagine per segmenti ridotti alla volta, il che permette alla rete di focalizzarsi su dettagli molto specifici e locali. L’architettura, include, inoltre  strati di pooling, che agiscono come riduttori di dimensione, preservando le informazioni più rilevanti dell’output della convoluzione e rendendo  la rete resiliente alle piccole variazioni e distorsioni nell’immagine, infatti un aspetto interessante  delle CNN è la loro invarianza alla traslazione: esse sono capaci di riconoscere un oggetto indipendentemente dalla sua posizione nell’immagine.

 

In contrasto con le CNN, i Transformer Visivi (ViT) adottano un approccio differente. Essi suddividono l’immagine in numerose patch, cioè piccole sezioni quadrate, per poi elaborarle simultaneamente. Questa strategia,  porta alla perdita del contesto spaziale dell’immagine, vale a dire la posizione relativa di ciascuna patch all’interno dell’immagine stessa. Per contrapporsi a questa mancanza, i ViT inseriscono esplicitamente un’informazione di posizione a ciascuna patch. Ciò implica che ogni patch viene marcata con la sua posizione originale nell’immagine, per preservare il contesto spaziale durante l’elaborazione.

Il cuore pulsante dei ViT è il modulo del trasformatore, che sfrutta un meccanismo chiamato “attenzione” per determinare il peso relativo di ciascuna patch, il quale permette di valutare le relazioni tra tutte le patch dell’immagine, considerando sia i dettagli locali sia il contesto globale dell’immagine.

vit

E allora, cosa distingue queste due architetture? La prima differenza riguarda il campo ricettivo: le CNN guardano solo una piccola porzione dell’immagine alla volta (campo ricettivo locale), mentre le ViT considerano l’intera immagine (campo ricettivo globale), inoltre, mentre le CNN automaticamente incorporano le informazioni sulla posizione attraverso le loro operazioni di convoluzione e pooling, le ViT devono esplicitamente aggiungere queste informazioni.

Dal punto di vista computazionale, le CNN tendono ad essere più efficienti su immagini di grandi dimensioni, poiché riducono progressivamente la dimensione dell’immagine attraverso il pooling. Al contrario, le ViT possono essere computazionalmente onerose su immagini di grandi dimensioni, poiché calcolano l’attenzione tra tutte le patch. Infine, le ViT solitamente richiedono set di dati di addestramento più grandi rispetto alle CNN per ottenere buone prestazioni, a causa del loro campo ricettivo globale.

Nonostante queste differenze, sia le CNN che i ViT rappresentano strumenti preziosi nella toolbox di qualsiasi ricercatore o ingegnere in AI.

 

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments