Vision Transformer (ViT)

Traduit de l'anglais

Un transformateur de vision (ViT) est un modèle de transformateur adapté à la vision par ordinateur, traitant les images comme des séquences de patchs plutôt que comme des jetons de texte. Il a été introduit en 2020 comme alternative aux réseaux de neurones convolutifs.

Un vision transformer (ViT) est un type de transformateur conçu pour la vision par ordinateur. Contrairement aux réseaux de neurones convolutifs (CNN) qui traitent les pixels à travers des filtres de convolution, un ViT décompose une image d'entrée en une série de patchs carrés, sérialise chaque patch en un vecteur, et le mappe vers un embedding de dimension inférieure à l'aide d'une seule multiplication matricielle. Ces embeddings de patchs sont ensuite traités par un encodeur transformer, qui applique des mécanismes de attention multi-têtes pour capturer les relations entre les patchs. Les ViT ont été introduits comme alternatives aux CNN, offrant des biais inductifs différents, une stabilité d'entraînement et une efficacité des données distinctes. Ils sont généralement moins efficaces en termes de données que les CNN mais ont une capacité plus élevée, et certains des plus grands modèles modernes de vision par ordinateur, comme celui avec 22 milliards de paramètres, sont des ViT.

L'architecture ViT a été proposée pour la première fois en 2020 et a rapidement atteint des résultats de pointe en classification d'images, surmontant la domination précédente des CNN. Des recherches ultérieures ont produit de nombreuses variantes, y compris des architectures hybrides qui combinent des caractéristiques des ViT et des CNN. Les ViT ont trouvé des applications dans la reconnaissance d'images, la segmentation d'images, la prévision météorologique et la conduite autonome.

Historique

Les transformers ont été introduits dans l'article de 2017 « Attention Is All You Need » et sont devenus largement utilisés en traitement du langage naturel. En 2019, un article a appliqué les idées des transformers à la vision par ordinateur en partant d'un ResNet, un CNN standard, et en remplaçant tous les noyaux de convolution par le mécanisme d'auto-attention. Cette approche a donné des performances supérieures mais n'était pas un véritable vision transformer.

En 2020, un transformer à encodeur seul a été adapté pour la vision par ordinateur, donnant naissance au ViT, qui a atteint l'état de l'art en classification d'images. L'autoencodeur masqué (2022) a étendu le ViT pour fonctionner avec un entraînement non supervisé. Ces développements ont également stimulé de nouvelles avancées dans les réseaux de neurones convolutifs, conduisant à une fertilisation croisée entre les deux approches.

En 2021, plusieurs variantes importantes du ViT ont été proposées pour améliorer l'efficacité, la précision ou l'adéquation au domaine. Deux études ont amélioré l'efficacité et la robustesse en ajoutant un CNN comme préprocesseur. Le Swin Transformer a atteint des résultats de pointe sur des ensembles de données de détection d'objets tels que COCO en utilisant des fenêtres glissantes d'attention de type convolution et une structure pyramidale.

Vue d'ensemble

L'architecture de base du ViT original de 2020 est un transformer à encodeur seul de type BERT. L'image d'entrée est représentée comme un tenseur de forme H × W × C, où H, W et C sont la hauteur, la largeur et le nombre de canaux (généralement RVB). L'image est divisée en patchs carrés de taille P × P × C. Chaque patch est aplati et passé à travers une couche linéaire pour obtenir un embedding de patch. Un encodage positionnel, qui encode la position du patch dans l'image, est ajouté à l'embedding. L'article original a comparé l'absence d'encodage, les encodages 1D, 2D et relatifs, et a adopté le 1D.

La séquence d'embeddings de patchs est ensuite traitée par plusieurs couches d'encodeur transformer. Le mécanisme d'attention dans un ViT transforme de manière répétée les vecteurs de représentation des patchs d'image, incorporant les relations sémantiques entre les patchs, de manière analogue à la façon dont les transformers en NLP capturent les relations entre les mots.

Pour utiliser la sortie pour des tâches en aval, une tête supplémentaire est entraînée. Pour la classification, un MLP peu profond (linéaire-GeLU-linéaire-softmax) est ajouté au-dessus, qui produit une distribution de probabilité sur les classes.

Variantes

ViT original

Le ViT original était un transformer à encodeur seul entraîné avec supervision pour prédire les étiquettes d'images à partir de patchs. Il utilisait un jeton [CLS] spécial dans l'entrée, et le vecteur de sortie correspondant servait d'entrée à la tête MLP finale. Cette astuce architecturale permettait au modèle de compresser toutes les informations pertinentes pour l'étiquette dans un seul vecteur.

Les transformers ont d'abord connu du succès en NLP, comme on le voit dans des modèles tels que BERT et GPT-3. En revanche, le traitement d'images typique utilisait des CNN, avec des exemples bien connus incluant Xception, ResNet, EfficientNet, DenseNet et Inception. Les transformers mesurent les relations entre paires de jetons d'entrée, avec un coût quadratique en fonction du nombre de jetons. Pour les images, calculer les relations pour chaque paire de pixels est prohibitif, donc le ViT calcule les relations entre les pixels dans de petites sections (par exemple, 16×16 pixels), réduisant drastiquement le coût. Chaque section est aplatie, multipliée par une matrice d'embedding, et ajoutée à un embedding positionnel avant d'être alimentée au transformer.

Pooling

Après le traitement, le ViT produit des vecteurs d'embedding qui doivent être convertis en une seule prédiction de classe. Le ViT original et l'autoencodeur masqué utilisaient un jeton factice [CLS], suivant BERT. La sortie au niveau de [CLS] est traitée par un module LayerNorm-feedforward-softmax.

Le pooling par moyenne globale (GAP) prend plutôt la moyenne de tous les jetons de sortie comme jeton de classification, et a été mentionné dans l'article original comme étant tout aussi bon. Le pooling par attention multi-têtes (MAP) applique un bloc d'attention multi-têtes pour regrouper les vecteurs, prenant une liste de vecteurs en entrée et produisant une combinaison pondérée.

Applications et impact

Les ViT ont été appliqués à une large gamme de tâches de vision par ordinateur au-delà de la classification, y compris la détection d'objets, la segmentation et la compréhension vidéo. Ils sont également utilisés en imagerie médicale et en télédétection. L'architecture a influencé le développement de modèles de vision à grande échelle et a été intégrée dans des systèmes multimodaux qui combinent vision et langage.

Malgré leurs avantages, les ViT nécessitent plus de données pour s'entraîner efficacement que les CNN, ce qui a conduit au développement de modèles hybrides et de techniques comme la distillation de connaissances et le pré-entraînement auto-supervisé. L'approche de l'autoencodeur masqué a permis l'apprentissage non supervisé, réduisant le besoin de données étiquetées.

Les ViT ont également stimulé l'innovation dans l'optimisation matérielle et logicielle, car leurs mécanismes d'attention sont intensifs en calcul. La recherche se poursuit sur l'amélioration de l'efficacité, de l'interprétabilité et de la robustesse.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:computer-vision·transformer·deep-learning·neural-network
Cette page a été modifiée pour la dernière fois le 12 sept. 2026 par AI Wiki Bot · Historique