Article de reference

Transformateur de vision

Un transformateur de vision ( ViT ) est un transformateur conçu pour la vision par ordinateur . Un ViT décompose une image d'entrée en une série de patchs (plutôt qu'un texte en...

Un transformateur de vision ( ViT ) est un transformateur conçu pour la vision par ordinateur . Un ViT décompose une image d'entrée en une série de patchs (plutôt qu'un texte en jetons ), sérialise chaque patch en un vecteur et le projette dans un espace de dimension inférieure par une simple multiplication matricielle . Ces vecteurs sont ensuite traités par un encodeur de transformateur comme s'il s'agissait de vecteurs de jetons.

Les ViT ont été conçus comme alternatives aux réseaux de neurones convolutifs (CNN) pour les applications de vision par ordinateur. Ils présentent des biais inductifs, une stabilité d'entraînement et une efficacité de données différentes. Comparés aux CNN, les ViT consomment moins de données, mais offrent une capacité supérieure. Certains des plus grands modèles de vision par ordinateur modernes sont des ViT, comme celui comportant 22 milliards de paramètres.

Suite à sa publication, de nombreuses variantes ont été proposées, avec des architectures hybrides combinant les caractéristiques des ViT et des CNN. Les ViT ont trouvé des applications dans la reconnaissance d'images , la segmentation d'images , les prévisions météorologiques et la conduite autonome .

Histoire

Les Transformers ont été introduits dans l'article « Attention Is All You Need » (2017) et sont largement utilisés en traitement automatique du langage naturel . Un article de 2019 a appliqué des concepts de Transformer à la vision par ordinateur. Plus précisément, les auteurs sont partis d'un ResNet , un réseau de neurones convolutif standard utilisé en vision par ordinateur, et ont remplacé tous les noyaux de convolution par le mécanisme d'auto-attention propre aux Transformers. Les résultats obtenus sont supérieurs. Cependant, il ne s'agit pas d'un Transformer dédié à la vision.

En 2020, un transformateur composé uniquement d'un encodeur a été adapté à la vision par ordinateur, donnant naissance au ViT, qui a atteint l'état de l'art en classification d'images, surpassant la domination antérieure des CNN. L'autoencodeur masqué (2022) a étendu le ViT pour permettre l'apprentissage non supervisé. Le transformateur de vision et l'autoencodeur masqué ont, à leur tour, stimulé de nouveaux développements dans le domaine des réseaux de neurones convolutifs.

Par la suite, il y a eu une fertilisation croisée entre l'approche CNN précédente et l'approche ViT.

En 2021, plusieurs variantes importantes des Vision Transformers (ViT) ont été proposées. Ces variantes visent principalement à améliorer l'efficacité, la précision ou l'adaptation à un domaine spécifique. Deux études ont amélioré l'efficacité et la robustesse des ViT en intégrant un réseau de neurones convolutif (CNN) comme préprocesseur. Le Swin Transformer a obtenu des résultats de pointe sur certains jeux de données de détection d'objets, tels que COCO , grâce à l'utilisation d'un mécanisme d'attention par fenêtres glissantes de type convolution et du processus pyramidal classique en vision par ordinateur.

Aperçu

Architecture du Vision Transformer, montrant les blocs Transformer contenant uniquement l'encodeur à l'intérieur

L'architecture de base utilisée dans l'article original de 2020 est la suivante. En résumé, il s'agit d'un Transformer de type BERT ne comportant que l'encodeur.

L'image d'entrée est de type

Pour chaque patch, celui-ci est traité par un opérateur linéaire afin d'obtenir un vecteur (« plongement du patch »). La position du patch est également transformée en un vecteur par « encodage de position » (l'article a testé l'absence de plongement, un plongement 1D, un plongement 2D et un plongement relatif ; le plongement 1D a été retenu). Les deux vecteurs sont additionnés, puis traités par plusieurs encodeurs Transformer.

Le mécanisme d'attention d'un ViT transforme itérativement les vecteurs de représentation des zones d'image, intégrant progressivement les relations sémantiques entre ces zones. Ceci est analogue au traitement automatique du langage naturel, où les vecteurs de représentation, en traversant un transformateur, intègrent progressivement les relations sémantiques entre les mots, de la syntaxe à la sémantique.

L'architecture décrite ci-dessus transforme une image en une séquence de représentations vectorielles. Pour les utiliser dans des applications en aval, un processeur supplémentaire doit être entraîné à les interpréter.

Par exemple, pour l'utiliser à des fins de classification, on peut y ajouter un MLP peu profond qui génère une distribution de probabilité sur les classes. L'article original utilise un réseau linéaire GeLU -softmax linéaire.

Variantes

ViT d'origine

Animation de ViT. Le jeton 0 est le jeton spécial <CLS>. Les 9 autres patchs sont projetés par une couche linéaire avant d'être transmis à l'encodeur Transformer en tant que jetons d'entrée 1 à 9.

Le modèle ViT original était un Transformer à encodeur uniquement, entraîné de manière supervisée pour prédire l'étiquette d'une image à partir de ses patchs. Comme pour BERT , il utilise un jeton spécial <CLS>en entrée, et le vecteur de sortie correspondant sert d'unique entrée à la tête MLP de sortie. Ce jeton spécial est une astuce architecturale permettant au modèle de compresser toutes les informations pertinentes pour la prédiction de l'étiquette de l'image en un seul vecteur.

Les transformeurs ont trouvé leurs premières applications dans le traitement automatique du langage naturel , comme le démontrent des modèles de langage tels que BERT et GPT-3 . En revanche, les systèmes de traitement d'images classiques utilisent un réseau de neurones convolutif (CNN). Parmi les projets les plus connus, citons Xception ResNet , EfficientNet , DenseNet [ et Inception .

Les transformateurs mesurent les relations entre paires de jetons d'entrée (mots dans le cas de chaînes de caractères), appelées attention . Le coût est quadratique par rapport au nombre de jetons. Pour les images, l'unité d'analyse de base est le pixel . Cependant, calculer les relations pour chaque paire de pixels d'une image typique est prohibitif en termes de mémoire et de puissance de calcul. ViT calcule plutôt les relations entre les pixels dans diverses petites sections de l'image (par exemple, 16x16 pixels), à un coût considérablement réduit. Les sections (avec des plongements positionnels) sont placées en séquence. Les plongements sont des vecteurs apprenables. Chaque section est organisée en une séquence linéaire et multipliée par la matrice de plongement. Le résultat, avec le plongement positionnel, est fourni au transformateur.

Améliorations architecturales

Mise en commun

, que l'on pourrait considérer comme les vecteurs de sortie d'une couche d'un ViT. La sortie de MAP estSet Transformer .

Des études ultérieures ont démontré que GAP et MAP sont tous deux plus performants que le regroupement de type BERT. Une variante de MAP a été proposée sous le nom d'attention de classe , qui applique MAP, puis feedforward, puis MAP à nouveau.

La ré-attention a été proposée pour permettre l'entraînement de ViT profond. Elle modifie le module d'attention multi-têtes.

Autoencodeur masqué

Architecture d'encodeur automatique masqué

L' autoencodeur masqué s'inspire des autoencodeurs de débruitage et des encodeurs de contexte . Il est constitué de deux ViT mis bout à bout. Le premier (« encodeur ») reçoit en entrée des patchs d'image encodés positionnellement et produit des vecteurs représentant chaque patch. Le second (appelé « décodeur », bien qu'il s'agisse toujours d'un Transformer fonctionnant uniquement comme encodeur) reçoit également en entrée des vecteurs encodés positionnellement et produit à nouveau des patchs d'image.

Entraînement

Lors de l'entraînement, les images d'entrée (224 px × 224 px dans l'implémentation originale) sont divisées selon un nombre défini de lignes sur chaque axe, produisant ainsi des patchs d'image. Un certain pourcentage de patchs est sélectionné pour être masqué par des jetons de masque, tandis que tous les autres sont conservés dans l'image. Le réseau est chargé de reconstruire l'image à partir des patchs non masqués restants. Dans l'implémentation originale, les jetons de masque sont des vecteurs apprenables . Une projection linéaire avec des plongements positionnels est ensuite appliquée au vecteur des patchs non masqués. Des expériences faisant varier le taux de masquage sur des réseaux entraînés sur l' ensemble de données ImageNet-1K ont montré qu'un taux de masquage de 75 % permettait d'obtenir des performances élevées, tant pour le réglage fin que pour l'exploration linéaire de l' espace latent de l'encodeur . Le MAE ne traite que les patchs non masqués pendant l'entraînement, ce qui augmente l'efficacité du traitement des données dans l'encodeur et réduit l'utilisation de la mémoire du transformateur .

Dans l'implémentation originale du MAE, un ViT moins gourmand en ressources de calcul est utilisé pour le décodeur. Les patchs masqués sont réinjectés à la sortie du bloc d'encodage sous forme de jetons de masque, et les deux sont ensuite transmis au décodeur. Une perte de reconstruction est calculée pour les patchs masqués afin d'évaluer les performances du réseau.

Prédiction

En prédiction, l'architecture du décodeur est entièrement supprimée. L'image d'entrée est divisée en patchs par le même algorithme qu'en entraînement, mais aucun patch n'est masqué. Une projection linéaire avec un vecteur d'intégration positionnelle est appliquée à chaque patch, et les vecteurs d'intégration résultants sont transmis à l'encodeur.

Utilisations et dérivés

Plusieurs variantes du MAE original ont été étudiées. Le MAE a été appliqué à la préformation auto-supervisée dans des contextes médicaux, notamment pour l'interprétation des radiographies pulmonaires. Des variantes du MAE ont été utilisées dans ce contexte afin d'optimiser la préformation dans les domaines médicaux.

MAE sous surveillance médicale
L'algorithme MAE supervisé médicalement vise à optimiser l'application des taux de masquage élevés du MAE aux jeux de données de lésions médicales. Il utilise un ensemble d'entraînement supervisé pour créer des cartes d'attention locale pour les images médicales, afin de contraindre les zones à masquer. En janvier 2025, l'algorithme MAE supervisé médicalement a atteint des performances de pointe pour la classification des lésions médicales sur les jeux de données Messidor-2, BTMD, HAM10000, DeepLesion et ChestXRay2017
MAE de la matrice de cooccurrence des niveaux de gris (GLCM-MAE)
GCLM-MAE utilise GCLM pour extraire les informations de texture des images et ainsi les préserver. Cette méthode résout un problème de sur-lissage des images par MAE classique, entraînant une perte de détails granulaires potentiellement importants en contexte médical. En juillet 2025, GCLM-MAE atteignait des performances de pointe pour l'identification du cancer de la vésicule biliaire, du cancer du sein (images échographiques), de la pneumonie (images radiographiques) et de la COVID-19 (images tomodensitométriques).
MAE sensible à la région, R-MAE
R-MAE remplace l'étape de génération de patchs du MAE original par un algorithme d'attribution de pixels individuels à des régions d'intérêt dans une image, lesquelles sont ensuite masquées simultanément. L'architecture d'encodage de régions est autonome, mais peut être combinée au MAE pour la reconstruction de régions.
MAE siamois (SiamMAE)
SiamMAE est un réseau conçu pour appliquer des auto-encodeurs multi-éléments (MAE) aux données vidéo. Il échantillonne deux images d'une vidéo (contre une seule pour le MAE original) et les étiquette comme « passée » et « future ». Le réseau masque la majorité des zones (environ 95 %) de l'image future, laisse l'image passée intacte et traite les deux images avec le bloc d'encodage MAE. L'architecture du décodeur est remplacée par des blocs d'attention qui projettent les zones de l'image passée sur l'image future pour la reconstruction. SiamMAE offre des performances comparables à celles de modèles plus complexes pour la segmentation et la propagation dans les vidéos.

Une architecture similaire a été BERT ViT (BEiT), publiée simultanément.

DINO

À l'instar de l'auto-encodeur masqué, la méthode DINO (auto -distillation sans étiquettes ) permet d'entraîner un modèle ViT par auto-supervision . DINO est une forme d' auto-distillation enseignant-élève . Dans DINO, l'élève est le modèle lui-même et l'enseignant est une moyenne exponentielle des états passés de l'élève. Cette méthode est similaire à des travaux antérieurs tels que le contraste de momentum et l'auto-distillation de variables latentes (BYOL)

La fonction de perte utilisée dans DINO est la perte d'entropie croisée entre la sortie du réseau enseignant (

  • Amélioration : La sortie du réseau enseignant est améliorée à l’aide d’une fonction softmax à température plus basse. Cela rend le réseau enseignant plus « fiable » dans ses prédictions, obligeant ainsi le réseau élève à apprendre des représentations plus pertinentes pour correspondre à la sortie améliorée du réseau enseignant.
  • Centrage : La sortie du réseau enseignant est centrée en faisant la moyenne de ses sorties précédentes. Cela empêche l’enseignant de privilégier une valeur de sortie particulière, encourageant ainsi l’élève à apprendre un ensemble de fonctionnalités plus diversifié.

En janvier 2024, Meta AI Research a publié une version mise à jour, DINOv2 , intégrant des améliorations au niveau de l'architecture, de la fonction de perte et de la technique d'optimisation. Ce modèle a été entraîné sur un ensemble de données plus vaste et plus diversifié. Les caractéristiques apprises par DINOv2 étaient plus transférables , ce qui se traduit par de meilleures performances pour les tâches en aval.

En août 2025, Meta AI Research a publié DINOv3, une mise à jour de DINOv2. Cette version introduit l'alignement image-texte, similaire à CLIP . Le modèle a été étendu à 7 milliards de paramètres et l'ensemble de données d'entraînement à 1,7 milliard d'images (obtenues par échantillonnage de diversité d'un ensemble initial de 17 milliards d'images). Sur le plan architectural, deux améliorations ont été apportées : l'ancrage de Gram et l' intégration positionnelle rotative axiale (RoPE ) avec effet de jittering. L'ancrage de Gram applique une auto-distillation enseignant-élève à la matrice de Gram entre les vecteurs de caractéristiques des patchs d'une image. Il évite le problème précédemment observé de dégradation des cartes de caractéristiques denses : alors que les performances sur les tâches globales (comme la classification) continuaient de s'améliorer, celles sur les tâches denses (comme la segmentation) atteignaient un pic rapidement avant de décliner, les cartes de caractéristiques devenant bruitées. L'intégration positionnelle rotative axiale rend le modèle plus robuste aux variations de résolution, d'échelle et de rapport hauteur/largeur des images.

Transformateur Swin

Le Swin TransformerS shifted windows ») s'inspire des CNN standard :

  • Au lieu d'effectuer une auto-attention sur l'ensemble de la séquence de jetons, un par patch, elle utilise une auto-attention « à fenêtre décalée », c'est-à-dire qu'elle ne porte son attention que sur des blocs carrés de patchs. Un bloc de patchs est analogue au champ réceptif d'une convolution.
  • Après chaque série de quelques blocs d'attention, une couche de fusion regroupe les jetons voisins de taille 2x2 en un seul jeton. Ce processus est analogue au pooling (réalisé avec des noyaux de convolution 2x2 et un pas de 2). La fusion consiste en une concaténation suivie d'une multiplication par une matrice.

Il est amélioré par Swin Transformer V2, qui modifie le ViT par un mécanisme d'attention différent :

  • LayerNorm immédiatement après chaque couche d'attention et de propagation directe (« res-post-norm ») ;
  • attention cosinus mise à l'échelle pour remplacer l'attention produit scalaire d'origine ;
  • biais de position relative continu à espacement logarithmique , qui permet l'apprentissage par transfert sur différentes résolutions de fenêtre.

TimeSformer

Le TimeSformer a été conçu pour les tâches de compréhension vidéo et utilise une auto-attention factorisée, similaire aux noyaux de convolution factorisés de l' architecture CNN Inception . Schématiquement, il divise une vidéo en images, et chaque image en une grille carrée de patchs (comme ViT). Soit les coordonnées de chaque patch :

  • Une couche d'attention spatiale est une couche d'auto-attention où chaque patch de requête
  • Une couche d'attention temporelle est l'endroit où l'exigence se situe.

Le TimeSformer a également examiné d'autres conceptions de couche d'attention, telles que la « couche d'attention de hauteur » où l'exigence est

ViT-VQGAN

Dans ViT-VQGAN , on trouve deux encodeurs ViT et un discriminateur. Le premier encode des patchs de 8x8 pixels d'une image en une liste de vecteurs, un par patch. Ces vecteurs proviennent exclusivement d'un ensemble discret de « codebook », comme dans la quantification vectorielle . Le second encode les vecteurs quantifiés en patchs d'image. L'objectif de l'apprentissage est de rendre l'image reconstruite (l'image de sortie) fidèle à l'image d'entrée. Le discriminateur (généralement un réseau de neurones convolutif, mais d'autres réseaux sont possibles) détermine si une image est l'image réelle originale ou une image reconstruite par ViT.

L'idée est essentiellement la même que celle de l'autoencodeur variationnel à quantification vectorielle (VQVAE) plus réseau antagoniste génératif (GAN).

Une fois entraîné, un tel ViT-VQGAN peut être utilisé pour convertir une image quelconque en une liste de symboles, et inversement. Cette liste de symboles peut ensuite servir à entraîner un transformateur autorégressif standard (comme GPT) pour générer une image de manière autorégressive. De plus, il est possible de prendre une liste de paires image-légende, de convertir les images en chaînes de symboles et d'entraîner un transformateur de type GPT. Lors des tests, il suffit alors de fournir une légende pour que l'image soit générée de manière autorégressive. C'est le principe de Google Parti.

Autres

D'autres exemples incluent le transformateur visuel, CoAtNet, CvT, le ViT (DeiT) à faible consommation de données, etc.

Dans l'architecture Transformer dans Transformer, chaque couche applique une couche Transformer de vision sur chaque embedding de patch d'image, ajoute les jetons résultants à l'embedding, puis applique une autre couche Transformer de vision.

Comparaison avec les CNN

En général, ViT utilise des tailles de patch supérieures à celles des noyaux CNN standard (3x3 à 7x7). ViT est plus sensible au choix de l'optimiseur, des hyperparamètres et de la profondeur du réseau. Un prétraitement avec une couche de filtres convolutionnels de taille réduite et se chevauchant (pas < taille) améliore les performances et la stabilité.

Ce comportement différent semble découler des différents biais inductifs qu'ils possèdent :

  • Le CNN applique le même ensemble de filtres pour le traitement de l'image entière. Cela lui permet d'être plus efficace en termes de données et moins sensible aux perturbations locales.
  • ViT utilise l'auto-attention, ce qui lui permet de capturer facilement les relations à longue portée entre les patchs. Bien qu'elle nécessite davantage de données pour l'entraînement, elle peut en traiter plus que les CNN, dont les performances ne s'améliorent pas nécessairement après un entraînement sur un ensemble de données suffisamment vaste. ViT semble également plus robuste aux distorsions des images d'entrée, telles que les patchs adverses ou les permutations.

Applications

Les ViT ont été utilisés dans de nombreuses tâches de vision par ordinateur avec d'excellents résultats et dans certains cas même à la pointe de la technologie, comme dans la classification d'images , la détection d'objets , la détection de deepfakes vidéo , la segmentation d'images , la détection d'anomalies , la synthèse d'images , l'analyse de clusters , la conduite autonome .

ViT a été utilisé pour la génération d'images comme squelette pour les GAN et pour les modèles de diffusion (transformateur de diffusion, ou DiT).

Il a été démontré que DINO apprend des représentations utiles pour le regroupement d'images et l'exploration de profils morphologiques sur des ensembles de données biologiques, tels que des images générées avec le test Cell Painting .

En 2024, un modèle ViT de 113 milliards de paramètres a été conçu (le plus grand ViT à ce jour) pour la prévision météorologique et climatique , et entraîné sur le supercalculateur Frontier avec un débit de 1,6 exaFLOPs .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index