INTRODUCTION À VIT
VISION TRANSFORMER
Pr Hajji Hicham
Le transformer un game changer?
Hugging Face Blog, 14th September 2021
Une nouvelle voie pour CV ?
Attention, il faut pas écarter vite CNN
Plan
•Rappels
• l’Attention
• Self Attention
• le Transformer
•ViT ou Vision Transformer
•Quelques Remarques et pistes
d’Interpretabilité
Mécanisme d’Attention
• Un concept aussi ancien, et que l’on utilise assez
souvent:
• Faites attention à ce chapitre, ce concept, cette question…
• On nous demande souvent de se concentrer sur une partie
importante
« Quel est le numéro de Messi ;-)? »
Mécanisme d’Attention
• Pour répondre à la question, quelques régions sont plus
importantes que d’autres pour prêter attention
• Le mécanisme d'attention pourrait nous aider à déterminer
quelles régions i (vecteur) sont plus pertinentes pour la requête q
(vecteur).
Higher Attention
Very Low
Attention
Attentions et Mesures de la pertinence
Dot Product
Attention
Additive
Attention …
Beaucoup d’approches
d’attentions
Beaucoup de fonction de
calcul du score d’attentions
Dot product attention
• L'intuition
• Un produit scalaire représente géométriquement la similarité cosinus en
prenant également en compte la magnitude des vecteurs.
• a été introduite pour la première fois Effective approaches to attention-based neural machine translation.
• Le score de pertinence entre la requête i et la clé j utilisant
l'attention du produit par points peut être écrite comme
Self Attention
• C’est vrai qu’il y a de nombreuses
techniques d’embedding qui peuvent
être utilisées, mais elles sont rigides.
Exp: word2vec:
• Le mieux c’est de créer des représentations
contextuelles des tockens inputs
• Self-Attention permet
• aux entrées d'interagir les unes avec les autres
(« self ») et de découvrir à qui elles devraient prêter
plus d'attention (« attention »).
Etapes du self-Attention
1. Préparer les entrées (image, mots, …)
2. Initialiser les poids
3. Déduire la clé, la requête et la valeur
4. Calculer les scores d'attention pour l'entrée 1
1. Calculer softmax
2. Multiplier les scores par des valeurs
3. Somme des valeurs pondérées pour obtenir la sortie 1
4. Répétez les étapes 4 à 7 pour toutes les autres entrées
Q K V : Analogie avec les DB
• Les informations dans une BD sont souvent stockées sous forme de paire clé
K, valeur V, par exemple:
• dans Arxiv : titre + résumé (K) et l'article (V).
• Dans Youtube: titre + keyframe + description …(K) et la vidéo (V)
• Une image (un texte …) peut être considérée comme une BD et la question
comme une requête: d’où le triplet Q, K, V
Multi-Head Attention
• On recherche plusieurs
représentations du même input
• Exécuter le mécanisme d’attention
plusieurs fois en parallèle
• Les sorties de ces têtes d'attention
indépendantes sont ensuite concaténées
et transformées linéairement dans la
dimension attendue
Du self-attention au Transformer
• Ajout de modules de self-attention
supplémentaires :
• Empilement de couches
• Entrées du module de self-attention :
• Module d’embedding et Encodage positionnel
• Entre les modules self-attention :
• Les connexions résiduelles
• permettant aux gradients de traverser directement les
réseaux.
• Les normalisations de couches
• sont utilisées pour stabiliser le réseau: réduit
considérablement le temps d'apprentissage nécessaire.
• La couche Feed Forward
• est utilisée pour projeter les sorties d'attention en lui
donnant potentiellement une représentation plus riche.
Succes stories du transformer
• BERT, GPT3, SWITCH-C
• Modèles et approches Defacto pour NLP
Transformer en Computer Vision
• Comment utiliser Transformer dans CV?
• Le transformer a besoin de tokens pour alimenter les self-attention
• Rappel
• L'attention a été utilisée mais conjointement avec les CNN
• La puissance des CNNs reposent sur deux hypothèses (inductive biais)
• les pixels proches les uns des autres sont liés (localité)
• Les différentes parties d’une image doivent être traitées de manière identique, quel
que soit leur emplacement absolu (partage du poids weights sharing).
• Conséquence: une puissante equivariance spatiale encodée par les couches
de convolutions:
• Transformer relaxe ces biais??
Transformer en Computer Vision
• La première fois que l’idée d’utiliser le « pure » transformer
dans l’image vient de Google
• Il montre que cette dépendance aux CNN n'est pas nécessaire
• Un transformateur pur appliqué directement aux séquences de patchs
d'images peut très bien fonctionner sur la classification d'images.
Etapes du ViT
Préparations des données images d’entrée
Passage dans le transformer
Tâche de Classification
Classe1
Classe 2
…
Classe n
Partitionnement de l’image en séquence patchs
Applatirlespatchs:
ex:[16,16,3] est applati vers un 16x16x3=768
Projectionlinéaire(linearembedding)dedimensionD
multipliéparunematriceEEmbedding(apprenable)
16*16
Ajouter la Position Embedding
Ajouter la Position Embedding(apprenable)
• le modèle n'a aucune idée de la position des patchs dans la séquence
• les embedding positionnels sont également apprenables
• pas réellement les vecteurs codés en dur par rapport à leurs positions.
Pos
Emb 1 Pos
Emb 2
Pos
Emb 9
Ajouter un Class Embedding
Etapes ViT: Tâche de classification
La sortie de l'encodeur est directement transmise à un réseau de
neurones Feed Forward pour obtenir la sortie de classification.
Classe1
Classe 2
…
Classe n
Comment utiliser ViT pour d’autres datasets
Variants et datasets
ViT-L/16 signifie “Large” variant avec 16*16 input patch size.
Pre-training
• ImageNet
• 1k classes et 1.3M images
• ImageNet-21k
• 21k classes et 14M images
• JFT (Google)
• 18k classes et 303M high-resolution
images
Fine-Tuning
• ImageNet
• ImageNet ReaL
• CIFAR-10/100
• Oxford-IIIT Pets
• Oxford Flowers-102
• VTAB
Variants
Datasets
Comparaison avec SOTA
• Noisy Student est SOTA avec ImageNet
• BiT-L (ResNet) est SOTA sur les autres datasets
• Un gain important sur le temps de calcul
Pour que ca marche, bcp bcp de données
• La taille du pre-training dataset semble jouer un rôle majeur dans le modèle ViT.
• ViT se généralise mal avec ImageNet (absence de biais inductives comme CNN)
• Mais, lorsqu’entrainés sur ImageNet-21 et JFT-300M, la précision augmentait.
Un peu d’interprétabilité
• Les filtres appris dans la première couche ressemble à
ceux appris dans CNN
• En analysant les représentations internes du ViT, ce dernier
« Attend » les régions d’images pertinentes pour la
classification
• Les premières têtes d’attentions dans les premières
couches « Attend » à la fois localement et globalement,
les couches supérieures: uniquement globalement
- Comment les Vision Transformers résolvent-ils ces Tâches CV?
- Agissent-ils comme les convolutions, en apprenant les mêmes biais inductive « from scratch»?
- Ou développent-ils de nouvelles représentations de tâches ?
- Et quel est le rôle de l'échelle dans l'apprentissage de ces représentations ?
Comparaison des représentations de
couches entre ViT et ResNet
• Une métrique: Pour comparer les différentes
représentations à travers un réseau de neuronnes 
CKA (Centered Kernel Alignment)
• Permet des comparaisons quantitatives des
représentations intra et cross models entre ViT et CNN
Similarité des structures de représentations
intra-ViT et intra-CNN
• La structure de représentation des ViT et des réseaux convolutifs
montre des différences significatives
• les ViT ont des représentations très similaires dans tout le modèle,
• tandis que les modèles ResNet montrent une similitude beaucoup plus faible
entre les couches inférieures et supérieures
Similarité des structures de représentations
cross-model entre ViT et CNN
• Heatmap CKA croisée entre ViT et ResNet illustre :
• un nombre élevé de couches inférieures dans le ResNet sont similaires à un plus petit
ensemble des couches ViT les plus basses
• la moitié des couches ResNet plus basses sont similaires à environ au quart inférieur
des couches ViT.
• La moitié restante du ResNet est similaire à environ tiers suivant des couches ViT,
• les couches ViT les plus élevées différentes des couches ResNet inférieures et
supérieures.
Information locale et globale dans les
représentations de couches
• Questions:
• Combien d'informations globales sont agrégées par premières
couches de self-attention dans ViT ?
• Y a-t-il des différences notables par rapport aux features des CNN,
qui ont des receptive fields , fixes et locales dans les premières
couches ?
• Notion: Attention Distance est une mesure qui renseigne :
• Pour chaque couche de self-attention, combien d'informations locales
vs globales sont agrégées pour la représentation
• les distances moyennes des têtes d'attention montrent que les
couches ViT inférieures sont présentes à la fois localement et
globalement, tandis que les couches supérieures incorporent
principalement des informations globales
• Avec moins de données d'entraînement, les couches
d'attention inférieures n'apprennent pas à utiliser
l’attention localement
L'accès à l'information globale se traduit-il
par des features différentes?
Rôle des Skip connections dans ViT
Problèmes avec ViT
• Puisque le ViT opèrent des calculs
self-attention global, où les relations
d'un patch et de tous les autres
patchs sont calculées, sa complexité
augmente de manière exponentielle
avec la résolution de l'image.
• Cela le rend inefficace pour la
segmentation d'images ou la tâche de
segmentation sémantique
• La complexité quadratique en
utilisant le ViT (self-attention):
• le carré du input
• ce qui entraînera une quantité de
calcul trop importante.
Swin Transformer comme solution
• L’une des principales contributions du swin transformer est qu’il
propose d’effectuer un self-attention dans une fenêtre locale plutôt
que globalement (chaque boîte rouge comme indiqué ci-dessous).
• Par rapport à Vit, la complexité de calcul de Swin Transformer a été
considérablement réduite :
• complexité linéaire / la taille de l'image d'entrée.
• Un grand avantage: general-purpose backbone pour CV
Shifted Windows
• Le module de self-attention basé sur les fenêtres manque de connexions
entre les fenêtres, ce qui limite sa puissance de modélisation.
• Pour introduire des connexions inter-fenêtres tout en maintenant le calcul
efficace des fenêtres qui ne se chevauchent pas
• une approche de partitionnement de fenêtre décalée Shifted qui alterne entre deux
configurations de partitionnement dans des blocs Swin Transformer consécutifs.
Autres Transformers en CV
• Vita
• DETR
• …
Transformers in Vision: A Survey -https://arxiv.org › pdf S Khan · 2021
Autres architectures basées sur le
transformer: Semantic segmentation
• TransUnet Dual Swin Transformer U-Net
Aircraft image True label Attention U-Net TransUnet: en cours de test
Detectingaircraftdents
Références
• Papers:
• Quantifying Attention Flow in Transformers, Samira Abnar and Willem Zuidema,2020,
• An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner,
Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby, 2021
• Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, Baining Guo, 2021
• Do Vision Transformers See Like Convolutional Neural Networks?
Maithra Raghu, Thomas Unterthiner, Simon Kornblith, Chiyuan Zhang, Alexey Dosovitskiy, 2021
• TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation
Jieneng Chen, Yongyi Lu, Qihang Yu, Xiangde Luo, Ehsan Adeli, Yan Wang, Le Lu, Alan L. Yuille, Yuyin Zhou,
2021
• Websites:
• https://learningturtle.github.io/Blog/posts/attention_another_perspective/
• https://www.section.io/engineering-education/vision-transformer-using-transformers-for-image-recognition/
• https://www.kaggle.com/abhinand05/vision-transformer-vit-tutorial-baseline
• https://zhangtemplar.github.io/swin-transformer/
• https://ai.googleblog.com/2019/11/the-visual-task-adaptation-benchmark.html

Visual Transformer Overview

  • 1.
    INTRODUCTION À VIT VISIONTRANSFORMER Pr Hajji Hicham
  • 2.
    Le transformer ungame changer? Hugging Face Blog, 14th September 2021
  • 3.
    Une nouvelle voiepour CV ? Attention, il faut pas écarter vite CNN
  • 4.
    Plan •Rappels • l’Attention • SelfAttention • le Transformer •ViT ou Vision Transformer •Quelques Remarques et pistes d’Interpretabilité
  • 5.
    Mécanisme d’Attention • Unconcept aussi ancien, et que l’on utilise assez souvent: • Faites attention à ce chapitre, ce concept, cette question… • On nous demande souvent de se concentrer sur une partie importante « Quel est le numéro de Messi ;-)? »
  • 6.
    Mécanisme d’Attention • Pourrépondre à la question, quelques régions sont plus importantes que d’autres pour prêter attention • Le mécanisme d'attention pourrait nous aider à déterminer quelles régions i (vecteur) sont plus pertinentes pour la requête q (vecteur). Higher Attention Very Low Attention
  • 7.
    Attentions et Mesuresde la pertinence Dot Product Attention Additive Attention … Beaucoup d’approches d’attentions Beaucoup de fonction de calcul du score d’attentions
  • 8.
    Dot product attention •L'intuition • Un produit scalaire représente géométriquement la similarité cosinus en prenant également en compte la magnitude des vecteurs. • a été introduite pour la première fois Effective approaches to attention-based neural machine translation. • Le score de pertinence entre la requête i et la clé j utilisant l'attention du produit par points peut être écrite comme
  • 9.
    Self Attention • C’estvrai qu’il y a de nombreuses techniques d’embedding qui peuvent être utilisées, mais elles sont rigides. Exp: word2vec: • Le mieux c’est de créer des représentations contextuelles des tockens inputs • Self-Attention permet • aux entrées d'interagir les unes avec les autres (« self ») et de découvrir à qui elles devraient prêter plus d'attention (« attention »).
  • 10.
    Etapes du self-Attention 1.Préparer les entrées (image, mots, …) 2. Initialiser les poids 3. Déduire la clé, la requête et la valeur 4. Calculer les scores d'attention pour l'entrée 1 1. Calculer softmax 2. Multiplier les scores par des valeurs 3. Somme des valeurs pondérées pour obtenir la sortie 1 4. Répétez les étapes 4 à 7 pour toutes les autres entrées
  • 11.
    Q K V: Analogie avec les DB • Les informations dans une BD sont souvent stockées sous forme de paire clé K, valeur V, par exemple: • dans Arxiv : titre + résumé (K) et l'article (V). • Dans Youtube: titre + keyframe + description …(K) et la vidéo (V) • Une image (un texte …) peut être considérée comme une BD et la question comme une requête: d’où le triplet Q, K, V
  • 12.
    Multi-Head Attention • Onrecherche plusieurs représentations du même input • Exécuter le mécanisme d’attention plusieurs fois en parallèle • Les sorties de ces têtes d'attention indépendantes sont ensuite concaténées et transformées linéairement dans la dimension attendue
  • 13.
    Du self-attention auTransformer • Ajout de modules de self-attention supplémentaires : • Empilement de couches • Entrées du module de self-attention : • Module d’embedding et Encodage positionnel • Entre les modules self-attention : • Les connexions résiduelles • permettant aux gradients de traverser directement les réseaux. • Les normalisations de couches • sont utilisées pour stabiliser le réseau: réduit considérablement le temps d'apprentissage nécessaire. • La couche Feed Forward • est utilisée pour projeter les sorties d'attention en lui donnant potentiellement une représentation plus riche.
  • 14.
    Succes stories dutransformer • BERT, GPT3, SWITCH-C • Modèles et approches Defacto pour NLP
  • 15.
    Transformer en ComputerVision • Comment utiliser Transformer dans CV? • Le transformer a besoin de tokens pour alimenter les self-attention • Rappel • L'attention a été utilisée mais conjointement avec les CNN • La puissance des CNNs reposent sur deux hypothèses (inductive biais) • les pixels proches les uns des autres sont liés (localité) • Les différentes parties d’une image doivent être traitées de manière identique, quel que soit leur emplacement absolu (partage du poids weights sharing). • Conséquence: une puissante equivariance spatiale encodée par les couches de convolutions: • Transformer relaxe ces biais??
  • 16.
    Transformer en ComputerVision • La première fois que l’idée d’utiliser le « pure » transformer dans l’image vient de Google • Il montre que cette dépendance aux CNN n'est pas nécessaire • Un transformateur pur appliqué directement aux séquences de patchs d'images peut très bien fonctionner sur la classification d'images.
  • 17.
    Etapes du ViT Préparationsdes données images d’entrée Passage dans le transformer Tâche de Classification Classe1 Classe 2 … Classe n
  • 18.
    Partitionnement de l’imageen séquence patchs Applatirlespatchs: ex:[16,16,3] est applati vers un 16x16x3=768 Projectionlinéaire(linearembedding)dedimensionD multipliéparunematriceEEmbedding(apprenable) 16*16
  • 19.
    Ajouter la PositionEmbedding Ajouter la Position Embedding(apprenable) • le modèle n'a aucune idée de la position des patchs dans la séquence • les embedding positionnels sont également apprenables • pas réellement les vecteurs codés en dur par rapport à leurs positions. Pos Emb 1 Pos Emb 2 Pos Emb 9
  • 20.
  • 21.
    Etapes ViT: Tâchede classification La sortie de l'encodeur est directement transmise à un réseau de neurones Feed Forward pour obtenir la sortie de classification. Classe1 Classe 2 … Classe n
  • 22.
    Comment utiliser ViTpour d’autres datasets
  • 23.
    Variants et datasets ViT-L/16signifie “Large” variant avec 16*16 input patch size. Pre-training • ImageNet • 1k classes et 1.3M images • ImageNet-21k • 21k classes et 14M images • JFT (Google) • 18k classes et 303M high-resolution images Fine-Tuning • ImageNet • ImageNet ReaL • CIFAR-10/100 • Oxford-IIIT Pets • Oxford Flowers-102 • VTAB Variants Datasets
  • 24.
    Comparaison avec SOTA •Noisy Student est SOTA avec ImageNet • BiT-L (ResNet) est SOTA sur les autres datasets • Un gain important sur le temps de calcul
  • 25.
    Pour que camarche, bcp bcp de données • La taille du pre-training dataset semble jouer un rôle majeur dans le modèle ViT. • ViT se généralise mal avec ImageNet (absence de biais inductives comme CNN) • Mais, lorsqu’entrainés sur ImageNet-21 et JFT-300M, la précision augmentait.
  • 26.
    Un peu d’interprétabilité •Les filtres appris dans la première couche ressemble à ceux appris dans CNN • En analysant les représentations internes du ViT, ce dernier « Attend » les régions d’images pertinentes pour la classification • Les premières têtes d’attentions dans les premières couches « Attend » à la fois localement et globalement, les couches supérieures: uniquement globalement
  • 27.
    - Comment lesVision Transformers résolvent-ils ces Tâches CV? - Agissent-ils comme les convolutions, en apprenant les mêmes biais inductive « from scratch»? - Ou développent-ils de nouvelles représentations de tâches ? - Et quel est le rôle de l'échelle dans l'apprentissage de ces représentations ?
  • 28.
    Comparaison des représentationsde couches entre ViT et ResNet • Une métrique: Pour comparer les différentes représentations à travers un réseau de neuronnes  CKA (Centered Kernel Alignment) • Permet des comparaisons quantitatives des représentations intra et cross models entre ViT et CNN
  • 29.
    Similarité des structuresde représentations intra-ViT et intra-CNN • La structure de représentation des ViT et des réseaux convolutifs montre des différences significatives • les ViT ont des représentations très similaires dans tout le modèle, • tandis que les modèles ResNet montrent une similitude beaucoup plus faible entre les couches inférieures et supérieures
  • 30.
    Similarité des structuresde représentations cross-model entre ViT et CNN • Heatmap CKA croisée entre ViT et ResNet illustre : • un nombre élevé de couches inférieures dans le ResNet sont similaires à un plus petit ensemble des couches ViT les plus basses • la moitié des couches ResNet plus basses sont similaires à environ au quart inférieur des couches ViT. • La moitié restante du ResNet est similaire à environ tiers suivant des couches ViT, • les couches ViT les plus élevées différentes des couches ResNet inférieures et supérieures.
  • 31.
    Information locale etglobale dans les représentations de couches • Questions: • Combien d'informations globales sont agrégées par premières couches de self-attention dans ViT ? • Y a-t-il des différences notables par rapport aux features des CNN, qui ont des receptive fields , fixes et locales dans les premières couches ? • Notion: Attention Distance est une mesure qui renseigne : • Pour chaque couche de self-attention, combien d'informations locales vs globales sont agrégées pour la représentation
  • 32.
    • les distancesmoyennes des têtes d'attention montrent que les couches ViT inférieures sont présentes à la fois localement et globalement, tandis que les couches supérieures incorporent principalement des informations globales
  • 33.
    • Avec moinsde données d'entraînement, les couches d'attention inférieures n'apprennent pas à utiliser l’attention localement
  • 34.
    L'accès à l'informationglobale se traduit-il par des features différentes?
  • 35.
    Rôle des Skipconnections dans ViT
  • 36.
    Problèmes avec ViT •Puisque le ViT opèrent des calculs self-attention global, où les relations d'un patch et de tous les autres patchs sont calculées, sa complexité augmente de manière exponentielle avec la résolution de l'image. • Cela le rend inefficace pour la segmentation d'images ou la tâche de segmentation sémantique • La complexité quadratique en utilisant le ViT (self-attention): • le carré du input • ce qui entraînera une quantité de calcul trop importante.
  • 37.
    Swin Transformer commesolution • L’une des principales contributions du swin transformer est qu’il propose d’effectuer un self-attention dans une fenêtre locale plutôt que globalement (chaque boîte rouge comme indiqué ci-dessous). • Par rapport à Vit, la complexité de calcul de Swin Transformer a été considérablement réduite : • complexité linéaire / la taille de l'image d'entrée. • Un grand avantage: general-purpose backbone pour CV
  • 38.
    Shifted Windows • Lemodule de self-attention basé sur les fenêtres manque de connexions entre les fenêtres, ce qui limite sa puissance de modélisation. • Pour introduire des connexions inter-fenêtres tout en maintenant le calcul efficace des fenêtres qui ne se chevauchent pas • une approche de partitionnement de fenêtre décalée Shifted qui alterne entre deux configurations de partitionnement dans des blocs Swin Transformer consécutifs.
  • 39.
    Autres Transformers enCV • Vita • DETR • … Transformers in Vision: A Survey -https://arxiv.org › pdf S Khan · 2021
  • 40.
    Autres architectures baséessur le transformer: Semantic segmentation • TransUnet Dual Swin Transformer U-Net Aircraft image True label Attention U-Net TransUnet: en cours de test Detectingaircraftdents
  • 41.
    Références • Papers: • QuantifyingAttention Flow in Transformers, Samira Abnar and Willem Zuidema,2020, • An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby, 2021 • Swin Transformer: Hierarchical Vision Transformer using Shifted Windows Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, Baining Guo, 2021 • Do Vision Transformers See Like Convolutional Neural Networks? Maithra Raghu, Thomas Unterthiner, Simon Kornblith, Chiyuan Zhang, Alexey Dosovitskiy, 2021 • TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation Jieneng Chen, Yongyi Lu, Qihang Yu, Xiangde Luo, Ehsan Adeli, Yan Wang, Le Lu, Alan L. Yuille, Yuyin Zhou, 2021 • Websites: • https://learningturtle.github.io/Blog/posts/attention_another_perspective/ • https://www.section.io/engineering-education/vision-transformer-using-transformers-for-image-recognition/ • https://www.kaggle.com/abhinand05/vision-transformer-vit-tutorial-baseline • https://zhangtemplar.github.io/swin-transformer/ • https://ai.googleblog.com/2019/11/the-visual-task-adaptation-benchmark.html