Au cours de la dernière décennie, les CNN ont déclenché une révolution dans le domaine de la vision par ordinateur. L’apprentissage profond a remporté la première place dans de nombreux défis de vision par ordinateur, et de nombreuses techniques traditionnelles de vision par ordinateur sont devenues redondantes. En 2020, une nouvelle architecture, le Vision Transformer (ViT), a retenu l’attention des chercheurs. Il a montré des résultats prometteurs en surpassant les CNN SOTA dans de nombreuses tâches de reconnaissance d'images avant de les battre dans des tâches plus avancées telles que la détection et la segmentation d'objets.
Les CNN deviennent-ils redondants avec l’invention des Vision Transformers ?
D'abord, nous présenterons l'architecture Vision Transformer. Deuxièmement, nous expliquerons quelques différences essentielles entre les CNN et les ViT. Alors, nous plongerons dans une comparaison quantitative des deux architectures concernant les performances, les données d'entraînement et le temps.
TLDR
- Les CNN sont une architecture plus mature, il est donc plus facile de les étudier, de les mettre en œuvre et de les entraîner par rapport aux Transformers.
- Les CNN utilisent la convolution, une opération « locale » limitée à un petit voisinage d'une image. Les Transformateurs Visuels utilisent l’auto-attention, une opération « globale », puisqu’elle tire des informations de l’image entière. Cela permet au ViT de capturer efficacement des pertinences sémantiques distantes dans une image.
- Les transformateurs ont atteint des métriques plus élevées dans de nombreuses tâches de vision, gagnant une place SOTA.
- Les transformateurs ont besoin de plus de données de formation pour obtenir des résultats similaires ou surpasser les CNN.
- Les transformateurs peuvent avoir besoin de plus de ressources GPU pour être formés.
Transformers et Auto-Attention
Initialement conçus pour les tâches de traitement du langage naturel, les transformateurs sont des architectures très efficaces pour les données qui peuvent être modélisées sous forme de séquence (par exemple, une phrase est une séquence de mots). Il résout de nombreux problèmes auxquels d’autres modèles séquentiels tels que les réseaux de neurones récurrents sont confrontés. Les transformateurs sont constitués de piles de blocs transformateurs. Ces blocs sont des réseaux multicouches comprenant des couches linéaires simples, des réseaux à action directe et couches d'auto-attention, l'innovation clé des transformateurs, représentée par l'encadré « Multi-Head Attention » dans l'image ci-dessous.
Schéma d'un bloc transformateur. Norm fait référence à une couche de normalisation, Multi-Head Attention est la couche d'auto-attention, MLP est une couche entièrement connectée. Les signes plus représentent une opération (par ex.
concaténation) d'une sortie avec une connexion résiduelle. Source : [2]
Auto-attention : un aperçu technique
L’auto-attention permet à un réseau d’extraire et d’utiliser directement des informations provenant de contextes arbitrairement vastes. Au cœur d'une approche basée sur l'attention se trouve la comparaison d'un élément d'intérêt à une collection d'autres éléments de la séquence. pour révéler leur pertinence dans le contexte actuel.
La couche d'auto-attention mappe une entrée(X1,X2,,Xn) dans une sortie(et1,et2,,etn). Par exemple, la sortieet3 de la couche d’attention est une combinaison d’un ensemble de comparaisons entre X1,X2 et X3 avec X3 lui-même. L’image ci-dessous aide à faire la lumière à ce sujet. Notez que seuls les éléments passés de la séquence sont utilisés, c'est-à-dire X4 n'est pas utilisé pour l'informatiqueet3.
Mappage d'une séquence d'entréeX à une séquence de sortieet par l'attention personnelle. Toutes les entrées précédentesXjej y compris celui faisant l'objet de l'enquête, sont utilisés afin de produire un résultatetj . Source : [Et. Jurafksy, James H. Martin :Traitement de la parole et du langage (3e éd. Projet)]
En interne dans la couche d'attention, une projection de l'entrée x vers un autre espace a lieu. Trois nouvelles variables latentes, q, k et v, sont créées en multipliant la variable initiale xi par des matrices apprenablesDANSQ,DANSK,DANSDANS ou simplementQ, K etDANS. Sur chaque entréeXje , 3 nouvelles variablesqje,kje,dansje sont créées. Officiellement: qje=DANSQXje , kje=DANSKXje ,dansje=DANSDANSXje.
Par conséquent, un score d’attentionje est calculé, ce qui indique le degré de corrélation/ signification existant entre deux entréesXje,Xj. Plus leur corrélation est forte dans le contexte de la séquence, plus le score d’attention est élevé.
Enfin, la sortie de la couche d'attentionetje est calculé comme la somme pondérée :
Dans une couche d’attention multi-têtes, nous avons plusieurs couches d’attention de ce type. Le concept est que nous pouvons détecter différentes corrélations sémantiques entre les entrées en utilisant plusieurs tableauxQje,Kje,DANSje (têtes) au lieu d’un seul. Par exemple, une tête peut détecter des pertinences géométriques tandis qu'une autre des pertinences de texture. Ainsi, nous pouvons mieux interpréter les dépendances présentes dans une séquence.
Transformer des images en données séquentielles
Tout ce que nous avons expliqué fait référence à des données séquentielles, mais les images sont représentées sous forme de matrices 3D et non sous forme de séquences 1D. C'est ici que réside la différence entre un transformateur PNL traditionnel et un transformateur de vision. Il s’agit de concevoir une image pour la représenter sous forme de séquence. La procédure est la suivante.
- Diviser l'originalHDANSC image en patchs 3D de dimensionsP.P.C (P = 16 a été utilisé dans [2]).
- Aplatissez les patchs 3D en vecteurs 1DdeP.2C éléments chacun.Une projection linéaire dans un autre espace est souvent utilisée pour créer une entrée ressemblant à une intégration de texte.
- Concaténez le vecteur aplati avec une valeur appelée intégration positionnelle. Cette intégration positionnelle permet de suivre l'ordre spatial des correctifs dans l'image d'origine.
D'une image structurée aux données séquentielles. L'image est divisée en patchs, les patchs sont aplatis et projetés dans un autre espace. Enfin, une intégration positionnelle est concaténée pour garder une trace de l'ordre spatial, avant d'envoyer l'entrée au transformateur. Modifié par [2].
Après avoir terminé les étapes mentionnées ci-dessus, l'image originale deHDANSC les dimensions ont été transformées enN vecteurs, oùN = (HDANS )/P.2 et chaque vecteur aP.2C éléments. Maintenant, ces vecteurs peuvent être introduits dans le bloc transformateur, etle mécanisme d'attention découvrira les connexions entre les différents correctifs en calculant leurs scores d'attention. Si des correctifs spatialement éloignés sont sémantiquement connectés, leur score d'attention sera élevé, permettant au transformateur d'extraire des fonctionnalités « globales » au lieu de simplement « locales ». Par exemple, un patch en haut de l’image et un autre en bas peuvent avoir une corrélation sémantique visuelle, permettant d’obtenir un score d’attention élevé.
Comment et pourquoi les ViT sont-ils différents des CNN ?
Avant d'approfondir notre comparaison entre CNN et ViT, nous devons d'abord discuter de quelques points importants.différences qualitatives entre les deux architectures. Contrairement aux transformateurs de vision, les réseaux de neurones convolutifs (CNN) traitent les images comme des tableaux de pixels structurés et les traitent par convolutions.En fait opération d’apprentissage profond pour la vision par ordinateur. Grâce à ces filtres convolutifs entraînables, les CNN créent des cartes de caractéristiques qui sont des représentations cachées de l'image originale, généralement inexplicables pour nous. Ces cartes de caractéristiques sont créées grâce à l'opération de convolution qui n'affecte qu'un petit quartier (patch) de l'image à la fois. On peut donc considérer qu'il s'agit d'un fonctionnement local par rapport au mécanisme d'attention du transformateur.
Même si le paradigme de convolution a fourni d’excellents résultats au cours de la dernière décennie, il comporte certains défis que Transformers vise à résoudre.
- Tous les pixels n’ont pas la même importance :Les convolutions appliquent les mêmes filtres sur tous les pixels d'une image quelle que soit leur importance. Cependant, les pixels de premier plan sont généralement plus importants que les pixels d’arrière-plan dans les tâches de vision telles que la détection d’objets ou la reconnaissance d’images.
- Tous les concepts ne sont pas partagés entre les images :Chaque filtre convolutif « reconnaît » des concepts spécifiques (par exemple, les bords, les yeux humains, les formes). Toutes les images auront des bords, donc un « filtre de bord » ou un « filtre de forme » sera toujours utile. Néanmoins, il n’en va pas de même pour un filtre qui détecte des caractéristiques humaines comme les yeux, car toute image sans humain rendra le filtre inutile.
- La convolution a du mal à relier des concepts spatialement distants :Chaque filtre de conversion est tenu de fonctionner uniquement sur un petit voisinage de pixels. Relier les concepts spatialement les uns aux autres est souvent vital, mais les CNN ont du mal à le faire. L'augmentation de la taille du noyau (filtre) ou l'ajout de plus de profondeur au CNN atténue le problème, mais cela ajoute de la complexité au modèle et au calcul sans résoudre explicitement le problème.
Les Vision Transformers offrent un nouveau paradigme prometteur qui ne souffre pas de ces problèmes en raison de son mécanisme d’auto-attention qui fonctionne à l’échelle « mondiale ». Le mécanisme d’attention peut connecter sémantiquement des régions d’image éloignées les unes des autres, offrant ainsi une perception avancée de l’image. De plus, de faibles scores d’attention sont calculés pour les pixels sans importance, montrant ainsi des représentations plus efficaces.
Concernant les transformateurs de formation, plus que dans les CNN,pré-formation auto-supervisée est utilisée sur de vastes ensembles de données, et les connaissances sont ensuite transférées vers la tâche finale en aval. L’auto-supervision et les Transformers forment une combinaison très bien adaptée. Les CNN peuvent également être pré-entraînés avec auto-supervision, mais cette méthode d'apprentissage a principalement gagné du terrain avec des Transformers qui ont été formés sur d'énormes ensembles de données de texte non structurés et plus tard avec des transformateurs de vision pré-entraînés sur de grands ensembles de données d'images.
Comparaison A : performances
Sur la tâche de détection d'objets (tâche COCO 2017), DEtection TRansformer (DETR) [4] et sa variante, le Déformable DETR [4], sont des architectures populaires. Dans [4], les auteurs comparent le DETR avec des références concurrentes en matière de détection d'objets telles que Faster RCNN et EfficientDet [7], qui s'appuient tous deux sur les CNN.
Les résultats montrent que la détection d'objets avec Transformers peut offrir une détection améliorée par rapport aux architectures Faster-RCNN lors de l'utilisation des mêmes backbones (ResNet 50, ResNet 101) pour l'extraction de fonctionnalités. En particulier, ils atteignent jusqu'à 4,7 d'améliorationPA. Cependant, les détecteurs d'objets basés sur SOTA CNN comme l'EfficientDet-D7 sont toujours supérieurs, surpassant les transformateurs surPA de 3,5 points sur la tâche de vision COCO 2017.
Tableau modifié par [4].
Une autre étude [5] a suggéré le Swin Transformer comme modèle de base pour la détection d'objets. Ils ont comparé Swin avec d'autres modèles de base SOTA CNN comme ResNeXt (X101) sur les tâches de détection d'objets et de segmentation d'images. Ils ont constaté que pour des réseaux avec un nombre similaire de paramètres, un réseau fédérateur Transformer permet d'obtenir une augmentation allant jusqu'à 3,9.UNP.75 dans la détection d'objets et jusqu'à 3,5 augmentéUNP.75 en segmentation, faisant du transformateur un meilleur choix en termes de performances.
UNP.boîtefait référence aux performances de détection d'objets, tandis queUNP.masque à la segmentation d'images.
Comparaison de différents modèles de base pour la détection d'objets et la segmentation d'images. R50 est ResNet-50, X101 est ResNeXt-101, Swin T/S/B sont respectivement les architectures de transformateur minuscule, petite et grande. Source [5]
Comparaison B : temps de train et données
Dans [2], les auteurs ont comparé les CNN SOTA et leur nouvelle architecture Vision Transformer. Le graphique ci-dessous compare la précision de la classification sur ImageNet par rapport aux exemples de pré-formation utilisés. Une conclusion significative ressort de ces résultats.Les architectures de transformateurs ont besoin de plus de données de formation pour atteindre une précision égale ou améliorée que les CNN.
Initialement, seules 10 millions d’images ont été utilisées pour la pré-formation auto-supervisée à partir de l’ensemble de données d’images interne de Google, JFT. Même les grandes architectures de transformateurs ne peuvent pas égaler les performances du ResNet50, qui a beaucoup moins de paramètres lors de l'utilisation d'images de 10 millions. Le plus grand transformateur n'égale les performances de CNN ResNet152 qu'une fois que 100 millions d'images sont utilisées pour le pré-entraînement !
Ces résultats montrent que les transformateurs sont assez « gourmands » en données et que les CNN offriront une meilleure précision lorsque les données sont rares.
Nombre d'échantillons de pré-formation utilisés pendant la pré-formation auto-supervisée par rapport à la précision finale de la tâche en aval. Les transformateurs sont plus « gourmands » en données que les CNN. Source [2].
De plus, les auteurs de [4] comparent le temps de formation en heures GPU requis pour le challenge COCO 2017. La formation d'un modèle Faster-RCNN avec 42 millions de paramètres a nécessité 380 heures GPU, tandis qu'un modèle DETR équivalent avec 41 millions de paramètres a nécessité 2 000 heures GPU ! Cependant, grâce à des techniques de formation améliorées et à des modifications de l'architecture (Deformable DETR [4]), ils ont réussi à réduire le temps à seulement 325 heures GPU, ce qui montre que même si les Transformers nécessitent en moyenne beaucoup plus de temps de formation, la recherche dans le domaine apporte certainement d'énormes améliorations !
Emballer
Bien qu’il s’agisse d’architectures relativement nouvelles, les Vision Transformers ont montré des résultats prometteurs. Ils ont suscité un énorme intérêt dans la recherche, nous ne pouvons donc que nous attendre à des améliorations. Les ViT peuvent actuellement obtenir de nouveaux résultats SOTA dans la plupart des tâches de vision, dépassant les CNN. De plus, une excellente étude sur les propriétés ViT [6] ont montré que par rapport aux CNN, ils sont plus robustes contre les occlusions d'objets, les perturbations d'image et les changements de domaine. Même après avoir mélangé aléatoirement des patchs d’images, les ViT peuvent conserver leurs niveaux de précision de manière impressionnante.
Il ne fait aucun doute que les ViT sont d’excellentes architectures avec un énorme potentiel pour l’avenir de la vision par ordinateur. Cependant, leur grande soif de données pose un défi de taille pour le projet de vision par ordinateur moyen. Étant donné que les Transformers ont besoin de 30 à 100 millions d'images pour pré-entraînement auto-supervisée, il est presque impossible d’en former un à partir de zéro à moins d’avoir les ressources nécessaires. Si des modèles pré-entraînés sont disponibles, il est plus facile d'affiner votre ensemble de données, mais de nombreuses données sont néanmoins attendues.
Concernant le temps de formation, les architectures Transformer nécessitent en moyenne beaucoup plus de ressources de calcul. Cependant, la recherche dans le domaine a déjà proposé des architectures améliorées qui nécessitent des temps de formation similaires aux CNN.
D’un autre côté, les CNN peuvent toujours atteindre des performances comparables avec moins de données. Cette caractéristique les rend toujours pertinents pour la plupart des projets de vision par ordinateur. Les CNN restent un excellent choix et s'acquittent probablement assez bien de la plupart des tâches. De plus, les CNN sont plus matures, ce qui les rend plus faciles à créer et à former. Prétendre que les CNN sont déjà redondants est naïf. Nous devrions être reconnaissants de disposer d'un autre excellent outil, le ViT, dans notre boîte à outils d'architecture de vision par ordinateur. Mais comme tous les problèmes ne sont pas liés aux clous, vous ne devriez pas toujours utiliser un marteau.
Les références
[1]Transformateurs visuels : représentation et traitement d'images basés sur des jetons pour
[2]UNE IMAGE VAUT 16X16 MOTS : TRANSFORMATEURS POUR LA RECONNAISSANCE D'IMAGES À GRANDE ÉCHELLE.
[3]Transformers in Vision : une enquête
[4]Détection d'objets de bout en bout avec des transformateurs
[5]Swin Transformer : transformateur de vision hiérarchique utilisant des fenêtres décalées
[6]Propriétés intrigantes des transformateurs de vision
[7]EfficientDet : détection d'objets évolutive et efficace