Vision Transformer
Le Vision Transformer (ViT) est une architecture de deep learning qui applique le mécanisme d’auto-attention des Transformers directement à des séquences de patches d’images, démontrant qu’un Transformer pur, sans convolution, peut égaler ou surpasser les réseaux convolutionnels (CNNs) sur les tâches de classification d’images lorsqu’il est pré-entraîné à grande échelle.
- Auteurs
- Alexey Dosovitskiy et al. (Google Brain)
- Publication
- ICLR 2021 (« An Image is Worth 16×16 Words »)
- Principe
- Image → patches → embeddings linéaires + position → encodeur Transformer → classification
- Variantes
- ViT-B (86M), ViT-L (307M), ViT-H (632M) | patch sizes : /8, /14, /16, /32
- Successeurs
- DeiT, Swin Transformer, BEiT, CaiT, CrossViT
- Impact SSL
- Backbone de DINO, MAE, DINOv2, DINOv3
La révolution : « An Image is Worth 16×16 Words »
Avant le ViT (2020), le consensus en vision par ordinateur était que les CNNs étaient indispensables. Leur biais inductif (localité spatiale, invariance par translation) était considéré comme essentiel pour traiter les images. L’attention avait été utilisée en complément des CNNs (SENet, CBAM), mais jamais comme architecture exclusive pour la vision.
Le ViT a brisé ce consensus avec une démonstration simple mais percutante : un Transformer standard (encodeur BERT, sans modification), appliqué directement à des patches d’images, peut surpasser les meilleurs CNNs (ResNet, EfficientNet) sur ImageNet et d’autres benchmarks. La condition : un pré-entraînement à grande échelle (JFT-300M, 300 millions d’images). Sur des datasets plus petits (ImageNet-1K seul), les CNNs gardaient un avantage grâce à leurs biais inductifs, mais ce gap disparaissait avec plus de données.
Ce résultat a eu des implications profondes. Il a unifié les architectures de NLP et de vision autour du même paradigme (le Transformer), ouvert la voie aux modèles multimodaux (CLIP, Flamingo, GPT-4V), et déclenché une explosion de recherche sur le self-supervised learning pour la vision (DINO, MAE, DINOv2).
Architecture détaillée
Découpage en patches (tokenization)
L’image d’entrée de dimension H×W×C (hauteur, largeur, canaux RGB) est découpée en N patches non-chevauchants de taille P×P pixels. Chaque patch est aplati en un vecteur de dimension P²×C. Le nombre total de patches est N = (H×W) / P². Pour une image 224×224 avec des patches 16×16, cela donne N = 196 patches (196 « tokens visuels »).
La taille des patches est un paramètre crucial. Des patches plus petits (8×8) donnent plus de tokens (784 pour une image 224×224), offrant une résolution spatiale plus fine mais avec un coût d’attention quadratique (~16× plus cher que 16×16). Des patches plus grands (32×32) sont plus rapides mais moins précis. Le compromis standard est 16×16 (notation ViT/16) ou 14×14 (ViT/14, utilisé par DINOv2).
Embedding linéaire + position
Chaque patch aplati est projeté dans un espace d’embedding de dimension D via une projection linéaire apprise (une matrice de poids). C’est l’équivalent de l’embedding de tokens en NLP, mais pour des patches d’image. Un token [CLS] (classification token) apprennable est ajouté en tête de la séquence, comme dans BERT. Ce token agrège l’information globale de l’image à travers les couches d’attention et sert de représentation finale pour la classification.
Des embeddings positionnels apprenables (vecteurs 1D) sont ajoutés à chaque token pour encoder la position spatiale du patch dans l’image. Sans ces embeddings, le Transformer traiterait les patches comme un ensemble non-ordonné. L’article original utilise des embeddings positionnels 1D standard (et non 2D), car les expériences montrent un gain négligeable avec les variantes 2D.
Encodeur Transformer
La séquence de tokens (patches embeddings + [CLS]) est traitée par un encodeur Transformer standard : une pile de L blocs, chacun composé de Multi-Head Self-Attention (MSA) suivi d’un MLP (feedforward network), avec des connexions résiduelles et du Layer Normalization avant chaque sous-couche (pre-norm).
L’auto-attention permet à chaque patch de « voir » tous les autres patches de l’image, capturant des dépendances à longue portée dès la première couche. C’est la différence fondamentale avec les CNNs, dont le champ réceptif est local et ne s’étend globalement qu’après plusieurs couches empilées. Cette attention globale est ce qui permet aux ViT de développer les propriétés émergentes observées avec DINO (segmentation sémantique dans les cartes d’attention).
Tête de classification
La représentation finale du token [CLS] (après le dernier bloc Transformer) est passée dans un MLP de classification (head) pour produire les probabilités de classe. Pendant le pre-training, la tête est un MLP à une couche cachée. Pendant le fine-tuning, elle est remplacée par une couche linéaire unique.
| Variante | Couches (L) | Dimension (D) | Têtes MSA | Paramètres |
|---|---|---|---|---|
| ViT-Base (ViT-B) | 12 | 768 | 12 | 86M |
| ViT-Large (ViT-L) | 24 | 1 024 | 16 | 307M |
| ViT-Huge (ViT-H) | 32 | 1 280 | 16 | 632M |
Le facteur données : quand le ViT surpasse les CNNs
Le ViT a un biais inductif plus faible que les CNNs : il ne suppose ni la localité spatiale, ni l’invariance par translation. Cela signifie qu’il a besoin de plus de données pour apprendre ces propriétés à partir des données elles-mêmes. Sur ImageNet-1K (1,28 million d’images), le ViT-L sous-performe un ResNet de taille comparable. Sur ImageNet-21k (14 millions d’images), le ViT-L rattrape le ResNet. Sur JFT-300M (300 millions d’images), le ViT-H surpasse tous les CNNs tout en étant plus efficace en calcul.
Ce résultat a un corollaire important : le ViT nécessite soit un très grand dataset supervisé, soit un pré-entraînement SSL efficace pour exploiter son potentiel. C’est pourquoi les méthodes SSL (DINO, MAE) ont un impact disproportionné sur les ViT par rapport aux CNNs : elles fournissent le volume d’entraînement nécessaire sans labels humains.
Des travaux ultérieurs (DeiT, AugReg) ont montré qu’avec des augmentations de données et une régularisation adaptées (MixUp, CutMix, RandAugment, label smoothing, Stochastic Depth), les ViT peuvent être entraînés efficacement sur ImageNet-1K seul, sans dataset massif. Mais le SSL reste la voie la plus performante.
Variantes principales
DeiT (Data-efficient Image Transformers, 2021)
DeiT (Meta) démontre que les ViT peuvent être entraînés efficacement sur ImageNet-1K avec des augmentations fortes et un token de distillation. Ce token supplémentaire apprend à reproduire les sorties d’un CNN teacher (RegNet), combinant les forces des deux architectures. DeiT a rendu le ViT accessible aux équipes sans accès à des datasets de 300M d’images.
Swin Transformer (2021)
Swin Transformer (Microsoft) introduit une attention par fenêtres glissantes (window attention) et une structure pyramidale hiérarchique. Au lieu de calculer l’attention globale (quadratique en nombre de patches), Swin calcule l’attention dans des fenêtres locales qui se décalent entre les couches. Le coût est linéaire en taille d’image. Swin a établi des records sur COCO (détection d’objets) et ADE20K (segmentation sémantique) et est devenu un backbone standard pour les tâches denses.
Autres variantes notables
CaiT (Class-Attention in Image Transformers) sépare les couches de self-attention entre patches et la couche d’attention de classification (class-attention), améliorant la stabilité de l’entraînement pour les grands ViT. CrossViT utilise deux branches ViT à résolutions différentes (small patches et large patches) avec une cross-attention entre les branches pour capturer des features multi-échelles. Les architectures hybrides ajoutent un stem convolutionnel (3 couches CNN) avant le ViT pour extraire des features locales, ce qui améliore les performances sur les petits datasets sans surcoût significatif.
ViT et Self-Supervised Learning : la synergie
Les ViT bénéficient davantage du self-supervised learning que les CNNs. Voici les méthodes SSL qui exploitent le mieux les ViT :
DINO / DINOv2 : auto-distillation student-teacher avec multi-crop. Les cartes d’auto-attention du ViT DINO segmentent automatiquement les objets. DINOv2 (ViT-g, 1B params) est le backbone SSL de référence.
MAE : masked image modeling qui exploite naturellement la structure patch/token du ViT. 75% de masquage, encodeur sur les patches visibles uniquement. ViT-Huge MAE atteint 87,8% sur ImageNet.
MoCo v3 : extension du contrastive learning MoCo aux ViT, avec des ajustements de stabilité d’entraînement (batch normalization remplacée par layer normalization, gradient clipping).
BEiT : masked image modeling avec tokenization visuelle. Prédit des tokens discrets (DALL-E) au lieu de pixels bruts.
Le message est clair : en 2026, un ViT pré-entraîné par SSL (DINOv2 ou MAE) est le backbone de référence pour la vision par ordinateur. Les CNNs pré-entraînés supervisés sur ImageNet, qui dominaient depuis 2012 (AlexNet), sont progressivement remplacés.
Applications
Classification d’images
Les ViT dominent les benchmarks de classification : ImageNet, CIFAR-100, VTAB (qui inclut des tâches naturelles, spécialisées et structurées). ViT-H/14 pré-entraîné sur JFT-300M atteint 88,5% top-1 sur ImageNet, surpassant tous les CNNs. Avec le SSL (MAE), ViT-H atteint 87,8% en utilisant uniquement ImageNet-1K.
Détection d’objets et segmentation
Les ViT ont remplacé les backbones CNN dans les pipelines de détection. Swin Transformer est le backbone de référence pour COCO. Les ViT pré-entraînés par MAE surpassent les ResNet pré-entraînés supervisés de +4 AP sur COCO detection. DINOv2/DINOv3 offrent des features denses directement utilisables pour la segmentation sémantique sans fine-tuning.
Modèles multimodaux
CLIP, Flamingo, GPT-4V, LLaVA et la plupart des modèles vision-langage utilisent un ViT comme encodeur d’images. L’unification de l’architecture Transformer entre vision et langage facilite l’alignement multimodal : le même type d’architecture traite les patches d’image et les tokens de texte, simplifiant l’intégration des deux modalités.
Imagerie médicale
Les ViT excellent en imagerie médicale, où la compréhension du contexte global (relations entre régions distantes de l’image) est cruciale. Classification de pathologies rétiniennes, segmentation de tumeurs, analyse histopathologique : les ViT pré-entraînés par SSL (DINOv2) sont devenus les backbones de référence, surpassant les CNNs surtout quand les données labellisées sont limitées.
Télédétection et observation de la Terre
Les images satellite, avec leur haute résolution et leurs caractéristiques spectrales, bénéficient de l’attention globale des ViT. DINOv3 inclut un modèle satellite dédié de 7B paramètres. La segmentation sémantique de surfaces terrestres et la détection de changements environnementaux utilisent de plus en plus des backbones ViT.
Forces et limites
Forces
Attention globale dès la première couche. Chaque patch peut interagir avec tous les autres, capturant des dépendances à longue portée que les CNNs ne modélisent qu’après de nombreuses couches empilées.
Scalabilité. Les performances s’améliorent de manière continue avec la taille du modèle et la quantité de données. Les ViT ne saturent pas aussi vite que les CNNs quand on augmente la capacité.
Unification avec le NLP. La même architecture Transformer traite texte et images, facilitant les modèles multimodaux et le transfert de techniques entre domaines.
Synergie avec le SSL. Les ViT exploitent beaucoup mieux le pre-training SSL que les CNNs, produisant des features plus riches et plus transférables.
Limites
Coût quadratique de l’attention. L’auto-attention est en O(N²), où N est le nombre de patches. Pour des images haute résolution, le coût devient prohibitif. Swin Transformer et ses successeurs atténuent ce problème avec l’attention par fenêtres.
Faible biais inductif. Sans convolution, le ViT n’intègre pas naturellement la localité spatiale ni l’invariance par translation. Il doit les apprendre à partir des données, ce qui nécessite plus de données ou un SSL efficace.
Données ou SSL obligatoires. Un ViT entraîné from scratch sur ImageNet-1K sous-performe un CNN de taille comparable. Le pré-entraînement à grande échelle (supervisé sur JFT-300M ou SSL via DINO/MAE) est nécessaire pour exploiter le potentiel du ViT.
Résolution fixe. Les embeddings positionnels sont liés à la taille d’entrée. Changer la résolution au test nécessite une interpolation bicubique des embeddings positionnels, ce qui peut dégrader les performances.
Verdict
Le Vision Transformer est l’architecture qui a unifié le deep learning autour du Transformer. En prouvant que les CNNs ne sont pas nécessaires pour la vision, le ViT a déclenché un changement de paradigme dont les effets continuent de se propager. Les modèles de fondation en vision (DINOv2, DINOv3), les modèles multimodaux (CLIP, GPT-4V), et les systèmes de production modernes utilisent massivement les ViT.
Pour les praticiens en 2026, le choix est clair : utilisez un ViT pré-entraîné par SSL (DINOv2 pour la polyvalence, MAE pour les meilleures performances en fine-tuning) comme backbone de votre pipeline de vision. Si les contraintes de latence ou de mémoire imposent un modèle plus léger, les ViT-S ou les modèles distillés de DINOv2 offrent un excellent compromis. Les CNNs (EfficientNet, ConvNeXt) restent pertinents pour l’edge computing et les systèmes temps réel très contraint, mais pour toute tâche où la qualité des features prime, le ViT est le choix par défaut.
Questions fréquentes sur le Vision Transformer
Quelle est la différence entre un Vision Transformer et un CNN ?
Un CNN (réseau convolutionnel) utilise des filtres locaux qui glissent sur l’image, capturant des patterns locaux (bords, textures) qui sont composés en features plus abstraites couche après couche. Un ViT découpe l’image en patches, les traite comme des tokens, et utilise l’auto-attention pour calculer les relations entre tous les patches simultanément. Le CNN a un biais inductif fort (localité, translation equivariance) qui le rend efficace avec peu de données. Le ViT n’a pas ce biais mais peut modéliser des dépendances globales dès la première couche, ce qui le rend supérieur avec beaucoup de données ou un bon pre-training SSL.
Faut-il un énorme dataset pour entraîner un ViT ?
Pas nécessairement. L’article original montrait un avantage des CNNs sur ImageNet-1K, mais DeiT (2021) a démontré qu’avec des augmentations fortes et de la distillation, un ViT peut être entraîné efficacement sur ImageNet-1K seul. Mieux encore, les méthodes SSL (MAE, DINO) permettent un pre-training sur ImageNet-1K non labellisé avec d’excellents résultats. En pratique, le plus simple est d’utiliser un ViT pré-entraîné (DINOv2 par exemple, disponible gratuitement) et de le fine-tuner sur votre dataset.
ViT-B/16, ViT-L/14, ViT-H/8 : que signifie cette notation ?
La notation ViT-X/Y indique la taille du modèle (X = Base, Large ou Huge) et la taille des patches en pixels (Y = 8, 14, 16 ou 32). ViT-B/16 est un ViT-Base avec des patches de 16×16 pixels (196 tokens pour une image 224×224). ViT-L/14 est un ViT-Large avec des patches de 14×14 (256 tokens). Des patches plus petits donnent plus de tokens, une meilleure résolution spatiale, mais un coût quadratiquement plus élevé.
Quel ViT pré-entraîné utiliser en 2026 ?
DINOv2 est le choix par défaut pour la polyvalence (classification, segmentation, retrieval, profondeur, sans fine-tuning). MAE est préférable si votre objectif est la classification après fine-tuning complet (meilleur score absolu). Pour les modèles multimodaux (image + texte), les ViT de CLIP sont la référence. Tous sont disponibles en open source via timm, Hugging Face Transformers, ou les repos GitHub officiels de Meta/Google.
Le Vision Transformer va-t-il remplacer complètement les CNNs ?
Pas complètement. Les CNNs conservent des avantages pour l’inférence temps réel sur appareils mobiles/edge (EfficientNet est plus rapide qu’un ViT à performance égale sur du matériel contraint). ConvNeXt (2022) a montré qu’un CNN modernisé (avec des recettes d’entraînement des ViT) peut rivaliser avec les ViT. En pratique, les architectures hybrides (stem convolutionnel + corps ViT) combinent le meilleur des deux mondes. Mais pour les serveurs, le cloud et les applications où la qualité des features prime sur la latence, le ViT est devenu le standard.